QML UI: add checkbox to show/hide developer menu

Add a checkbox to the preferences page to facilitate selective visibility of the developer menu. With the coresponding function in qmlmanager.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
This commit is contained in:
Joakim Bygdell 2017-07-19 16:35:46 +02:00 committed by Dirk Hohndel
parent 0eef27376a
commit a66d876ed0
4 changed files with 61 additions and 0 deletions

View file

@ -321,6 +321,49 @@ Kirigami.ScrollablePage {
text: qsTr("Save detailed log of interaction with the dive computer")
}
}
GridLayout {
id: developer
columns: 2
width: parent.width - Kirigami.Units.gridUnit
Kirigami.Heading {
text: qsTr("Developer")
color: subsurfaceTheme.textColor
level: 4
Layout.topMargin: Kirigami.Units.largeSpacing
Layout.bottomMargin: Kirigami.Units.largeSpacing / 2
Layout.columnSpan: 2
}
CheckBox {
id: developerButton
checked: manager.developer
onClicked: {
manager.developer = checked
}
indicator: Rectangle {
implicitWidth: 20
implicitHeight: 20
x: developerButton.leftPadding
y: parent.height / 2 - height / 2
radius: 4
border.color: developerButton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor
color: subsurfaceTheme.backgroundColor
Rectangle {
width: 12
height: 12
x: 4
y: 4
radius: 3
color: developerButton.down ? subsurfaceTheme.primaryColor : subsurfaceTheme.darkerPrimaryColor
visible: developerButton.checked
}
}
}
Kirigami.Label {
text: qsTr("Display Developer menu")
}
}
Item {
height: Kirigami.Units.gridUnit * 6
}

View file

@ -251,6 +251,7 @@ if you have network connectivity and want to sync your data to cloud storage."),
},
Kirigami.Action {
text: qsTr("Developer")
visible: manager.developer
Kirigami.Action {
text: qsTr("App log")
onTriggered: {

View file

@ -1583,6 +1583,17 @@ void QMLManager::setLibdcLog(bool value)
emit libdcLogChanged();
}
bool QMLManager::developer() const
{
return m_developer;
}
void QMLManager::setDeveloper(bool value)
{
m_developer = value;
emit developerChanged();
}
bool QMLManager::btEnabled() const
{
return m_btEnabled;

View file

@ -42,6 +42,7 @@ class QMLManager : public QObject {
Q_PROPERTY(bool showPin READ showPin WRITE setShowPin NOTIFY showPinChanged)
Q_PROPERTY(QString progressMessage READ progressMessage WRITE setProgressMessage NOTIFY progressMessageChanged)
Q_PROPERTY(bool libdcLog READ libdcLog WRITE setLibdcLog NOTIFY libdcLogChanged)
Q_PROPERTY(bool developer READ developer WRITE setDeveloper NOTIFY developerChanged)
public:
QMLManager();
@ -119,6 +120,9 @@ public:
bool libdcLog() const;
void setLibdcLog(bool value);
bool developer() const;
void setDeveloper(bool value);
typedef void (QMLManager::*execute_function_type)();
DiveListSortModel *dlSortModel;
@ -219,6 +223,7 @@ private:
DCDeviceData *m_device_data;
QString m_progressMessage;
bool m_libdcLog;
bool m_developer;
bool m_btEnabled;
#if defined(Q_OS_ANDROID)
@ -250,6 +255,7 @@ signals:
void sendScreenChanged(QScreen *screen);
void progressMessageChanged();
void libdcLogChanged();
void developerChanged();
};
#endif