Begin working on light theme

This commit is contained in:
Alex Spataru 2021-09-05 15:37:11 -05:00
parent f5388a5ab1
commit b34c84ceea
31 changed files with 389 additions and 554 deletions

View File

@ -77,6 +77,12 @@ QT += quickcontrols2
include(libs/Libraries.pri)
#-----------------------------------------------------------------------------------------
# Assets
#-----------------------------------------------------------------------------------------
include(assets/Assets.pri)
#-----------------------------------------------------------------------------------------
# Deploy options
#-----------------------------------------------------------------------------------------
@ -118,24 +124,6 @@ mingw {
INCLUDEPATH += src
RESOURCES += \
assets/assets.qrc
DISTFILES += \
assets/qml/PlatformDependent/*.qml \
assets/qml/SetupPanes/*.qml \
assets/qml/Widgets/*.qml \
assets/qml/Windows/*.qml \
assets/qml/SetupPanes/*.qml \
assets/qml/*.qml \
assets/qml/Config/*.js
TRANSLATIONS += \
assets/translations/en.ts \
assets/translations/es.ts \
assets/translations/zh.ts \
assets/translations/de.ts
HEADERS += \
src/AppInfo.h \
src/CSV/Export.h \
@ -196,22 +184,3 @@ OTHER_FILES += \
deploy/windows/nsis/* \
deploy/windows/resources/* \
.github/workflows/Build.yml
#-------------------------------------------------------------------------------
# Markdown files
#-------------------------------------------------------------------------------
OTHER_FILES += \
src/*.md \
src/CSV/*.md \
src/IO/*.md \
src/JSON/*.md \
src/Misc/*.md \
src/MQTT/*.md \
src/Plugins/*.md \
src/UI/*.md \
assets/qml/*.md \
assets/qml/PlatformDependent/*.md \
assets/qml/SetupPanes/*.md \
assets/qml/Widgets/*.md \
assets/qml/Windows/.md

36
assets/assets.pri Normal file
View File

@ -0,0 +1,36 @@
#
# Copyright (c) 2020-2021 Alex Spataru <https://github.com/alex-spataru>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
TRANSLATIONS += \
$$PWD/translations/en.ts \
$$PWD/translations/es.ts \
$$PWD/translations/zh.ts \
$$PWD/translations/de.ts
RESOURCES += \
$$PWD/icons/rcc_icons.qrc \
$$PWD/images/rcc_images.qrc \
$$PWD/instruments/rcc_instruments.qrc \
$$PWD/messages/rcc_messages.qrc \
$$PWD/qml/rcc_qml.qrc \
$$PWD/themes/rcc_themes.qrc \
$$PWD/translations/rcc_translations.qrc

View File

@ -1,114 +0,0 @@
<RCC>
<qresource prefix="/">
<file>icons/ac-power.svg</file>
<file>icons/arrow-right.svg</file>
<file>icons/backspace.svg</file>
<file>icons/battery.svg</file>
<file>icons/bug.svg</file>
<file>icons/chart.svg</file>
<file>icons/code.svg</file>
<file>icons/connect.svg</file>
<file>icons/copy.svg</file>
<file>icons/delete.svg</file>
<file>icons/developer-board.svg</file>
<file>icons/device-hub.svg</file>
<file>icons/disconnect.svg</file>
<file>icons/drag-drop.svg</file>
<file>icons/equalizer.svg</file>
<file>icons/error.svg</file>
<file>icons/ethernet.svg</file>
<file>icons/fullscreen-exit.svg</file>
<file>icons/fullscreen.svg</file>
<file>icons/group.svg</file>
<file>icons/help.svg</file>
<file>icons/info.svg</file>
<file>icons/link.svg</file>
<file>icons/location-off.svg</file>
<file>icons/location-on.svg</file>
<file>icons/media-next.svg</file>
<file>icons/media-pause.svg</file>
<file>icons/media-play.svg</file>
<file>icons/media-prev.svg</file>
<file>icons/open.svg</file>
<file>icons/power.svg</file>
<file>icons/ram.svg</file>
<file>icons/refresh.svg</file>
<file>icons/right.svg</file>
<file>icons/save.svg</file>
<file>icons/scatter-plot.svg</file>
<file>icons/schedule.svg</file>
<file>icons/send.svg</file>
<file>icons/settings.svg</file>
<file>icons/tab.svg</file>
<file>icons/terminal.svg</file>
<file>icons/update.svg</file>
<file>icons/usb.svg</file>
<file>icons/visibility.svg</file>
<file>icons/warning.svg</file>
<file>images/icon.png</file>
<file>instruments/AttitudeDial.svg</file>
<file>instruments/AttitudePointer.svg</file>
<file>instruments/Crosshair.svg</file>
<file>messages/Acknowledgements.txt</file>
<file>messages/Welcome_DE.txt</file>
<file>messages/Welcome_EN.txt</file>
<file>messages/Welcome_ES.txt</file>
<file>messages/Welcome_ZH.txt</file>
<file>qml/Widgets/AccelerometerDelegate.qml</file>
<file>qml/Widgets/ArtificialHorizonDelegate.qml</file>
<file>qml/Widgets/BarDelegate.qml</file>
<file>qml/Widgets/DataDelegate.qml</file>
<file>qml/Widgets/AccelerometerGaugeDelegate.qml</file>
<file>qml/Widgets/GraphDelegate.qml</file>
<file>qml/Widgets/GroupDelegate.qml</file>
<file>qml/Widgets/GyroDelegate.qml</file>
<file>qml/Widgets/LED.qml</file>
<file>qml/Widgets/MapDelegate.qml</file>
<file>qml/Widgets/Window.qml</file>
<file>qml/Windows/About.qml</file>
<file>qml/Windows/Acknowledgements.qml</file>
<file>qml/Windows/Console.qml</file>
<file>qml/Windows/CsvPlayer.qml</file>
<file>qml/Windows/DataGrid.qml</file>
<file>qml/Windows/Setup.qml</file>
<file>qml/Windows/Toolbar.qml</file>
<file>qml/Windows/Widgets.qml</file>
<file>qml/main.qml</file>
<file>translations/de.qm</file>
<file>translations/de.ts</file>
<file>translations/en.qm</file>
<file>translations/en.ts</file>
<file>translations/es.qm</file>
<file>translations/es.ts</file>
<file>translations/zh.qm</file>
<file>translations/zh.ts</file>
<file>icons/scroll-bottom.svg</file>
<file>icons/scroll-down.svg</file>
<file>icons/scroll-top.svg</file>
<file>icons/scroll-up.svg</file>
<file>qml/Widgets/SimpleDial.qml</file>
<file>qml/SetupPanes/Network.qml</file>
<file>qml/SetupPanes/Serial.qml</file>
<file>qml/SetupPanes/Settings.qml</file>
<file>icons/search.svg</file>
<file>qml/PlatformDependent/MenubarMacOS.qml</file>
<file>qml/PlatformDependent/Menubar.qml</file>
<file>qml/PlatformDependent/DecentMenuItem.qml</file>
<file>qml/SetupPanes/MQTT.qml</file>
<file>qml/Widgets/CompassDelegate.qml</file>
<file>icons/compass.svg</file>
<file>instruments/Compass.svg</file>
<file>instruments/CompassCase.svg</file>
<file>qml/Widgets/GaugeDelegate.qml</file>
<file>qml/Windows/Donate.qml</file>
<file>images/donate-qr.svg</file>
<file>themes/0_Classic.json</file>
<file>themes/1_Light.json</file>
<file>themes/2_SolarizedDark.json</file>
<file>themes/3_SolarizedLight.json</file>
<file>themes/4_macOS_Light.json</file>
<file>themes/5_macOS_Dark.json</file>
<file>qml/Application.qml</file>
<file>themes/6_TVA.json</file>
</qresource>
</RCC>

View File

@ -0,0 +1,55 @@
<RCC>
<qresource prefix="/icons">
<file>ac-power.svg</file>
<file>arrow-right.svg</file>
<file>backspace.svg</file>
<file>battery.svg</file>
<file>bug.svg</file>
<file>chart.svg</file>
<file>code.svg</file>
<file>compass.svg</file>
<file>connect.svg</file>
<file>copy.svg</file>
<file>delete.svg</file>
<file>developer-board.svg</file>
<file>device-hub.svg</file>
<file>disconnect.svg</file>
<file>drag-drop.svg</file>
<file>equalizer.svg</file>
<file>error.svg</file>
<file>ethernet.svg</file>
<file>fullscreen-exit.svg</file>
<file>fullscreen.svg</file>
<file>group.svg</file>
<file>help.svg</file>
<file>info.svg</file>
<file>link.svg</file>
<file>location-off.svg</file>
<file>location-on.svg</file>
<file>media-next.svg</file>
<file>media-pause.svg</file>
<file>media-play.svg</file>
<file>media-prev.svg</file>
<file>open.svg</file>
<file>power.svg</file>
<file>ram.svg</file>
<file>refresh.svg</file>
<file>right.svg</file>
<file>save.svg</file>
<file>scatter-plot.svg</file>
<file>schedule.svg</file>
<file>scroll-bottom.svg</file>
<file>scroll-down.svg</file>
<file>scroll-top.svg</file>
<file>scroll-up.svg</file>
<file>search.svg</file>
<file>send.svg</file>
<file>settings.svg</file>
<file>tab.svg</file>
<file>terminal.svg</file>
<file>update.svg</file>
<file>usb.svg</file>
<file>visibility.svg</file>
<file>warning.svg</file>
</qresource>
</RCC>

View File

@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/images">
<file>donate-qr.svg</file>
<file>icon.png</file>
</qresource>
</RCC>

View File

@ -0,0 +1,9 @@
<RCC>
<qresource prefix="/instruments">
<file>AttitudeDial.svg</file>
<file>AttitudePointer.svg</file>
<file>Compass.svg</file>
<file>CompassCase.svg</file>
<file>Crosshair.svg</file>
</qresource>
</RCC>

View File

@ -0,0 +1,9 @@
<RCC>
<qresource prefix="/messages">
<file>Acknowledgements.txt</file>
<file>Welcome_DE.txt</file>
<file>Welcome_EN.txt</file>
<file>Welcome_ES.txt</file>
<file>Welcome_ZH.txt</file>
</qresource>
</RCC>

View File

@ -137,8 +137,8 @@ Control {
opacity: 0.8
font.pixelSize: 12
Layout.fillWidth: true
color: palette.highlightedText
wrapMode: Label.WrapAtWordBoundaryOrAnywhere
color: Cpp_ThemeManager.highlightedTextAlternative
text: qsTr("Applications/plugins can interact with %1 by " +
"establishing a TCP connection on port 7777.").arg(Cpp_AppName)
}

View File

@ -157,8 +157,8 @@ Window {
id: gauge
lastNumber: 8
firstNumber: 0
minimumValue: root.min
maximumValue: root.max
minimumValue: root.min * 0.5
maximumValue: root.max * 2
valueLabelVisible: false
currentValue: root.meanGForce
Layout.alignment: Qt.AlignHCenter

View File

@ -117,6 +117,28 @@ Window {
minimumValueAngle: -144
labelStepSize: (root.maximumValue - root.minimumValue) / 10
tickmarkStepSize: (root.maximumValue - root.minimumValue) / 20
tickmark: Rectangle {
antialiasing: true
implicitWidth: outerRadius * 0.02
implicitHeight: outerRadius * 0.06
visible: styleData.value % labelStepSize == 0
color: Cpp_ThemeManager.widgetForegroundSecondary
}
minorTickmark: Rectangle {
antialiasing: true
implicitWidth: outerRadius * 0.01
implicitHeight: outerRadius * 0.03
color: Cpp_ThemeManager.widgetForegroundSecondary
}
tickmarkLabel: Text {
antialiasing: true
text: styleData.value
font.pixelSize: Math.max(6, outerRadius * 0.1)
color: Cpp_ThemeManager.widgetForegroundSecondary
}
}
Behavior on value {NumberAnimation{duration: 200}}

View File

@ -34,7 +34,7 @@ Window {
showIcon: false
visible: opacity > 0
opacity: enabled ? 1 : 0
borderColor: root.headerVisible ? Cpp_ThemeManager.datasetTextSecondary : "transparent"
borderColor: root.headerVisible ? Cpp_ThemeManager.datasetWindowBorder : "transparent"
title: Cpp_UI_GraphProvider.getTitle(graphId)

View File

@ -34,8 +34,8 @@ Window {
showIcon: false
visible: opacity > 0
opacity: enabled ? 1 : 0
borderColor: Cpp_ThemeManager.datasetTextSecondary
title: group != null ? group.title : ""
borderColor: root.headerVisible ? Cpp_ThemeManager.datasetWindowBorder : "transparent"
property int groupId: 0
property Group group: null

View File

@ -213,7 +213,7 @@ Window {
border.width: 2
radius: width / 2
color: Cpp_ThemeManager.mapDotBackground
border.color: Cpp_ThemeManager.mapDottext
border.color: Cpp_ThemeManager.mapDotForeground
}
}

View File

@ -40,10 +40,12 @@ Page {
property int radius: root.borderWidth + 2
property color titleColor: palette.brightText
property color borderColor: palette.highlight
property color backgroundColor: Cpp_ThemeManager.windowBackground
property alias headerDoubleClickEnabled: headerMouseArea.enabled
property color gradientColor: root.gradient ? Cpp_ThemeManager.windowGradient :
root.borderColor
property color backgroundColor: Cpp_ThemeManager.datasetWindowBackground
property color gradientColor1: root.gradient ? Cpp_ThemeManager.windowGradient1 :
root.borderColor
property color gradientColor2: root.gradient ? Cpp_ThemeManager.windowGradient2 :
root.borderColor
//
// Signals
@ -71,7 +73,7 @@ Page {
radius: root.radius
color: root.backgroundColor
border.width: root.borderWidth
border.color: root.gradientColor
border.color: root.gradientColor1
}
//
@ -86,18 +88,18 @@ Page {
gradient: Gradient {
GradientStop {
position: 0
color: root.borderColor
color: root.gradientColor1
}
GradientStop {
position: 1
color: root.gradientColor
color: root.gradientColor2
}
}
Rectangle {
z: 5
color: root.gradientColor
color: root.gradientColor1
height: root.gradient ? 1 : parent.radius
anchors {

View File

@ -106,8 +106,8 @@ Window {
font.pixelSize: 12
Layout.fillWidth: true
Layout.maximumWidth: 288
color: palette.highlightedText
wrapMode: Label.WrapAtWordBoundaryOrAnywhere
color: Cpp_ThemeManager.highlightedTextAlternative
text: qsTr("The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.")
}

View File

@ -144,12 +144,12 @@ Control {
}
MenuSeparator {
visible: app.menuBar !== null
visible: app.menuBar != null
}
MenuItem {
enabled: visible
visible: app.menuBar !== null
visible: app.menuBar != null
onTriggered: app.toggleMenubar()
height: visible ? implicitHeight : 0
text: visible && app.menuBar.visible ? qsTr("Hide menubar") :
@ -184,6 +184,8 @@ Control {
palette.base: Cpp_ThemeManager.consoleBase
palette.button: Cpp_ThemeManager.consoleButton
palette.window: Cpp_ThemeManager.consoleWindow
palette.highlight: Cpp_ThemeManager.consoleHighlight
palette.highlightedText: Cpp_ThemeManager.consoleHighlightedText
autoscroll: Cpp_IO_Console.autoscroll
wordWrapMode: Text.WrapAtWordBoundaryOrAnywhere
placeholderText: qsTr("No data received so far") + "..."

View File

@ -111,8 +111,8 @@ Control {
Layout.fillHeight: true
Layout.minimumWidth: 240
headerDoubleClickEnabled: false
backgroundColor: Cpp_ThemeManager.consoleBase
icon.source: "qrc:/icons/visibility.svg"
backgroundColor: Cpp_ThemeManager.datagridBackground
property var groups: []
property var graphs: []
@ -374,8 +374,8 @@ Control {
Layout.fillHeight: true
Layout.minimumWidth: 240
headerDoubleClickEnabled: false
backgroundColor: Cpp_ThemeManager.consoleBase
icon.source: "qrc:/icons/scatter-plot.svg"
backgroundColor: Cpp_ThemeManager.datagridBackground
Rectangle {
z: 1
@ -543,12 +543,12 @@ Control {
gradient: Gradient {
GradientStop {
position: 0
color: palette.highlight
color: Cpp_ThemeManager.windowGradient1
}
GradientStop {
position: 1
color: Cpp_ThemeManager.windowGradient
color: Cpp_ThemeManager.windowGradient2
}
}

View File

@ -135,9 +135,9 @@ Window {
opacity: 0.8
font.pixelSize: 12
Layout.fillWidth: true
color: palette.highlightedText
Layout.maximumWidth: title.implicitWidth
wrapMode: Label.WrapAtWordBoundaryOrAnywhere
color: Cpp_ThemeManager.highlightedTextAlternative
text: qsTr("You can also support this project by sharing it, reporting bugs and proposing new features!")
}
}

View File

@ -55,6 +55,17 @@ Control {
border.width: 1
border.color: palette.midlight
Rectangle {
height: parent.border.width
color: Cpp_ThemeManager.toolbarGradient1
anchors {
top: parent.top
left: parent.left
right: parent.right
}
}
gradient: Gradient {
GradientStop { position: 0; color: Cpp_ThemeManager.toolbarGradient1 }
GradientStop { position: 1; color: Cpp_ThemeManager.toolbarGradient2 }
@ -82,10 +93,13 @@ Control {
icon.width: 24
icon.height: 24
Layout.fillHeight: true
icon.color: palette.text
icon.color: palette.brightText
onClicked: root.setupClicked()
icon.source: "qrc:/icons/settings.svg"
text: qsTr("Setup") + _btSpacer
palette.buttonText: palette.brightText
icon.source: "qrc:/icons/settings.svg"
palette.button: Cpp_ThemeManager.toolbarGradient1
palette.window: Cpp_ThemeManager.toolbarGradient1
}
Button {
@ -95,11 +109,14 @@ Control {
icon.width: 24
icon.height: 24
Layout.fillHeight: true
icon.color: palette.text
icon.color: palette.brightText
onClicked: root.consoleClicked()
icon.source: "qrc:/icons/code.svg"
enabled: dataBt.enabled || widgetsBt.enabled
text: qsTr("Console") + _btSpacer
palette.buttonText: palette.brightText
enabled: dataBt.enabled || widgetsBt.enabled
palette.button: Cpp_ThemeManager.toolbarGradient1
palette.window: Cpp_ThemeManager.toolbarGradient1
}
Button {
@ -109,11 +126,14 @@ Control {
icon.width: 24
icon.height: 24
Layout.fillHeight: true
icon.color: palette.text
onClicked: root.dataClicked()
icon.color: palette.brightText
enabled: app.dashboardAvailable
icon.source: "qrc:/icons/equalizer.svg"
text: qsTr("Dashboard") + _btSpacer
icon.source: "qrc:/icons/equalizer.svg"
palette.buttonText: palette.brightText
palette.button: Cpp_ThemeManager.toolbarGradient1
palette.window: Cpp_ThemeManager.toolbarGradient1
opacity: enabled ? 1 : 0.5
Behavior on opacity {NumberAnimation{}}
@ -126,11 +146,14 @@ Control {
icon.width: 24
icon.height: 24
Layout.fillHeight: true
icon.color: palette.text
enabled: app.widgetsAvailable
icon.color: palette.brightText
onClicked: root.widgetsClicked()
icon.source: "qrc:/icons/chart.svg"
text: qsTr("Widgets") + _btSpacer
palette.buttonText: palette.brightText
palette.button: Cpp_ThemeManager.toolbarGradient1
palette.window: Cpp_ThemeManager.toolbarGradient1
opacity: enabled ? 1 : 0.5
Behavior on opacity {NumberAnimation{}}
@ -145,11 +168,14 @@ Control {
icon.width: 24
icon.height: 24
Layout.fillHeight: true
icon.color: palette.text
icon.color: palette.brightText
opacity: enabled ? 1 : 0.5
enabled: !Cpp_CSV_Player.isOpen
icon.source: "qrc:/icons/open.svg"
text: qsTr("Open CSV") + _btSpacer
palette.buttonText: palette.brightText
palette.button: Cpp_ThemeManager.toolbarGradient1
palette.window: Cpp_ThemeManager.toolbarGradient1
onClicked: {
if (Cpp_CSV_Export.isOpen)
@ -182,6 +208,8 @@ Control {
qsTr("Connect")) + _btSpacer
icon.source: checked ? "qrc:/icons/disconnect.svg" :
"qrc:/icons/connect.svg"
palette.button: Cpp_ThemeManager.toolbarGradient1
palette.window: Cpp_ThemeManager.toolbarGradient1
palette.buttonText: checked ? Cpp_ThemeManager.connectButtonChecked :
Cpp_ThemeManager.connectButtonUnchecked

36
assets/qml/rcc_qml.qrc Normal file
View File

@ -0,0 +1,36 @@
<RCC>
<qresource prefix="/qml">
<file>Application.qml</file>
<file>main.qml</file>
<file>PlatformDependent/DecentMenuItem.qml</file>
<file>PlatformDependent/Menubar.qml</file>
<file>PlatformDependent/MenubarMacOS.qml</file>
<file>SetupPanes/MQTT.qml</file>
<file>SetupPanes/Network.qml</file>
<file>SetupPanes/Serial.qml</file>
<file>SetupPanes/Settings.qml</file>
<file>Widgets/AccelerometerDelegate.qml</file>
<file>Widgets/AccelerometerGaugeDelegate.qml</file>
<file>Widgets/ArtificialHorizonDelegate.qml</file>
<file>Widgets/BarDelegate.qml</file>
<file>Widgets/CompassDelegate.qml</file>
<file>Widgets/DataDelegate.qml</file>
<file>Widgets/GaugeDelegate.qml</file>
<file>Widgets/GraphDelegate.qml</file>
<file>Widgets/GroupDelegate.qml</file>
<file>Widgets/GyroDelegate.qml</file>
<file>Widgets/LED.qml</file>
<file>Widgets/MapDelegate.qml</file>
<file>Widgets/SimpleDial.qml</file>
<file>Widgets/Window.qml</file>
<file>Windows/About.qml</file>
<file>Windows/Acknowledgements.qml</file>
<file>Windows/Console.qml</file>
<file>Windows/CsvPlayer.qml</file>
<file>Windows/DataGrid.qml</file>
<file>Windows/Donate.qml</file>
<file>Windows/Setup.qml</file>
<file>Windows/Toolbar.qml</file>
<file>Windows/Widgets.qml</file>
</qresource>
</RCC>

View File

@ -1,66 +0,0 @@
{
"name":"Classic",
"author":"Alex Spataru",
"colors":{
"base":"#21373f",
"link":"#409da0",
"button":"#21373f",
"window":"#21373f",
"text":"#ffffff",
"midlight":"#0e1419",
"highlight":"#409da0",
"brightText":"#ffffff",
"buttonText":"#ffffff",
"windowText":"#ffffff",
"toolTipBase":"#e6e0b2",
"toolTipText":"#e6e0b2",
"highlightedText":"#e6e0b2",
"toolbarGradient1":"#21373f",
"toolbarGradient2":"#11272f",
"consoleText":"#8ecd9d",
"consoleBase":"#121218",
"consoleButton":"#16232a",
"consoleWindow":"#0d1217",
"windowBackground":"#121920",
"windowGradient":"#058ca7",
"alternativeHighlight":"#d72d60",
"setupPanelBackground":"#16232a",
"graphDialBorder":"#eeeeee",
"datasetTextPrimary":"#e6e0b2",
"datasetTextSecondary":"#517497",
"ledEnabled":"#d72d60",
"ledDisabled":"#2d6073",
"csvHighlight":"#2e895c",
"widgetBackground":"#09090c",
"widgetForegroundPrimary":"#8ecd9d",
"widgetForegroundSecondary":"#517497",
"widgetIndicator1":"#e6e0b2",
"widgetIndicator2":"#d72d60",
"widgetIndicator3":"#2d6073",
"widgetAlternativeBackground":"#121218",
"widgetControlBackground":"#111111",
"gyroSky":"#5c93c5",
"gyroText":"#ffffff",
"gyroGround":"#7d5233",
"mapDotBackground":"#ff0000",
"mapDotForeground":"#ffffff",
"mapBorder":"#646464",
"mapHorizon":"#dedede",
"mapSkyLowAltitude":"#6ba9d1",
"mapSkyHighAltitude":"#283e51",
"connectButtonChecked":"#d72d60",
"connectButtonUnchecked":"#2eed5c",
"barWidgetColors":[
"#f94144",
"#f3722c",
"#f8961e",
"#f9844a",
"#f9c74f",
"#90be6d",
"#43aa8b",
"#4d908e",
"#577590",
"#277da1"
]
}
}

View File

@ -1,5 +1,5 @@
{
"name":"macOS Light",
"name":"Dark",
"author":"Alex Spataru",
"colors":{
"base":"#21373f",
@ -15,19 +15,26 @@
"toolTipBase":"#e6e0b2",
"toolTipText":"#e6e0b2",
"highlightedText":"#e6e0b2",
"highlightedTextAlternative":"#e6e0b2",
"toolbarGradient1":"#21373f",
"toolbarGradient2":"#11272f",
"consoleText":"#8ecd9d",
"consoleBase":"#121218",
"consoleButton":"#16232a",
"consoleWindow":"#0d1217",
"consoleHighlight":"#409da0",
"consoleHighlightedText":"#e6e0b2",
"windowBackground":"#121920",
"windowGradient":"#058ca7",
"windowGradient1":"#409da0",
"windowGradient2":"#058ca7",
"alternativeHighlight":"#d72d60",
"setupPanelBackground":"#16232a",
"graphDialBorder":"#eeeeee",
"datasetTextPrimary":"#e6e0b2",
"datasetTextSecondary":"#517497",
"datasetWindowBackground":"#121920",
"datasetWindowBorder":"#517497",
"datagridBackground":"#121218",
"ledEnabled":"#d72d60",
"ledDisabled":"#2d6073",
"csvHighlight":"#2e895c",

View File

@ -2,43 +2,50 @@
"name":"Light",
"author":"Alex Spataru",
"colors":{
"base":"#dec8c0",
"link":"#bf625f",
"button":"#dec8c0",
"window":"#dec8c0",
"base":"#fafafa",
"link":"#105087",
"button":"#eaeaea",
"window":"#eaeaea",
"text":"#000000",
"midlight":"#f1ebe6",
"highlight":"#fa7358",
"midlight":"#d9d9d9",
"highlight":"#004077",
"brightText":"#ffffff",
"buttonText":"#000000",
"windowText":"#000000",
"toolTipBase":"#191f4d",
"toolTipText":"#e6e0b2",
"highlightedText":"#191f4d",
"toolbarGradient1":"#dec8c0",
"toolbarGradient2":"#eed8d0",
"consoleText":"#713262",
"consoleBase":"#edede7",
"consoleButton":"#e9dcd5",
"consoleWindow":"#f2ede8",
"windowBackground":"#ede6df",
"windowGradient":"#df424f",
"alternativeHighlight":"#bf625f",
"setupPanelBackground":"#e9dcd5",
"graphDialBorder":"#111111",
"datasetTextPrimary":"#191f4d",
"datasetTextSecondary":"#ae8b68",
"ledEnabled":"#28d29f",
"ledDisabled":"#d29f8c",
"csvHighlight":"#d176a3",
"widgetBackground":"#f6f6f3",
"widgetForegroundPrimary":"#713262",
"widgetForegroundSecondary":"#ae8b68",
"widgetIndicator1":"#191f4d",
"widgetIndicator2":"#28d29f",
"widgetIndicator3":"#d29f8c",
"widgetAlternativeBackground":"#edede7",
"widgetControlBackground":"#eeeeee",
"toolTipBase":"#FEFFC6",
"toolTipText":"#000000",
"highlightedText":"#ffffff",
"highlightedTextAlternative":"#444444",
"toolbarGradient1":"#105087",
"toolbarGradient2":"#004077",
"consoleText":"#686868",
"consoleBase":"#fafafa",
"consoleButton":"#eaeaea",
"consoleWindow":"#eaeaea",
"consoleHighlight":"#2e895c",
"consoleHighlightedText":"#ffffff",
"windowBackground":"#E6E6E6",
"windowGradient1":"#105087",
"windowGradient2":"#004077",
"alternativeHighlight":"#f8961e",
"setupPanelBackground":"#fafafa",
"graphDialBorder":"#666666",
"datasetTextPrimary":"#0072C3",
"datasetTextSecondary":"#666666",
"datasetWindowBackground":"#fafafa",
"datasetWindowBorder":"#3e996c",
"datagridBackground":"#f4f4f7",
"ledEnabled":"#0072C3",
"ledDisabled":"#686868",
"csvHighlight":"#2e895c",
"widgetBackground":"#f4f4f7",
"widgetForegroundPrimary":"#0072C3",
"widgetForegroundSecondary":"#666666",
"widgetIndicator1":"#444444",
"widgetIndicator2":"#f94144",
"widgetIndicator3":"#90be6d",
"widgetAlternativeBackground":"#ededed",
"widgetControlBackground":"#666666",
"gyroSky":"#5c93c5",
"gyroText":"#ffffff",
"gyroGround":"#7d5233",
@ -48,8 +55,8 @@
"mapHorizon":"#dedede",
"mapSkyLowAltitude":"#6ba9d1",
"mapSkyHighAltitude":"#283e51",
"connectButtonChecked":"#bf625f",
"connectButtonUnchecked":"#bf625f",
"connectButtonChecked":"#FE392E",
"connectButtonUnchecked":"#26CD40",
"barWidgetColors":[
"#f94144",
"#f3722c",

View File

@ -1,66 +0,0 @@
{
"name":"Solarized Dark",
"author":"Alex Spataru",
"colors":{
"base":"#21373f",
"link":"#409da0",
"button":"#21373f",
"window":"#21373f",
"text":"#ffffff",
"midlight":"#0e1419",
"highlight":"#409da0",
"brightText":"#ffffff",
"buttonText":"#ffffff",
"windowText":"#ffffff",
"toolTipBase":"#e6e0b2",
"toolTipText":"#e6e0b2",
"highlightedText":"#e6e0b2",
"toolbarGradient1":"#21373f",
"toolbarGradient2":"#11272f",
"consoleText":"#8ecd9d",
"consoleBase":"#121218",
"consoleButton":"#16232a",
"consoleWindow":"#0d1217",
"windowBackground":"#121920",
"windowGradient":"#058ca7",
"alternativeHighlight":"#d72d60",
"setupPanelBackground":"#16232a",
"graphDialBorder":"#eeeeee",
"datasetTextPrimary":"#e6e0b2",
"datasetTextSecondary":"#517497",
"ledEnabled":"#d72d60",
"ledDisabled":"#2d6073",
"csvHighlight":"#2e895c",
"widgetBackground":"#09090c",
"widgetForegroundPrimary":"#8ecd9d",
"widgetForegroundSecondary":"#517497",
"widgetIndicator1":"#e6e0b2",
"widgetIndicator2":"#d72d60",
"widgetIndicator3":"#2d6073",
"widgetAlternativeBackground":"#121218",
"widgetControlBackground":"#111111",
"gyroSky":"#5c93c5",
"gyroText":"#ffffff",
"gyroGround":"#7d5233",
"mapDotBackground":"#ff0000",
"mapDotForeground":"#ffffff",
"mapBorder":"#646464",
"mapHorizon":"#dedede",
"mapSkyLowAltitude":"#6ba9d1",
"mapSkyHighAltitude":"#283e51",
"connectButtonChecked":"#d72d60",
"connectButtonUnchecked":"#2eed5c",
"barWidgetColors":[
"#f94144",
"#f3722c",
"#f8961e",
"#f9844a",
"#f9c74f",
"#90be6d",
"#43aa8b",
"#4d908e",
"#577590",
"#277da1"
]
}
}

View File

@ -1,66 +0,0 @@
{
"name":"Solarized Light",
"author":"Alex Spataru",
"colors":{
"base":"#21373f",
"link":"#409da0",
"button":"#21373f",
"window":"#21373f",
"text":"#ffffff",
"midlight":"#0e1419",
"highlight":"#409da0",
"brightText":"#ffffff",
"buttonText":"#ffffff",
"windowText":"#ffffff",
"toolTipBase":"#e6e0b2",
"toolTipText":"#e6e0b2",
"highlightedText":"#e6e0b2",
"toolbarGradient1":"#21373f",
"toolbarGradient2":"#11272f",
"consoleText":"#8ecd9d",
"consoleBase":"#121218",
"consoleButton":"#16232a",
"consoleWindow":"#0d1217",
"windowBackground":"#121920",
"windowGradient":"#058ca7",
"alternativeHighlight":"#d72d60",
"setupPanelBackground":"#16232a",
"graphDialBorder":"#eeeeee",
"datasetTextPrimary":"#e6e0b2",
"datasetTextSecondary":"#517497",
"ledEnabled":"#d72d60",
"ledDisabled":"#2d6073",
"csvHighlight":"#2e895c",
"widgetBackground":"#09090c",
"widgetForegroundPrimary":"#8ecd9d",
"widgetForegroundSecondary":"#517497",
"widgetIndicator1":"#e6e0b2",
"widgetIndicator2":"#d72d60",
"widgetIndicator3":"#2d6073",
"widgetAlternativeBackground":"#121218",
"widgetControlBackground":"#111111",
"gyroSky":"#5c93c5",
"gyroText":"#ffffff",
"gyroGround":"#7d5233",
"mapDotBackground":"#ff0000",
"mapDotForeground":"#ffffff",
"mapBorder":"#646464",
"mapHorizon":"#dedede",
"mapSkyLowAltitude":"#6ba9d1",
"mapSkyHighAltitude":"#283e51",
"connectButtonChecked":"#d72d60",
"connectButtonUnchecked":"#2eed5c",
"barWidgetColors":[
"#f94144",
"#f3722c",
"#f8961e",
"#f9844a",
"#f9c74f",
"#90be6d",
"#43aa8b",
"#4d908e",
"#577590",
"#277da1"
]
}
}

View File

@ -1,66 +0,0 @@
{
"name":"macOS Dark",
"author":"Alex Spataru",
"colors":{
"base":"#21373f",
"link":"#409da0",
"button":"#21373f",
"window":"#21373f",
"text":"#ffffff",
"midlight":"#0e1419",
"highlight":"#409da0",
"brightText":"#ffffff",
"buttonText":"#ffffff",
"windowText":"#ffffff",
"toolTipBase":"#e6e0b2",
"toolTipText":"#e6e0b2",
"highlightedText":"#e6e0b2",
"toolbarGradient1":"#21373f",
"toolbarGradient2":"#11272f",
"consoleText":"#8ecd9d",
"consoleBase":"#121218",
"consoleButton":"#16232a",
"consoleWindow":"#0d1217",
"windowBackground":"#121920",
"windowGradient":"#058ca7",
"alternativeHighlight":"#d72d60",
"setupPanelBackground":"#16232a",
"graphDialBorder":"#eeeeee",
"datasetTextPrimary":"#e6e0b2",
"datasetTextSecondary":"#517497",
"ledEnabled":"#d72d60",
"ledDisabled":"#2d6073",
"csvHighlight":"#2e895c",
"widgetBackground":"#09090c",
"widgetForegroundPrimary":"#8ecd9d",
"widgetForegroundSecondary":"#517497",
"widgetIndicator1":"#e6e0b2",
"widgetIndicator2":"#d72d60",
"widgetIndicator3":"#2d6073",
"widgetAlternativeBackground":"#121218",
"widgetControlBackground":"#111111",
"gyroSky":"#5c93c5",
"gyroText":"#ffffff",
"gyroGround":"#7d5233",
"mapDotBackground":"#ff0000",
"mapDotForeground":"#ffffff",
"mapBorder":"#646464",
"mapHorizon":"#dedede",
"mapSkyLowAltitude":"#6ba9d1",
"mapSkyHighAltitude":"#283e51",
"connectButtonChecked":"#d72d60",
"connectButtonUnchecked":"#2eed5c",
"barWidgetColors":[
"#f94144",
"#f3722c",
"#f8961e",
"#f9844a",
"#f9c74f",
"#90be6d",
"#43aa8b",
"#4d908e",
"#577590",
"#277da1"
]
}
}

View File

@ -1,66 +0,0 @@
{
"name":"TVA",
"author":"Alex Spataru",
"colors":{
"base":"#21373f",
"link":"#409da0",
"button":"#21373f",
"window":"#21373f",
"text":"#ffffff",
"midlight":"#0e1419",
"highlight":"#409da0",
"brightText":"#ffffff",
"buttonText":"#ffffff",
"windowText":"#ffffff",
"toolTipBase":"#e6e0b2",
"toolTipText":"#e6e0b2",
"highlightedText":"#e6e0b2",
"toolbarGradient1":"#21373f",
"toolbarGradient2":"#11272f",
"consoleText":"#8ecd9d",
"consoleBase":"#121218",
"consoleButton":"#16232a",
"consoleWindow":"#0d1217",
"windowBackground":"#121920",
"windowGradient":"#058ca7",
"alternativeHighlight":"#d72d60",
"setupPanelBackground":"#16232a",
"graphDialBorder":"#eeeeee",
"datasetTextPrimary":"#e6e0b2",
"datasetTextSecondary":"#517497",
"ledEnabled":"#d72d60",
"ledDisabled":"#2d6073",
"csvHighlight":"#2e895c",
"widgetBackground":"#09090c",
"widgetForegroundPrimary":"#8ecd9d",
"widgetForegroundSecondary":"#517497",
"widgetIndicator1":"#e6e0b2",
"widgetIndicator2":"#d72d60",
"widgetIndicator3":"#2d6073",
"widgetAlternativeBackground":"#121218",
"widgetControlBackground":"#111111",
"gyroSky":"#5c93c5",
"gyroText":"#ffffff",
"gyroGround":"#7d5233",
"mapDotBackground":"#ff0000",
"mapDotForeground":"#ffffff",
"mapBorder":"#646464",
"mapHorizon":"#dedede",
"mapSkyLowAltitude":"#6ba9d1",
"mapSkyHighAltitude":"#283e51",
"connectButtonChecked":"#d72d60",
"connectButtonUnchecked":"#2eed5c",
"barWidgetColors":[
"#f94144",
"#f3722c",
"#f8961e",
"#f9844a",
"#f9c74f",
"#90be6d",
"#43aa8b",
"#4d908e",
"#577590",
"#277da1"
]
}
}

View File

@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/themes">
<file>1_Light.json</file>
<file>0_Dark.json</file>
</qresource>
</RCC>

View File

@ -0,0 +1,8 @@
<RCC>
<qresource prefix="/translations">
<file>de.qm</file>
<file>en.qm</file>
<file>es.qm</file>
<file>zh.qm</file>
</qresource>
</RCC>

View File

@ -114,19 +114,26 @@ void ThemeManager::loadTheme(const int id)
m_tooltipText = QColor(colors.value("tooltipText").toString());
m_tooltipBase = QColor(colors.value("tooltipBase").toString());
m_highlightedText = QColor(colors.value("highlightedText").toString());
m_highlightedTextAlternative = QColor(colors.value("highlightedTextAlternative").toString());
m_toolbarGradient1 = QColor(colors.value("toolbarGradient1").toString());
m_toolbarGradient2 = QColor(colors.value("toolbarGradient2").toString());
m_consoleText = QColor(colors.value("consoleText").toString());
m_consoleBase = QColor(colors.value("consoleBase").toString());
m_consoleButton = QColor(colors.value("consoleButton").toString());
m_consoleWindow = QColor(colors.value("consoleWindow").toString());
m_consoleHighlight = QColor(colors.value("consoleHighlight").toString());
m_consoleHighlightedText = QColor(colors.value("consoleHighlightedText").toString());
m_windowBackground = QColor(colors.value("windowBackground").toString());
m_windowGradient = QColor(colors.value("windowGradient").toString());
m_windowGradient1 = QColor(colors.value("windowGradient1").toString());
m_windowGradient2 = QColor(colors.value("windowGradient2").toString());
m_alternativeHighlight = QColor(colors.value("alternativeHighlight").toString());
m_setupPanelBackground = QColor(colors.value("setupPanelBackground").toString());
m_graphDialBorder = QColor(colors.value("graphDialBorder").toString());
m_datasetTextPrimary = QColor(colors.value("datasetTextPrimary").toString());
m_datasetTextSecondary = QColor(colors.value("datasetTextSecondary").toString());
m_datasetWindowBackground = QColor(colors.value("datasetWindowBackground").toString());
m_datasetWindowBorder = QColor(colors.value("datasetWindowBorder").toString());
m_datagridBackground = QColor(colors.value("datagridBackground").toString());
m_ledEnabled = QColor(colors.value("ledEnabled").toString());
m_ledDisabled = QColor(colors.value("ledDisabled").toString());
m_csvHighlight = QColor(colors.value("csvHighlight").toString());
@ -280,6 +287,11 @@ QColor ThemeManager::highlightedText() const
return m_highlightedText;
}
QColor ThemeManager::highlightedTextAlternative() const
{
return m_highlightedTextAlternative;
}
QColor ThemeManager::toolbarGradient1() const
{
return m_toolbarGradient1;
@ -310,14 +322,29 @@ QColor ThemeManager::consoleWindow() const
return m_consoleWindow;
}
QColor ThemeManager::consoleHighlight() const
{
return m_consoleHighlight;
}
QColor ThemeManager::consoleHighlightedText() const
{
return m_consoleHighlightedText;
}
QColor ThemeManager::windowBackground() const
{
return m_windowBackground;
}
QColor ThemeManager::windowGradient() const
QColor ThemeManager::windowGradient1() const
{
return m_windowGradient;
return m_windowGradient1;
}
QColor ThemeManager::windowGradient2() const
{
return m_windowGradient2;
}
QColor ThemeManager::alternativeHighlight() const
@ -345,6 +372,21 @@ QColor ThemeManager::datasetTextSecondary() const
return m_datasetTextSecondary;
}
QColor ThemeManager::datasetWindowBackground() const
{
return m_datasetWindowBackground;
}
QColor ThemeManager::datasetWindowBorder() const
{
return m_datasetWindowBorder;
}
QColor ThemeManager::datagridBackground() const
{
return m_datagridBackground;
}
QColor ThemeManager::ledEnabled() const
{
return m_ledEnabled;

View File

@ -75,6 +75,9 @@ class ThemeManager : public QObject
Q_PROPERTY(QColor highlightedText
READ highlightedText
NOTIFY themeChanged)
Q_PROPERTY(QColor highlightedTextAlternative
READ highlightedTextAlternative
NOTIFY themeChanged)
Q_PROPERTY(QColor toolbarGradient1
READ toolbarGradient1
NOTIFY themeChanged)
@ -93,11 +96,20 @@ class ThemeManager : public QObject
Q_PROPERTY(QColor consoleWindow
READ consoleWindow
NOTIFY themeChanged)
Q_PROPERTY(QColor consoleHighlight
READ consoleHighlight
NOTIFY themeChanged)
Q_PROPERTY(QColor consoleHighlightedText
READ consoleHighlightedText
NOTIFY themeChanged)
Q_PROPERTY(QColor windowBackground
READ windowBackground
NOTIFY themeChanged)
Q_PROPERTY(QColor windowGradient
READ windowGradient
Q_PROPERTY(QColor windowGradient1
READ windowGradient1
NOTIFY themeChanged)
Q_PROPERTY(QColor windowGradient2
READ windowGradient2
NOTIFY themeChanged)
Q_PROPERTY(QColor alternativeHighlight
READ alternativeHighlight
@ -114,6 +126,15 @@ class ThemeManager : public QObject
Q_PROPERTY(QColor datasetTextSecondary
READ datasetTextSecondary
NOTIFY themeChanged)
Q_PROPERTY(QColor datasetWindowBackground
READ datasetWindowBackground
NOTIFY themeChanged)
Q_PROPERTY(QColor datasetWindowBorder
READ datasetWindowBorder
NOTIFY themeChanged)
Q_PROPERTY(QColor datagridBackground
READ datagridBackground
NOTIFY themeChanged)
Q_PROPERTY(QColor ledEnabled
READ ledEnabled
NOTIFY themeChanged)
@ -210,19 +231,26 @@ public:
QColor tooltipText() const;
QColor tooltipBase() const;
QColor highlightedText() const;
QColor highlightedTextAlternative() const;
QColor toolbarGradient1() const;
QColor toolbarGradient2() const;
QColor consoleText() const;
QColor consoleBase() const;
QColor consoleButton() const;
QColor consoleWindow() const;
QColor consoleHighlight() const;
QColor consoleHighlightedText() const;
QColor windowBackground() const;
QColor windowGradient() const;
QColor windowGradient1() const;
QColor windowGradient2() const;
QColor alternativeHighlight() const;
QColor setupPanelBackground() const;
QColor graphDialBorder() const;
QColor datasetTextPrimary() const;
QColor datasetTextSecondary() const;
QColor datasetWindowBackground() const;
QColor datasetWindowBorder() const;
QColor datagridBackground() const;
QColor ledEnabled() const;
QColor ledDisabled() const;
QColor csvHighlight() const;
@ -278,19 +306,26 @@ private:
QColor m_tooltipText;
QColor m_tooltipBase;
QColor m_highlightedText;
QColor m_highlightedTextAlternative;
QColor m_toolbarGradient1;
QColor m_toolbarGradient2;
QColor m_consoleText;
QColor m_consoleBase;
QColor m_consoleButton;
QColor m_consoleWindow;
QColor m_consoleHighlight;
QColor m_consoleHighlightedText;
QColor m_windowBackground;
QColor m_windowGradient;
QColor m_windowGradient1;
QColor m_windowGradient2;
QColor m_alternativeHighlight;
QColor m_setupPanelBackground;
QColor m_graphDialBorder;
QColor m_datasetTextPrimary;
QColor m_datasetTextSecondary;
QColor m_datasetWindowBackground;
QColor m_datasetWindowBorder;
QColor m_datagridBackground;
QColor m_ledEnabled;
QColor m_ledDisabled;
QColor m_csvHighlight;