예제 #1
0
 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__)
예제 #2
0
 def about(self, widget):
     if not self.aboutdialog:
         self.aboutdialog = AboutDialog(self.mainwin)
     self.aboutdialog.run()
예제 #3
0
 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__)
예제 #4
0
    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)
예제 #5
0
 def __about_menu_item_activate(self, menu_item):
     """Show the about dialog."""
     ad = AboutDialog()
     ad.run()
예제 #6
0
 def about(self):
     dialog = AboutDialog(self)
     dialog.open()
예제 #7
0
 def ShowAboutDialog(self):
     dialog = AboutDialog(self._view)
     dialog.Center()
     dialog.ShowModal()
     dialog.Destroy()
예제 #8
0
 def on_about_button_press(self, instance):
     dlg = AboutDialog()
     dlg.open()