Add a shortcut for hiding current buffer.
[quassel.git] / src / qtui / mainwin.cpp
index 00407ef..f40aa9c 100644 (file)
@@ -352,16 +352,31 @@ void MainWin::setupActions() {
   coll->addAction("ToggleFullscreen", fullScreenAct);
 
   // Settings
-  coll->addAction("ConfigureShortcuts", new Action(SmallIcon("configure-shortcuts"), tr("Configure &Shortcuts..."), coll,
-                                                  this, SLOT(showShortcutsDlg())));
-  coll->addAction("ConfigureQuassel", new Action(SmallIcon("configure"), tr("&Configure Quassel..."), coll,
-                                                  this, SLOT(showSettingsDlg()), QKeySequence(Qt::Key_F7)));
+  QAction *configureShortcutsAct = new Action(SmallIcon("configure-shortcuts"), tr("Configure &Shortcuts..."), coll,
+                                             this, SLOT(showShortcutsDlg()));
+  configureShortcutsAct->setMenuRole(QAction::NoRole);
+  coll->addAction("ConfigureShortcuts", configureShortcutsAct);
+
+  #ifdef Q_WS_MAC
+  QAction *configureQuasselAct = new Action(SmallIcon("configure"), tr("&Configure Quassel..."), coll,
+                                           this, SLOT(showSettingsDlg()));
+  configureQuasselAct->setMenuRole(QAction::PreferencesRole);
+  #else
+  QAction *configureQuasselAct = new Action(SmallIcon("configure"), tr("&Configure Quassel..."), coll,
+                                            this, SLOT(showSettingsDlg()), QKeySequence(Qt::Key_F7));
+  #endif
+  coll->addAction("ConfigureQuassel", configureQuasselAct);
 
   // Help
-  coll->addAction("AboutQuassel", new Action(SmallIcon("quassel"), tr("&About Quassel"), coll,
-                                              this, SLOT(showAboutDlg())));
-  coll->addAction("AboutQt", new Action(QIcon(":/pics/qt-logo.png"), tr("About &Qt"), coll,
-                                         qApp, SLOT(aboutQt())));
+  QAction *aboutQuasselAct = new Action(SmallIcon("quassel"), tr("&About Quassel"), coll,
+                                       this, SLOT(showAboutDlg()));
+  aboutQuasselAct->setMenuRole(QAction::AboutRole);
+  coll->addAction("AboutQuassel", aboutQuasselAct);
+
+  QAction *aboutQtAct = new Action(QIcon(":/pics/qt-logo.png"), tr("About &Qt"), coll,
+                                  qApp, SLOT(aboutQt()));
+  aboutQtAct->setMenuRole(QAction::AboutQtRole);
+  coll->addAction("AboutQt", aboutQtAct);
   coll->addAction("DebugNetworkModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &NetworkModel"), coll,
                                        this, SLOT(on_actionDebugNetworkModel_triggered())));
   coll->addAction("DebugBufferViewOverlay", new Action(SmallIcon("tools-report-bug"), tr("Debug &BufferViewOverlay"), coll,
@@ -441,6 +456,8 @@ void MainWin::setupActions() {
                                            this, SLOT(nextBuffer()), QKeySequence(Qt::ALT + Qt::Key_Down)));
   coll->addAction("PreviousBuffer", new Action(SmallIcon("go-up"), tr("Go to Previous Chat"), coll,
                                                this, SLOT(previousBuffer()), QKeySequence(Qt::ALT + Qt::Key_Up)));
+  coll->addAction("HideCurrentBuffer", new Action(tr("Hide Current Buffer"), coll,
+                                                  this, SLOT(hideCurrentBuffer()), QKeySequence(Qt::ControlModifier + Qt::Key_W)));
 }
 
 void MainWin::setupMenus() {
@@ -698,6 +715,12 @@ void MainWin::previousBuffer() {
     view->previousBuffer();
 }
 
+void MainWin::hideCurrentBuffer() {
+  BufferView *view = activeBufferView();
+  if(view)
+    view->hideCurrentBuffer();
+}
+
 void MainWin::showNotificationsDlg() {
   SettingsPageDlg dlg(new NotificationsSettingsPage(this), this);
   dlg.exec();