OSDN Git Service

*Implemented server interface.
[greensite/jasmine.git] / ui / jasmine_mainwindow.h
1 #pragma once
2 #include "ui_jasmine_main.h"
3 #include "memberlist.h"
4 #include "settingdialog.h"
5 #include "rtfeditor.h"
6 #include "../settings.h"
7 #include "../validator/ipaddressvalidator.h"
8 #include "../server/tcpserver.h"
9
10 using namespace structures;
11 using namespace network;
12
13 class mainWindow:public QMainWindow,private Ui::MainWindow{
14         Q_OBJECT
15 public:
16         mainWindow();
17         ~mainWindow();
18 private slots:
19         //These functions work automatically by automatic connection.
20         void on_sendButton_clicked();
21         void on_runServerAction_triggered(bool);
22         void on_serverSettingAction_triggered();
23         void on_clientSettingAction_triggered();
24         void on_miscAction_triggered();
25         void on_sendFileAction_triggered();
26         void on_aboutAction_triggered();
27         void on_openMemberListAction_triggered();
28         void on_saveLogAction_triggered();
29         void on_saveMemberListAction_triggered();
30         void on_actionExit_triggered();
31         void on_clearAction_triggered();
32         void on_addButton_clicked();
33         void on_removeButton_clicked();
34         void on_saveConfigAction_triggered();
35         void on_openConfigAction_triggered();
36         //This function works manually.
37         void settingDialog_accepted();
38         //These are for saving stuff.
39         void saveConfig(const QString &);
40         void saveMember(const QString &);
41         void saveLog(const QString &);
42         //This is for links.
43         void linkClicked(const QUrl &);
44         //These slots are for receiveText.
45         void invalidLink(const QString &);
46         void selectedLink(const QUrl &);
47 public slots:
48         //These are for opening stuff.
49         void openConfig(const QString &);
50         void openMember(const QString &);
51 protected:
52         //Events
53         void closeEvent(QCloseEvent *);
54         void showEvent(QShowEvent *);
55 private:
56         QObject                 *beforesender;
57         QStringList             memberFilters,logFilters;
58
59         MemberList              *memberList;
60         RtfEditor               *sendTextEditor;
61         tcpServer               *mainServer;
62         SettingDialog   *settingdialog;
63         settings                setting;
64
65         int isInMember(const AddressAndPort &);
66         void configAndShowSettingDialog(const SettingDialog::tab);
67 public:
68         settings app_setting() const;
69 };
70