Add skin factories etc.
This commit is contained in:
parent
0e8b31ab2f
commit
fd668c23e6
|
@ -0,0 +1,20 @@
|
||||||
|
#include "DaytimeSkin.h"
|
||||||
|
|
||||||
|
#include "PieChart.h"
|
||||||
|
#include "PieChartSkinlet.h"
|
||||||
|
|
||||||
|
#include <QskBoxBorderMetrics.h>
|
||||||
|
#include <QskBoxBorderColors.h>
|
||||||
|
|
||||||
|
DaytimeSkin::DaytimeSkin( QObject* parent ) : QskSkin( parent )
|
||||||
|
{
|
||||||
|
declareSkinlet< PieChart, PieChartSkinlet >();
|
||||||
|
initHints();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DaytimeSkin::initHints()
|
||||||
|
{
|
||||||
|
setBoxBorderMetrics( PieChart::Panel, 2 );
|
||||||
|
setGradient( PieChart::Panel, Qt::blue );
|
||||||
|
setBoxBorderColors( PieChart::Panel, Qt::green );
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef DAYTIMESKIN_H
|
||||||
|
#define DAYTIMESKIN_H
|
||||||
|
|
||||||
|
#include <QskSkin.h>
|
||||||
|
|
||||||
|
class DaytimeSkin : public QskSkin
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DaytimeSkin( QObject* parent = nullptr );
|
||||||
|
|
||||||
|
private:
|
||||||
|
void initHints();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DAYTIMESKIN_H
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
MainWindow::MainWindow() : QskWindow()
|
MainWindow::MainWindow() : QskWindow()
|
||||||
{
|
{
|
||||||
setFixedSize( { 1024, 600 } );
|
setPreferredSize( { 1024, 600 } );
|
||||||
setTitle( "IOT dashboard" );
|
setTitle( "IOT dashboard" );
|
||||||
|
|
||||||
m_mainLayout = new QskLinearBox( Qt::Horizontal, contentItem() );
|
m_mainLayout = new QskLinearBox( Qt::Horizontal, contentItem() );
|
||||||
|
|
|
@ -45,6 +45,7 @@ QSGNode* PieChartSkinlet::updatePanelNode( const PieChart* pieChart, QSGNode* no
|
||||||
const auto panelRect = subControlRect( pieChart, pieChart->contentsRect(), PieChart::Panel );
|
const auto panelRect = subControlRect( pieChart, pieChart->contentsRect(), PieChart::Panel );
|
||||||
|
|
||||||
const qreal radius = panelRect.width() / 2;
|
const qreal radius = panelRect.width() / 2;
|
||||||
|
qDebug() << "radius:" << radius << panelRect;
|
||||||
|
|
||||||
QskBoxShapeMetrics shapeMetrics( radius, radius, radius, radius );
|
QskBoxShapeMetrics shapeMetrics( radius, radius, radius, radius );
|
||||||
QskBoxBorderMetrics borderMetrics = pieChart->boxBorderMetricsHint( PieChart::Panel );
|
QskBoxBorderMetrics borderMetrics = pieChart->boxBorderMetricsHint( PieChart::Panel );
|
||||||
|
|
|
@ -2,6 +2,7 @@ CONFIG += qskexample
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
Card.cpp \
|
Card.cpp \
|
||||||
|
DaytimeSkin.cpp \
|
||||||
MainContent.cpp \
|
MainContent.cpp \
|
||||||
MenuBar.cpp \
|
MenuBar.cpp \
|
||||||
PieChart.cpp \
|
PieChart.cpp \
|
||||||
|
@ -11,6 +12,7 @@ SOURCES += \
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
Card.h \
|
Card.h \
|
||||||
|
DaytimeSkin.h \
|
||||||
MainContent.h \
|
MainContent.h \
|
||||||
MainWindow.h \
|
MainWindow.h \
|
||||||
MenuBar.h \
|
MenuBar.h \
|
||||||
|
|
|
@ -1,27 +1,67 @@
|
||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
|
|
||||||
|
#include "DaytimeSkin.h"
|
||||||
|
|
||||||
#include <SkinnyFont.h>
|
#include <SkinnyFont.h>
|
||||||
#include <SkinnyShortcut.h>
|
#include <SkinnyShortcut.h>
|
||||||
|
|
||||||
#include <QskLinearBox.h>
|
#include <QskLinearBox.h>
|
||||||
#include <QskShortcutMap.h>
|
|
||||||
#include <QskPushButton.h>
|
#include <QskPushButton.h>
|
||||||
|
#include <QskSetup.h>
|
||||||
|
#include <QskShortcutMap.h>
|
||||||
|
#include <QskSkinFactory.h>
|
||||||
|
#include <QskSkinManager.h>
|
||||||
#include <QskWindow.h>
|
#include <QskWindow.h>
|
||||||
|
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
|
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
class SkinFactory : public QskSkinFactory
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
SkinFactory( QObject* parent = nullptr ) : QskSkinFactory( parent )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList skinNames() const override
|
||||||
|
{
|
||||||
|
return { "DaytimeSkin" };
|
||||||
|
}
|
||||||
|
QskSkin* createSkin( const QString& skinName ) override
|
||||||
|
{
|
||||||
|
if( skinName == "DaytimeSkin" )
|
||||||
|
{
|
||||||
|
return new DaytimeSkin;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
int main( int argc, char* argv[] )
|
int main( int argc, char* argv[] )
|
||||||
{
|
{
|
||||||
QGuiApplication app( argc, argv );
|
QGuiApplication app( argc, argv );
|
||||||
|
|
||||||
SkinnyFont::init( &app );
|
SkinnyFont::init( &app );
|
||||||
|
|
||||||
|
SkinFactory skinFactory;
|
||||||
|
|
||||||
|
qskSkinManager->setPluginPaths( QStringList() ); // no plugins
|
||||||
|
qskSkinManager->registerFactory(
|
||||||
|
QStringLiteral( "SampleSkinFactory" ), &skinFactory );
|
||||||
|
|
||||||
// QskShortcutMap::addShortcut( QKeySequence( Qt::CTRL + Qt::Key_T ),
|
// QskShortcutMap::addShortcut( QKeySequence( Qt::CTRL + Qt::Key_T ),
|
||||||
// false, skinFactory, SLOT(toggleScheme()) );
|
// false, skinFactory, SLOT(toggleScheme()) );
|
||||||
|
|
||||||
// QskShortcutMap::addShortcut( QKeySequence( Qt::CTRL + Qt::Key_S ),
|
// QskShortcutMap::addShortcut( QKeySequence( Qt::CTRL + Qt::Key_S ),
|
||||||
// false, skinFactory, SLOT(rotateSkin()) );
|
// false, skinFactory, SLOT(rotateSkin()) );
|
||||||
|
|
||||||
|
qskSetup->setSkin( "DaytimeSkin" );
|
||||||
|
|
||||||
// With CTRL-B you can rotate a couple of visual debug modes
|
// With CTRL-B you can rotate a couple of visual debug modes
|
||||||
SkinnyShortcut::enable( SkinnyShortcut::DebugBackground |
|
SkinnyShortcut::enable( SkinnyShortcut::DebugBackground |
|
||||||
SkinnyShortcut::DebugStatistics | SkinnyShortcut::Quit );
|
SkinnyShortcut::DebugStatistics | SkinnyShortcut::Quit );
|
||||||
|
@ -31,3 +71,5 @@ int main( int argc, char* argv[] )
|
||||||
|
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "main.moc"
|
||||||
|
|
Loading…
Reference in New Issue