From 0d08bf116c7b5a5c52ee84732b87781d84dad0c8 Mon Sep 17 00:00:00 2001 From: Alex Spataru Date: Sun, 7 Nov 2021 03:49:50 -0600 Subject: [PATCH] Implement windows-like buttons --- Serial-Studio.pro | 1 + assets/Resources.qrc | 7 ++ assets/qml/PlatformDependent/CustomWindow.qml | 7 +- assets/qml/PlatformDependent/Menubar.qml | 32 +----- assets/qml/PlatformDependent/MenubarMacOS.qml | 2 +- assets/qml/PlatformDependent/WindowBorder.qml | 104 ++++++++++++++---- assets/qml/PlatformDependent/WindowButton.qml | 48 ++++++-- .../PlatformDependent/WindowButtonMacOS.qml | 45 ++++++++ assets/qml/Widgets/Terminal.qml | 13 --- assets/qml/Windows/About.qml | 2 +- assets/qml/Windows/MainWindow.qml | 44 +++++--- assets/themes/1_Classic.json | 2 - assets/themes/2_Noir.json | 4 +- assets/themes/3_MathWorks.json | 4 +- assets/window-border/close.svg | 4 + assets/window-border/fullscreen.svg | 3 + assets/window-border/maximize.svg | 4 + assets/window-border/minimize.svg | 4 + assets/window-border/restore.svg | 4 + assets/window-border/unmaximize.svg | 5 + src/Misc/ThemeManager.cpp | 12 -- src/Misc/ThemeManager.h | 10 -- 22 files changed, 243 insertions(+), 118 deletions(-) create mode 100644 assets/qml/PlatformDependent/WindowButtonMacOS.qml create mode 100644 assets/window-border/close.svg create mode 100644 assets/window-border/fullscreen.svg create mode 100644 assets/window-border/maximize.svg create mode 100644 assets/window-border/minimize.svg create mode 100644 assets/window-border/restore.svg create mode 100644 assets/window-border/unmaximize.svg diff --git a/Serial-Studio.pro b/Serial-Studio.pro index 815ea88e..7b73827d 100644 --- a/Serial-Studio.pro +++ b/Serial-Studio.pro @@ -293,6 +293,7 @@ DISTFILES += \ assets/qml/PlatformDependent/MenubarMacOS.qml \ assets/qml/PlatformDependent/WindowBorder.qml \ assets/qml/PlatformDependent/WindowButton.qml \ + assets/qml/PlatformDependent/WindowButtonMacOS.qml \ assets/qml/Widgets/Icon.qml \ assets/qml/Widgets/JSONDropArea.qml \ assets/qml/Widgets/LED.qml \ diff --git a/assets/Resources.qrc b/assets/Resources.qrc index e9aab8d8..b6102f36 100644 --- a/assets/Resources.qrc +++ b/assets/Resources.qrc @@ -150,5 +150,12 @@ qml/PlatformDependent/WindowButton.qml qml/PlatformDependent/CustomWindow.qml icons/restore.svg + window-border/close.svg + window-border/maximize.svg + window-border/minimize.svg + window-border/unmaximize.svg + window-border/fullscreen.svg + window-border/restore.svg + qml/PlatformDependent/WindowButtonMacOS.qml diff --git a/assets/qml/PlatformDependent/CustomWindow.qml b/assets/qml/PlatformDependent/CustomWindow.qml index a783d9b0..63616aec 100644 --- a/assets/qml/PlatformDependent/CustomWindow.qml +++ b/assets/qml/PlatformDependent/CustomWindow.qml @@ -26,7 +26,7 @@ import QtQuick.Window 2.12 Window { id: root color: "transparent" - flags: Qt.Window | Qt.CustomizeWindowHint + flags: root.customFlags // // Window radius control @@ -40,6 +40,7 @@ Window { property bool firstChange: true property bool windowMaximized: false property alias fullScreen: border.fullScreen + readonly property int customFlags: Qt.Window | Qt.CustomizeWindowHint // // Toggle fullscreen state @@ -109,7 +110,7 @@ Window { root.windowMaximized = true root.fullScreen = false - root.flags = Qt.Window | Qt.FramelessWindowHint + root.flags = root.customFlags } else if (visibility === Window.FullScreen) { @@ -130,7 +131,7 @@ Window { root.fullScreen = false root.windowMaximized = false - root.flags = Qt.Window | Qt.FramelessWindowHint + root.flags = root.customFlags } } diff --git a/assets/qml/PlatformDependent/Menubar.qml b/assets/qml/PlatformDependent/Menubar.qml index 86d635e3..55ebfffb 100644 --- a/assets/qml/PlatformDependent/Menubar.qml +++ b/assets/qml/PlatformDependent/Menubar.qml @@ -25,31 +25,20 @@ import QtQuick.Controls 2.12 MenuBar { id: root - visible: app.mainWindow.menubarEnabled // - // Set background color + border + // Set background color // background: Rectangle { - gradient: Gradient { - GradientStop { - position: 0 - color: Cpp_ThemeManager.menubarGradient1 - } - - GradientStop { - position: 1 - color: Cpp_ThemeManager.menubarGradient2 - } - } + color: "transparent" } // // Palette // palette.text: Cpp_ThemeManager.menubarText - palette.base: Cpp_ThemeManager.menubarGradient2 - palette.window: Cpp_ThemeManager.menubarGradient1 + palette.base: Cpp_ThemeManager.toolbarGradient1 + palette.window: Cpp_ThemeManager.toolbarGradient2 palette.highlightedText: Cpp_ThemeManager.highlightedText // @@ -204,20 +193,11 @@ MenuBar { MenuSeparator {} - DecentMenuItem { - sequence: "alt+m" - onTriggered: app.mainWindow.toggleMenubar() - text: root.visible ? qsTr("Hide menubar") : - qsTr("Show menubar") - } - - MenuSeparator {} - DecentMenuItem { sequence: "f11" onTriggered: app.mainWindow.toggleFullscreen() text: app.mainWindow.fullScreen ? qsTr("Exit full screen") : - qsTr("Enter full screen") + qsTr("Enter full screen") } } @@ -315,7 +295,7 @@ MenuBar { title: qsTr("Help") DecentMenuItem { - onTriggered: app.showAbout() + onTriggered: app.about.show() text: qsTr("About %1").arg(Cpp_AppName) } diff --git a/assets/qml/PlatformDependent/MenubarMacOS.qml b/assets/qml/PlatformDependent/MenubarMacOS.qml index 7214f3d3..ea646b5c 100644 --- a/assets/qml/PlatformDependent/MenubarMacOS.qml +++ b/assets/qml/PlatformDependent/MenubarMacOS.qml @@ -277,7 +277,7 @@ MenuBar { title: qsTr("Help") MenuItem { - onTriggered: about.show() + onTriggered: app.about.show() text: qsTr("About %1").arg(Cpp_AppName) } diff --git a/assets/qml/PlatformDependent/WindowBorder.qml b/assets/qml/PlatformDependent/WindowBorder.qml index ff011adb..baf327d8 100644 --- a/assets/qml/PlatformDependent/WindowBorder.qml +++ b/assets/qml/PlatformDependent/WindowBorder.qml @@ -66,7 +66,7 @@ Rectangle { // // Height calculation // - height: 32 + height: !Cpp_IsMac ? 38 : 32 // // Radius compensator rectangle @@ -115,8 +115,8 @@ Rectangle { // macOS layout // Item { - //visible: Cpp_IsMac - //enabled: Cpp_IsMac + visible: Cpp_IsMac + enabled: Cpp_IsMac anchors.fill: parent RowLayout { @@ -127,7 +127,7 @@ Rectangle { width: 4 } - WindowButton { + WindowButtonMacOS { name: "close" onClicked: window.close() enabled: root.closeEnabled @@ -135,7 +135,7 @@ Rectangle { Layout.alignment: Qt.AlignVCenter } - WindowButton { + WindowButtonMacOS { name: "minimize" onClicked: window.showMinimized() Layout.alignment: Qt.AlignVCenter @@ -143,7 +143,7 @@ Rectangle { visible: root.minimizeEnabled && !root.fullScreen } - WindowButton { + WindowButtonMacOS { name: "maximize" onClicked: root.toggleMaximized() Layout.alignment: Qt.AlignVCenter @@ -155,33 +155,95 @@ Rectangle { Layout.fillWidth: true } - Widgets.Icon { + WindowButton { width: 18 height: 18 - color: "#fff" + textColor: root.textColor visible: root.fullscreenEnabled enabled: root.fullscreenEnabled Layout.alignment: Qt.AlignVCenter - source: root.fullScreen ? "qrc:/icons/restore.svg" : "qrc:/icons/expand.svg" - - MouseArea { - anchors.fill: parent - onClicked: root.toggleFullscreen() - } + onClicked: root.toggleFullscreen() + highlightColor: Cpp_ThemeManager.highlight + name: root.fullScreen ? "restore" : "fullscreen" } - Item { width: 8 } } + } - Label { - font.bold: true - font.pixelSize: 14 - text: window.title - color: root.textColor - anchors.centerIn: parent + // + // Windows & Linux layout + // + Item { + visible: !Cpp_IsMac + enabled: !Cpp_IsMac + anchors.fill: parent + + RowLayout { + spacing: 0 + anchors.fill: parent + + Item { + width: 8 + } + + WindowButton { + textColor: root.textColor + visible: root.fullscreenEnabled + enabled: root.fullscreenEnabled + Layout.alignment: Qt.AlignVCenter + onClicked: root.toggleFullscreen() + highlightColor: Cpp_ThemeManager.highlight + name: root.fullScreen ? "restore" : "fullscreen" + } + + Item { + Layout.fillWidth: true + } + + WindowButton { + name: "minimize" + textColor: root.textColor + onClicked: window.showMinimized() + Layout.alignment: Qt.AlignVCenter + highlightColor: Cpp_ThemeManager.highlight + enabled: root.minimizeEnabled && !root.fullScreen + visible: root.minimizeEnabled && !root.fullScreen + } + + WindowButton { + textColor: root.textColor + onClicked: root.toggleMaximized() + Layout.alignment: Qt.AlignVCenter + highlightColor: Cpp_ThemeManager.highlight + enabled: root.maximizeEnabled && !root.fullScreen + visible: root.maximizeEnabled && !root.fullScreen + name: window.visibility === Window.Maximized ? "unmaximize" : "maximize" + } + + WindowButton { + name: "close" + highlightColor: "#f00" + onClicked: window.close() + textColor: root.textColor + enabled: root.closeEnabled + visible: root.closeEnabled + Layout.alignment: Qt.AlignVCenter + } + + Item { + width: 8 + } } } + + Label { + font.bold: true + font.pixelSize: 14 + text: window.title + color: root.textColor + anchors.centerIn: parent + } } diff --git a/assets/qml/PlatformDependent/WindowButton.qml b/assets/qml/PlatformDependent/WindowButton.qml index 2f0d7fb3..1e79e7b6 100644 --- a/assets/qml/PlatformDependent/WindowButton.qml +++ b/assets/qml/PlatformDependent/WindowButton.qml @@ -1,23 +1,51 @@ -import QtQuick 2.12 +/* + * Copyright (c) 2020-2021 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. + */ -Image { +import QtQuick 2.12 +import "../Widgets" as Widgets + +Widgets.Icon { id: root signal clicked() property string name - property string variant: "normal" + property color textColor + property color highlightColor - width: sourceSize.width - height: sourceSize.height - sourceSize: Qt.size(20, 20) - source: "qrc:/window-border/macOS/" + name + "-" + variant + ".svg" + width: 24 + height: 24 + color: root.textColor + source: "qrc:/window-border/" + name + ".svg" + + Behavior on color {ColorAnimation{}} + Behavior on opacity {NumberAnimation{}} MouseArea { hoverEnabled: true anchors.fill: parent onReleased: root.clicked() - acceptedButtons: Qt.LeftButton - onContainsMouseChanged: root.variant = (containsMouse ? "hover" : "normal") - onContainsPressChanged: root.variant = (containsPress ? "active" : "normal") + onContainsMouseChanged: { + parent.opacity = containsMouse ? 1 : 0.8 + parent.color = containsMouse ? highlightColor : root.textColor + } } } diff --git a/assets/qml/PlatformDependent/WindowButtonMacOS.qml b/assets/qml/PlatformDependent/WindowButtonMacOS.qml new file mode 100644 index 00000000..8b178f0f --- /dev/null +++ b/assets/qml/PlatformDependent/WindowButtonMacOS.qml @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2020-2021 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. + */ + +import QtQuick 2.12 + +Image { + id: root + + signal clicked() + property string name + property string variant: "normal" + + width: sourceSize.width + height: sourceSize.height + sourceSize: Qt.size(20, 20) + source: ("qrc:/window-border/macOS/" + name + "-" + variant + ".svg") + + MouseArea { + hoverEnabled: true + anchors.fill: parent + onReleased: root.clicked() + acceptedButtons: Qt.LeftButton + onContainsMouseChanged: root.variant = (containsMouse ? "hover" : "normal") + onContainsPressChanged: root.variant = (containsPress ? "active" : "normal") + } +} diff --git a/assets/qml/Widgets/Terminal.qml b/assets/qml/Widgets/Terminal.qml index 3ea8f72d..91628aca 100644 --- a/assets/qml/Widgets/Terminal.qml +++ b/assets/qml/Widgets/Terminal.qml @@ -119,19 +119,6 @@ Item { onTriggered: Cpp_IO_Console.save() enabled: Cpp_IO_Console.saveAvailable } - - MenuSeparator { - visible: mainWindow.menuBar !== null && !isExternalWindow - } - - MenuItem { - enabled: visible - visible: mainWindow.menuBar !== null - height: visible ? implicitHeight : 0 - onTriggered: mainWindow.menubarEnabled = !mainWindow.menubarEnabled - text: visible && mainWindow.menuBar.visible ? qsTr("Hide menubar") : - qsTr("Show menubar") - } } // diff --git a/assets/qml/Windows/About.qml b/assets/qml/Windows/About.qml index b032c3d6..43c2e69a 100644 --- a/assets/qml/Windows/About.qml +++ b/assets/qml/Windows/About.qml @@ -162,7 +162,7 @@ PlatformDependent.CustomWindow { Button { Layout.fillWidth: true text: qsTr("Make a donation") - onClicked: donations.show() + onClicked: app.donations.show() } Button { diff --git a/assets/qml/Windows/MainWindow.qml b/assets/qml/Windows/MainWindow.qml index 94a03b80..8adb92af 100644 --- a/assets/qml/Windows/MainWindow.qml +++ b/assets/qml/Windows/MainWindow.qml @@ -48,7 +48,6 @@ PlatformDependent.CustomWindow { // Custom properties // property int appLaunchCount: 0 - property bool menubarEnabled: true property bool firstValidFrame: false property bool automaticUpdates: false property alias vt100emulation: terminal.vt100emulation @@ -67,17 +66,10 @@ PlatformDependent.CustomWindow { function consoleClear() { terminal.clear() } function consoleSelectAll() { terminal.selectAll() } - // - // Hide/show menubar - // - function toggleMenubar() { - root.menubarEnabled = !root.menubarEnabled - } - // // Displays the main window & checks for updates // - function showMainWindow() { + function showMainWindow() { // Reset window size for whatever reason if (width <= 0 || height <= 0) { width = minimumWidth @@ -116,7 +108,7 @@ PlatformDependent.CustomWindow { // Show donations dialog every 15 launches if (appLaunchCount % 15 == 0 && !donations.doNotShowAgain) - donations.showAutomatically() + app.donations.showAutomatically() // Ask user if he/she wants to enable automatic updates if (appLaunchCount == 2 && Cpp_UpdaterEnabled) { @@ -204,7 +196,6 @@ PlatformDependent.CustomWindow { property alias wm: root.windowMaximized property alias appStatus: root.appLaunchCount property alias autoUpdater: root.automaticUpdates - property alias menubarVisible: root.menubarEnabled } // @@ -220,11 +211,38 @@ PlatformDependent.CustomWindow { // macOS menubar loader // Loader { - asynchronous: false active: Cpp_IsMac + asynchronous: false sourceComponent: PlatformDependent.MenubarMacOS {} } + // + // Windows + Windows menubar loader + // + Item { + enabled: !Cpp_IsMac + visible: !Cpp_IsMac + height: titlebar.height + + anchors { + top: root.top + left: root.left + right: root.right + } + + PlatformDependent.Menubar { + id: menubar + opacity: 0.8 + Behavior on opacity {NumberAnimation{}} + anchors { + left: parent.left + right: parent.right + leftMargin: 14 + 24 + verticalCenter: parent.verticalCenter + } + } + } + // // Main layout // @@ -258,7 +276,7 @@ PlatformDependent.CustomWindow { setupChecked: root.setupVisible consoleChecked: root.consoleVisible dashboardChecked: root.dashboardVisible - onJsonEditorClicked: jsonEditor.show() + onJsonEditorClicked: app.jsonEditor.show() onSetupClicked: setup.visible ? setup.hide() : setup.show() onDashboardClicked: { diff --git a/assets/themes/1_Classic.json b/assets/themes/1_Classic.json index 7924eeb0..3e1098d2 100644 --- a/assets/themes/1_Classic.json +++ b/assets/themes/1_Classic.json @@ -19,8 +19,6 @@ "placeholderText":"#999999", "toolbarGradient1":"#21373f", "toolbarGradient2":"#11272f", - "menubarGradient1":"#121920", - "menubarGradient2":"#121920", "menubarText":"#ffffff", "dialogBackground":"#121920", "consoleText":"#8ecd9d", diff --git a/assets/themes/2_Noir.json b/assets/themes/2_Noir.json index 8eb417bf..40d3f10f 100644 --- a/assets/themes/2_Noir.json +++ b/assets/themes/2_Noir.json @@ -19,9 +19,7 @@ "placeholderText":"#666666", "toolbarGradient1":"#323030", "toolbarGradient2":"#292929", - "menubarGradient1":"#ffffff", - "menubarGradient2":"#ffffff", - "menubarText":"#000000", + "menubarText":"#ffffff", "dialogBackground":"#f2f2f2", "consoleText":"#424242", "consoleBase":"#f2f2f2", diff --git a/assets/themes/3_MathWorks.json b/assets/themes/3_MathWorks.json index b031561e..9ab85046 100644 --- a/assets/themes/3_MathWorks.json +++ b/assets/themes/3_MathWorks.json @@ -19,9 +19,7 @@ "placeholderText":"#666666", "toolbarGradient1":"#105087", "toolbarGradient2":"#004077", - "menubarGradient1":"#ffffff", - "menubarGradient2":"#ffffff", - "menubarText":"#000000", + "menubarText":"#ffffff", "dialogBackground":"#e8e8e8", "consoleText":"#242424", "consoleBase":"#fafafa", diff --git a/assets/window-border/close.svg b/assets/window-border/close.svg new file mode 100644 index 00000000..b8f8c533 --- /dev/null +++ b/assets/window-border/close.svg @@ -0,0 +1,4 @@ + + Gnome Symbolic Icons + + diff --git a/assets/window-border/fullscreen.svg b/assets/window-border/fullscreen.svg new file mode 100644 index 00000000..ad773e07 --- /dev/null +++ b/assets/window-border/fullscreen.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/window-border/maximize.svg b/assets/window-border/maximize.svg new file mode 100644 index 00000000..d0dfa2fa --- /dev/null +++ b/assets/window-border/maximize.svg @@ -0,0 +1,4 @@ + + Gnome Symbolic Icons + + diff --git a/assets/window-border/minimize.svg b/assets/window-border/minimize.svg new file mode 100644 index 00000000..9435dc01 --- /dev/null +++ b/assets/window-border/minimize.svg @@ -0,0 +1,4 @@ + + Gnome Symbolic Icons + + diff --git a/assets/window-border/restore.svg b/assets/window-border/restore.svg new file mode 100644 index 00000000..3f4a7057 --- /dev/null +++ b/assets/window-border/restore.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/window-border/unmaximize.svg b/assets/window-border/unmaximize.svg new file mode 100644 index 00000000..e6781c2a --- /dev/null +++ b/assets/window-border/unmaximize.svg @@ -0,0 +1,5 @@ + + Gnome Symbolic Icons + + + diff --git a/src/Misc/ThemeManager.cpp b/src/Misc/ThemeManager.cpp index 8a9957fe..35c8dee1 100644 --- a/src/Misc/ThemeManager.cpp +++ b/src/Misc/ThemeManager.cpp @@ -162,8 +162,6 @@ void ThemeManager::loadTheme(const int id) m_windowBackground = QColor(colors.value("windowBackground").toString()); m_windowGradient1 = QColor(colors.value("windowGradient1").toString()); m_windowGradient2 = QColor(colors.value("windowGradient2").toString()); - m_menubarGradient1 = QColor(colors.value("menubarGradient1").toString()); - m_menubarGradient2 = QColor(colors.value("menubarGradient2").toString()); m_menubarText = QColor(colors.value("menubarText").toString()); m_dialogBackground = QColor(colors.value("dialogBackground").toString()); m_alternativeHighlight = QColor(colors.value("alternativeHighlight").toString()); @@ -341,16 +339,6 @@ QColor ThemeManager::toolbarGradient2() const return m_toolbarGradient2; } -QColor ThemeManager::menubarGradient1() const -{ - return m_menubarGradient1; -} - -QColor ThemeManager::menubarGradient2() const -{ - return m_menubarGradient2; -} - QColor ThemeManager::menubarText() const { return m_menubarText; diff --git a/src/Misc/ThemeManager.h b/src/Misc/ThemeManager.h index 7bd24ff5..7c2d446d 100644 --- a/src/Misc/ThemeManager.h +++ b/src/Misc/ThemeManager.h @@ -127,12 +127,6 @@ class ThemeManager : public QObject Q_PROPERTY(QColor windowGradient2 READ windowGradient2 NOTIFY themeChanged) - Q_PROPERTY(QColor menubarGradient1 - READ menubarGradient1 - NOTIFY themeChanged) - Q_PROPERTY(QColor menubarGradient2 - READ menubarGradient2 - NOTIFY themeChanged) Q_PROPERTY(QColor menubarText READ menubarText NOTIFY themeChanged) @@ -221,8 +215,6 @@ public: QColor placeholderText() const; QColor toolbarGradient1() const; QColor toolbarGradient2() const; - QColor menubarGradient1() const; - QColor menubarGradient2() const; QColor menubarText() const; QColor dialogBackground() const; QColor consoleText() const; @@ -288,8 +280,6 @@ private: QColor m_placeholderText; QColor m_toolbarGradient1; QColor m_toolbarGradient2; - QColor m_menubarGradient1; - QColor m_menubarGradient2; QColor m_menubarText; QColor m_dialogBackground; QColor m_consoleText;