def init_variable(self): self._disk = LanZouCloud() self._config = "./config.pkl" self._folder_list = {} self._file_list = {} self._path_list = {} self._path_list_old = {} self._locs = {} self._parent_id = -1 # --> .. self._work_name = "" # share disk rec, not use now self._work_id = -1 # disk folder id self._old_work_id = self._work_id # 用于上传完成后判断是否需要更新disk界面 self.load_settings() if os.name == 'nt': self._disk.set_rar_tool("./rar.exe") else: self._disk.set_rar_tool("/usr/bin/rar") # 登录器 self.login_luncher = LoginLuncher(self._disk) self.login_luncher.code.connect(self.login_update_ui) # 下载器 self.download_manager = DownloadManager(self._disk) self.download_manager.downloaders_msg.connect(self.show_status) self.download_manager.download_mgr_msg.connect(self.show_status) self.download_manager.finished.connect( lambda: self.show_status("所有下载任务已完成!", 7000)) # 上传器,信号在登录更新界面设置 self.upload_dialog = UploadDialog() self.upload_dialog.new_infos.connect(self.call_upload) # 文件描述更新器 self.desc_fetcher = DescFetcher(self._disk) self.desc_fetcher.desc.connect(self.call_update_desc) # 设置 tab self.tabWidget.setCurrentIndex(0) self.tabWidget.removeTab(2) self.tabWidget.removeTab(1) self.disk_tab.setEnabled(False) self.rec_tab.setEnabled(False) # 状态栏 self._msg_label = QLabel() self._msg_label.setObjectName("msg_label") self.statusbar.addWidget(self._msg_label) # 重命名、修改简介与新建文件夹对话框 self.rename_dialog = RenameDialog() self.rename_dialog.out.connect(self.rename_set_desc_and_mkdir) # 菜单栏关于 self.about_dialog = AboutDialog() self.about_dialog.set_values(self.__version__)
def about(self, widget): if not self.aboutdialog: self.aboutdialog = AboutDialog(self.mainwin) self.aboutdialog.run()
def init_workers(self): # 登录器 self.login_luncher = LoginLuncher(self._disk) self.login_luncher.code.connect(self.login_update_ui) # 登出器 self.logout_worker = LogoutWorker() self.logout_worker.successed.connect(self.call_logout_update_ui) # 下载器 self.download_manager = DownloadManager() self.download_manager.downloaders_msg.connect(self.show_status) self.download_manager.download_mgr_msg.connect(self.show_status) self.download_manager.finished.connect( lambda: self.show_status("所有下载任务已完成!", 7000)) # 获取更多信息,直链、下载次数等 self.more_info_worker = GetMoreInfoWorker() self.more_info_worker.msg.connect(self.show_status) self.more_info_worker.infos.connect(self.show_info_dialog) # 登录文件列表更新器 self.list_refresher = ListRefresher(self._disk) self.list_refresher.err_msg.connect(self.show_status) self.list_refresher.infos.connect(self.update_lists) # 获取所有文件夹fid,并移动 self.all_folders_worker = GetAllFoldersWorker() self.all_folders_worker.msg.connect(self.show_status) self.all_folders_worker.infos.connect(self.show_move_file_dialog) self.all_folders_worker.moved.connect( lambda: self.list_refresher.set_values(self._work_id, False, True, False)) # 更新文件列表 # 重命名、修改简介、新建文件夹 self.rename_mkdir_worker = RenameMkdirWorker() self.rename_mkdir_worker.msg.connect(self.show_status) self.rename_mkdir_worker.update.connect( self.list_refresher.set_values) # 更新界面 # 设置文件(夹)提取码 self.set_pwd_worker = SetPwdWorker() self.set_pwd_worker.msg.connect(self.show_status) self.set_pwd_worker.update.connect( self.list_refresher.set_values) # 更新界面 # 删除文件(夹) self.remove_files_worker = RemoveFilesWorker(self._disk) self.remove_files_worker.msg.connect(self.show_status) # 显示错误提示 self.remove_files_worker.finished.connect( lambda: self.list_refresher.set_values(self._work_id)) # 更新界面 # 上传器,信号在登录更新界面设置 self.upload_dialog = UploadDialog() self.upload_dialog.new_infos.connect(self.call_upload) # 文件描述与提取码更新器 self.desc_pwd_fetcher = DescPwdFetcher() self.desc_pwd_fetcher.desc.connect(self.call_update_desc_pwd) self.desc_pwd_fetcher.tasks.connect( self.call_download_manager_thread) # 连接下载管理器线程 # 设置 tab self.tabWidget.setCurrentIndex(0) self.tabWidget.removeTab(2) self.tabWidget.removeTab(1) self.disk_tab.setEnabled(False) self.rec_tab.setEnabled(False) # 状态栏 self._msg_label = QLabel() self._msg_label.setObjectName("msg_label") self.statusbar.addWidget(self._msg_label) # 重命名、修改简介与新建文件夹对话框 self.rename_dialog = RenameDialog() self.rename_dialog.out.connect(self.call_rename_mkdir_worker) # 修改设置 提取码对话框 self.set_pwd_dialog = SetPwdDialog() self.set_pwd_dialog.new_infos.connect(self.set_passwd) # 菜单栏关于 self.about_dialog = AboutDialog() self.about_dialog.set_values(self.__version__)
def init_workers(self): # 登录器 self.login_luncher = LoginLuncher(self._disk) self.login_luncher.code.connect(self.login_update_ui) self.login_luncher.update_cookie.connect(self.call_update_cookie) # 登出器 self.logout_worker = LogoutWorker() self.logout_worker.successed.connect(self.call_logout_update_ui) # 下载器 self.download_manager = DownloadManager() self.download_manager.downloaders_msg.connect(self.show_status) self.download_manager.download_mgr_msg.connect(self.show_status) self.download_manager.finished.connect( lambda: self.show_status("所有下载任务已完成!", 2999)) # 获取更多信息,直链、下载次数等 self.info_dialog = InfoDialog() # 对话框 self.info_dialog.setWindowModality(Qt.ApplicationModal) # 窗口前置 self.more_info_worker = GetMoreInfoWorker() # 后台更新线程 self.more_info_worker.msg.connect(self.show_status) self.more_info_worker.infos.connect(self.info_dialog.set_values) self.more_info_worker.dl_link.connect( self.info_dialog.tx_dl_link.setText) self.info_dialog.get_dl_link.connect(self.more_info_worker.get_dl_link) # 登录文件列表更新器 self.list_refresher = ListRefresher(self._disk) self.list_refresher.err_msg.connect(self.show_status) self.list_refresher.infos.connect(self.update_disk_lists) self.list_refresher.infos.connect(lambda: self.show_status("")) # 获取所有文件夹fid,并移动 self.all_folders_worker = GetAllFoldersWorker() self.all_folders_worker.msg.connect(self.show_status) self.all_folders_worker.infos.connect(self.show_move_file_dialog) self.all_folders_worker.moved.connect( lambda: self.list_refresher.set_values(self._work_id, True, False, False)) # 更新文件列表 # 重命名、修改简介、新建文件夹 self.rename_mkdir_worker = RenameMkdirWorker() self.rename_mkdir_worker.msg.connect(self.show_status) self.rename_mkdir_worker.update.connect( self.list_refresher.set_values) # 更新界面 # 设置文件(夹)提取码 self.set_pwd_worker = SetPwdWorker() self.set_pwd_worker.msg.connect(self.show_status) self.set_pwd_worker.update.connect( self.list_refresher.set_values) # 更新界面 # 删除文件(夹) self.remove_files_worker = RemoveFilesWorker(self._disk) self.remove_files_worker.msg.connect(self.show_status) # 显示错误提示 self.remove_files_worker.finished.connect( lambda: self.list_refresher.set_values(self._work_id)) # 更新界面 # 上传器,信号在登录更新界面设置 self.upload_dialog = UploadDialog() self.upload_dialog.new_infos.connect(self.call_upload) # 文件描述与提取码更新器 self.desc_pwd_fetcher = DescPwdFetcher() self.desc_pwd_fetcher.desc.connect(self.call_update_desc_pwd) self.desc_pwd_fetcher.tasks.connect( self.call_download_manager_thread) # 连接下载管理器线程 # 设置 tab self.tabWidget.setCurrentIndex(0) self.tabWidget.removeTab(2) self.tabWidget.removeTab(1) self.disk_tab.setEnabled(False) self.rec_tab.setEnabled(False) # 状态栏 self._msg_label = QLabel() self._msg_movie_lb = QLabel() self._msg_movie = QMovie("src/loading_more.gif") self._msg_movie.setScaledSize(QSize(24, 24)) self._msg_movie_lb.setMovie(self._msg_movie) self._msg_label.setObjectName("msg_label") self._msg_movie_lb.setObjectName("msg_movie_lb") self.statusbar.addWidget(self._msg_movie_lb) self.statusbar.addWidget(self._msg_label) # 重命名、修改简介与新建文件夹对话框 self.rename_dialog = RenameDialog() self.rename_dialog.out.connect(self.call_rename_mkdir_worker) # 修改设置 提取码对话框 self.set_pwd_dialog = SetPwdDialog() self.set_pwd_dialog.new_infos.connect(self.set_passwd) # 菜单栏关于 self.about_dialog = AboutDialog() self.about_dialog.set_values(self.__version__) # 菜单栏设置 self.setting_dialog = SettingDialog(self._config_file, self._default_settings) self.setting_dialog.saved.connect( lambda: self.load_settings(ref_ui=True)) # 登录回收站信息更新器 self.get_rec_lists_worker = GetRecListsWorker(self._disk) self.get_rec_lists_worker.msg.connect(self.show_status) self.get_rec_lists_worker.infos.connect(self.update_rec_lists) self.get_rec_lists_worker.folders.connect( lambda: self.show_status('', 0)) self.get_rec_lists_worker.folders.connect( self.pop_up_rec_folder_dialog) # 回收站操作器 self.rec_manipulator = RecManipulator(self._disk) self.rec_manipulator.msg.connect(self.show_status) self.rec_manipulator.successed.connect(self.get_rec_lists_worker.start) # 检查软件版本 self.check_update_worker = CheckUpdateWorker() self.about_dialog.check_update.connect( self.check_update_worker.set_values) self.check_update_worker.infos.connect(self.about_dialog.show_update) self.check_update_worker.bg_update_infos.connect( self.show_new_version_msg)
def __about_menu_item_activate(self, menu_item): """Show the about dialog.""" ad = AboutDialog() ad.run()
def about(self): dialog = AboutDialog(self) dialog.open()
def ShowAboutDialog(self): dialog = AboutDialog(self._view) dialog.Center() dialog.ShowModal() dialog.Destroy()
def on_about_button_press(self, instance): dlg = AboutDialog() dlg.open()