Add a shortcut for hiding current buffer.
[quassel.git] / src / qtui / mainwin.h
index 4929e5c..49b49d7 100644 (file)
 #  include <QMainWindow>
 #endif
 
-#ifdef Q_WS_WIN
-#  include <windows.h>
-#endif
-
 #include "qtui.h"
 #include "titlesetter.h"
 #include "uisettings.h"
@@ -74,6 +70,7 @@ class MainWin
 
     void addBufferView(ClientBufferViewConfig *config);
     BufferView *allBuffersView() const;
+    BufferView *activeBufferView() const;
 
     inline BufferWidget *bufferWidget() const { return _bufferWidget; }
     inline SystemTray *systemTray() const { return _systemTray; }
@@ -88,17 +85,17 @@ class MainWin
 
   public slots:
     void showStatusBarMessage(const QString &message);
-    void toggleMinimizedToTray();
-
-    //! Bring window to front and focus it
-    void forceActivated();
+    void hideCurrentBuffer();
+    void nextBufferView();     //!< Activate the next bufferview
+    void previousBufferView(); //!< Activate the previous bufferview
+    void nextBuffer();
+    void previousBuffer();
 
     //! Quit application
     void quit();
 
   protected:
     void closeEvent(QCloseEvent *event);
-    void changeEvent(QEvent *event);
     void moveEvent(QMoveEvent *event);
     void resizeEvent(QResizeEvent *event);
 
@@ -123,9 +120,9 @@ class MainWin
     void showSettingsDlg();
     void showNotificationsDlg();
     void showIgnoreList(QString newRule = QString());
-#ifdef HAVE_KDE
     void showShortcutsDlg();
-#endif
+    void toggleFullscreen();
+
     void handleCoreConnectionError(const QString &errorMsg);
     void userAuthenticationRequired(CoreAccount *, bool *valid, const QString &errorMessage);
     void handleNoSslInClient(bool *accepted);
@@ -144,6 +141,9 @@ class MainWin
     void on_actionDebugHotList_triggered();
     void on_actionDebugLog_triggered();
 
+    void bindJumpKey();
+    void onJumpKey();
+
     void clientNetworkCreated(NetworkId);
     void clientNetworkRemoved(NetworkId);
     void clientNetworkUpdated();
@@ -156,6 +156,9 @@ class MainWin
     void saveLayout();
 
     void bufferViewToggled(bool enabled);
+    void bufferViewVisibilityChanged(bool visible);
+    void changeActiveBufferView(bool backwards);
+    void changeActiveBufferView(int bufferViewId);
 
   signals:
     void connectToCore(const QVariantMap &connInfo);
@@ -179,6 +182,7 @@ class MainWin
     void setupChatMonitor();
     void setupInputWidget();
     void setupTopicWidget();
+    void setupViewMenuTail();
     void setupStatusBar();
     void setupSystray();
     void setupTitleSetter();
@@ -188,8 +192,6 @@ class MainWin
     void updateIcon();
     void enableMenus();
 
-    void hideToTray();
-
     QList<BufferViewDock *> _bufferViews;
     BufferWidget *_bufferWidget;
     NickListWidget *_nickListWidget;
@@ -208,11 +210,9 @@ class MainWin
     QSize _normalSize; //!< Size of the non-maximized window
     QPoint _normalPos; //!< Position of the non-maximized window
 
-#ifdef Q_WS_WIN
-    DWORD dwTickCount;
-#endif
-
     BufferHotListFilter *_bufferHotList;
+    QHash<int, BufferId> _jumpKeyMap;
+    int _activeBufferViewIndex;
 
     friend class QtUi;
 };