diff options
author | Samuli Piippo <samuli.piippo@qt.io> | 2019-08-02 15:35:03 +0300 |
---|---|---|
committer | Samuli Piippo <samuli.piippo@qt.io> | 2019-08-02 15:35:03 +0300 |
commit | 61e0c9da397573d8ca3c4f7994f73864ba822aac (patch) | |
tree | c89261ce7f6499cfeb60ba2e924abbb71cc3838e | |
parent | 04cecef50d9316d98c11e8b82be5a492ef9bde70 (diff) | |
parent | f89cf3ae354de42df46588d50a3ad0816cc8fc28 (diff) |
Merge remote-tracking branch 'origin/5.12' into 5.135.13
* origin/5.12:
Use applicationsRoot path from settings file instead of hard-coding
Remove hard-coded values for default video and default location
Make demo header as overlay on top of loader and add auto-hide timer
Change-Id: Ie82098dcb0db6595fd27ba2231d73034c29d0874
-rw-r--r-- | qml/DemoHeader.qml | 29 | ||||
-rw-r--r-- | qml/MainWindow.qml | 6 | ||||
-rw-r--r-- | qml/ViewSettings.qml | 1 | ||||
-rw-r--r-- | src/applicationsettings.cpp | 4 | ||||
-rw-r--r-- | src/applicationsettings.h | 2 | ||||
-rw-r--r-- | src/main.cpp | 30 |
6 files changed, 48 insertions, 24 deletions
diff --git a/qml/DemoHeader.qml b/qml/DemoHeader.qml index 555fff2..0ee83bc 100644 --- a/qml/DemoHeader.qml +++ b/qml/DemoHeader.qml @@ -111,11 +111,13 @@ Rectangle { anchors.horizontalCenter: parent.horizontalCenter y: open ? parent.height - height/2 : parent.height rotation: open ? 180 : 0 + Drag.active: headerToggleMouseArea.drag.active Behavior on rotation { NumberAnimation { duration: 100 } } Behavior on y { NumberAnimation { duration: 100 } } MouseArea { + id: headerToggleMouseArea anchors.fill: parent anchors.margins: -parent.height * 0.5 drag.target: demoHeaderBar @@ -123,13 +125,34 @@ Rectangle { drag.minimumX: -demoHeaderBar.height drag.maximumY: 0 + DropArea { + anchors.fill: parent + onDropped: demoHeaderVisibilityDelay.restart() + } + onClicked: { - if (demoHeaderBar.y < -demoHeaderBar.height / 2) + if (demoHeaderBar.y < -demoHeaderBar.height / 2) { demoHeaderBar.y = 0 - else + demoHeaderVisibilityDelay.restart() + } else { demoHeaderBar.y = -demoHeaderBar.height + } + } + onReleased: { + demoHeaderBar.y = demoHeaderBar.y > -demoHeaderBar.height / 4 ? 0 : -demoHeaderBar.height + parent.Drag.drop() } - onReleased: demoHeaderBar.y = demoHeaderBar.y > -demoHeaderBar.height / 4 ? 0 : -demoHeaderBar.height + } + } + + Component.onCompleted: demoHeaderVisibilityDelay.start() + + Timer { + id: demoHeaderVisibilityDelay + interval: viewSettings.headerAutoHideDelay + onTriggered: { + if (!demoHeaderVisibilityDelay.running) + demoHeaderBar.y = -demoHeaderBar.height } } } diff --git a/qml/MainWindow.qml b/qml/MainWindow.qml index d957468..c1f4e54 100644 --- a/qml/MainWindow.qml +++ b/qml/MainWindow.qml @@ -180,11 +180,7 @@ Item { objectName: "applicationLoader" opacity: 0; visible: opacity > 0.1 - height: root.demoHeaderEnabled ? parent.height - (demoHeader.height + demoHeader.y) : parent.height - - anchors.top: root.demoHeaderEnabled ? demoHeader.bottom : root.top - anchors.left: parent.left - anchors.right: parent.right + anchors.fill: parent asynchronous: true; onStatusChanged: { diff --git a/qml/ViewSettings.qml b/qml/ViewSettings.qml index 3798e68..82f4241 100644 --- a/qml/ViewSettings.qml +++ b/qml/ViewSettings.qml @@ -37,6 +37,7 @@ Item { property real demoHeaderHeight: 2.5 * pageMargin property string appFont: "TitilliumWeb" property int stateDelay: 200; + property int headerAutoHideDelay: 3000 property string backgroundColor: "#09102b" property string borderColor: "#9d9faa" property string buttonGreenColor: "#41cd52" diff --git a/src/applicationsettings.cpp b/src/applicationsettings.cpp index 14e286b..957fcc7 100644 --- a/src/applicationsettings.cpp +++ b/src/applicationsettings.cpp @@ -32,10 +32,10 @@ #include <QtCore/QDebug> #include <QtCore/QStringList> -ApplicationSettings::ApplicationSettings(QObject *parent) +ApplicationSettings::ApplicationSettings(QString appsRoot, QObject *parent) : QObject(parent) , m_mainFile(QUrl(QStringLiteral("qrc:///qml/Main.qml"))) - , m_appsRoot("/data/user/qt") + , m_appsRoot(appsRoot) , m_isShowFPSEnabled(false) { } diff --git a/src/applicationsettings.h b/src/applicationsettings.h index 70e22c3..ad50e57 100644 --- a/src/applicationsettings.h +++ b/src/applicationsettings.h @@ -40,7 +40,7 @@ class ApplicationSettings : public QObject Q_PROPERTY(QString appsRoot READ appsRoot NOTIFY appsRootChanged) Q_PROPERTY(bool isShowFPSEnabled READ isShowFPSEnabled NOTIFY isShowFPSEnabledChanged) public: - explicit ApplicationSettings(QObject *parent = 0); + explicit ApplicationSettings(QString appsRoot, QObject *parent = 0); QUrl mainFile() const; QString appsRoot() const; diff --git a/src/main.cpp b/src/main.cpp index 792351f..de98973 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -68,10 +68,13 @@ void displayHelp(const char *appName) int main(int argc, char **argv) { + QSettings launcherSettings("Qt", "QtLauncher"); + qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); - qputenv("QT_QUICK_CONTROLS_CONF", "/data/user/qt/qtquickcontrols2/qtquickcontrols2.conf"); - QIcon::setThemeSearchPaths(QStringList() << "/data/user/qt/qtquickcontrols2/icons"); + QByteArray applicationsRootStr = launcherSettings.value("defaultApplicationRoot").toByteArray(); + qputenv("QT_QUICK_CONTROLS_CONF", applicationsRootStr + "/qtquickcontrols2/qtquickcontrols2.conf"); + QIcon::setThemeSearchPaths(QStringList() << applicationsRootStr + "/qtquickcontrols2/icons"); QIcon::setThemeName("gallery"); @@ -107,7 +110,7 @@ int main(int argc, char **argv) QFontDatabase::addApplicationFont(":/qml/fonts/Teko-Regular.ttf"); QFontDatabase::addApplicationFont(":/qml/fonts/fontawesome-webfont.ttf"); - ApplicationSettings applicationSettings; + ApplicationSettings applicationSettings(applicationsRootStr); if (!applicationSettings.parseCommandLineArguments()) { displayHelp(argv[0]); @@ -132,17 +135,15 @@ int main(int argc, char **argv) QtImageMaskProvider imageMaskProvider; // Material style can be set only for devices supporting GL - QSettings styleSettings; - QString style = styleSettings.value("style").toString(); + QString style = launcherSettings.value("style").toString(); if (Engine::checkForGlAvailability()) { - if (style.isEmpty() || style == "Default") - styleSettings.setValue("style", "Material"); + if (style.isEmpty()) + launcherSettings.setValue("style", "Material"); } else { - qDebug()<<"No GL available, skipping Material style"; + qDebug() << "No GL available, skipping Material style"; + launcherSettings.setValue("style", "Default"); } - QQuickStyle::setStyle(styleSettings.value("style").toString()); - - QSettings launcherSettings("QtLauncher", "colorSettings"); + QQuickStyle::setStyle(launcherSettings.value("style").toString()); engine.rootContext()->setContextProperty("_backgroundColor", launcherSettings.value("backgroundColor", "#09102b")); engine.rootContext()->setContextProperty("_primaryGreen", launcherSettings.value("primaryGreen", "#41cd52")); @@ -151,8 +152,11 @@ int main(int argc, char **argv) engine.rootContext()->setContextProperty("_primaryGrey", launcherSettings.value("primaryGrey", "#9d9faa")); engine.rootContext()->setContextProperty("_secondaryGrey", launcherSettings.value("secondaryGrey", "#3a4055")); - engine.rootContext()->setContextProperty("VideosLocation", launcherSettings.value("videosLocation", "file:///data/videos")); - engine.rootContext()->setContextProperty("DefaultVideoUrl", launcherSettings.value("defaultVideoUrl", "file:///data/videos/Qt+for+Designers+and+Developers.mp4")); + engine.rootContext()->setContextProperty("VideosLocation", + launcherSettings.value("videosLocation")); + engine.rootContext()->setContextProperty("DefaultVideoUrl", + launcherSettings.value("defaultVideoUrl")); + engine.addImageProvider("QtImage", &imageProvider); engine.addImageProvider("QtSquareImage", &squareImageProvider); |