#ifndef _MAINWIN_H_
#define _MAINWIN_H_
-#include <QtGui>
#include "ui_mainwin.h"
-#include "global.h"
-#include "message.h"
-#include "chatwidget.h"
+#include "qtgui.h"
+#include "bufferviewfilter.h"
class ServerListDlg;
class CoreConnectDlg;
-class BufferViewDock;
class Buffer;
-class BufferWidget;
class SettingsDlg;
+class QtGui;
+class Message;
-//!\brief The main window and central object of Quassel GUI.
-/** In addition to displaying the main window including standard stuff like a menubar,
- * dockwidgets and of course the chat window, this class also stores all data it
- * receives from the core, and it maintains a list of all known nicks.
- */
+//!\brief The main window of Quassel's QtGui.
class MainWin : public QMainWindow {
Q_OBJECT
public:
- MainWin();
- ~MainWin();
+ MainWin(QtGui *gui, QWidget *parent = 0);
+ virtual ~MainWin();
void init();
- void registerBufferViewDock(BufferViewDock *);
+ void addBufferView(const QString &, QAbstractItemModel *, const BufferViewFilter::Modes &, const QStringList &);
+
+ AbstractUiMsg *layoutMsg(const Message &);
protected:
void closeEvent(QCloseEvent *event);
- signals:
- //void sendInput(BufferId, QString message);
- //void bufferSelected(Buffer *);
- //void bufferUpdated(Buffer *);
- //void bufferActivity(Buffer::ActivityLevel, Buffer *);
- //void bufferDestroyed(Buffer *);
- //void backlogReceived(Buffer *, QList<Message>);
- //void requestBacklog(BufferId, QVariant, QVariant);
-
- void importOldBacklog();
+ protected slots:
+ void connectedToCore();
+ void disconnectedFromCore();
private slots:
-
- //void userInput(BufferId, QString);
- //void networkConnected(QString);
- //void networkDisconnected(QString);
- //void recvNetworkState(QString, QVariant);
- //void recvMessage(Message message);
- //void recvStatusMsg(QString network, QString message);
- //void setTopic(QString net, QString buf, QString);
- //void addNick(QString net, QString nick, VarMap props);
- //void removeNick(QString net, QString nick);
- //void renameNick(QString net, QString oldnick, QString newnick);
- //void updateNick(QString net, QString nick, VarMap props);
- //void setOwnNick(QString net, QString nick);
- //void recvBacklogData(BufferId, QList<QVariant>, bool);
- //void updateBufferId(BufferId);
void showServerList();
void showSettingsDlg();
+ void showCoreConnectionDlg(bool autoConnect = false);
+ void coreConnectionDlgFinished(int result);
void showBuffer(BufferId);
void showBuffer(Buffer *);
void importBacklog();
+ signals:
+ void connectToCore(const QVariantMap &connInfo);
+ void disconnectFromCore();
+ void requestBacklog(BufferId, QVariant, QVariant);
+ void importOldBacklog();
+
private:
Ui::MainWin ui;
+ QtGui *gui;
void setupMenus();
void setupViews();
void setupSettingsDlg();
- //void syncToCore(); // implemented in main_mono.cpp or main_gui.cpp
- //Buffer * getBuffer(QString net, QString buf);
- //Buffer *getBuffer(BufferId);
- //BufferId getStatusBufferId(QString net);
- //BufferId getBufferId(QString net, QString buf);
- //void buffersUpdated();
+
+ void enableMenus();
QSystemTrayIcon *systray;
- //QWorkspace *workspace;
- //QWidget *widget;
- //BufferWidget *bufferWidget;
ServerListDlg *serverListDlg;
CoreConnectDlg *coreConnectDlg;
SettingsDlg *settingsDlg;
- //QString currentNetwork, currentBuffer;
- //QHash<QString, QHash<QString, Buffer*> > buffers;
uint currentBuffer;
- //QHash<BufferId, Buffer *> buffers;
- //QHash<uint, BufferId> bufferIds;
- //QHash<QString, QHash<QString, VarMap> > nicks;
- //QHash<QString, bool> connected;
- //QHash<QString, QString> ownNick;
- //QHash<QString, QList<Message> > coreBackLog;
- //QList<BufferId> coreBuffers;
-
- QList<BufferViewDock *> netViews;
-
- //QTimer *layoutTimer;
- //QList<Message> layoutQueue;
+ QString currentProfile;
+
+ QList<QDockWidget *> netViews;
+
+ friend class QtGui;
};
#endif