1 #ifndef SEAFILE_CLIENT_UI_ACCOUNT_VIEW_H
2 #define SEAFILE_CLIENT_UI_ACCOUNT_VIEW_H
3 
4 #include <QWidget>
5 
6 #include "utils/singleton.h"
7 #include "ui_account-view.h"
8 
9 class Account;
10 class QAction;
11 class QMenu;
12 class ApiError;
13 class QLabel;
14 
15 /*
16  * The account information area, right below the header
17  */
18 class AccountView : public QWidget,
19                     public Ui::AccountView
20 {
21     Q_OBJECT
22 public:
23     AccountView(QWidget *parent=0);
24 
25 public slots:
26     void onAccountChanged();
27     void showAddAccountDialog();
28     void deleteAccount();
29     void editAccountSettings();
30     void onAccountItemClicked();
31     void updateAccountInfoDisplay();
32 
33 private slots:
34     void updateAvatar();
35     void toggleAccount();
36     void visitServerInBrowser(const QString& link);
37 
38 private:
39     Q_DISABLE_COPY(AccountView)
40 
41     QAction *makeAccountAction(const Account& account);
42     bool eventFilter(QObject *obj, QEvent *event);
43 
44     // Account operations
45     QAction *add_account_action_;
46     QAction *account_settings_action_;
47     QMenu *account_menu_;
48 
49 signals:
50     void refresh();
51 };
52 
53 #endif // SEAFILE_CLIENT_UI_ACCOUNT_VIEW_H
54