qskinny/qmlexport/QskMainQml.h

67 lines
1.6 KiB
C
Raw Normal View History

2020-10-29 18:53:43 +01:00
/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
* This file may be used under the terms of the QSkinny License, Version 1.0
*****************************************************************************/
#ifndef QSK_SETUP_QML_H
#define QSK_SETUP_QML_H
#include "QskQmlGlobal.h"
#include <QskSetup.h>
#include <qobject.h>
#include <qqmllist.h>
2021-02-09 08:13:20 +01:00
class QskSetupFlagsQml : public QskQuickItem::UpdateFlags
2020-10-29 18:53:43 +01:00
{
Q_GADGET
public:
template< typename... Args >
QskSetupFlagsQml( Args&&... args )
2021-02-09 08:13:20 +01:00
: QskQuickItem::UpdateFlags( std::forward< Args >( args )... )
2020-10-29 18:53:43 +01:00
{
}
Q_INVOKABLE int valueOf() const { return int( *this ); }
};
class QskMain : public QObject
{
public:
Q_OBJECT
Q_PRIVATE_PROPERTY( setup(), QString skin READ skinName
WRITE setSkin NOTIFY skinChanged )
Q_PROPERTY( QStringList skinList READ skinList NOTIFY skinListChanged )
2021-02-09 08:13:20 +01:00
Q_PRIVATE_PROPERTY( setup(), QskSetupFlagsQml itemUpdateFlags
READ itemUpdateFlags WRITE setItemUpdateFlags NOTIFY itemUpdateFlagsChanged )
2020-10-29 18:53:43 +01:00
Q_PROPERTY( QQmlListProperty< QObject > data READ data )
Q_CLASSINFO( "DefaultProperty", "data" )
public:
QskMain( QObject* parent = nullptr );
QStringList skinList() const;
QQmlListProperty< QObject > data();
Q_SIGNALS:
void skinListChanged(); // never emitted
void skinChanged();
void inputPanelChanged();
2021-02-09 08:13:20 +01:00
void itemUpdateFlagsChanged();
2020-10-29 18:53:43 +01:00
private:
static inline QskSetup* setup() { return QskSetup::instance(); }
QObjectList m_data;
};
Q_DECLARE_METATYPE( QskSetupFlagsQml )
#endif