mysocials-core 1.0
|
00001 00007 #ifndef MESSAGEBROWSERPANEL_H 00008 #define MESSAGEBROWSERPANEL_H 00009 00010 #include <QWidget> 00011 #include <QListWidget> 00012 #include <QMessageBox> 00013 #include <QTreeWidget> 00014 #include <QPushButton> 00015 #include <QDesktopWidget> 00016 00017 #include "datatypes/message.h" 00018 #include "datatypes/friend.h" 00019 00020 #include "widgets/messagebrowser.h" 00021 #include "widgets/uiaccountsettings.h" 00022 00023 #include "servicemgr.h" 00024 00025 namespace Ui { 00026 class MessageBrowserPanel; 00027 } 00028 00040 class MessageBrowserPanel : public QWidget 00041 { 00042 Q_OBJECT 00043 public: 00049 explicit MessageBrowserPanel(QWidget *parent = 0); 00050 00058 explicit MessageBrowserPanel(ServiceMgr *mgr, QWidget *parent = 0); 00059 00061 ~MessageBrowserPanel(); 00062 00068 void init(); 00069 00075 void hideAll(QLayout *layout); 00076 00082 void showAll(QLayout *layout); 00083 00090 enum WindowState { 00091 WindowMessageList, 00092 WindowMessage 00093 }; 00094 00100 void setState(WindowState state); 00101 00105 void setState(); 00106 00112 enum MessagesState { 00113 MessagesInbox, 00114 MessagesOutbox, 00115 MessagesDrafts 00116 }; 00117 00123 void setMessagesState(MessagesState state); 00124 00132 void showAllMessages(); 00133 00134 signals: 00140 void openMessage(Message msg); 00141 00147 void deleteMessage(Message msg); 00148 00152 void newMessage(); 00153 00157 void replyMessage(Message msg); 00158 00162 void editDraftMessage(Message msg); 00163 public slots: 00171 void showFriendMessages(Friend fd); 00172 private: 00173 Ui::MessageBrowserPanel *ui; 00174 ServiceMgr *sm; 00175 MessageBrowser *mb; 00176 00177 Friend currentFriend; 00178 00179 bool isFriendMessages; 00180 bool isInboxMessagesUpdate; 00181 bool isOutboxMessagesUpdate; 00182 00183 bool isPortraitMode; 00184 00185 // current state for window 00186 WindowState state; 00187 00188 MessagesState msgState; 00189 00190 QPushButton *buttonInbox; 00191 QPushButton *buttonOutbox; 00192 QPushButton *buttonDrafts; 00193 QPushButton *buttonNewMsg; 00194 QPushButton *buttonSaveDraft; 00195 QPushButton *buttonEditDraft; 00196 QPushButton *buttonReply; 00197 QPushButton *buttonDeleteMsg; 00198 QPushButton *buttonBack; 00199 00200 QTreeWidgetItem* createMessageWidget(Message msg); 00201 00202 private slots: 00203 void updateListInboxMessages(MessageList list, bool isLastUpdate); 00204 void updateListOutboxMessages(MessageList list, bool isLastUpdate); 00205 void showListDraftMessages(); 00206 00207 void deleteMessageClicked(); 00208 void newMessageClicked(); 00209 void replyMessageClicked(); 00210 void editDraftMessage(); 00211 00212 void orientationChanged(); 00213 00214 void hideMessage(); 00215 00216 void refreshListInboxMessages(); 00217 void refreshListInboxMessages(bool isNeedUpdate); 00218 void refreshListOutboxMessages(); 00219 void refreshListOutboxMessages(bool isNeedUpdate); 00220 00221 void updateAccounts(AccountList list); 00222 00223 void messageSelected(QTreeWidgetItem* item); 00224 00225 }; 00226 00227 #endif // MESSAGEBROWSERPANEL_H