Sfoglia il codice sorgente

Merge pull request #429 from Kingcom/titlebar

Add option to hide dock widget title bars
Tony Wasserka 11 anni fa
parent
commit
8946df97b5
3 ha cambiato i file con 86 aggiunte e 34 eliminazioni
  1. 25 0
      src/citra_qt/main.cpp
  2. 1 0
      src/citra_qt/main.h
  3. 60 34
      src/citra_qt/main.ui

+ 25 - 0
src/citra_qt/main.cpp

@@ -114,6 +114,9 @@ GMainWindow::GMainWindow()
     ui.action_Single_Window_Mode->setChecked(settings.value("singleWindowMode", true).toBool());
     ToggleWindowMode();
 
+    ui.actionDisplay_widget_title_bars->setChecked(settings.value("displayTitleBars", true).toBool());
+    OnDisplayTitleBars(ui.actionDisplay_widget_title_bars->isChecked());
+
     // Setup connections
     connect(ui.action_Load_File, SIGNAL(triggered()), this, SLOT(OnMenuLoadFile()));
     connect(ui.action_Load_Symbol_Map, SIGNAL(triggered()), this, SLOT(OnMenuLoadSymbolMap()));
@@ -160,6 +163,27 @@ GMainWindow::~GMainWindow()
     Pica::g_debug_context.reset();
 }
 
+void GMainWindow::OnDisplayTitleBars(bool show)
+{
+    QList<QDockWidget*> widgets = findChildren<QDockWidget*>();
+
+    if (show) {
+        for (QDockWidget* widget: widgets) {
+            QWidget* old = widget->titleBarWidget();
+            widget->setTitleBarWidget(nullptr);
+            if (old != nullptr)
+                delete old;
+        }
+    } else {
+        for (QDockWidget* widget: widgets) {
+            QWidget* old = widget->titleBarWidget();
+            widget->setTitleBarWidget(new QWidget());
+            if (old != nullptr)
+                delete old;
+        }
+    }
+}
+
 void GMainWindow::BootGame(std::string filename)
 {
     LOG_INFO(Frontend, "Citra starting...\n");
@@ -263,6 +287,7 @@ void GMainWindow::closeEvent(QCloseEvent* event)
     settings.setValue("state", saveState());
     settings.setValue("geometryRenderWindow", render_window->saveGeometry());
     settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked());
+    settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked());
     settings.setValue("firstStart", false);
     SaveHotkeys(settings);
 

+ 1 - 0
src/citra_qt/main.h

@@ -46,6 +46,7 @@ private slots:
     void OnMenuLoadSymbolMap();
     void OnOpenHotkeysDialog();
     void OnConfigure();
+    void OnDisplayTitleBars(bool);
     void ToggleWindowMode();
 
 private:

+ 60 - 34
src/citra_qt/main.ui

@@ -32,7 +32,7 @@
      <x>0</x>
      <y>0</y>
      <width>1081</width>
-     <height>20</height>
+     <height>21</height>
     </rect>
    </property>
    <widget class="QMenu" name="menu_File">
@@ -59,6 +59,7 @@
      <string>&amp;View</string>
     </property>
     <addaction name="action_Single_Window_Mode"/>
+    <addaction name="actionDisplay_widget_title_bars"/>
     <addaction name="action_Hotkeys"/>
    </widget>
    <widget class="QMenu" name="menu_Help">
@@ -73,17 +74,17 @@
    <addaction name="menu_Help"/>
   </widget>
   <widget class="QStatusBar" name="statusbar"/>
-   <action name="action_Load_File">
-     <property name="text">
-       <string>Load File...</string>
-     </property>
-   </action>
-   <action name="action_Load_Symbol_Map">
-     <property name="text">
-       <string>Load Symbol Map...</string>
-     </property>
-   </action>
-   <action name="action_Exit">
+  <action name="action_Load_File">
+   <property name="text">
+    <string>Load File...</string>
+   </property>
+  </action>
+  <action name="action_Load_Symbol_Map">
+   <property name="text">
+    <string>Load Symbol Map...</string>
+   </property>
+  </action>
+  <action name="action_Exit">
    <property name="text">
     <string>E&amp;xit</string>
    </property>
@@ -101,28 +102,28 @@
     <string>&amp;Pause</string>
    </property>
   </action>
-   <action name="action_Stop">
-     <property name="enabled">
-       <bool>false</bool>
-     </property>
-     <property name="text">
-       <string>&amp;Stop</string>
-     </property>
-   </action>
-   <action name="action_About">
-     <property name="text">
-       <string>About Citra</string>
-     </property>
-   </action>
-   <action name="action_Single_Window_Mode">
-     <property name="checkable">
-       <bool>true</bool>
-     </property>
-     <property name="text">
-       <string>Single Window Mode</string>
-     </property>
-   </action>
-   <action name="action_Hotkeys">
+  <action name="action_Stop">
+   <property name="enabled">
+    <bool>false</bool>
+   </property>
+   <property name="text">
+    <string>&amp;Stop</string>
+   </property>
+  </action>
+  <action name="action_About">
+   <property name="text">
+    <string>About Citra</string>
+   </property>
+  </action>
+  <action name="action_Single_Window_Mode">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Single Window Mode</string>
+   </property>
+  </action>
+  <action name="action_Hotkeys">
    <property name="text">
     <string>Configure &amp;Hotkeys ...</string>
    </property>
@@ -132,6 +133,14 @@
     <string>Configure ...</string>
    </property>
   </action>
+  <action name="actionDisplay_widget_title_bars">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Display Dock Widget Headers</string>
+   </property>
+  </action>
  </widget>
  <resources/>
  <connections>
@@ -167,8 +176,25 @@
     </hint>
    </hints>
   </connection>
+  <connection>
+   <sender>actionDisplay_widget_title_bars</sender>
+   <signal>triggered(bool)</signal>
+   <receiver>MainWindow</receiver>
+   <slot>OnDisplayTitleBars(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>540</x>
+     <y>364</y>
+    </hint>
+   </hints>
+  </connection>
  </connections>
  <slots>
   <slot>OnConfigure()</slot>
+  <slot>OnDisplayTitleBars(bool)</slot>
  </slots>
 </ui>