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 <QRadioButton>
00016 #include <QDesktopWidget>
00017
00018 #include "datatypes/message.h"
00019 #include "datatypes/friend.h"
00020
00021 #include "widgets/messagebrowser.h"
00022 #include "widgets/uiaccountsettings.h"
00023 #include "widgets/messages/qmessagelistwidget.h"
00024
00025 #include "servicemgr.h"
00026
00027 namespace Ui {
00028 class MessageBrowserPanel;
00029 }
00030
00042 class MessageBrowserPanel : public QWidget
00043 {
00044 Q_OBJECT
00045 public:
00051 explicit MessageBrowserPanel(QWidget *parent = 0);
00052
00060 explicit MessageBrowserPanel(ServiceMgr *mgr, QWidget *parent = 0);
00061
00063 ~MessageBrowserPanel();
00064
00070 void init();
00071
00077 void hideAll(QLayout *layout);
00078
00084 void showAll(QLayout *layout);
00085
00092 enum WindowState {
00093 WindowMessageList,
00094 WindowMessage
00095 };
00096
00102 void setState(WindowState state);
00103
00107 void setState();
00108
00114 enum MessagesState {
00115 MessagesInbox,
00116 MessagesOutbox,
00117 MessagesDrafts
00118 };
00119
00125 void setMessagesState(MessagesState state);
00126
00127 void setMessagesVisible(const bool isShow);
00128
00129 signals:
00135 void openMessage(Message msg);
00136
00142 void deleteMessage(Message msg);
00143
00147 void newMessage();
00148
00152 void replyMessage(Message msg);
00153
00157 void editDraftMessage(Message msg);
00158 public slots:
00166 void showFriendMessages(Friend fd);
00167
00168 private:
00169 Ui::MessageBrowserPanel *ui;
00170 ServiceMgr *sm;
00171 MessageBrowser *mb;
00172 QMessageListWidget *messagesPanel;
00173
00174 Friend currentFriend;
00175
00176 bool isFriendMessages;
00177 bool isPortraitMode;
00178 bool isMessagesUpdate;
00179 bool isFeedUpdate;
00180
00181
00182 WindowState state;
00183
00184 MessagesState msgState;
00185
00186 QRadioButton *messagesradb;
00187 QRadioButton *newsradb;
00188 QPushButton *buttonRefreshMessages;
00189 QPushButton *buttonInbox;
00190 QPushButton *buttonOutbox;
00191 QPushButton *buttonDrafts;
00192 QPushButton *buttonNewMsg;
00193 QPushButton *buttonSaveDraft;
00194 QPushButton *buttonEditDraft;
00195 QPushButton *buttonReply;
00196 QPushButton *buttonDeleteMsg;
00197 QPushButton *buttonBack;
00198 QFont usedFont;
00199
00200 void ownrSelected(Message msg, bool isNeedUpdateState);
00201
00202 private slots:
00203 void deleteMessageClicked();
00204 void newMessageClicked();
00205 void replyMessageClicked();
00206 void editDraftMessage();
00207
00208 void orientationChanged();
00209 void ownrSelected(Message msg);
00210
00211 void showMessagesPanel(bool isShow);
00212
00213 void hideMessage();
00214
00215 void refreshListMessages();
00216 void refreshListMessages(bool isNeedUpdate);
00217
00218 void updateListMessages(MessageList list, bool isLastUpdate);
00219 void updateMessage(Message message);
00220 void updateAccounts(QString accoutId, AccountList list);
00221 };
00222
00223 #endif // MESSAGEBROWSERPANEL_H