00001 #ifndef GUIMAINWINDOW_H
00002 #define GUIMAINWINDOW_H
00003
00004 #include "communication.h"
00005 #include "GUITabList.h"
00006 #include "GUIChatTextInput.h"
00007 #include "GUIChatView.h"
00008 #include "GuiActiveUserList.h"
00009 #include "GUISettings.h"
00010 #include <QToolBar>
00011 #include <QVBoxLayout>
00012 #include <QHBoxLayout>
00013 #include <QAction>
00014 #include <QColor>
00015 #include <QPalette>
00016 #include <QCloseEvent>
00017 #include <QApplication>
00018 #include "GUIIncomingFileWindow.h"
00019 #include "GUIOutcommingFileWindow.h"
00020
00021
00026 class GUIMainWindow : public QWidget
00027 {
00028 Q_OBJECT
00029
00030 protected:
00031 Communication comm;
00032 QAction *connect_buton;
00033 QAction *close_active_tab_buton;
00034 GUIChatTextInput *ChatTextInput;
00035 GUITabList *TabList;
00036 GuiActiveUserList *UserList;
00037 GUISettings *Settings;
00038 GUIIncomingFileWindow incoming_file_window;
00039 GUIOutcommingFileWindow outcomming_file_window;
00040 bool is_file_outcoming;
00041 bool is_connect;
00043 QToolBar *MainToolBar, *TextToolBar;
00049 virtual void closeEvent(QCloseEvent *e);
00050
00051 public:
00057 GUIMainWindow(QWidget * parent, Qt::WFlags flags);
00058
00059 private:
00064 void createMainToolBar(QToolBar *tool_bar);
00069 QString time();
00075 QString userName(QHostAddress host);
00076
00077 public slots:
00083 void pong(QHostAddress host, qint32 time);
00087 void connectChat ();
00091 void disconnectChat ();
00097 void privateChat (QHostAddress &host);
00103 void sendFile (QHostAddress &host);
00110 void acceptSendFile (QHostAddress host, QString file);
00117 void refuseSendFile (QHostAddress host, QString file);
00123 void transferEnd (QHostAddress host, bool czy_ok);
00129 void fileProgress (int procent);
00135 void checkIp (QHostAddress &host);
00141 void checkPing (QHostAddress &host);
00147 void recvPMsg (QHostAddress host, const QString msg);
00153 void recvBMsg (QHostAddress host, const QString msg);
00157 void sendMsg ();
00161 void cancelFileTransfer();
00170 void incomingFile(QHostAddress host, QString msg, quint32 size);
00174 void tabCanNotBeClose();
00178 void tabCanBeClose();
00182 void isOnline();
00186 void isNotOnline();
00190 void connected();
00194 void unableConnect();
00200 void setUserOnline(QHostAddress host, QString msg);
00205 void invalidNick();
00206
00207 private slots:
00211 void configureChat();
00215 void clearActiveChatPage();
00220 void setApperance();
00224 void about();
00225
00226 };
00227
00228 #endif