diff options
author | Ken Moore <ken@ixsystems.com> | 2017-10-13 14:00:14 -0400 |
---|---|---|
committer | Ken Moore <ken@ixsystems.com> | 2017-10-13 14:00:14 -0400 |
commit | 27992c407e1d67b14c7d20aa378193d5590b1d52 (patch) | |
tree | 0a7b10db476e55a9d1e21bb0a32fdbc542daaf06 /src-qt5/src-qml | |
parent | Add the beginnings of the root desktop QML system. Not finished yet. (diff) | |
download | lumina-27992c407e1d67b14c7d20aa378193d5590b1d52.tar.gz lumina-27992c407e1d67b14c7d20aa378193d5590b1d52.tar.bz2 lumina-27992c407e1d67b14c7d20aa378193d5590b1d52.zip |
Another checkpoint commit - almost ready to start running tests with QML for the desktop background/wallpapers
Diffstat (limited to 'src-qt5/src-qml')
-rw-r--r-- | src-qt5/src-qml/RootDesktop.qml | 27 | ||||
-rw-r--r-- | src-qt5/src-qml/src-qml.pri | 9 | ||||
-rw-r--r-- | src-qt5/src-qml/src-qml.qrc | 5 | ||||
-rw-r--r-- | src-qt5/src-qml/test/CPUGaugeStyle.qml (renamed from src-qt5/src-qml/CPUGaugeStyle.qml) | 0 | ||||
-rw-r--r-- | src-qt5/src-qml/test/Clock.qml (renamed from src-qt5/src-qml/Clock.qml) | 0 | ||||
-rw-r--r-- | src-qt5/src-qml/test/ListData.h | 41 | ||||
-rw-r--r-- | src-qt5/src-qml/test/ListTest.qml | 19 | ||||
-rw-r--r-- | src-qt5/src-qml/test/test-basic.qml (renamed from src-qt5/src-qml/test-basic.qml) | 0 | ||||
-rw-r--r-- | src-qt5/src-qml/test/test-cpugauge.qml (renamed from src-qt5/src-qml/test-cpugauge.qml) | 0 | ||||
-rw-r--r-- | src-qt5/src-qml/test/testlist.cpp | 37 | ||||
-rw-r--r-- | src-qt5/src-qml/test/testlist.pro | 7 |
11 files changed, 144 insertions, 1 deletions
diff --git a/src-qt5/src-qml/RootDesktop.qml b/src-qt5/src-qml/RootDesktop.qml index d4d7fed7..0003366b 100644 --- a/src-qt5/src-qml/RootDesktop.qml +++ b/src-qt5/src-qml/RootDesktop.qml @@ -13,15 +13,40 @@ // RootDesktopObject *rootobj = new RootDesktopObject(); // QQuickView *root = new QQuickView(); // root->setResizeMode(QQuickView::SizeRootObjectToView); -// root->engine()->rootContext->setContextProperty("RootObject", rootobj); +// root->engine()->rootContext()->setContextProperty("RootObject", rootobj); //=========================================== import QtQuick 2.0 import QtQuick.Window 2.2 +import Lumina.Backend.RootDesktopObject 2.0 +import Lumina.Backend.ScreenObject 2.0 + Rectangle { id: RootCanvas color: "black" + //Setup the right-click context menu + MouseArea { + anchors.fill: RootCanvas + acceptedButton: Qt.RightButton + onClicked: { contextMenu.open() } + } + + //Create the context menu itself + Menu { + id: contextMenu + + MenuItem { + test: qtTr("Logout") + indicator: Image{ + asynchronous: true + autoTransform: true + source: "image://theme/system-logout" + } + onTriggered: RootObject.logout() + } + } + //Setup the wallpapers Repeater{ model: RootObject.screens diff --git a/src-qt5/src-qml/src-qml.pri b/src-qt5/src-qml/src-qml.pri new file mode 100644 index 00000000..bcdd439d --- /dev/null +++ b/src-qt5/src-qml/src-qml.pri @@ -0,0 +1,9 @@ +#Show the QML files to lupdate for translation purposes - not for the actual build + +QT *= quick qml + +lupdate_only{ + SOURCES *= RootDesktop.qml +} + +RESOURCES *= src-qml.qrc diff --git a/src-qt5/src-qml/src-qml.qrc b/src-qt5/src-qml/src-qml.qrc new file mode 100644 index 00000000..41f9d54b --- /dev/null +++ b/src-qt5/src-qml/src-qml.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="QML"> + <file alias="RootDesktop">RootDesktop.qml</file> + </qresource> +</RCC> diff --git a/src-qt5/src-qml/CPUGaugeStyle.qml b/src-qt5/src-qml/test/CPUGaugeStyle.qml index 4728d136..4728d136 100644 --- a/src-qt5/src-qml/CPUGaugeStyle.qml +++ b/src-qt5/src-qml/test/CPUGaugeStyle.qml diff --git a/src-qt5/src-qml/Clock.qml b/src-qt5/src-qml/test/Clock.qml index 685346cb..685346cb 100644 --- a/src-qt5/src-qml/Clock.qml +++ b/src-qt5/src-qml/test/Clock.qml diff --git a/src-qt5/src-qml/test/ListData.h b/src-qt5/src-qml/test/ListData.h new file mode 100644 index 00000000..7dd6f6e2 --- /dev/null +++ b/src-qt5/src-qml/test/ListData.h @@ -0,0 +1,41 @@ +#include <QDebug> +#include <QApplication> +#include <QQuickView> +#include <QQmlEngine> +#include <QQmlContext> +#include <QObject> +#include <QStringList> +#include <QTimer> + +class ListData : public QObject{ + Q_OBJECT + Q_PROPERTY(QList<QScreen*> list READ list NOTIFY listchanged); +signals: + void listchanged(); + +private: + QStringList m_list; + //QTimer *timer; + //bool increasing; + +private slots: + void changeList(){ + /*if(m_list.isEmpty()){ increasing = true; } + else if(m_list.length() == 5){ increasing = false; } + if(increasing){ m_list << "Text - "+QString::number( m_list.length()+1 ); } + else{ m_list.takeAt(m_list.count()-1); } + emit listchanged();*/ + } + +public: + ListData() : QObject(){ + /*increasing = true; + timer = new QTimer(this); + timer->setInterval(1000); + timer->setSingleShot(false); + connect(timer, SIGNAL(timeout()), this, SLOT(changeList()) ); + timer->start();*/ + } + + QList<QScreen*> list() { return QApplication::screens(); } //m_list; } +}; diff --git a/src-qt5/src-qml/test/ListTest.qml b/src-qt5/src-qml/test/ListTest.qml new file mode 100644 index 00000000..e6b6ba35 --- /dev/null +++ b/src-qt5/src-qml/test/ListTest.qml @@ -0,0 +1,19 @@ +import QtQuick 2.2 +import QtQuick.Layouts 1.3 + +Rectangle { + id: canvas + color: "black" + + ColumnLayout{ + anchors.fill: canvas + + Repeater{ + model: cppdata.list + Text{ + color: "white" + text: modelData + } + } + } //end row layout +} diff --git a/src-qt5/src-qml/test-basic.qml b/src-qt5/src-qml/test/test-basic.qml index 5d21ae41..5d21ae41 100644 --- a/src-qt5/src-qml/test-basic.qml +++ b/src-qt5/src-qml/test/test-basic.qml diff --git a/src-qt5/src-qml/test-cpugauge.qml b/src-qt5/src-qml/test/test-cpugauge.qml index 1151c435..1151c435 100644 --- a/src-qt5/src-qml/test-cpugauge.qml +++ b/src-qt5/src-qml/test/test-cpugauge.qml diff --git a/src-qt5/src-qml/test/testlist.cpp b/src-qt5/src-qml/test/testlist.cpp new file mode 100644 index 00000000..cc54c501 --- /dev/null +++ b/src-qt5/src-qml/test/testlist.cpp @@ -0,0 +1,37 @@ +#include <QDebug> +#include <QApplication> +#include <QQuickView> +#include <QQmlEngine> +#include <QQmlContext> +#include <QObject> +#include <QStringList> +#include <QTimer> + +#include "ListData.h" + +int main(int argc, char** argv){ + QString QMLFile; + for(int i=1; i<argc; i++){ + if(QFile::exists(argv[i])){ QMLFile = QString(argv[i]); } + } + if(QMLFile.isEmpty()){ + qDebug() << "No QML File provided!"; + qDebug() << " Please provide a valid qml file path as an input argument"; + return 1; + } + QApplication A(argc,argv); + qDebug() << "Creating base widget"; + ListData data; + QQuickView base; + base.setResizeMode(QQuickView::SizeRootObjectToView); + qDebug() << "Resize base widget"; + base.resize(1024,768); + base.engine()->rootContext()->setContextProperty("cppdata", &data); + qDebug() << "Load QML File:" << QMLFile; + base.setSource(QUrl::fromLocalFile(QMLFile)); + qDebug() << "Start Event loop"; + base.show(); + int ret = A.exec(); + qDebug() << " - Finished"; + return ret; +} diff --git a/src-qt5/src-qml/test/testlist.pro b/src-qt5/src-qml/test/testlist.pro new file mode 100644 index 00000000..69c7bc23 --- /dev/null +++ b/src-qt5/src-qml/test/testlist.pro @@ -0,0 +1,7 @@ +QT = core gui widgets quick quickwidgets qml + +TARGET = test + +SOURCES += testlist.cpp + +HEADERS += ListData.h |