diff --git a/res/skins/Deere/style.qss b/res/skins/Deere/style.qss
index 095476fbe7ba..365a06da23be 100644
--- a/res/skins/Deere/style.qss
+++ b/res/skins/Deere/style.qss
@@ -1574,6 +1574,18 @@ WPushButton[value="2"]:hover,
border: 1px solid #0080BE;
}
+#MenubarToggle {
+ font-size: 14px;
+ font-weight: bold;
+ color: #888;
+ margin-top: 2px;
+ background-color: transparent;
+ border: none;
+ }
+ #MenubarToggle[hover="true"] {
+ color: #aaa;
+ }
+
#HotcueButton {
border: none;
}
diff --git a/res/skins/Deere/tool_bar.xml b/res/skins/Deere/tool_bar.xml
index 639971cf8729..c725fc09132e 100644
--- a/res/skins/Deere/tool_bar.xml
+++ b/res/skins/Deere/tool_bar.xml
@@ -11,6 +11,19 @@
min,f
+
+
+ FIXME
+ MenubarToggle
+ 70,22
+ 70,22
+ f,f
+ ☰ MENU
+ ☰ MENU
+ [Controls],show_menubar
+
+
Battery
24,24
diff --git a/res/skins/LateNight/style.qss b/res/skins/LateNight/style.qss
index 1bf52d253eef..fe58a010f6fe 100644
--- a/res/skins/LateNight/style.qss
+++ b/res/skins/LateNight/style.qss
@@ -151,7 +151,8 @@ WEffectSelector QAbstractScrollArea,
#PreviewLabel,
WBeatSpinBox,
#spinBoxTransition,
-WTime {
+WTime,
+#MenubarToggle {
font-size: 14px;
text-align: left;
}
diff --git a/res/skins/LateNight/style_palemoon.qss b/res/skins/LateNight/style_palemoon.qss
index 8707d13bd457..3453131a3a26 100644
--- a/res/skins/LateNight/style_palemoon.qss
+++ b/res/skins/LateNight/style_palemoon.qss
@@ -1267,13 +1267,16 @@ WEffectSelector,
#PreviewLabel,
WEffectSelector QAbstractScrollArea,
#fadeModeCombobox QAbstractScrollArea,
-#GuiToggleButton[displayValue="0"],
+#GuiToggleButton[displayValue="0"], #MenubarToggle,
#RecDuration[highlight="0"],
#BroadcastButton[displayValue="0"],
#SkinSettingsToggle[displayValue="0"],
WLibrary QLabel {
color: #777;
-}
+ }/*
+ #MenubarToggle[hover="true"] {
+ color: #999;
+ }*/
/* Darker grey for knob labels & inactive decks/units */
#KnobLabel,
diff --git a/res/skins/LateNight/toolbar.xml b/res/skins/LateNight/toolbar.xml
index dcd953114017..27b0152b6960 100644
--- a/res/skins/LateNight/toolbar.xml
+++ b/res/skins/LateNight/toolbar.xml
@@ -5,6 +5,22 @@
e,min
+
+
+ FIXME
+ MenubarToggle
+ 70f,20f
+ ☰ MENU
+ ☰ MENU
+ [Controls],show_menubar
+
+
+
+ MenubarToggleSeparator
+ 12f,9min
+
+
maximize_library
GuiToggleButton
diff --git a/res/skins/Shade/skin.xml b/res/skins/Shade/skin.xml
index f4a702bd6b33..9196e5e3dcbf 100644
--- a/res/skins/Shade/skin.xml
+++ b/res/skins/Shade/skin.xml
@@ -61,6 +61,7 @@
2
8
1
+ 1
1
1
diff --git a/res/skins/Tango/style.qss b/res/skins/Tango/style.qss
index 33951939759f..05768c86ff5e 100644
--- a/res/skins/Tango/style.qss
+++ b/res/skins/Tango/style.qss
@@ -291,6 +291,16 @@ WWidgetGroup {
qproperty-layoutAlignment: 'AlignLeft | AlignVCenter';
}
+#MenubarToggle {
+ font-size: 14px;
+ font-weight: bold;
+ color: #888;
+ margin-top: 2px;
+ }
+ #MenubarToggle[hover="true"] {
+ color: #aaa;
+ }
+
#GuiToggleButton,
#GuiToggleButton2,
#RecordingButton {
diff --git a/res/skins/Tango/topbar.xml b/res/skins/Tango/topbar.xml
index 34367255e0b5..f0f0225b5443 100644
--- a/res/skins/Tango/topbar.xml
+++ b/res/skins/Tango/topbar.xml
@@ -32,6 +32,18 @@ Description:
2f,0min
+
+
+
+ FIXME
+ MenubarToggle
+ 70f,22f
+ ☰ MENU
+ ☰ MENU
+ [Controls],show_menubar
+
+
102f,24f
2
diff --git a/src/widget/wmainmenubar.cpp b/src/widget/wmainmenubar.cpp
index cf7f01dc2c31..ad72b4ded248 100644
--- a/src/widget/wmainmenubar.cpp
+++ b/src/widget/wmainmenubar.cpp
@@ -60,6 +60,14 @@ WMainMenuBar::WMainMenuBar(QWidget* pParent, UserSettingsPointer pConfig,
}
void WMainMenuBar::initialize() {
+ // Allow hiding the menu bar
+ m_bShowMenuBar = std::make_unique(ConfigKey("[Controls]", "show_menubar"), false, 1.0);
+ m_bShowMenuBar->setButtonMode(ControlPushButton::TOGGLE);
+ connect(m_bShowMenuBar.get(),
+ &ControlPushButton::valueChanged,
+ this,
+ &WMainMenuBar::showHideMenuBar);
+
// FILE MENU
QMenu* pFileMenu = new QMenu(tr("&File"));
@@ -599,6 +607,17 @@ void WMainMenuBar::initialize() {
addMenu(pHelpMenu);
}
+void WMainMenuBar::showHideMenuBar(double v) {
+ if (v > 0) {
+ int minHeight = sizeHint().height();
+ if (minHeight > 0) {
+ setFixedHeight(minHeight);
+ }
+ } else {
+ setFixedHeight(0);
+ }
+}
+
void WMainMenuBar::onLibraryScanStarted() {
emit internalLibraryScanActive(true);
}
diff --git a/src/widget/wmainmenubar.h b/src/widget/wmainmenubar.h
index 643f386b2150..c21fd5fcd006 100644
--- a/src/widget/wmainmenubar.h
+++ b/src/widget/wmainmenubar.h
@@ -8,8 +8,11 @@
#include
#include "control/controlproxy.h"
+#include "control/controlobject.h"
+#include "control/controlpushbutton.h"
#include "preferences/configobject.h"
#include "preferences/usersettings.h"
+#include "util/memory.h"
class VisibilityControlConnection : public QObject {
Q_OBJECT
@@ -36,6 +39,7 @@ class WMainMenuBar : public QMenuBar {
ConfigObject* pKbdConfig);
public slots:
+ void showHideMenuBar(double v);
void onLibraryScanStarted();
void onLibraryScanFinished();
void onRecordingStateChange(bool recording);
@@ -83,6 +87,7 @@ class WMainMenuBar : public QMenuBar {
void initialize();
void createVisibilityControl(QAction* pAction, const ConfigKey& key);
+ std::unique_ptr m_bShowMenuBar;
UserSettingsPointer m_pConfig;
ConfigObject* m_pKbdConfig;
QList m_loadToDeckActions;