something works somehow
This commit is contained in:
parent
3e801ea126
commit
fa8b4da0b2
|
@ -1,7 +1,7 @@
|
||||||
#include "Box.h"
|
#include "Box.h"
|
||||||
#include "DaytimeSkin.h"
|
#include "DaytimeSkin.h"
|
||||||
|
|
||||||
#include "src/shadowedrectangle.h"
|
#include "QskShadowedRectangle.h"
|
||||||
|
|
||||||
#include <QskBoxBorderColors.h>
|
#include <QskBoxBorderColors.h>
|
||||||
#include <QskBoxBorderMetrics.h>
|
#include <QskBoxBorderMetrics.h>
|
||||||
|
@ -26,8 +26,18 @@ Box::Box( const QString& title, QQuickItem* parent )
|
||||||
setBoxBorderColorsHint( QskBox::Panel, borderColors );
|
setBoxBorderColorsHint( QskBox::Panel, borderColors );
|
||||||
|
|
||||||
|
|
||||||
auto* r = new ShadowedRectangle( this );
|
auto* r = new QskShadowedRectangle( this );
|
||||||
r->setColor( Qt::green );
|
// 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 );
|
m_label->setFontRole( DaytimeSkin::TitleFont );
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#include "DaytimeSkin.h"
|
#include "DaytimeSkin.h"
|
||||||
|
|
||||||
#include "MenuBar.h"
|
#include "MenuBar.h"
|
||||||
|
#include "QskShadowedRectangle.h"
|
||||||
|
#include "QskShadowedRectangleSkinlet.h"
|
||||||
#include "PieChart.h"
|
#include "PieChart.h"
|
||||||
#include "PieChartSkinlet.h"
|
#include "PieChartSkinlet.h"
|
||||||
|
|
||||||
|
@ -29,6 +31,7 @@ namespace
|
||||||
|
|
||||||
DaytimeSkin::DaytimeSkin( QObject* parent ) : QskSkin( parent )
|
DaytimeSkin::DaytimeSkin( QObject* parent ) : QskSkin( parent )
|
||||||
{
|
{
|
||||||
|
declareSkinlet< QskShadowedRectangle, QskShadowedRectangleSkinlet >();
|
||||||
declareSkinlet< PieChart, PieChartSkinlet >();
|
declareSkinlet< PieChart, PieChartSkinlet >();
|
||||||
initHints();
|
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 \
|
PieChart.cpp \
|
||||||
PieChartPainted.cpp \
|
PieChartPainted.cpp \
|
||||||
PieChartSkinlet.cpp \
|
PieChartSkinlet.cpp \
|
||||||
|
QskShadowedRectangle.cpp \
|
||||||
|
QskShadowedRectangleSkinlet.cpp \
|
||||||
RoundedIcon.cpp \
|
RoundedIcon.cpp \
|
||||||
TopBar.cpp \
|
TopBar.cpp \
|
||||||
Usage.cpp \
|
Usage.cpp \
|
||||||
|
@ -35,53 +37,27 @@ HEADERS += \
|
||||||
PieChart.h \
|
PieChart.h \
|
||||||
PieChartPainted.h \
|
PieChartPainted.h \
|
||||||
PieChartSkinlet.h \
|
PieChartSkinlet.h \
|
||||||
|
QskShadowedRectangle.h \
|
||||||
|
QskShadowedRectangleSkinlet.h \
|
||||||
RoundedIcon.h \
|
RoundedIcon.h \
|
||||||
TopBar.h \
|
TopBar.h \
|
||||||
Usage.h
|
Usage.h
|
||||||
|
|
||||||
HEADERS += src/avatar.h \
|
HEADERS += \
|
||||||
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 \
|
|
||||||
src/shadowedrectangle.h \
|
src/shadowedrectangle.h \
|
||||||
src/shadowedtexture.h \
|
src/scenegraph/paintedrectangleitem.h \
|
||||||
src/sizegroup.h \
|
src/scenegraph/shadowedborderrectanglematerial.h \
|
||||||
src/toolbarlayoutdelegate.h \
|
src/scenegraph/shadowedrectanglematerial.h \
|
||||||
src/toolbarlayout.h \
|
src/scenegraph/shadowedrectanglenode.h
|
||||||
src/wheelhandler.h
|
|
||||||
|
|
||||||
SOURCES += src/avatar.cpp \
|
SOURCES += \
|
||||||
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 \
|
|
||||||
src/shadowedrectangle.cpp \
|
src/shadowedrectangle.cpp \
|
||||||
src/shadowedtexture.cpp \
|
src/scenegraph/paintedrectangleitem.cpp \
|
||||||
src/sizegroup.cpp \
|
src/scenegraph/shadowedborderrectanglematerial.cpp \
|
||||||
src/toolbarlayoutdelegate.cpp \
|
src/scenegraph/shadowedrectanglematerial.cpp \
|
||||||
src/toolbarlayout.cpp \
|
src/scenegraph/shadowedrectanglenode.cpp
|
||||||
src/wheelhandler.cpp
|
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
images.qrc \
|
images.qrc \
|
||||||
fonts.qrc
|
fonts.qrc \
|
||||||
|
src/scenegraph/shaders/shaders.qrc
|
||||||
|
|
Loading…
Reference in New Issue