X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=gui%2Fmainwin.h;h=df7154c0e89f0bc98e800b61322eb73cf3ca63be;hp=2d2516a03217af4c2779f39212253c447babe5f8;hb=2b4fb2214870a8c521e90310e541fe5ea680ae3b;hpb=12369966345e76e3bba92f64c84c940ef4d8d916 diff --git a/gui/mainwin.h b/gui/mainwin.h index 2d2516a0..df7154c0 100644 --- a/gui/mainwin.h +++ b/gui/mainwin.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005 by The Quassel Team * + * Copyright (C) 2005-07 by The Quassel Team * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -26,13 +26,17 @@ #include "global.h" #include "message.h" +#include "chatwidget.h" class ServerListDlg; class CoreConnectDlg; -class NetworkView; +class BufferView; class Buffer; +class BufferWidget; class SettingsDlg; +extern LayoutThread *layoutThread; + //!\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 @@ -43,57 +47,87 @@ class MainWin : public QMainWindow { public: MainWin(); + ~MainWin(); + + void init(); + void registerBufferView(BufferView *); protected: void closeEvent(QCloseEvent *event); signals: - void sendInput(QString network, QString buffer, QString message); - void bufferSelected(QString net, QString buffer); + void sendInput(BufferId, QString message); + void bufferSelected(Buffer *); + void bufferUpdated(Buffer *); + void bufferActivity(uint, Buffer *); + void bufferDestroyed(Buffer *); + void backlogReceived(Buffer *, QList); + void requestBacklog(BufferId, QVariant, QVariant); + + void importOldBacklog(); private slots: - void userInput(QString, QString, QString); + void userInput(BufferId, QString); void networkConnected(QString); void networkDisconnected(QString); void recvNetworkState(QString, QVariant); - void recvMessage(QString network, Message message); + void recvMessage(Message message); void recvStatusMsg(QString network, QString message); - void setTopic(QString, QString, QString); - void setNicks(QString, QString, QStringList); + 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, bool); + void updateBufferId(BufferId); void showServerList(); void showSettingsDlg(); - void showBuffer(QString net, QString buf); + void showBuffer(BufferId); + void showBuffer(Buffer *); + + void importBacklog(); + void layoutMsg(); private: Ui::MainWin ui; void setupMenus(); + void setupViews(); + void setupSettingsDlg(); void syncToCore(); // implemented in main_mono.cpp or main_gui.cpp - Buffer * getBuffer(QString net, QString buf); - void buffersUpdated(); + //Buffer * getBuffer(QString net, QString buf); + Buffer *getBuffer(BufferId); + BufferId getStatusBufferId(QString net); + BufferId getBufferId(QString net, QString buf); + //void buffersUpdated(); - QWorkspace *workspace; - QWidget *widget; + QSystemTrayIcon *systray; + //QWorkspace *workspace; + //QWidget *widget; + //BufferWidget *bufferWidget; ServerListDlg *serverListDlg; CoreConnectDlg *coreConnectDlg; SettingsDlg *settingsDlg; - QString currentNetwork, currentBuffer; - QHash > buffers; + //QString currentNetwork, currentBuffer; + //QHash > buffers; + uint currentBuffer; + QHash buffers; + QHash bufferIds; QHash > nicks; QHash connected; QHash ownNick; - QHash > coreBackLog; + //QHash > coreBackLog; + QList coreBuffers; + + QList netViews; - NetworkView *netView; + QTimer *layoutTimer; + QList layoutQueue; }; #endif