forked from KangLin/RabbitIm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainWindow.h
More file actions
executable file
·130 lines (104 loc) · 3.55 KB
/
MainWindow.h
File metadata and controls
executable file
·130 lines (104 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtWidgets>
#include <QMainWindow>
#include <QSystemTrayIcon>
#include "XmppClient.h"
#include "qxmpp/QXmppVCardIq.h"
#include "qxmpp/QXmppVCardManager.h"
#include "qxmpp/QXmppTransferManager.h"
#include "Widgets/FrmMain/FrmMain.h"
class CFrmLogin;
class CFrmUserList;
class CDlgSendManage;
class CRoster;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
/* 发送文件类型
* DefaultType:默认类型
* ImageType:图片 */
enum SendFileType{
DefaultType,
ImageType
};
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
//得到好友 CRoster 对象指针
CRoster* GetRoster(QString szJid);
//得到聊天室 CFrmGroupChat 对象指针
CFrmGroupChat* GetGroupChat(const QString& jid);
//在通知栏上显示消息
int ShowTrayIconMessage(const QString &szTitle, const QString &szMessage);
//文件发送
void sendFile(const QString& jid,const QString& fileName,SendFileType type = MainWindow::DefaultType);
signals:
//初始化菜单
void sigMenuInitOperator(QMenu* m);
//删除菜单
void sigMenuRemoveOperator(QMenu* m);
void sigRefresh();//选项窗体更新后,刷新内容
protected slots:
void About();
void slotClientConnected();
void slotClientDisconnected();
void clientError(QXmppClient::Error e);
void clientIqReceived(const QXmppIq &iq);
void stateChanged(QXmppClient::State state);
//通知栏
void slotTrayIconActive(QSystemTrayIcon::ActivationReason e);//通知栏图标槽
void slotMessageClicked();
void slotTrayIconMenuUpdate();
void slotTrayTimeOut();
void slotTrayTimerStart();
void slotTrayTimerStop();
void on_actionNotifiation_show_main_windows_triggered();
void slotActionGroupStatusTriggered(QAction* act);//状态菜单组点击触发
void slotActionGroupTranslateTriggered(QAction* pAct);//翻译菜单组点击触发
void on_actionChange_Style_Sheet_S_triggered();//改变样式菜单触发
//编辑本地用户详细信息
void slotEditInformation();
void slotClientVCardReceived();
void onReceiveFile(QXmppTransferJob* job);//文件接收通知
protected:
virtual void resizeEvent(QResizeEvent *e);
virtual void showEvent(QShowEvent *);
virtual void closeEvent(QCloseEvent *e);
virtual void changeEvent(QEvent* e);
private slots:
void on_actionOptions_O_triggered();
private:
int ReInitMenuOperator(); //初始化菜单
int InitLoginedMenu(); //初始化登录后的相关菜单
int InitOperatorMenu(); //初始始化操作菜单
int InitMenuStatus(); //增加状态菜单
int ClearMenuStatus();
int InitMenuTranslate(); //增加翻译菜单
int ClearMenuTranslate();
int LoadTranslate(QString szLocale = QString());
private:
Ui::MainWindow *ui;
CFrmLogin *m_pLogin;
CFrmMain *m_pTableMain;
bool m_bLogin;
QMenu m_TrayIconMenu;
QSystemTrayIcon m_TrayIcon;
bool m_bTrayShow;
QTimer m_TrayTimer;
//状态菜单
QMenu m_MenuStatus;
QActionGroup m_ActionGroupStatus;
QMap<QXmppPresence::AvailableStatusType, QAction*> m_ActionStatus;
//翻译菜单
QMenu m_MenuTranslate;
QMap<QString, QAction*> m_ActionTranslator;
QActionGroup m_ActionGroupTranslator;
QTranslator *m_pTranslatorQt;
QTranslator *m_pTranslatorApp;
CDlgSendManage* m_pSendManageDlg;//0712文件发送管理窗口
};
#endif // MAINWINDOW_H