diff options
author | Sami Nurmenniemi <sami.nurmenniemi@qt.io> | 2019-02-01 13:55:39 +0200 |
---|---|---|
committer | Sami Nurmenniemi <sami.nurmenniemi@qt.io> | 2019-02-04 11:39:25 +0000 |
commit | b5b749b7b8f4bcbd4547f0721e4f36e04f5337e6 (patch) | |
tree | de1a46b09fa778abcbdaa5b502dbdb0cccb4154d | |
parent | 46b20a047c295e8018cee586fd127dbcd18cad78 (diff) |
Add support for selecting demo start time
Task-number: QTBUG-72852
Change-Id: Ibb8b22d4ea3ce574ac6342927b26265bbd64de04
Reviewed-by: Tuomas Heimonen <tuomas.heimonen@qt.io>
-rw-r--r-- | qml/DemoMode.qml | 32 | ||||
-rw-r--r-- | qml/LayoutSettings.qml | 83 | ||||
-rw-r--r-- | qml/MainWindow.qml | 8 | ||||
-rw-r--r-- | src/settingsmanager.cpp | 15 | ||||
-rw-r--r-- | src/settingsmanager.h | 4 |
5 files changed, 101 insertions, 41 deletions
diff --git a/qml/DemoMode.qml b/qml/DemoMode.qml index 7849a5b..5199ae3 100644 --- a/qml/DemoMode.qml +++ b/qml/DemoMode.qml @@ -37,8 +37,6 @@ Item { property bool demoModeSeleted: globalSettings.demoModeSelected property bool demoIsRunning: false - property int demoInitialStartTime: 2000 // How fast demo starts after turning the demo on - property int demoIdleStartTime: 2 * 60 * 1000 // How fast demo starts after idle property int demoStepDuration: 2000 property int applicationWaitDuration: 1000 property int verticalFlickVelocity: 1000 @@ -46,8 +44,7 @@ Item { onDemoModeSeletedChanged: { if (demoModeSeleted) { - demoStartCounter.interval = demoInitialStartTime - demoStartCounter.start() + demoStartCounter.restart() } else { demoStartCounter.stop() stopDemos() @@ -74,26 +71,27 @@ Item { Stop all currently running demos */ function stopDemos() { - console.log("Stop automatic demo mode") - switchToSettingScreenAnimation.stop() - settingsDemoAnimation.stop() - gridViewDemoAnimation.stop() - graphicsEffectsDemoAnimation.stop() - qtChartsDemoAnimation.stop() - switchToDetailViewAnimation.stop() - detailViewDemoAnimation.stop() - eBikeViewDemoAnimation.stop() - demoIsRunning = false - - // Restart demo after idle time + if (demoIsRunning) { + switchToSettingScreenAnimation.stop() + settingsDemoAnimation.stop() + gridViewDemoAnimation.stop() + graphicsEffectsDemoAnimation.stop() + qtChartsDemoAnimation.stop() + switchToDetailViewAnimation.stop() + detailViewDemoAnimation.stop() + eBikeViewDemoAnimation.stop() + demoIsRunning = false + } + + // Postpone restarting if (demoModeSeleted) { - demoStartCounter.interval = demoIdleStartTime demoStartCounter.restart() } } Timer { id: demoStartCounter + interval: globalSettings.demoModeStartupTime * 1000 repeat: false onTriggered: startDemos() } diff --git a/qml/LayoutSettings.qml b/qml/LayoutSettings.qml index 4e4d08b..09606aa 100644 --- a/qml/LayoutSettings.qml +++ b/qml/LayoutSettings.qml @@ -125,31 +125,74 @@ Item { text: qsTr("TOUCH") } } - } - LauncherCheckBox { - id: flipScreenCheckBox - text: qsTr("Flip screen") - checked: globalSettings.rotationSelected - anchors.top: column.bottom - anchors.left: parent.left - anchors.topMargin: root.margin + Item { + height: root.margin + width: 1 + } + + Row { + spacing: root.margin - onCheckedChanged: { - globalSettings.rotationSelected = checked + LauncherCheckBox { + id: demoModeCheckBox + text: qsTr("Demo mode") + checked: globalSettings.demoModeSelected + + onCheckedChanged: { + globalSettings.demoModeSelected = checked + } + } + + LauncherCheckBox { + id: flipScreenCheckBox + text: qsTr("Flip screen") + checked: globalSettings.rotationSelected + + onCheckedChanged: { + globalSettings.rotationSelected = checked + } + } } - } - LauncherCheckBox { - id: demoModeCheckBox - text: qsTr("Demo mode") - checked: globalSettings.demoModeSelected - anchors.top: column.bottom - anchors.left: flipScreenCheckBox.right - anchors.topMargin: root.margin + Row { + spacing: root.margin * 0.2 + Text { + height: pluginMain.buttonHeight + text: qsTr("Demo startup time:") + color: "white" + font.pixelSize: pluginMain.valueFontSize + font.family: appFont + verticalAlignment: Text.AlignVCenter + } + + TextField { + id: demoStartupTime + rightPadding: 6 + bottomPadding: 6 + topPadding: 6 + height: pluginMain.buttonHeight + width: root.width * 0.1 + color: "black" + font.pixelSize: pluginMain.valueFontSize + text: globalSettings.demoModeStartupTime + horizontalAlignment: Text.AlignRight + inputMethodHints: Qt.ImhDigitsOnly + background: Rectangle { + border.color: demoStartupTime.focus ? viewSettings.buttonGreenColor : "transparent" + border.width: parent.width * 0.05 + } + onAccepted: globalSettings.demoModeStartupTime = text + } - onCheckedChanged: { - globalSettings.demoModeSelected = checked + Text { + height: pluginMain.buttonHeight + text: qsTr("s") + color: "white" + font.pixelSize: pluginMain.valueFontSize + font.family: appFont + verticalAlignment: Text.AlignVCenter + } } } } diff --git a/qml/MainWindow.qml b/qml/MainWindow.qml index 95c005d..d957468 100644 --- a/qml/MainWindow.qml +++ b/qml/MainWindow.qml @@ -347,15 +347,15 @@ Item { MouseArea { anchors.fill: parent propagateComposedEvents: true - enabled: demoMode.demoIsRunning // Press or click function pressedOrClicked(mouse) { - mouse.accepted = false - if (mouse.source === Qt.MouseEventSynthesizedByApplication) + if (mouse.source === Qt.MouseEventSynthesizedByApplication) { + mouse.accepted = false return + } + mouse.accepted = demoMode.demoIsRunning demoMode.stopDemos() - mouse.accepted = true } onClicked: pressedOrClicked(mouse) diff --git a/src/settingsmanager.cpp b/src/settingsmanager.cpp index e8dfc77..58acbf1 100644 --- a/src/settingsmanager.cpp +++ b/src/settingsmanager.cpp @@ -28,6 +28,8 @@ ****************************************************************************/ #include "settingsmanager.h" +static const int DEFAULT_DEMO_STARTUP_TIME = 2 * 60; + SettingsManager::SettingsManager(QObject *parent) : QObject(parent), m_settings("The Qt Company", "Qt Demo Launcher") @@ -104,3 +106,16 @@ void SettingsManager::setDemoModeSelected(bool enabled) setValue("demoModeSelected", enabled); emit demoModeSelectedChanged(enabled); } + +int SettingsManager::demoModeStartupTime() +{ + return getValue("demoModeStartupTime", DEFAULT_DEMO_STARTUP_TIME).toInt(); +} + +void SettingsManager::setDemoModeStartupTime(int startupTime) +{ + if (demoModeStartupTime() == startupTime) + return; + setValue("demoModeStartupTime", startupTime); + emit demoModeStartupTimeChanged(startupTime); +} diff --git a/src/settingsmanager.h b/src/settingsmanager.h index 50a8900..df6fcfa 100644 --- a/src/settingsmanager.h +++ b/src/settingsmanager.h @@ -54,17 +54,21 @@ public: Q_PROPERTY (bool rotationSelected READ rotationSelected WRITE setRotationSelected NOTIFY rotationSelectedChanged) Q_PROPERTY (bool demoModeSelected READ demoModeSelected WRITE setDemoModeSelected NOTIFY demoModeSelectedChanged) + Q_PROPERTY (int demoModeStartupTime READ demoModeStartupTime WRITE setDemoModeStartupTime NOTIFY demoModeStartupTimeChanged) bool rotationSelected(); void setRotationSelected(bool enabled); bool demoModeSelected(); void setDemoModeSelected(bool enabled); + int demoModeStartupTime(); + void setDemoModeStartupTime(int startupTime); signals: void gridSelectedChanged(bool enabled); void mouseSelectedChanged(bool enabled); void rotationSelectedChanged(bool enabled); void demoModeSelectedChanged(bool enabled); + void demoModeStartupTimeChanged(int startupTime); private: QSettings m_settings; |