aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/src-qml
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2017-10-13 14:00:14 -0400
committerKen Moore <ken@ixsystems.com>2017-10-13 14:00:14 -0400
commit27992c407e1d67b14c7d20aa378193d5590b1d52 (patch)
tree0a7b10db476e55a9d1e21bb0a32fdbc542daaf06 /src-qt5/src-qml
parentAdd the beginnings of the root desktop QML system. Not finished yet. (diff)
downloadlumina-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.qml27
-rw-r--r--src-qt5/src-qml/src-qml.pri9
-rw-r--r--src-qt5/src-qml/src-qml.qrc5
-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.h41
-rw-r--r--src-qt5/src-qml/test/ListTest.qml19
-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.cpp37
-rw-r--r--src-qt5/src-qml/test/testlist.pro7
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
bgstack15