1 #ifndef SEAFILE_CLIENT_INIT_VDRIVE_DIALOG_H 2 #define SEAFILE_CLIENT_INIT_VDRIVE_DIALOG_H 3 4 #include <QDialog> 5 #include "ui_init-vdrive-dialog.h" 6 #include "account.h" 7 #include "api/requests.h" 8 9 class LocalRepo; 10 class QTimer; 11 12 class InitVirtualDriveDialog : public QDialog, 13 public Ui::InitVirtualDriveDialog 14 { 15 Q_OBJECT 16 public: 17 InitVirtualDriveDialog(const Account& account, QWidget *parent=0); 18 19 private slots: 20 void onGetDefaultRepoSuccess(bool exists, const QString& repo_id); 21 void onGetDefaultRepoFailure(const ApiError& error); 22 void onCreateDefaultRepoSuccess(const QString& repo_id); 23 void onCreateDefaultRepoFailure(const ApiError& error); 24 void onDownloadRepoSuccess(const RepoDownloadInfo& info); 25 void onDownloadRepoFailure(const ApiError& error); 26 void checkDownloadProgress(); 27 void start(); 28 void onCancel(); 29 void openVirtualDisk(); 30 31 private: 32 Q_DISABLE_COPY(InitVirtualDriveDialog) 33 34 void getDefaultRepo(); 35 void startDownload(const QString& repo_id); 36 void createLoadingView(); 37 void createDefaultRepo(); 38 void setStatusText(const QString& status); 39 void setStatusIcon(const QString& path); 40 void ensureVisible(); 41 void finish(); 42 void fail(const QString& reason); 43 44 GetDefaultRepoRequest *get_default_repo_req_; 45 CreateDefaultRepoRequest *create_default_repo_req_; 46 DownloadRepoRequest *download_default_repo_req_; 47 48 QString default_repo_id_; 49 QString default_repo_path_; 50 51 Account account_; 52 53 QTimer *check_download_timer_; 54 }; 55 56 #endif // SEAFILE_CLIENT_INIT_VDRIVE_DIALOG_H 57