/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#ifndef MAINWIN_H_
#define MAINWIN_H_
-#include <QMainWindow>
+#ifdef HAVE_KDE
+# include <KMainWindow>
+#else
+# include <QMainWindow>
+#endif
+
#include <QSystemTrayIcon>
#include "qtui.h"
class BufferViewConfig;
class BufferViewDock;
class BufferWidget;
+class InputWidget;
class MsgProcessorStatusWidget;
class NickListWidget;
class SystemTrayIcon;
class QMenu;
class QLabel;
+class QToolBar;
+
+class KHelpMenu;
//!\brief The main window of Quassel's QtUi.
-class MainWin : public QMainWindow {
+class MainWin
+#ifdef HAVE_KDE
+: public KMainWindow {
+#else
+: public QMainWindow {
+#endif
Q_OBJECT
public:
void init();
- void addBufferView(BufferViewConfig *config = 0);
+ void addBufferView(BufferViewConfig *config);
BufferView *allBuffersView() const;
inline QSystemTrayIcon *systemTrayIcon() const;
virtual bool event(QEvent *event);
+
+ static void flagRemoteCoreOnly(QObject *object) { object->setProperty("REMOTE_CORE_ONLY", true); }
+ static bool isRemoteCoreOnly(QObject *object) { return object->property("REMOTE_CORE_ONLY").toBool(); }
+
public slots:
void saveStateToSession(const QString &sessionId);
void saveStateToSessionSettings(SessionSettings &s);
protected slots:
void connectedToCore();
void setConnectedState();
- void updateLagIndicator(int lag);
- void securedConnection();
+ void updateLagIndicator(int lag = -1);
void disconnectedFromCore();
void setDisconnectedState();
void systrayActivated(QSystemTrayIcon::ActivationReason);
private slots:
void addBufferView(int bufferViewConfigId);
+ void awayLogDestroyed();
void removeBufferView(int bufferViewConfigId);
void messagesInserted(const QModelIndex &parent, int start, int end);
void showAboutDlg();
void showChannelList(NetworkId netId = NetworkId());
+ void startInternalCore();
void showCoreConnectionDlg(bool autoConnect = false);
void showCoreInfoDlg();
+ void showAwayLog();
void showSettingsDlg();
- void on_actionEditNetworks_triggered();
- void on_actionManageViews_triggered();
+ void showNotificationsDlg();
+#ifdef HAVE_KDE
+ void showShortcutsDlg();
+#endif
+ void on_actionConfigureNetworks_triggered();
+ void on_actionConfigureViews_triggered();
void on_actionLockDockPositions_toggled(bool lock);
void on_actionDebugNetworkModel_triggered();
void on_actionDebugMessageModel_triggered();
void disconnectFromCore();
private:
+#ifdef HAVE_KDE
+ KHelpMenu *_kHelpMenu;
+#endif
QMenu *systrayMenu;
QLabel *coreLagLabel;
void setupActions();
void setupBufferWidget();
void setupMenus();
- void setupViews();
void setupNickWidget();
void setupChatMonitor();
void setupInputWidget();
void setupStatusBar();
void setupSystray();
void setupTitleSetter();
+ void setupToolBars();
void updateIcon();
- void toggleVisibility();
+ void hideToTray();
+ void toggleMinimizedToTray();
void enableMenus();
QSystemTrayIcon *_trayIcon;
QList<BufferViewDock *> _bufferViews;
BufferWidget *_bufferWidget;
NickListWidget *_nickListWidget;
+ InputWidget *_inputWidget;
QMenu *_fileMenu, *_networksMenu, *_viewMenu, *_bufferViewsMenu, *_settingsMenu, *_helpMenu, *_helpDebugMenu;
+ QToolBar *_mainToolBar, *_chatViewToolBar, *_nickToolBar;
+ QWidget *_awayLog;
friend class QtUi;
};