def __init__(self, app): QMainWindow.__init__(self) Ui_MainWindow.__init__(self) self.setupUi(self) self.setWindowTitle("BlobBackup") self.setWindowIcon(QIcon(get_resource_path("images/logo.ico"))) self.app = app self.threads = {} self.thread = None self.log_text_edit.setMaximumBlockCount(500) self.log_text_edit.setLineWrapMode(QPlainTextEdit.LineWrapMode.NoWrap) self.log_file_thread = LogFileThread() self.log_file_thread.start() self.log_file_thread.updated.connect(self.add_log) self.full_log_button.pressed.connect(self.open_log_file) self.show_everything_radio_button.toggled.connect( self.log_text_edit.clear) self.only_errors_radio_button.toggled.connect( lambda: self.update_logs(force=True)) self.backups_tree_widget.itemClicked.connect(self.update_logs) self.tool_bar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.tool_bar.setIconSize(QSize(10, 10)) self.go_action.setIcon(QIcon(get_resource_path("images/go.png"))) self.stop_action.setIcon(QIcon(get_resource_path("images/stop.png"))) self.view_action.setIcon(QIcon(get_resource_path("images/view.png"))) self.delete_action.setIcon( QIcon(get_resource_path("images/delete.png"))) self.edit_action.setIcon(QIcon(get_resource_path("images/edit.png"))) self.add_new_backup_action.triggered.connect(self.add_new_backup) self.connect_to_existing_backup_action.triggered.connect( self.connect_backup) self.delete_action.triggered.connect(self.delete_backup) self.edit_action.triggered.connect(self.edit_backup) self.backups_tree_widget.itemDoubleClicked.connect(self.edit_backup) self.go_action.triggered.connect(self.go_backup) self.stop_action.triggered.connect(self.stop_backup) self.view_action.triggered.connect(self.view_backup) self.exit_action.triggered.connect(self.exit) self.backups_tree_widget.itemClicked.connect(self.set_go_action) self.website_action.triggered.connect( lambda: webbrowser.open("https://blobbackup.com/docs.php")) self.run_all_action.triggered.connect(lambda: self.run_all(None)) self.run_local_action.triggered.connect( lambda: self.run_all("Local Directory")) self.run_aws_action.triggered.connect( lambda: self.run_all("Amazon AWS")) self.run_gcp_action.triggered.connect( lambda: self.run_all("Google Cloud")) self.run_azure_action.triggered.connect( lambda: self.run_all("Microsoft Azure")) self.run_b2_action.triggered.connect( lambda: self.run_all("Backblaze B2")) self.run_s3_action.triggered.connect( lambda: self.run_all("S3 Storage")) self.run_sftp_only.triggered.connect(lambda: self.run_all("SFTP")) self.add_one_to_start_button.pressed.connect( self.add_new_backup_action.trigger) self.populate()