something works somehow
This commit is contained in:
parent
3e801ea126
commit
fa8b4da0b2
|
@ -1,7 +1,7 @@
|
|||
#include "Box.h"
|
||||
#include "DaytimeSkin.h"
|
||||
|
||||
#include "src/shadowedrectangle.h"
|
||||
#include "QskShadowedRectangle.h"
|
||||
|
||||
#include <QskBoxBorderColors.h>
|
||||
#include <QskBoxBorderMetrics.h>
|
||||
|
@ -26,8 +26,18 @@ Box::Box( const QString& title, QQuickItem* parent )
|
|||
setBoxBorderColorsHint( QskBox::Panel, borderColors );
|
||||
|
||||
|
||||
auto* r = new ShadowedRectangle( this );
|
||||
r->setColor( Qt::green );
|
||||
auto* r = new QskShadowedRectangle( this );
|
||||
// r->setPosition( {50, 50} );
|
||||
// r->setColor( Qt::green );
|
||||
// r->setOpacity( 0.5 );
|
||||
// r->setSize( {100, 50} );
|
||||
// r->setVisible( true );
|
||||
// r->corners()->setTopLeft( 5 );
|
||||
// r->corners()->setTopRight( 5 );
|
||||
// r->corners()->setBottomLeft( 5 );
|
||||
// r->corners()->setBottomRight( 5 );
|
||||
// r->setRadius( 5 );
|
||||
auto* t = new QskTextLabel( "bla", r );
|
||||
|
||||
|
||||
m_label->setFontRole( DaytimeSkin::TitleFont );
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#include "DaytimeSkin.h"
|
||||
|
||||
#include "MenuBar.h"
|
||||
#include "QskShadowedRectangle.h"
|
||||
#include "QskShadowedRectangleSkinlet.h"
|
||||
#include "PieChart.h"
|
||||
#include "PieChartSkinlet.h"
|
||||
|
||||
|
@ -29,6 +31,7 @@ namespace
|
|||
|
||||
DaytimeSkin::DaytimeSkin( QObject* parent ) : QskSkin( parent )
|
||||
{
|
||||
declareSkinlet< QskShadowedRectangle, QskShadowedRectangleSkinlet >();
|
||||
declareSkinlet< PieChart, PieChartSkinlet >();
|
||||
initHints();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#include "QskShadowedRectangle.h"
|
||||
|
||||
QSK_SUBCONTROL( QskShadowedRectangle, Shadow )
|
||||
|
||||
QskShadowedRectangle::QskShadowedRectangle( QQuickItem* parent ) : QskControl( parent )
|
||||
{
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef QSKSHADOWEDRECTANGLE_H
|
||||
#define QSKSHADOWEDRECTANGLE_H
|
||||
|
||||
#include "src/shadowedrectangle.h"
|
||||
|
||||
#include <QskControl.h>
|
||||
|
||||
class QskShadowedRectangle : public QskControl
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QSK_SUBCONTROLS( Shadow )
|
||||
|
||||
QskShadowedRectangle( QQuickItem* parent = nullptr );
|
||||
// ~QskShadowedRectangle() override;
|
||||
|
||||
// BorderGroup* border() const;
|
||||
// ShadowGroup* shadow() const;
|
||||
// CornersGroup* corners() const;
|
||||
|
||||
// qreal radius() const;
|
||||
// void setRadius( qreal newRadius );
|
||||
// Q_SIGNAL void radiusChanged();
|
||||
|
||||
// QColor color() const;
|
||||
// void setColor( const QColor& newColor );
|
||||
// Q_SIGNAL void colorChanged();
|
||||
|
||||
// void componentComplete() override;
|
||||
|
||||
// bool isSoftwareRendering() const;
|
||||
|
||||
// Q_SIGNALS:
|
||||
// void softwareRenderingChanged();
|
||||
|
||||
// protected:
|
||||
// PaintedRectangleItem* softwareItem() const;
|
||||
// void itemChange( QQuickItem::ItemChange change, const QQuickItem::ItemChangeData& value ) override;
|
||||
|
||||
// private:
|
||||
// void checkSoftwareItem();
|
||||
// const std::unique_ptr<BorderGroup> m_border;
|
||||
// const std::unique_ptr<ShadowGroup> m_shadow;
|
||||
// const std::unique_ptr<CornersGroup> m_corners;
|
||||
// qreal m_radius = 0.0;
|
||||
// QColor m_color = Qt::white;
|
||||
// PaintedRectangleItem* m_softwareItem = nullptr;
|
||||
};
|
||||
|
||||
#endif // QSKSHADOWEDRECTANGLE_H
|
|
@ -0,0 +1,64 @@
|
|||
#include "QskShadowedRectangleSkinlet.h"
|
||||
#include "QskShadowedRectangle.h"
|
||||
|
||||
#include "src/scenegraph/shadowedrectanglenode.h"
|
||||
|
||||
QskShadowedRectangleSkinlet::QskShadowedRectangleSkinlet( QskSkin* skin ) : QskSkinlet( skin )
|
||||
, m_border( new BorderGroup )
|
||||
, m_shadow( new ShadowGroup )
|
||||
, m_corners( new CornersGroup )
|
||||
{
|
||||
setNodeRoles( { ShadowRole } );
|
||||
}
|
||||
|
||||
QRectF QskShadowedRectangleSkinlet::subControlRect( const QskSkinnable*, const QRectF& contentsRect, QskAspect::Subcontrol ) const
|
||||
{
|
||||
return contentsRect;
|
||||
}
|
||||
|
||||
QSGNode* QskShadowedRectangleSkinlet::updateSubNode( const QskSkinnable* skinnable, quint8 nodeRole, QSGNode* node ) const
|
||||
{
|
||||
const auto rectangle = static_cast< const QskShadowedRectangle* >( skinnable );
|
||||
|
||||
switch( nodeRole )
|
||||
{
|
||||
case ShadowRole:
|
||||
return updateShadowNode( rectangle, node );
|
||||
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
QSGNode* QskShadowedRectangleSkinlet::updateShadowNode( const QskShadowedRectangle* rectangle, QSGNode* node ) const
|
||||
{
|
||||
auto shadowNode = static_cast<ShadowedRectangleNode*>( node );
|
||||
|
||||
if( !shadowNode )
|
||||
{
|
||||
shadowNode = new ShadowedRectangleNode{};
|
||||
}
|
||||
|
||||
// shadowNode->setBorderEnabled( m_border->isEnabled() );
|
||||
// shadowNode->setRect( rectangle->contentsRect() );
|
||||
// shadowNode->setSize( m_shadow->size() );
|
||||
// shadowNode->setRadius( m_corners->toVector4D( m_radius ) );
|
||||
// shadowNode->setOffset( QVector2D{float( m_shadow->xOffset() ), float( m_shadow->yOffset() )} );
|
||||
// shadowNode->setColor( m_color );
|
||||
// shadowNode->setShadowColor( m_shadow->color() );
|
||||
// shadowNode->setBorderWidth( m_border->width() );
|
||||
// shadowNode->setBorderColor( m_border->color() );
|
||||
// shadowNode->updateGeometry();
|
||||
|
||||
shadowNode->setBorderEnabled( true );
|
||||
shadowNode->setRect( {0, 0, 100, 50} );
|
||||
shadowNode->setSize( 50 );
|
||||
shadowNode->setRadius( m_corners->toVector4D( 5 ) );
|
||||
shadowNode->setOffset( QVector2D{float( 1 ), float( 1 )} );
|
||||
shadowNode->setColor( Qt::green );
|
||||
shadowNode->setShadowColor( Qt::magenta );
|
||||
shadowNode->setBorderWidth( 2 );
|
||||
shadowNode->setBorderColor( Qt::red );
|
||||
shadowNode->updateGeometry();
|
||||
return shadowNode;
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
#ifndef QSKSHADOWEDRECTANGLESKINLET_H
|
||||
#define QSKSHADOWEDRECTANGLESKINLET_H
|
||||
|
||||
#include "src/shadowedrectangle.h"
|
||||
|
||||
#include <QskSkinlet.h>
|
||||
|
||||
class QskShadowedRectangle;
|
||||
|
||||
class QskShadowedRectangleSkinlet : public QskSkinlet
|
||||
{
|
||||
Q_GADGET
|
||||
|
||||
public:
|
||||
enum NodeRole
|
||||
{
|
||||
ShadowRole,
|
||||
};
|
||||
|
||||
Q_INVOKABLE QskShadowedRectangleSkinlet( QskSkin* skin = nullptr );
|
||||
|
||||
QRectF subControlRect( const QskSkinnable*, const QRectF&, QskAspect::Subcontrol ) const override;
|
||||
|
||||
protected:
|
||||
virtual QSGNode* updateSubNode( const QskSkinnable*, quint8 nodeRole, QSGNode* node ) const override;
|
||||
|
||||
private:
|
||||
QSGNode* updateShadowNode( const QskShadowedRectangle*, QSGNode* ) const;
|
||||
|
||||
// ### move this to the value class:
|
||||
const std::unique_ptr<BorderGroup> m_border;
|
||||
const std::unique_ptr<ShadowGroup> m_shadow;
|
||||
const std::unique_ptr<CornersGroup> m_corners;
|
||||
qreal m_radius = 0.0;
|
||||
QColor m_color = Qt::white;
|
||||
PaintedRectangleItem* m_softwareItem = nullptr;
|
||||
};
|
||||
|
||||
#endif // QSKSHADOWEDRECTANGLESKINLET_H
|
|
@ -14,6 +14,8 @@ SOURCES += \
|
|||
PieChart.cpp \
|
||||
PieChartPainted.cpp \
|
||||
PieChartSkinlet.cpp \
|
||||
QskShadowedRectangle.cpp \
|
||||
QskShadowedRectangleSkinlet.cpp \
|
||||
RoundedIcon.cpp \
|
||||
TopBar.cpp \
|
||||
Usage.cpp \
|
||||
|
@ -35,53 +37,27 @@ HEADERS += \
|
|||
PieChart.h \
|
||||
PieChartPainted.h \
|
||||
PieChartSkinlet.h \
|
||||
QskShadowedRectangle.h \
|
||||
QskShadowedRectangleSkinlet.h \
|
||||
RoundedIcon.h \
|
||||
TopBar.h \
|
||||
Usage.h
|
||||
|
||||
HEADERS += src/avatar.h \
|
||||
src/colorutils.h \
|
||||
src/columnview.h \
|
||||
src/columnview_p.h \
|
||||
src/delegaterecycler.h \
|
||||
src/enums.h \
|
||||
src/formlayoutattached.h \
|
||||
src/icon.h \
|
||||
src/imagecolors.h \
|
||||
src/kirigamiplugin.h \
|
||||
src/mnemonicattached.h \
|
||||
src/pagepool.h \
|
||||
src/pagerouter.h \
|
||||
src/scenepositionattached.h \
|
||||
src/settings.h \
|
||||
HEADERS += \
|
||||
src/shadowedrectangle.h \
|
||||
src/shadowedtexture.h \
|
||||
src/sizegroup.h \
|
||||
src/toolbarlayoutdelegate.h \
|
||||
src/toolbarlayout.h \
|
||||
src/wheelhandler.h
|
||||
src/scenegraph/paintedrectangleitem.h \
|
||||
src/scenegraph/shadowedborderrectanglematerial.h \
|
||||
src/scenegraph/shadowedrectanglematerial.h \
|
||||
src/scenegraph/shadowedrectanglenode.h
|
||||
|
||||
SOURCES += src/avatar.cpp \
|
||||
src/colorutils.cpp \
|
||||
src/columnview.cpp \
|
||||
src/delegaterecycler.cpp \
|
||||
src/enums.cpp \
|
||||
src/formlayoutattached.cpp \
|
||||
src/icon.cpp \
|
||||
src/imagecolors.cpp \
|
||||
src/kirigamiplugin.cpp \
|
||||
src/mnemonicattached.cpp \
|
||||
src/pagepool.cpp \
|
||||
src/pagerouter.cpp \
|
||||
src/scenepositionattached.cpp \
|
||||
src/settings.cpp \
|
||||
SOURCES += \
|
||||
src/shadowedrectangle.cpp \
|
||||
src/shadowedtexture.cpp \
|
||||
src/sizegroup.cpp \
|
||||
src/toolbarlayoutdelegate.cpp \
|
||||
src/toolbarlayout.cpp \
|
||||
src/wheelhandler.cpp
|
||||
src/scenegraph/paintedrectangleitem.cpp \
|
||||
src/scenegraph/shadowedborderrectanglematerial.cpp \
|
||||
src/scenegraph/shadowedrectanglematerial.cpp \
|
||||
src/scenegraph/shadowedrectanglenode.cpp
|
||||
|
||||
RESOURCES += \
|
||||
images.qrc \
|
||||
fonts.qrc
|
||||
fonts.qrc \
|
||||
src/scenegraph/shaders/shaders.qrc
|
||||
|
|
Loading…
Reference in New Issue