mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-09-18 08:22:33 +02:00
Add basic dark/light/System switch
This commit is contained in:
parent
3065550031
commit
1aed38d57a
@ -1,11 +1,13 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Window 2.2
|
import QtQuick.Window 2.2
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
import Qt.labs.platform 1.0
|
import Qt.labs.platform 1.0
|
||||||
|
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
|
import Settings 1.0
|
||||||
|
|
||||||
import "qml/"
|
import "qml/"
|
||||||
import "qml/Monitors"
|
import "qml/Monitors"
|
||||||
@ -16,7 +18,7 @@ import "qml/Workshop"
|
|||||||
|
|
||||||
ApplicationWindow {
|
ApplicationWindow {
|
||||||
id: window
|
id: window
|
||||||
color: "#eeeeee"
|
color: Material.background
|
||||||
// Set visible if the -silent parameter was not set (see app.cpp end of constructor).
|
// Set visible if the -silent parameter was not set (see app.cpp end of constructor).
|
||||||
visible: false
|
visible: false
|
||||||
width: 1400
|
width: 1400
|
||||||
@ -25,7 +27,33 @@ ApplicationWindow {
|
|||||||
minimumHeight: 450
|
minimumHeight: 450
|
||||||
minimumWidth: 1050
|
minimumWidth: 1050
|
||||||
|
|
||||||
|
Material.theme: {
|
||||||
|
switch (Settings.theme) {
|
||||||
|
case Settings.Auto:
|
||||||
|
return Material.System
|
||||||
|
case Settings.Dark:
|
||||||
|
return Material.Dark
|
||||||
|
case Settings.Light:
|
||||||
|
return Material.Light
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setTheme(theme){
|
||||||
|
switch (theme) {
|
||||||
|
case Settings.System:
|
||||||
|
window.Material.theme = Material.System
|
||||||
|
break
|
||||||
|
case Settings.Dark:
|
||||||
|
window.Material.theme = Material.Dark
|
||||||
|
break
|
||||||
|
case Settings.Light:
|
||||||
|
window.Material.theme = Material.Light
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
|
||||||
if (!ScreenPlay.settings.silentStart) {
|
if (!ScreenPlay.settings.silentStart) {
|
||||||
window.show()
|
window.show()
|
||||||
ScreenPlay.setTrackerSendEvent("navigation", "Installed")
|
ScreenPlay.setTrackerSendEvent("navigation", "Installed")
|
||||||
@ -72,6 +100,11 @@ ApplicationWindow {
|
|||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: ScreenPlay.settings
|
||||||
|
onThemeChanged:setTheme(theme)
|
||||||
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: ScreenPlay.util
|
target: ScreenPlay.util
|
||||||
onRequestNavigation: {
|
onRequestNavigation: {
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: root
|
id: root
|
||||||
color: "gray"
|
color: Material.background
|
||||||
width: 32
|
width: 42
|
||||||
height: 32
|
height: width
|
||||||
|
radius: width
|
||||||
|
|
||||||
property alias iconSource: icon.source
|
property alias iconSource: icon.source
|
||||||
property string url
|
property string url
|
||||||
@ -13,9 +15,10 @@ Rectangle {
|
|||||||
|
|
||||||
Image {
|
Image {
|
||||||
id: icon
|
id: icon
|
||||||
sourceSize: Qt.size(32, 32)
|
sourceSize: Qt.size(28, 28)
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
visible: false
|
visible: false
|
||||||
|
smooth: true
|
||||||
source: "qrc:/assets/icons/icon_info.svg"
|
source: "qrc:/assets/icons/icon_info.svg"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,9 +43,9 @@ Rectangle {
|
|||||||
name: "hover"
|
name: "hover"
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: icon
|
target: icon
|
||||||
width:40
|
width: 34
|
||||||
height:40
|
height: 34
|
||||||
sourceSize: Qt.size(40,40)
|
sourceSize: Qt.size(34,34)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import QtQuick 2.14
|
import QtQuick 2.14
|
||||||
import QtQuick.Controls 2.14
|
import QtQuick.Controls 2.14
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
|
|
||||||
@ -39,6 +40,7 @@ Item {
|
|||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: bg
|
id: bg
|
||||||
|
color: Material.background
|
||||||
height: parent.height - 10
|
height: parent.height - 10
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
|
@ -14,8 +14,8 @@ Rectangle {
|
|||||||
id: footer
|
id: footer
|
||||||
height: 80
|
height: 80
|
||||||
z: 100
|
z: 100
|
||||||
anchors {
|
color: Material.background
|
||||||
}
|
|
||||||
Row {
|
Row {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
spacing: 20
|
spacing: 20
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
import Qt.labs.platform 1.0
|
|
||||||
import QtQuick.Controls.Material 2.2
|
import QtQuick.Controls.Material 2.2
|
||||||
|
import Qt.labs.platform 1.0
|
||||||
|
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
|
|
||||||
@ -47,6 +47,8 @@ Item {
|
|||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: importVideoBg
|
id: importVideoBg
|
||||||
|
color: Material.background
|
||||||
|
|
||||||
radius: 3
|
radius: 3
|
||||||
z: 10
|
z: 10
|
||||||
anchors {
|
anchors {
|
||||||
@ -130,6 +132,8 @@ Item {
|
|||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: convertVideoBg
|
id: convertVideoBg
|
||||||
|
color: Material.background
|
||||||
|
|
||||||
radius: 3
|
radius: 3
|
||||||
z: 10
|
z: 10
|
||||||
anchors {
|
anchors {
|
||||||
@ -232,6 +236,8 @@ Item {
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: importVideoBg3
|
id: importVideoBg3
|
||||||
radius: 3
|
radius: 3
|
||||||
|
color: Material.background
|
||||||
|
|
||||||
z: 10
|
z: 10
|
||||||
anchors {
|
anchors {
|
||||||
fill: parent
|
fill: parent
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import QtQuick 2.14
|
import QtQuick 2.14
|
||||||
import QtQuick.Controls 2.14
|
import QtQuick.Controls 2.14
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
|
||||||
@ -214,7 +215,7 @@ Item {
|
|||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: nav
|
id: nav
|
||||||
color: "#ffffff"
|
color: Material.background
|
||||||
height: 50
|
height: 50
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
|
@ -134,7 +134,7 @@ Item {
|
|||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: sidebarBackground
|
id: sidebarBackground
|
||||||
color: "white"
|
color: Material.background
|
||||||
anchors {
|
anchors {
|
||||||
top: navBackground.bottom
|
top: navBackground.bottom
|
||||||
right: parent.right
|
right: parent.right
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls 2.12
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: rect
|
id: rect
|
||||||
|
color: Qt.darker(Material.background)
|
||||||
height: availableHeight
|
height: availableHeight
|
||||||
width: availableWidth
|
width: availableWidth
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.12
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
@ -12,7 +13,7 @@ Rectangle {
|
|||||||
height: 60
|
height: 60
|
||||||
clip: true
|
clip: true
|
||||||
width: 1366
|
width: 1366
|
||||||
color: "#ffffff"
|
color: Material.background
|
||||||
|
|
||||||
signal changePage(string name)
|
signal changePage(string name)
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ Rectangle {
|
|||||||
onRequestNavigationActive: {
|
onRequestNavigationActive: {
|
||||||
setActive(isActive)
|
setActive(isActive)
|
||||||
}
|
}
|
||||||
onRequestNavigation:{
|
onRequestNavigation: {
|
||||||
onPageChanged(nav)
|
onPageChanged(nav)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -38,11 +39,9 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function onPageChanged(name) {
|
function onPageChanged(name) {
|
||||||
|
|
||||||
|
ScreenPlay.setTrackerSendEvent("navigation", name)
|
||||||
ScreenPlay.setTrackerSendEvent("navigation",name);
|
|
||||||
|
|
||||||
if (!navActive)
|
if (!navActive)
|
||||||
return
|
return
|
||||||
@ -113,8 +112,7 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NavigationWallpaperConfiguration {
|
NavigationWallpaperConfiguration {}
|
||||||
}
|
|
||||||
states: [
|
states: [
|
||||||
State {
|
State {
|
||||||
name: "enabled"
|
name: "enabled"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@ -63,7 +64,7 @@ Item {
|
|||||||
anchors.left: icon.right
|
anchors.left: icon.right
|
||||||
anchors.leftMargin: 10
|
anchors.leftMargin: 10
|
||||||
font.pointSize: 14
|
font.pointSize: 14
|
||||||
color: "#626262"
|
color: Material.foreground
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
font.family: ScreenPlay.settings.font
|
font.family: ScreenPlay.settings.font
|
||||||
font.weight: Font.Normal
|
font.weight: Font.Normal
|
||||||
@ -77,7 +78,7 @@ Item {
|
|||||||
anchors.leftMargin: navigationItem.amount == "" ? 0 : 5
|
anchors.leftMargin: navigationItem.amount == "" ? 0 : 5
|
||||||
text: "name"
|
text: "name"
|
||||||
font.pointSize: 14
|
font.pointSize: 14
|
||||||
color: "#626262"
|
color: Material.foreground
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
font.family: ScreenPlay.settings.font
|
font.family: ScreenPlay.settings.font
|
||||||
font.weight: Font.Normal
|
font.weight: Font.Normal
|
||||||
@ -87,14 +88,14 @@ Item {
|
|||||||
id: iconColorOverlay
|
id: iconColorOverlay
|
||||||
anchors.fill: icon
|
anchors.fill: icon
|
||||||
source: icon
|
source: icon
|
||||||
color: "#FFAB00"
|
color: Material.accentColor
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: navIndicator
|
id: navIndicator
|
||||||
y: 83
|
y: 83
|
||||||
height: 3
|
height: 3
|
||||||
color: "#FFAB00"
|
color: Material.accent
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
@ -113,7 +114,7 @@ Item {
|
|||||||
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: iconColorOverlay
|
target: iconColorOverlay
|
||||||
color: "#FFAB00"
|
color: Material.accent
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
State {
|
State {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import QtQuick 2.14
|
import QtQuick 2.14
|
||||||
import QtQuick.Controls 2.14
|
import QtQuick.Controls 2.14
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
import QtQuick.Dialogs 1.2
|
import QtQuick.Dialogs 1.2
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
@ -51,7 +52,7 @@ Item {
|
|||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: settingsGeneralWrapper
|
id: settingsGeneralWrapper
|
||||||
height: 540 + txtDirChangesInfo.paintedHeight
|
height: 620 + txtDirChangesInfo.paintedHeight
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
||||||
RectangularGlow {
|
RectangularGlow {
|
||||||
@ -74,6 +75,7 @@ Item {
|
|||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
radius: 4
|
radius: 4
|
||||||
clip: true
|
clip: true
|
||||||
|
color: Material.backgroundColor
|
||||||
|
|
||||||
SettingsHeader {
|
SettingsHeader {
|
||||||
id: headerGeneral
|
id: headerGeneral
|
||||||
@ -185,33 +187,62 @@ Item {
|
|||||||
|
|
||||||
comboBox {
|
comboBox {
|
||||||
onActivated: {
|
onActivated: {
|
||||||
ScreenPlay.settings.setLanguage(settingsLanguage.comboBox.currentValue)
|
ScreenPlay.settings.setLanguage(
|
||||||
|
settingsLanguage.comboBox.currentValue)
|
||||||
ScreenPlay.settings.retranslateUI()
|
ScreenPlay.settings.retranslateUI()
|
||||||
}
|
}
|
||||||
model: [{
|
model: [{
|
||||||
"value": Settings.En,
|
"value": Settings.En,
|
||||||
"text": qsTr("English")
|
"text": qsTr("English")
|
||||||
}, {
|
}, {
|
||||||
"value": Settings.De,
|
"value": Settings.De,
|
||||||
"text": qsTr("German")
|
"text": qsTr("German")
|
||||||
}, {
|
}, {
|
||||||
"value": Settings.Ru,
|
"value": Settings.Ru,
|
||||||
"text": qsTr("Russian")
|
"text": qsTr("Russian")
|
||||||
}, {
|
}, {
|
||||||
"value": Settings.Fr,
|
"value": Settings.Fr,
|
||||||
"text": qsTr("French")
|
"text": qsTr("French")
|
||||||
}, {
|
}, {
|
||||||
"value": Settings.Es,
|
"value": Settings.Es,
|
||||||
"text": qsTr("Spanish")
|
"text": qsTr("Spanish")
|
||||||
}, {
|
}, {
|
||||||
"value": Settings.Ko,
|
"value": Settings.Ko,
|
||||||
"text": qsTr("Korean")
|
"text": qsTr("Korean")
|
||||||
}, {
|
}, {
|
||||||
"value": Settings.Vi,
|
"value": Settings.Vi,
|
||||||
"text": qsTr("Vietnamese")
|
"text": qsTr("Vietnamese")
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
SettingsHorizontalSeperator {}
|
||||||
|
|
||||||
|
SettingsComboBox {
|
||||||
|
id: settingsTheme
|
||||||
|
headline: qsTr("Theme")
|
||||||
|
description: qsTr("Switch dark/light theme")
|
||||||
|
Component.onCompleted: {
|
||||||
|
settingsTheme.comboBox.currentIndex = root.indexOfValue(
|
||||||
|
settingsTheme.comboBox.model,
|
||||||
|
ScreenPlay.settings.theme)
|
||||||
|
}
|
||||||
|
|
||||||
|
comboBox {
|
||||||
|
onActivated: {
|
||||||
|
ScreenPlay.settings.setTheme(settingsTheme.comboBox.currentValue)
|
||||||
|
}
|
||||||
|
model: [{
|
||||||
|
"value": Settings.System,
|
||||||
|
"text": qsTr("System Default")
|
||||||
|
}, {
|
||||||
|
"value": Settings.Dark,
|
||||||
|
"text": qsTr("Dark")
|
||||||
|
}, {
|
||||||
|
"value": Settings.Light,
|
||||||
|
"text": qsTr("Light")
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -239,6 +270,7 @@ Item {
|
|||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
color: Material.backgroundColor
|
||||||
radius: 4
|
radius: 4
|
||||||
clip: true
|
clip: true
|
||||||
|
|
||||||
@ -331,7 +363,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
color: Material.backgroundColor
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
radius: 4
|
radius: 4
|
||||||
clip: true
|
clip: true
|
||||||
@ -369,7 +401,7 @@ Item {
|
|||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
font.pointSize: 16
|
font.pointSize: 16
|
||||||
font.family: ScreenPlay.settings.font
|
font.family: ScreenPlay.settings.font
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: 6
|
topMargin: 6
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
|
import QtQuick.Controls.Material 2.12
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
property real customWidth: parent.width
|
property real customWidth: parent.width
|
||||||
property real customHeight: 1
|
property real customHeight: 1
|
||||||
property color customColor: "#dddddd"
|
property color customColor: Material.background
|
||||||
property real customMargin: 10
|
property real customMargin: 10
|
||||||
|
|
||||||
height: customMargin
|
height: customMargin
|
||||||
|
@ -4,8 +4,4 @@ Style=Material
|
|||||||
[Material]
|
[Material]
|
||||||
Theme=Light
|
Theme=Light
|
||||||
Accent=Orange
|
Accent=Orange
|
||||||
Primary=White
|
|
||||||
Foreground=Grey
|
|
||||||
Font\Family=Roboto
|
|
||||||
Font\PixelSize=12
|
|
||||||
Variant=Dense
|
Variant=Dense
|
||||||
|
@ -40,6 +40,8 @@ Settings::Settings(const shared_ptr<GlobalVariables>& globalVariables,
|
|||||||
{
|
{
|
||||||
qRegisterMetaType<Settings::FillMode>("Settings::FillMode");
|
qRegisterMetaType<Settings::FillMode>("Settings::FillMode");
|
||||||
qRegisterMetaType<Settings::Language>("Settings::Language");
|
qRegisterMetaType<Settings::Language>("Settings::Language");
|
||||||
|
qRegisterMetaType<Settings::Theme>("Settings::Theme");
|
||||||
|
|
||||||
qmlRegisterUncreatableType<Settings>("Settings", 1, 0, "Settings", "Error only for enums");
|
qmlRegisterUncreatableType<Settings>("Settings", 1, 0, "Settings", "Error only for enums");
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -60,12 +62,18 @@ Settings::Settings(const shared_ptr<GlobalVariables>& globalVariables,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setCheckWallpaperVisible(m_qSettings.value("CheckWallpaperVisible", true).toBool());
|
|
||||||
|
setCheckWallpaperVisible(m_qSettings.value("CheckWallpaperVisible", false).toBool());
|
||||||
setHighPriorityStart(m_qSettings.value("ScreenPlayExecutable", false).toBool());
|
setHighPriorityStart(m_qSettings.value("ScreenPlayExecutable", false).toBool());
|
||||||
if (m_qSettings.contains("VideoFillMode")) {
|
if (m_qSettings.contains("VideoFillMode")) {
|
||||||
auto value = m_qSettings.value("VideoFillMode").toString();
|
auto value = m_qSettings.value("VideoFillMode").toString();
|
||||||
setVideoFillMode(QStringToEnum<FillMode>(value, FillMode::Fill));
|
setVideoFillMode(QStringToEnum<FillMode>(value, FillMode::Fill));
|
||||||
}
|
}
|
||||||
|
if (m_qSettings.contains("Theme")) {
|
||||||
|
auto value = m_qSettings.value("Theme").toString();
|
||||||
|
setTheme(QStringToEnum<Theme>(value, Theme::System));
|
||||||
|
}
|
||||||
|
|
||||||
setAnonymousTelemetry(m_qSettings.value("AnonymousTelemetry", true).toBool());
|
setAnonymousTelemetry(m_qSettings.value("AnonymousTelemetry", true).toBool());
|
||||||
|
|
||||||
// Wallpaper and Widgets config
|
// Wallpaper and Widgets config
|
||||||
|
@ -69,6 +69,7 @@ class Settings : public QObject {
|
|||||||
|
|
||||||
Q_PROPERTY(FillMode videoFillMode READ videoFillMode WRITE setVideoFillMode NOTIFY videoFillModeChanged)
|
Q_PROPERTY(FillMode videoFillMode READ videoFillMode WRITE setVideoFillMode NOTIFY videoFillModeChanged)
|
||||||
Q_PROPERTY(Language language READ language WRITE setLanguage NOTIFY languageChanged)
|
Q_PROPERTY(Language language READ language WRITE setLanguage NOTIFY languageChanged)
|
||||||
|
Q_PROPERTY(Theme theme READ theme WRITE setTheme NOTIFY themeChanged)
|
||||||
|
|
||||||
Q_PROPERTY(QString decoder READ decoder WRITE setDecoder NOTIFY decoderChanged)
|
Q_PROPERTY(QString decoder READ decoder WRITE setDecoder NOTIFY decoderChanged)
|
||||||
Q_PROPERTY(QString gitBuildHash READ gitBuildHash WRITE setGitBuildHash NOTIFY gitBuildHashChanged)
|
Q_PROPERTY(QString gitBuildHash READ gitBuildHash WRITE setGitBuildHash NOTIFY gitBuildHashChanged)
|
||||||
@ -99,6 +100,13 @@ public:
|
|||||||
};
|
};
|
||||||
Q_ENUM(Language)
|
Q_ENUM(Language)
|
||||||
|
|
||||||
|
enum class Theme {
|
||||||
|
System,
|
||||||
|
Dark,
|
||||||
|
Light
|
||||||
|
};
|
||||||
|
Q_ENUM(Theme)
|
||||||
|
|
||||||
bool offlineMode() const
|
bool offlineMode() const
|
||||||
{
|
{
|
||||||
return m_offlineMode;
|
return m_offlineMode;
|
||||||
@ -162,6 +170,11 @@ public:
|
|||||||
return m_font;
|
return m_font;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Theme theme() const
|
||||||
|
{
|
||||||
|
return m_theme;
|
||||||
|
}
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void requestRetranslation();
|
void requestRetranslation();
|
||||||
|
|
||||||
@ -181,6 +194,8 @@ signals:
|
|||||||
|
|
||||||
void fontChanged(QString font);
|
void fontChanged(QString font);
|
||||||
|
|
||||||
|
void themeChanged(Theme theme);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void writeJsonFileFromResource(const QString& filename);
|
void writeJsonFileFromResource(const QString& filename);
|
||||||
void setupWidgetAndWindowPaths();
|
void setupWidgetAndWindowPaths();
|
||||||
@ -324,6 +339,17 @@ public slots:
|
|||||||
emit fontChanged(m_font);
|
emit fontChanged(m_font);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setTheme(Theme theme)
|
||||||
|
{
|
||||||
|
if (m_theme == theme)
|
||||||
|
return;
|
||||||
|
|
||||||
|
setqSetting("Theme", QVariant::fromValue(theme).toString());
|
||||||
|
|
||||||
|
m_theme = theme;
|
||||||
|
emit themeChanged(m_theme);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void restoreDefault(const QString& appConfigLocation, const QString& settingsFileType);
|
void restoreDefault(const QString& appConfigLocation, const QString& settingsFileType);
|
||||||
|
|
||||||
@ -342,8 +368,9 @@ private:
|
|||||||
|
|
||||||
QString m_gitBuildHash;
|
QString m_gitBuildHash;
|
||||||
QString m_decoder;
|
QString m_decoder;
|
||||||
FillMode m_videoFillMode;
|
FillMode m_videoFillMode { FillMode::Fill };
|
||||||
Language m_language = Language::En;
|
Language m_language { Language::En };
|
||||||
QString m_font {"Roboto"};
|
Theme m_theme { Theme::System };
|
||||||
|
QString m_font { "Roboto" };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user