summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSami Nurmenniemi <sami.nurmenniemi@qt.io>2019-02-01 13:55:39 +0200
committerSami Nurmenniemi <sami.nurmenniemi@qt.io>2019-02-04 11:39:25 +0000
commitb5b749b7b8f4bcbd4547f0721e4f36e04f5337e6 (patch)
treede1a46b09fa778abcbdaa5b502dbdb0cccb4154d
parent46b20a047c295e8018cee586fd127dbcd18cad78 (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.qml32
-rw-r--r--qml/LayoutSettings.qml83
-rw-r--r--qml/MainWindow.qml8
-rw-r--r--src/settingsmanager.cpp15
-rw-r--r--src/settingsmanager.h4
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;