handle incoming invite, fixes #961
[quassel.git] / src / qtui / mainwin.cpp
index 334c5c1..398f0a8 100644 (file)
@@ -184,6 +184,7 @@ void MainWin::init() {
   setupNickWidget();
   setupInputWidget();
   setupChatMonitor();
+  setupViewMenuTail();
   setupStatusBar();
   setupToolBars();
   setupSystray();
@@ -339,6 +340,8 @@ void MainWin::setupActions() {
 
   coll->addAction("ToggleStatusBar", new Action(tr("Show Status &Bar"), coll,
                                                 0, 0))->setCheckable(true);
+  coll->addAction("ToggleFullscreen", new Action(SmallIcon("window_fullscreen"), tr("&Fullscreen mode"), coll,
+                                                  this, SLOT(toggleFullscreen()), QKeySequence(Qt::Key_F11)));
 
   // Settings
   coll->addAction("ConfigureShortcuts", new Action(SmallIcon("configure-shortcuts"), tr("Configure &Shortcuts..."), coll,
@@ -425,7 +428,11 @@ void MainWin::setupActions() {
   coll->addAction("NextBufferView", new Action(SmallIcon("go-next-view"), tr("Activate Next Chat List"), coll,
                                                this, SLOT(nextBufferView()), QKeySequence(QKeySequence::Forward)));
   coll->addAction("PreviousBufferView", new Action(SmallIcon("go-previous-view"), tr("Activate Previous Chat List"), coll,
-                                                   this, SLOT(previousBufferView()), QKeySequence(QKeySequence::Back)));
+                                                   this, SLOT(previousBufferView()), QKeySequence::Back));
+  coll->addAction("NextBuffer", new Action(SmallIcon("go-down"), tr("Go to Next Chat"), coll,
+                                           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)));
 }
 
 void MainWin::setupMenus() {
@@ -671,6 +678,18 @@ void MainWin::previousBufferView() {
   changeActiveBufferView(true);
 }
 
+void MainWin::nextBuffer() {
+  BufferView *view = activeBufferView();
+  if(view)
+    view->nextBuffer();
+}
+
+void MainWin::previousBuffer() {
+  BufferView *view = activeBufferView();
+  if(view)
+    view->previousBuffer();
+}
+
 void MainWin::showNotificationsDlg() {
   SettingsPageDlg dlg(new NotificationsSettingsPage(this), this);
   dlg.exec();
@@ -774,6 +793,11 @@ void MainWin::setupTopicWidget() {
   dock->toggleViewAction()->setText(tr("Show Topic Line"));
 }
 
+void MainWin::setupViewMenuTail() {
+  _viewMenu->addSeparator();
+  _viewMenu->addAction(QtUi::actionCollection("General")->action("ToggleFullscreen"));
+}
+
 void MainWin::setupTitleSetter() {
   _titleSetter.setModel(Client::bufferModel());
   _titleSetter.setSelectionModel(Client::bufferModel()->standardSelectionModel());
@@ -1142,6 +1166,21 @@ void MainWin::showShortcutsDlg() {
 #endif
 }
 
+void MainWin::toggleFullscreen() {
+  QAction *action = QtUi::actionCollection("General")->action("ToggleFullscreen");
+
+  if(isFullScreen()) {
+    showNormal();
+    action->setIcon(SmallIcon("window_fullscreen"));
+    action->setText(tr("&Fullscreen mode"));
+  }
+  else {
+    showFullScreen();
+    action->setIcon(SmallIcon("window_nofullscreen"));
+    action->setText(tr("&Normal mode"));
+  }
+}
+
 /********************************************************************************************************/
 
 bool MainWin::event(QEvent *event) {