From fdfe0948fe98705e9639404e02d63da9046db872 Mon Sep 17 00:00:00 2001 From: Rainer Koschnick Date: Mon, 14 Jul 2025 23:02:07 +0200 Subject: [PATCH] Work in progress --- gw.sh | 2 + live_output.py | 40 +++++ main.py | 178 ++++++++++++++++++-- readdisk.py | 268 +++++++++++++----------------- screenshots/banner2.jpg | Bin 0 -> 120994 bytes settings.json.old | 45 +++++ ui/1 | 2 + ui/mainwindow.ui | 167 ++++++++++++++++--- ui/readdisk.ui | 49 +++++- ui_main_window.py | 149 +++++++++++++---- ui_read_disk.py | 360 +++++++++++++++++++++------------------- 11 files changed, 871 insertions(+), 389 deletions(-) create mode 100755 gw.sh create mode 100644 live_output.py create mode 100644 screenshots/banner2.jpg create mode 100644 settings.json.old create mode 100644 ui/1 diff --git a/gw.sh b/gw.sh new file mode 100755 index 0000000..5d448a8 --- /dev/null +++ b/gw.sh @@ -0,0 +1,2 @@ +#!/bin/bash +gw $* diff --git a/live_output.py b/live_output.py new file mode 100644 index 0000000..ac0cd20 --- /dev/null +++ b/live_output.py @@ -0,0 +1,40 @@ + +import subprocess +import sys +import time + +# A command that produces output over time +# For example, pinging a server +command = ["ping", "-c", "5", "google.com"] + +print(f"--- Starting command: '{' '.join(command)}' ---") + +try: + # Start the subprocess + # stdout=subprocess.PIPE redirects the output so we can capture it + # text=True decodes the output as text using the default encoding + # bufsize=1 enables line-buffering for real-time output + process = subprocess.Popen( + command, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1 + ) + + # Read the output line by line in real-time + if process.stdout: + for line in iter(process.stdout.readline, ''): + print(line, end="") + sys.stdout.flush() # Ensure the output is printed immediately + + # Wait for the process to complete and get the return code + process.wait() + return_code = process.returncode + + print(f"--- Command finished with exit code: {return_code} ---") + +except FileNotFoundError: + print(f"Error: Command not found: {command[0]}") +except Exception as e: + print(f"An error occurred: {e}") diff --git a/main.py b/main.py index 24aa6ee..1cde450 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -import sys +import sys, glob, json, os from PySide6 import QtWidgets from PySide6.QtWidgets import ( QApplication, @@ -10,10 +10,10 @@ from PySide6.QtWidgets import ( QHBoxLayout, QLabel, QFileDialog, + QInputDialog, + QMessageBox, ) from PySide6.QtCore import Slot -import json -import os from readdisk import ReadDiskWindow from ui_main_window import Ui_MainWindow from ui_read_disk import Ui_ReadDialog @@ -23,7 +23,7 @@ class MainWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__() - self.settings = {} + self.settings = self.get_defaults() # Create an instance of the UI class self.ui = Ui_MainWindow() @@ -48,35 +48,183 @@ class MainWindow(QtWidgets.QMainWindow): self.logical_button_group.addButton(self.ui.rb_seek, 11) self.logical_button_group.addButton(self.ui.rb_delays, 12) self.logical_button_group.addButton(self.ui.rb_update_firmware, 13) + self.profile = "GWUIDefault" self.ui.rb_read.setChecked(True) - self.ui.pb_close.clicked.connect(self.close) + # Populate combo_port with /dev/ttyACM* devices + self.populate_serial_ports() + self.profile = "GWUIDefault" + + # Populate combo_profile with available profiles + self.populate_profiles() + self.ui.combo_profile.currentTextChanged.connect(self.on_combo_profile_changed) + + self.load_settings(self.profile) + + self.ui.combo_port.setCurrentText(self.settings.get("device", "Auto")) + self.ui.combo_port.currentTextChanged.connect(self.on_combo_port_text_changed) + self.ui.action_quit.triggered.connect(self.close) + self.ui.pb_close.clicked.connect(self.close) self.ui.pb_execute.clicked.connect(self.on_execute) + self.ui.pb_refresh_ports.clicked.connect(self.populate_serial_ports) + + self.ui.pb_add_profile.clicked.connect(self.on_pb_add_profile) + self.ui.pb_delete_profile.clicked.connect(self.on_pb_delete_profile) + + def on_combo_profile_changed(self, profile_name: str): + if profile_name: + self.profile = profile_name + self.load_settings(self.profile) + self.ui.combo_port.setCurrentText(self.settings.get("device", "Auto")) + + def on_pb_add_profile(self): + text, ok = QInputDialog.getText(self, "Add Profile", "Enter new profile name:") + if ok and text: + self.profile = text + self.settings = self.get_defaults() + self.save_settings(self.profile) + self.populate_profiles() + + self.ui.combo_profile.setCurrentText(self.profile) + self.on_combo_profile_changed(self.profile) + + def on_pb_delete_profile(self): + """Delete the currently selected profile and load the previous one, or defaults if none remain.""" + config_path = self.get_config_path(self.profile) + try: + if os.path.exists(config_path): + os.remove(config_path) + except Exception as e: + QMessageBox.critical(self, "Error", f"Failed to delete profile: {e}") + return + # Refresh profile list + self.populate_profiles() + profiles = [self.ui.combo_profile.itemText(i) for i in range(self.ui.combo_profile.count())] + if profiles: + # Select the previous profile in the list, or the first if deleted was first + idx = profiles.index(self.profile) if self.profile in profiles else 0 + if idx > 0: + idx -= 1 + self.profile = profiles[idx] + self.ui.combo_profile.setCurrentText(self.profile) + self.load_settings(self.profile) + self.ui.combo_port.setCurrentText(self.settings.get("device", "Auto")) + else: + # No profiles left, create default + self.profile = "GWUIDefault" + self.settings = self.get_defaults() + self.save_settings(self.profile) + self.populate_profiles() + self.ui.combo_profile.setCurrentText(self.profile) + self.ui.combo_port.setCurrentText(self.settings.get("device", "Auto")) + + def on_combo_port_text_changed(self, text: str) -> None: + self.settings["device"] = text + self.save_settings(self.profile) + + def get_defaults(self): + return { + "fileprefix": "disk-image", + "filepath": "", + "device": "Auto", + "double_step_enabled": False, + "double_step_value": "1", + "fake_index_enabled": False, + "fake_index_value": "300", + "fake_index_unit": "", + "bitrate_enabled": False, + "bitrate_value": "250", + "revs_enabled": False, + "revs_value": "3", + "drive_select_enabled": False, + "drive_select_value": "A", + "retries_enabled": False, + "retriesAttributeError: 'MainWindow' object has no attribute 'profile'_value": "3", + "pllspec_enabled": False, + "pll_period": "", + "pll_phase": "", + "pll_lowpass": "", + "head_sets_enabled": False, + "head_sets_value": "0-1", + "head_swap_enabled": False, + "ss_legacy_enabled": False, + "cylinder_sets_enabled": False, + "cylinder_sets_value": "0-34,35-79", + "rev_track_data_enabled": False, + "hard_sectors_enabled": False, + "no_clobber_enabled": False, + "raw_enabled": False, + "pin2_enabled": False, + "pin2_high": False, + "pin2_low": False, + "flippy_enabled": False, + "flippy_panasonic": True, + "flippy_teac": False, + "adjust_speed_enabled": False, + "adjust_speed_value": "300", + "adjust_speed_unit": "", + "suffix_value": "", + "inc_enabled": True, + "format_enabled": False, + "format_value": "", + "disktype_value": "" + } + + def get_config_path(self, profile_name: str) -> str: + """Return the full path for a profile config file in ~/.config/gwui/""" + config_dir = os.path.expanduser("~/.config/gwui") + if not os.path.exists(config_dir): + os.makedirs(config_dir, exist_ok=True) + return os.path.join(config_dir, profile_name + ".json") @Slot() def on_execute(self): read_disk_window = ReadDiskWindow() - if self.load_settings("settings.json"): - read_disk_window.set_settings(self.settings) + # read_disk_window.set_port(self.ui.combo_port.currentText()) + read_disk_window.set_settings(self.settings) read_disk_window.exec() self.settings = read_disk_window.get_settings() - self.save_settings("settings.json") + self.settings["device"] = self.ui.combo_port.currentText() + self.save_settings(self.profile) - def load_settings(self, file_name): - if file_name: - if os.path.exists(file_name): - with open(file_name, 'r') as f: + def load_settings(self, profile_name: str): + config_path = self.get_config_path(profile_name) + if profile_name: + if os.path.exists(config_path): + with open(config_path, 'r') as f: self.settings = json.load(f) return True return False - def save_settings(self, file_name): - if file_name: - with open(file_name, 'w') as f: + def save_settings(self, profile_name: str): + config_path = self.get_config_path(profile_name) + if profile_name: + with open(config_path, 'w') as f: json.dump(self.settings, f, indent=2) + def populate_serial_ports(self): + """Populate the combo_port with all /dev/ttyACM* devices.""" + ports = glob.glob('/dev/ttyACM*') + self.ui.combo_port.clear() + self.ui.combo_port.addItem("Auto") + self.ui.combo_port.addItems(ports) + + def populate_profiles(self): + """Populate combo_profile with all config files in ~/.config/gwui/ (minus .json).""" + config_dir = os.path.expanduser("~/.config/gwui") + if not os.path.exists(config_dir): + os.makedirs(config_dir, exist_ok=True) + profiles = [] + for fname in os.listdir(config_dir): + if fname.endswith('.json'): + profiles.append(fname[:-5]) + self.ui.combo_profile.clear() + self.ui.combo_profile.addItems(sorted(profiles)) + # Optionally, set current profile + if self.profile in profiles: + self.ui.combo_profile.setCurrentText(self.profile) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) diff --git a/readdisk.py b/readdisk.py index 43b7164..a3853af 100644 --- a/readdisk.py +++ b/readdisk.py @@ -1,6 +1,6 @@ import sys, os, subprocess from PySide6.QtWidgets import QApplication, QDialog, QButtonGroup, QFileDialog, QMessageBox -from PySide6.QtCore import Slot +from PySide6.QtCore import QCoreApplication, Slot from PySide6.QtGui import QIntValidator # Import the generated UI class from the ui_form.py file from ui_read_disk import Ui_ReadDialog @@ -16,13 +16,11 @@ class ReadDiskWindow(QDialog): self.flippy_type_group = QButtonGroup(self) self.flippy_type_group.addButton(self.ui.rb_panasonic, 1) self.flippy_type_group.addButton(self.ui.rb_teac, 2) - self.pin2_setting_group = QButtonGroup(self) self.pin2_setting_group.addButton(self.ui.rb_pin2_high, 1) self.pin2_setting_group.addButton(self.ui.rb_pin2_low, 2) # --- Connect Signals to Slots --- - self.ui.cb_fake_index.toggled.connect(self.on_update_settings) self.ui.cb_bitrate.toggled.connect(self.on_update_settings) self.ui.cb_double_step.toggled.connect(self.on_update_settings) self.ui.cb_revs.toggled.connect(self.on_update_settings) @@ -62,50 +60,47 @@ class ReadDiskWindow(QDialog): self.ui.le_adjust_speed.textChanged.connect(self.on_update_settings) self.ui.le_suffix.textChanged.connect(self.on_update_settings) self.ui.le_fileprefix.textChanged.connect(self.on_update_settings) - #self.ui.btn_suffix_inc.clicked.connect(self.on_update_settings) - #self.ui.btn_suffix_dec.clicked.connect(self.on_update_settings) - # self.ui.btn_path_select.clicked.connect(self.on_path_select) - self.ui.btn_file_select.clicked.connect(self.on_update_settings) + self.ui.btn_file_select.clicked.connect(self.on_btn_file_select_clicked) self.ui.cb_format.toggled.connect(self.on_update_settings) self.ui.cb_inc.toggled.connect(self.on_update_settings) - - # --- Connect Buttons to Dialog's Built-in Slots --- - # The "Launch" button will "accept" the dialog (like OK) - # The "Back" button will "reject" the dialog (like Cancel) self.ui.btn_launch.clicked.connect(self.on_launch) self.ui.btn_back.clicked.connect(self.reject) + self.ui.btn_path_select.clicked.connect(self.on_btn_path_select_clicked) # Initialize command attribute self.command = "" + self.device = "" + + @Slot() + def on_btn_abort_clicked(self) -> None: + self.abort = True + self.ui.btn_abort.setEnabled(False) + def calc_suffix(self, inc: int) -> None: - # Increments or decrements the numeric value in the suffix text field. + """Increment or decrement the numeric value in the suffix text field.""" try: current_value = int(self.ui.le_suffix.text()) current_value = current_value + inc except ValueError: current_value = 0 - self.ui.le_suffix.setText(str(current_value)) @Slot() - def on_btn_suffix_inc_clicked(self): + def on_btn_suffix_inc_clicked(self) -> None: self.calc_suffix(1) @Slot() - def on_btn_suffix_dec_clicked(self): + def on_btn_suffix_dec_clicked(self) -> None: self.calc_suffix(-1) @Slot() - def on_btn_file_select_clicked(self): - file, ok = QFileDialog.getOpenFileName(self, "Select File", self.ui.le_filepath.text()) - - if file == "": + def on_btn_file_select_clicked(self) -> None: + file, _ = QFileDialog.getOpenFileName(self, "Select File", self.ui.le_filepath.text()) + if not file: return - file_path, file_name = os.path.split(file) name, extension = os.path.splitext(file_name) - self.ui.le_filepath.setText(file_path) self.ui.le_fileprefix.setText(name) self.ui.le_suffix.setText("") @@ -113,29 +108,22 @@ class ReadDiskWindow(QDialog): self.on_update_settings() @Slot() - def on_btn_path_select_clicked(self): + def on_btn_path_select_clicked(self) -> None: path = QFileDialog.getExistingDirectory(self, "Select Folder") - self.ui.le_filepath.setText(path) - self.on_update_settings() + if path: + self.ui.le_filepath.setText(path) + self.on_update_settings() @Slot() - def on_launch(self): - try: - completed = subprocess.run(self.command, check=True) - except FileNotFoundError as e: - QMessageBox.critical(self, "Error", f"Command not found: {e}") - except subprocess.CalledProcessError as e: - QMessageBox.critical(self, "Error", f"Failed to launch command: {e}") + def on_cb_fake_index_toggled(self, checked: bool) -> None: + """Enables or disables the Fake Index widgets.""" + self.ui.le_fake_index.setEnabled(checked) + self.ui.combo_fake_index.setEnabled(checked) + self.on_update_settings() - if self.ui.cb_inc.isChecked(): - self.calc_suffix(1) - - def get_settings(self): - """ - A helper method to gather all settings from the UI into a dictionary. - This is a clean way to pass the data out of the dialog. - """ - settings = { + def get_settings(self) -> dict: + """Gather all settings from the UI into a dictionary.""" + return { "fileprefix": self.ui.le_fileprefix.text(), "filepath": self.ui.le_filepath.text(), "double_step_enabled": self.ui.cb_double_step.isChecked(), @@ -170,7 +158,7 @@ class ReadDiskWindow(QDialog): "pin2_low": self.ui.rb_pin2_low.isChecked(), "flippy_enabled": self.ui.cb_flippy.isChecked(), "flippy_panasonic": self.ui.rb_panasonic.isChecked(), - "flippy_teac": self.ui.rb_teac.isChecked(),'"' + + "flippy_teac": self.ui.rb_teac.isChecked(), "adjust_speed_enabled": self.ui.cb_adjust_speed.isChecked(), "adjust_speed_value": self.ui.le_adjust_speed.text(), "adjust_speed_unit": self.ui.combo_adjust_speed.currentText(), @@ -181,9 +169,8 @@ class ReadDiskWindow(QDialog): "disktype_value": self.ui.combo_disktype.currentText(), } - return settings - - def set_settings(self, settings): + def set_settings(self, settings: dict) -> None: + """Apply a settings dictionary to the UI.""" self.ui.le_fileprefix.setText(settings.get("fileprefix", "")) self.ui.le_filepath.setText(settings.get("filepath", "")) self.ui.cb_double_step.setChecked(settings.get("double_step_enabled", False)) @@ -228,124 +215,103 @@ class ReadDiskWindow(QDialog): self.ui.combo_format.setCurrentText(settings.get("format_value", "")) self.ui.combo_disktype.setCurrentText(settings.get("disktype_value", "")) # Note: command is not set here, as it is generated from UI state + self.device = settings.get("device", "") + self.on_update_settings() - def on_update_settings(self, *args, **kwargs): + def build_command(self) -> tuple[list, str]: + """Build the command list based on the current UI state.""" fileprefix = self.ui.le_fileprefix.text() - drive = "" - bitrate = "" - legacy_ss = "" - revs = "" - retries = "" - fake_index = "" + drive = f"--drive={self.ui.combo_drive_select.currentText()}" if self.ui.cb_drive_select.isChecked() else "" + bitrate = f"::bitrate={self.ui.le_bitrate.text()}" if self.ui.cb_bitrate.isChecked() else "" + legacy_ss = "::legacy_ss" if self.ui.cb_ss_legacy.isChecked() else "" + revs = f"--revs={self.ui.le_revs.text()}" if self.ui.cb_revs.isChecked() else "" + retries = f"--retries={self.ui.le_retries.text()}" if self.ui.cb_retries.isChecked() else "" + fake_index = f"--fake-index={self.ui.le_fake_index.text()}{self.ui.combo_fake_index.currentText()}" if self.ui.cb_fake_index.isChecked() else "" pll = "" - tracks = "" - densel = "" - no_clobber = "" - raw = "" - reverse = "" - hard_sectors = "" - adjust_speed = "" - disktype = "" - - if self.ui.cb_revs.isChecked(): - revs = "--revs=" + self.ui.le_revs.text() - - if self.ui.cb_drive_select.isChecked(): - drive = "--drive=" + self.ui.combo_drive_select.currentText() - - if self.ui.cb_bitrate.isChecked(): - bitrate = "::bitrate=" + self.ui.le_bitrate.text() - - if self.ui.cb_ss_legacy.isChecked(): - legacy_ss = "::legacy_ss" - - if self.ui.cb_retries.isChecked(): - retries = "--retries=" + self.ui.le_retries.text() - - if self.ui.cb_fake_index.isChecked(): command = " ".join(self.command) - - - fake_index = "--fake-index=" + self.ui.le_fake_index.text() + self.ui.combo_fake_index.currentText() - if self.ui.cb_pllspec.isChecked(): - pll = "--pll=period=" + self.ui.le_period.text() + ":phase=m" + self.ui.le_phase.text() - - if self.ui.le_lowpass.text() != "": - pll = pll + ":lowpass=" + self.ui.le_lowpass.text() - - # --tracks combines multiple settings into a single argument - if self.ui.cb_double_step.isChecked(): - tracks = "step=" + self.ui.le_double_step.text() - - if self.ui.cb_cylinder_sets.isChecked(): - if tracks != "": - tracks = tracks + ":" - - tracks = tracks + "c=" + self.ui.le_cylinder_sets.text() - - if self.ui.cb_head_sets.isChecked(): - if tracks != "": - tracks = tracks + ":" - - tracks = tracks + "h=" + self.ui.le_head_sets.text() - - if self.ui.cb_head_swap.isChecked(): - if tracks != "": - tracks = tracks + ":" - - tracks = tracks + "hswap" - - if self.ui.cb_flippy.isChecked(): - if tracks != "": - tracks = tracks + ":" - - if self.ui.rb_panasonic.isChecked(): - tracks = tracks + "h1.off=-8" - else: - tracks = tracks + "h0.off=+8" - - if tracks != "": - tracks = "--tracks=" + tracks - - if self.ui.cb_rev_track_data.isChecked(): - reverse = "--reverse" - - if self.ui.cb_hard_sectors.isChecked(): - hard_sectors = "--hard-sectors" - - if self.ui.cb_no_clobber.isChecked(): - no_clobber = "--no-clobber" - + pll = f"--pll=period={self.ui.le_period.text()}:phase={self.ui.le_phase.text()}" + if self.ui.le_lowpass.text(): + pll += f":lowpass={self.ui.le_lowpass.text()}" + tracks = self._build_tracks() + reverse = "--reverse" if self.ui.cb_rev_track_data.isChecked() else "" + hard_sectors = "--hard-sectors" if self.ui.cb_hard_sectors.isChecked() else "" + no_clobber = "--no-clobber" if self.ui.cb_no_clobber.isChecked() else "" + densel = "" if self.ui.cb_pin2.isChecked(): - if self.ui.rb_pin2_high.isChecked(): - densel = "--densel H" - else: - densel = "--densel L" - - if self.ui.cb_raw.isChecked(): - raw = "--raw" - - if self.ui.cb_adjust_speed.isChecked(): - adjust_speed = "--adjust-speed=" + self.ui.le_adjust_speed.text() + self.ui.combo_adjust_speed.currentText() - - suffix = self.ui.le_suffix.text() - - if suffix != "": - suffix = "-" + suffix - + densel = "--densel H" if self.ui.rb_pin2_high.isChecked() else "--densel L" + raw = "--raw" if self.ui.cb_raw.isChecked() else "" + adjust_speed = f"--adjust-speed={self.ui.le_adjust_speed.text()}{self.ui.combo_adjust_speed.currentText()}" if self.ui.cb_adjust_speed.isChecked() else "" + suffix = f"-{self.ui.le_suffix.text()}" if self.ui.le_suffix.text() else "" filepath = self.ui.le_filepath.text() - disktype = self.ui.combo_disktype.currentText() - generated_filename = fileprefix + suffix + disktype - filename = os.path.join(filepath, generated_filename) + bitrate + legacy_ss - - self.command = [ + format = f"--format={self.ui.combo_format.currentText()}" if self.ui.combo_format.currentText() else "" + generated_filename = f"{fileprefix}{suffix}{disktype}" + filename = os.path.join(filepath, generated_filename) + legacy_ss + bitrate + device = f"--device={self.device}" if self.device and self.device != "Auto" else "" + command = [ item for item in [ - "gw", "read", tracks, revs, drive, densel, - adjust_speed, no_clobber, raw, reverse, + "./gw.sh", "read", tracks, revs, device, drive, densel, + format, adjust_speed, no_clobber, raw, reverse, hard_sectors, fake_index, pll, retries, filename ] if item ] + return command, generated_filename + def _build_tracks(self) -> str: + """Build the --tracks argument from relevant UI fields.""" + tracks = [] + if self.ui.cb_double_step.isChecked(): + tracks.append(f"step={self.ui.le_double_step.text()}") + if self.ui.cb_cylinder_sets.isChecked(): + tracks.append(f"c={self.ui.le_cylinder_sets.text()}") + if self.ui.cb_head_sets.isChecked(): + tracks.append(f"h={self.ui.le_head_sets.text()}") + if self.ui.cb_head_swap.isChecked(): + tracks.append("hswap") + if self.ui.cb_flippy.isChecked(): + if self.ui.rb_panasonic.isChecked(): + tracks.append("h1.off=-8") + else: + tracks.append("h0.off=+8") + return f"--tracks={':'.join(tracks)}" if tracks else "" + + def on_update_settings(self, *args, **kwargs) -> None: + """Update the command and filename fields based on current UI state.""" + self.command, generated_filename = self.build_command() self.ui.le_filename.setText(generated_filename) self.ui.te_command_line.setPlainText(" ".join(self.command)) + + @Slot() + def on_launch(self) -> None: + """Run the constructed command using subprocess.Popen and write output to the console widget.""" + self.ui.btn_abort.setEnabled(True) + self.ui.te_console.clear() + self.abort = False + + try: + process = subprocess.Popen( + self.command, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + text=True, + bufsize=1 + ) + if process.stdout: + for line in iter(process.stdout.readline, ''): + self.ui.te_console.append(line.rstrip()) + QCoreApplication.processEvents() + if self.abort: + process.terminate() + self.ui.te_console.append("*** Aborted") + break + + process.wait() + + if process.returncode == 0 and self.ui.cb_inc.isChecked(): + self.calc_suffix(1) + except FileNotFoundError as e: + QMessageBox.critical(self, "Error", f"Command not found: {e}") + except Exception as e: + QMessageBox.critical(self, "Error", f"Failed to launch command: {e}") + + self.ui.btn_abort.setEnabled(False) diff --git a/screenshots/banner2.jpg b/screenshots/banner2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c72dd211b23e51b0b2aa4d0e7d4d3bce00aeca1 GIT binary patch literal 120994 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

8DvH}%v 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 Ou1!k+0RI3mzyH}DEfx3x literal 0 HcmV?d00001 diff --git a/settings.json.old b/settings.json.old new file mode 100644 index 0000000..b2ad31b --- /dev/null +++ b/settings.json.old @@ -0,0 +1,45 @@ +{ + "fileprefix": "Test", + "filepath": "/home/arkay/Emulation/Disks/Test", + "double_step_enabled": false, + "double_step_value": "1", + "fake_index_enabled": false, + "fake_index_value": "300", + "fake_index_unit": "rpm", + "bitrate_enabled": false, + "bitrate_value": "250", + "revs_enabled": false, + "revs_value": "3", + "drive_select_enabled": true, + "drive_select_value": "B", + "retries_enabled": true, + "retries_value": "3", + "pllspec_enabled": false, + "pll_period": "5", + "pll_phase": "60", + "pll_lowpass": "", + "head_sets_enabled": false, + "head_sets_value": "0-1", + "head_swap_enabled": false, + "ss_legacy_enabled": false, + "cylinder_sets_enabled": false, + "cylinder_sets_value": "0-34,35-79", + "rev_track_data_enabled": false, + "hard_sectors_enabled": false, + "no_clobber_enabled": false, + "raw_enabled": false, + "pin2_enabled": false, + "pin2_high": false, + "pin2_low": true, + "flippy_enabled": false, + "flippy_panasonic": false, + "flippy_teac": true, + "adjust_speed_enabled": false, + "adjust_speed_value": "300", + "adjust_speed_unit": "rpm", + "suffix_value": "2", + "inc_enabled": true, + "format_enabled": false, + "format_value": "amiga.amigados", + "disktype_value": ".adf" +} \ No newline at end of file diff --git a/ui/1 b/ui/1 new file mode 100644 index 0000000..9e47290 --- /dev/null +++ b/ui/1 @@ -0,0 +1,2 @@ +qt.pysideplugin: Environment variable PYSIDE_DESIGNER_PLUGINS is not set, bailing out. +qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found. diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui index bb9ffbe..e9e8d3e 100644 --- a/ui/mainwindow.ui +++ b/ui/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 543 - 544 + 486 + 373 @@ -205,7 +205,7 @@ - + 0 @@ -213,23 +213,115 @@ - USB Serial Ports + - - - - - QListView::ResizeMode::Adjust + + + + + Profile - - + + + + + + + 0 + 0 + + + + Available Ports + + + + Auto + + + + + + + + + 0 + 0 + + + + Refresh + + + + + + + + + + + + + + + + 0 + 0 + + - Refresh + USB Serial Port + + + + + + + + + + 0 + 0 + + + + Add new profile + + + + + + + + + + + + + + 0 + 0 + + + + Delete profile + + + + + + + + + + + @@ -237,22 +329,51 @@ - - - Execute + + + Qt::Orientation::Vertical - - - - - - Close + + + 20 + 10 + - + + + + + + + + 0 + 0 + + + + Execute + + + + + + + + 0 + 0 + + + + Close + + + + + @@ -260,7 +381,7 @@ 0 0 - 543 + 486 21 diff --git a/ui/readdisk.ui b/ui/readdisk.ui index a7d088c..05cba24 100644 --- a/ui/readdisk.ui +++ b/ui/readdisk.ui @@ -6,8 +6,8 @@ 0 0 - 685 - 710 + 743 + 832 @@ -572,6 +572,11 @@ + + + + + .a2r @@ -783,6 +788,11 @@ + + + + + acorn.adfs.160 @@ -1489,6 +1499,12 @@ + + + 0 + 0 + + Command Line @@ -1496,7 +1512,7 @@ - gw.exe read --device=COM3 "C:\Users\Rainer\Downloads\GreaseweazleGUI-v2.127\mydisk.scp" + @@ -1511,6 +1527,15 @@ + + + 0 + 0 + + + + false + true @@ -1522,7 +1547,7 @@ hr { height: 1px; border-width: 0; } li.unchecked::marker { content: "\2610"; } li.checked::marker { content: "\2612"; } </style></head><body style=" font-family:'Fira Sans'; font-size:10pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Segoe UI'; font-size:9pt;">Using CMD Console mode</span></p></body></html> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> @@ -1549,16 +1574,32 @@ li.checked::marker { content: "\2612"; } Launch + + false + false + + + + false + + + Abort + + + Back + + false + diff --git a/ui_main_window.py b/ui_main_window.py index aa6ffc2..ad575f8 100644 --- a/ui_main_window.py +++ b/ui_main_window.py @@ -16,16 +16,16 @@ from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient, QIcon, QImage, QKeySequence, QLinearGradient, QPainter, QPalette, QPixmap, QRadialGradient, QTransform) -from PySide6.QtWidgets import (QApplication, QGroupBox, QHBoxLayout, QListView, - QMainWindow, QMenu, QMenuBar, QPushButton, - QRadioButton, QSizePolicy, QSpacerItem, QStatusBar, - QVBoxLayout, QWidget) +from PySide6.QtWidgets import (QApplication, QComboBox, QGridLayout, QGroupBox, + QHBoxLayout, QLabel, QMainWindow, QMenu, + QMenuBar, QPushButton, QRadioButton, QSizePolicy, + QSpacerItem, QStatusBar, QVBoxLayout, QWidget) class Ui_MainWindow(object): def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") - MainWindow.resize(543, 544) + MainWindow.resize(486, 373) sizePolicy = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -152,51 +152,126 @@ class Ui_MainWindow(object): self.verticalLayout_4.addWidget(self.gb_actions) - self.gb_serial = QGroupBox(self.central_widget) - self.gb_serial.setObjectName(u"gb_serial") + self.gb_profile = QGroupBox(self.central_widget) + self.gb_profile.setObjectName(u"gb_profile") sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) - sizePolicy2.setHeightForWidth(self.gb_serial.sizePolicy().hasHeightForWidth()) - self.gb_serial.setSizePolicy(sizePolicy2) - self.horizontalLayout_2 = QHBoxLayout(self.gb_serial) + sizePolicy2.setHeightForWidth(self.gb_profile.sizePolicy().hasHeightForWidth()) + self.gb_profile.setSizePolicy(sizePolicy2) + self.gridLayout = QGridLayout(self.gb_profile) + self.gridLayout.setObjectName(u"gridLayout") + self.label_2 = QLabel(self.gb_profile) + self.label_2.setObjectName(u"label_2") + + self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1) + + self.horizontalLayout_2 = QHBoxLayout() self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") - self.list_view = QListView(self.gb_serial) - self.list_view.setObjectName(u"list_view") - self.list_view.setResizeMode(QListView.ResizeMode.Adjust) + self.combo_port = QComboBox(self.gb_profile) + self.combo_port.addItem("") + self.combo_port.setObjectName(u"combo_port") + sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Maximum) + sizePolicy3.setHorizontalStretch(0) + sizePolicy3.setVerticalStretch(0) + sizePolicy3.setHeightForWidth(self.combo_port.sizePolicy().hasHeightForWidth()) + self.combo_port.setSizePolicy(sizePolicy3) - self.horizontalLayout_2.addWidget(self.list_view) + self.horizontalLayout_2.addWidget(self.combo_port) - self.pb_refresh_ports = QPushButton(self.gb_serial) + self.pb_refresh_ports = QPushButton(self.gb_profile) self.pb_refresh_ports.setObjectName(u"pb_refresh_ports") + sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Maximum) + sizePolicy4.setHorizontalStretch(0) + sizePolicy4.setVerticalStretch(0) + sizePolicy4.setHeightForWidth(self.pb_refresh_ports.sizePolicy().hasHeightForWidth()) + self.pb_refresh_ports.setSizePolicy(sizePolicy4) + icon = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.SystemReboot)) + self.pb_refresh_ports.setIcon(icon) self.horizontalLayout_2.addWidget(self.pb_refresh_ports) - self.horizontalLayout_2.setStretch(0, 1) - self.verticalLayout_4.addWidget(self.gb_serial) + self.gridLayout.addLayout(self.horizontalLayout_2, 0, 1, 1, 1) + + self.label = QLabel(self.gb_profile) + self.label.setObjectName(u"label") + sizePolicy5 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Minimum) + sizePolicy5.setHorizontalStretch(0) + sizePolicy5.setVerticalStretch(0) + sizePolicy5.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth()) + self.label.setSizePolicy(sizePolicy5) + + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + + self.horizontalLayout_5 = QHBoxLayout() + self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") + self.combo_profile = QComboBox(self.gb_profile) + self.combo_profile.setObjectName(u"combo_profile") + + self.horizontalLayout_5.addWidget(self.combo_profile) + + self.pb_add_profile = QPushButton(self.gb_profile) + self.pb_add_profile.setObjectName(u"pb_add_profile") + sizePolicy6 = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Fixed) + sizePolicy6.setHorizontalStretch(0) + sizePolicy6.setVerticalStretch(0) + sizePolicy6.setHeightForWidth(self.pb_add_profile.sizePolicy().hasHeightForWidth()) + self.pb_add_profile.setSizePolicy(sizePolicy6) + icon1 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ListAdd)) + self.pb_add_profile.setIcon(icon1) + + self.horizontalLayout_5.addWidget(self.pb_add_profile) + + self.pb_delete_profile = QPushButton(self.gb_profile) + self.pb_delete_profile.setObjectName(u"pb_delete_profile") + sizePolicy6.setHeightForWidth(self.pb_delete_profile.sizePolicy().hasHeightForWidth()) + self.pb_delete_profile.setSizePolicy(sizePolicy6) + icon2 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ListRemove)) + self.pb_delete_profile.setIcon(icon2) + + self.horizontalLayout_5.addWidget(self.pb_delete_profile) + + + self.gridLayout.addLayout(self.horizontalLayout_5, 1, 1, 1, 1) + + + self.verticalLayout_4.addWidget(self.gb_profile) self.widget = QWidget(self.central_widget) self.widget.setObjectName(u"widget") self.horizontalLayout_3 = QHBoxLayout(self.widget) self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") - self.pb_execute = QPushButton(self.widget) - self.pb_execute.setObjectName(u"pb_execute") + self.verticalSpacer = QSpacerItem(20, 10, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) - self.horizontalLayout_3.addWidget(self.pb_execute) - - self.pb_close = QPushButton(self.widget) - self.pb_close.setObjectName(u"pb_close") - - self.horizontalLayout_3.addWidget(self.pb_close) + self.horizontalLayout_3.addItem(self.verticalSpacer) self.verticalLayout_4.addWidget(self.widget) + self.horizontalLayout_4 = QHBoxLayout() + self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") + self.pb_execute = QPushButton(self.central_widget) + self.pb_execute.setObjectName(u"pb_execute") + sizePolicy6.setHeightForWidth(self.pb_execute.sizePolicy().hasHeightForWidth()) + self.pb_execute.setSizePolicy(sizePolicy6) + + self.horizontalLayout_4.addWidget(self.pb_execute) + + self.pb_close = QPushButton(self.central_widget) + self.pb_close.setObjectName(u"pb_close") + sizePolicy6.setHeightForWidth(self.pb_close.sizePolicy().hasHeightForWidth()) + self.pb_close.setSizePolicy(sizePolicy6) + + self.horizontalLayout_4.addWidget(self.pb_close) + + + self.verticalLayout_4.addLayout(self.horizontalLayout_4) + MainWindow.setCentralWidget(self.central_widget) self.menu_bar = QMenuBar(MainWindow) self.menu_bar.setObjectName(u"menu_bar") - self.menu_bar.setGeometry(QRect(0, 0, 543, 21)) + self.menu_bar.setGeometry(QRect(0, 0, 486, 21)) self.menu_file = QMenu(self.menu_bar) self.menu_file.setObjectName(u"menu_file") MainWindow.setMenuBar(self.menu_bar) @@ -229,8 +304,26 @@ class Ui_MainWindow(object): self.rb_seek.setText(QCoreApplication.translate("MainWindow", u"Seek Cylinder", None)) self.rb_delays.setText(QCoreApplication.translate("MainWindow", u"Set Delays", None)) self.rb_update_firmware.setText(QCoreApplication.translate("MainWindow", u"Update Firmware", None)) - self.gb_serial.setTitle(QCoreApplication.translate("MainWindow", u"USB Serial Ports", None)) - self.pb_refresh_ports.setText(QCoreApplication.translate("MainWindow", u"Refresh", None)) + self.gb_profile.setTitle("") + self.label_2.setText(QCoreApplication.translate("MainWindow", u"Profile", None)) + self.combo_port.setItemText(0, QCoreApplication.translate("MainWindow", u"Auto", None)) + +#if QT_CONFIG(tooltip) + self.combo_port.setToolTip(QCoreApplication.translate("MainWindow", u"Available Ports", None)) +#endif // QT_CONFIG(tooltip) +#if QT_CONFIG(tooltip) + self.pb_refresh_ports.setToolTip(QCoreApplication.translate("MainWindow", u"Refresh", None)) +#endif // QT_CONFIG(tooltip) + self.pb_refresh_ports.setText("") + self.label.setText(QCoreApplication.translate("MainWindow", u"USB Serial Port", None)) +#if QT_CONFIG(tooltip) + self.pb_add_profile.setToolTip(QCoreApplication.translate("MainWindow", u"Add new profile", None)) +#endif // QT_CONFIG(tooltip) + self.pb_add_profile.setText("") +#if QT_CONFIG(tooltip) + self.pb_delete_profile.setToolTip(QCoreApplication.translate("MainWindow", u"Delete profile", None)) +#endif // QT_CONFIG(tooltip) + self.pb_delete_profile.setText("") self.pb_execute.setText(QCoreApplication.translate("MainWindow", u"Execute", None)) self.pb_close.setText(QCoreApplication.translate("MainWindow", u"Close", None)) self.menu_file.setTitle(QCoreApplication.translate("MainWindow", u"File", None)) diff --git a/ui_read_disk.py b/ui_read_disk.py index e6a729e..8e37f10 100644 --- a/ui_read_disk.py +++ b/ui_read_disk.py @@ -25,7 +25,7 @@ class Ui_ReadDialog(object): def setupUi(self, ReadDialog): if not ReadDialog.objectName(): ReadDialog.setObjectName(u"ReadDialog") - ReadDialog.resize(685, 710) + ReadDialog.resize(743, 832) ReadDialog.setModal(True) self.verticalLayout_5 = QVBoxLayout(ReadDialog) self.verticalLayout_5.setObjectName(u"verticalLayout_5") @@ -408,6 +408,7 @@ class Ui_ReadDialog(object): self.combo_disktype.addItem("") self.combo_disktype.addItem("") self.combo_disktype.addItem("") + self.combo_disktype.addItem("") self.combo_disktype.setObjectName(u"combo_disktype") self.gridLayout.addWidget(self.combo_disktype, 1, 1, 1, 1) @@ -543,6 +544,7 @@ class Ui_ReadDialog(object): self.combo_format.addItem("") self.combo_format.addItem("") self.combo_format.addItem("") + self.combo_format.addItem("") self.combo_format.setObjectName(u"combo_format") self.gridLayout.addWidget(self.combo_format, 1, 3, 1, 1) @@ -601,6 +603,11 @@ class Ui_ReadDialog(object): self.groupBox_4 = QGroupBox(ReadDialog) self.groupBox_4.setObjectName(u"groupBox_4") + sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Maximum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox_4.sizePolicy().hasHeightForWidth()) + self.groupBox_4.setSizePolicy(sizePolicy) self.verticalLayout = QVBoxLayout(self.groupBox_4) self.verticalLayout.setObjectName(u"verticalLayout") self.te_command_line = QPlainTextEdit(self.groupBox_4) @@ -617,6 +624,12 @@ class Ui_ReadDialog(object): self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.te_console = QTextEdit(self.groupBox_5) self.te_console.setObjectName(u"te_console") + sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + sizePolicy1.setHorizontalStretch(0) + sizePolicy1.setVerticalStretch(0) + sizePolicy1.setHeightForWidth(self.te_console.sizePolicy().hasHeightForWidth()) + self.te_console.setSizePolicy(sizePolicy1) + self.te_console.setAcceptDrops(False) self.te_console.setReadOnly(True) self.verticalLayout_3.addWidget(self.te_console) @@ -632,11 +645,19 @@ class Ui_ReadDialog(object): self.btn_launch = QPushButton(ReadDialog) self.btn_launch.setObjectName(u"btn_launch") + self.btn_launch.setAutoDefault(False) self.horizontalLayout_7.addWidget(self.btn_launch) + self.btn_abort = QPushButton(ReadDialog) + self.btn_abort.setObjectName(u"btn_abort") + self.btn_abort.setEnabled(False) + + self.horizontalLayout_7.addWidget(self.btn_abort) + self.btn_back = QPushButton(ReadDialog) self.btn_back.setObjectName(u"btn_back") + self.btn_back.setAutoDefault(False) self.horizontalLayout_7.addWidget(self.btn_back) @@ -753,180 +774,182 @@ class Ui_ReadDialog(object): self.btn_suffix_dec.setText("") self.cb_inc.setText(QCoreApplication.translate("ReadDialog", u"Auto Inc.", None)) self.label_4.setText(QCoreApplication.translate("ReadDialog", u"Disk Type", None)) - self.combo_disktype.setItemText(0, QCoreApplication.translate("ReadDialog", u".a2r", None)) - self.combo_disktype.setItemText(1, QCoreApplication.translate("ReadDialog", u".adf", None)) - self.combo_disktype.setItemText(2, QCoreApplication.translate("ReadDialog", u".ads", None)) - self.combo_disktype.setItemText(3, QCoreApplication.translate("ReadDialog", u".adm", None)) - self.combo_disktype.setItemText(4, QCoreApplication.translate("ReadDialog", u".adl", None)) - self.combo_disktype.setItemText(5, QCoreApplication.translate("ReadDialog", u".ctr", None)) - self.combo_disktype.setItemText(6, QCoreApplication.translate("ReadDialog", u".d1m", None)) - self.combo_disktype.setItemText(7, QCoreApplication.translate("ReadDialog", u".d2m", None)) - self.combo_disktype.setItemText(8, QCoreApplication.translate("ReadDialog", u".d4m", None)) - self.combo_disktype.setItemText(9, QCoreApplication.translate("ReadDialog", u".d64", None)) - self.combo_disktype.setItemText(10, QCoreApplication.translate("ReadDialog", u".d71", None)) - self.combo_disktype.setItemText(11, QCoreApplication.translate("ReadDialog", u".d81", None)) - self.combo_disktype.setItemText(12, QCoreApplication.translate("ReadDialog", u".d88", None)) - self.combo_disktype.setItemText(13, QCoreApplication.translate("ReadDialog", u".dcp", None)) - self.combo_disktype.setItemText(14, QCoreApplication.translate("ReadDialog", u".dim", None)) - self.combo_disktype.setItemText(15, QCoreApplication.translate("ReadDialog", u".dmk", None)) - self.combo_disktype.setItemText(16, QCoreApplication.translate("ReadDialog", u".do", None)) - self.combo_disktype.setItemText(17, QCoreApplication.translate("ReadDialog", u".dsd", None)) - self.combo_disktype.setItemText(18, QCoreApplication.translate("ReadDialog", u".dsk", None)) - self.combo_disktype.setItemText(19, QCoreApplication.translate("ReadDialog", u".edsk", None)) - self.combo_disktype.setItemText(20, QCoreApplication.translate("ReadDialog", u".fd", None)) - self.combo_disktype.setItemText(21, QCoreApplication.translate("ReadDialog", u".fdi", None)) - self.combo_disktype.setItemText(22, QCoreApplication.translate("ReadDialog", u".hdm", None)) - self.combo_disktype.setItemText(23, QCoreApplication.translate("ReadDialog", u".hfe", None)) - self.combo_disktype.setItemText(24, QCoreApplication.translate("ReadDialog", u".ima", None)) - self.combo_disktype.setItemText(25, QCoreApplication.translate("ReadDialog", u".img", None)) - self.combo_disktype.setItemText(26, QCoreApplication.translate("ReadDialog", u".imd", None)) - self.combo_disktype.setItemText(27, QCoreApplication.translate("ReadDialog", u".ipf", None)) - self.combo_disktype.setItemText(28, QCoreApplication.translate("ReadDialog", u".mgt", None)) - self.combo_disktype.setItemText(29, QCoreApplication.translate("ReadDialog", u".msa", None)) - self.combo_disktype.setItemText(30, QCoreApplication.translate("ReadDialog", u".nfd", None)) - self.combo_disktype.setItemText(31, QCoreApplication.translate("ReadDialog", u".nsi", None)) - self.combo_disktype.setItemText(32, QCoreApplication.translate("ReadDialog", u".po", None)) - self.combo_disktype.setItemText(33, QCoreApplication.translate("ReadDialog", u".raw", None)) - self.combo_disktype.setItemText(34, QCoreApplication.translate("ReadDialog", u".sf7", None)) - self.combo_disktype.setItemText(35, QCoreApplication.translate("ReadDialog", u".scp", None)) - self.combo_disktype.setItemText(36, QCoreApplication.translate("ReadDialog", u".ssd", None)) - self.combo_disktype.setItemText(37, QCoreApplication.translate("ReadDialog", u".st", None)) - self.combo_disktype.setItemText(38, QCoreApplication.translate("ReadDialog", u".td0", None)) - self.combo_disktype.setItemText(39, QCoreApplication.translate("ReadDialog", u".xdf", None)) + self.combo_disktype.setItemText(0, "") + self.combo_disktype.setItemText(1, QCoreApplication.translate("ReadDialog", u".a2r", None)) + self.combo_disktype.setItemText(2, QCoreApplication.translate("ReadDialog", u".adf", None)) + self.combo_disktype.setItemText(3, QCoreApplication.translate("ReadDialog", u".ads", None)) + self.combo_disktype.setItemText(4, QCoreApplication.translate("ReadDialog", u".adm", None)) + self.combo_disktype.setItemText(5, QCoreApplication.translate("ReadDialog", u".adl", None)) + self.combo_disktype.setItemText(6, QCoreApplication.translate("ReadDialog", u".ctr", None)) + self.combo_disktype.setItemText(7, QCoreApplication.translate("ReadDialog", u".d1m", None)) + self.combo_disktype.setItemText(8, QCoreApplication.translate("ReadDialog", u".d2m", None)) + self.combo_disktype.setItemText(9, QCoreApplication.translate("ReadDialog", u".d4m", None)) + self.combo_disktype.setItemText(10, QCoreApplication.translate("ReadDialog", u".d64", None)) + self.combo_disktype.setItemText(11, QCoreApplication.translate("ReadDialog", u".d71", None)) + self.combo_disktype.setItemText(12, QCoreApplication.translate("ReadDialog", u".d81", None)) + self.combo_disktype.setItemText(13, QCoreApplication.translate("ReadDialog", u".d88", None)) + self.combo_disktype.setItemText(14, QCoreApplication.translate("ReadDialog", u".dcp", None)) + self.combo_disktype.setItemText(15, QCoreApplication.translate("ReadDialog", u".dim", None)) + self.combo_disktype.setItemText(16, QCoreApplication.translate("ReadDialog", u".dmk", None)) + self.combo_disktype.setItemText(17, QCoreApplication.translate("ReadDialog", u".do", None)) + self.combo_disktype.setItemText(18, QCoreApplication.translate("ReadDialog", u".dsd", None)) + self.combo_disktype.setItemText(19, QCoreApplication.translate("ReadDialog", u".dsk", None)) + self.combo_disktype.setItemText(20, QCoreApplication.translate("ReadDialog", u".edsk", None)) + self.combo_disktype.setItemText(21, QCoreApplication.translate("ReadDialog", u".fd", None)) + self.combo_disktype.setItemText(22, QCoreApplication.translate("ReadDialog", u".fdi", None)) + self.combo_disktype.setItemText(23, QCoreApplication.translate("ReadDialog", u".hdm", None)) + self.combo_disktype.setItemText(24, QCoreApplication.translate("ReadDialog", u".hfe", None)) + self.combo_disktype.setItemText(25, QCoreApplication.translate("ReadDialog", u".ima", None)) + self.combo_disktype.setItemText(26, QCoreApplication.translate("ReadDialog", u".img", None)) + self.combo_disktype.setItemText(27, QCoreApplication.translate("ReadDialog", u".imd", None)) + self.combo_disktype.setItemText(28, QCoreApplication.translate("ReadDialog", u".ipf", None)) + self.combo_disktype.setItemText(29, QCoreApplication.translate("ReadDialog", u".mgt", None)) + self.combo_disktype.setItemText(30, QCoreApplication.translate("ReadDialog", u".msa", None)) + self.combo_disktype.setItemText(31, QCoreApplication.translate("ReadDialog", u".nfd", None)) + self.combo_disktype.setItemText(32, QCoreApplication.translate("ReadDialog", u".nsi", None)) + self.combo_disktype.setItemText(33, QCoreApplication.translate("ReadDialog", u".po", None)) + self.combo_disktype.setItemText(34, QCoreApplication.translate("ReadDialog", u".raw", None)) + self.combo_disktype.setItemText(35, QCoreApplication.translate("ReadDialog", u".sf7", None)) + self.combo_disktype.setItemText(36, QCoreApplication.translate("ReadDialog", u".scp", None)) + self.combo_disktype.setItemText(37, QCoreApplication.translate("ReadDialog", u".ssd", None)) + self.combo_disktype.setItemText(38, QCoreApplication.translate("ReadDialog", u".st", None)) + self.combo_disktype.setItemText(39, QCoreApplication.translate("ReadDialog", u".td0", None)) + self.combo_disktype.setItemText(40, QCoreApplication.translate("ReadDialog", u".xdf", None)) self.cb_format.setText(QCoreApplication.translate("ReadDialog", u"Format", None)) - self.combo_format.setItemText(0, QCoreApplication.translate("ReadDialog", u"acorn.adfs.160", None)) - self.combo_format.setItemText(1, QCoreApplication.translate("ReadDialog", u"acorn.adfs.1600", None)) - self.combo_format.setItemText(2, QCoreApplication.translate("ReadDialog", u"acorn.adfs.320", None)) - self.combo_format.setItemText(3, QCoreApplication.translate("ReadDialog", u"acorn.adfs.640", None)) - self.combo_format.setItemText(4, QCoreApplication.translate("ReadDialog", u"acorn.adfs.800", None)) - self.combo_format.setItemText(5, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ds", None)) - self.combo_format.setItemText(6, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ds80", None)) - self.combo_format.setItemText(7, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ss", None)) - self.combo_format.setItemText(8, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ss80", None)) - self.combo_format.setItemText(9, QCoreApplication.translate("ReadDialog", u"akai.1600", None)) - self.combo_format.setItemText(10, QCoreApplication.translate("ReadDialog", u"akai.800", None)) - self.combo_format.setItemText(11, QCoreApplication.translate("ReadDialog", u"amiga.amigados", None)) - self.combo_format.setItemText(12, QCoreApplication.translate("ReadDialog", u"amiga.amigados_hd", None)) - self.combo_format.setItemText(13, QCoreApplication.translate("ReadDialog", u"apple2.appledos.140", None)) - self.combo_format.setItemText(14, QCoreApplication.translate("ReadDialog", u"apple2.nofs.140", None)) - self.combo_format.setItemText(15, QCoreApplication.translate("ReadDialog", u"apple2.prodos.140", None)) - self.combo_format.setItemText(16, QCoreApplication.translate("ReadDialog", u"atari.90", None)) - self.combo_format.setItemText(17, QCoreApplication.translate("ReadDialog", u"atarist.360", None)) - self.combo_format.setItemText(18, QCoreApplication.translate("ReadDialog", u"atarist.400", None)) - self.combo_format.setItemText(19, QCoreApplication.translate("ReadDialog", u"atarist.440", None)) - self.combo_format.setItemText(20, QCoreApplication.translate("ReadDialog", u"atarist.720", None)) - self.combo_format.setItemText(21, QCoreApplication.translate("ReadDialog", u"atarist.800", None)) - self.combo_format.setItemText(22, QCoreApplication.translate("ReadDialog", u"atarist.880", None)) - self.combo_format.setItemText(23, QCoreApplication.translate("ReadDialog", u"coco.decb", None)) - self.combo_format.setItemText(24, QCoreApplication.translate("ReadDialog", u"coco.decb.40t", None)) - self.combo_format.setItemText(25, QCoreApplication.translate("ReadDialog", u"coco.os9.40ds", None)) - self.combo_format.setItemText(26, QCoreApplication.translate("ReadDialog", u"coco.os9.40ss", None)) - self.combo_format.setItemText(27, QCoreApplication.translate("ReadDialog", u"coco.os9.80ds", None)) - self.combo_format.setItemText(28, QCoreApplication.translate("ReadDialog", u"coco.os9.80ss", None)) - self.combo_format.setItemText(29, QCoreApplication.translate("ReadDialog", u"commodore.1541", None)) - self.combo_format.setItemText(30, QCoreApplication.translate("ReadDialog", u"commodore.1571", None)) - self.combo_format.setItemText(31, QCoreApplication.translate("ReadDialog", u"commodore.1581", None)) - self.combo_format.setItemText(32, QCoreApplication.translate("ReadDialog", u"commodore.cmd.fd2000.dd", None)) - self.combo_format.setItemText(33, QCoreApplication.translate("ReadDialog", u"commodore.cmd.fd2000.hd", None)) - self.combo_format.setItemText(34, QCoreApplication.translate("ReadDialog", u"commodore.cmd.fd4000.ed", None)) - self.combo_format.setItemText(35, QCoreApplication.translate("ReadDialog", u"dec.rx01", None)) - self.combo_format.setItemText(36, QCoreApplication.translate("ReadDialog", u"dec.rx02", None)) - self.combo_format.setItemText(37, QCoreApplication.translate("ReadDialog", u"dragon.40ds", None)) - self.combo_format.setItemText(38, QCoreApplication.translate("ReadDialog", u"dragon.40ss", None)) - self.combo_format.setItemText(39, QCoreApplication.translate("ReadDialog", u"dragon.80ds", None)) - self.combo_format.setItemText(40, QCoreApplication.translate("ReadDialog", u"dragon.80ss", None)) - self.combo_format.setItemText(41, QCoreApplication.translate("ReadDialog", u"ensoniq.1600", None)) - self.combo_format.setItemText(42, QCoreApplication.translate("ReadDialog", u"ensoniq.800", None)) - self.combo_format.setItemText(43, QCoreApplication.translate("ReadDialog", u"ensoniq.mirage", None)) - self.combo_format.setItemText(44, QCoreApplication.translate("ReadDialog", u"epson.qx10.320", None)) - self.combo_format.setItemText(45, QCoreApplication.translate("ReadDialog", u"epson.qx10.396", None)) - self.combo_format.setItemText(46, QCoreApplication.translate("ReadDialog", u"epson.qx10.399", None)) - self.combo_format.setItemText(47, QCoreApplication.translate("ReadDialog", u"epson.qx10.400", None)) - self.combo_format.setItemText(48, QCoreApplication.translate("ReadDialog", u"epson.qx10.booter", None)) - self.combo_format.setItemText(49, QCoreApplication.translate("ReadDialog", u"epson.qx10.logo", None)) - self.combo_format.setItemText(50, QCoreApplication.translate("ReadDialog", u"gem.1600", None)) - self.combo_format.setItemText(51, QCoreApplication.translate("ReadDialog", u"hp.mmfm.9885", None)) - self.combo_format.setItemText(52, QCoreApplication.translate("ReadDialog", u"hp.mmfm.9895", None)) - self.combo_format.setItemText(53, QCoreApplication.translate("ReadDialog", u"ibm.1200", None)) - self.combo_format.setItemText(54, QCoreApplication.translate("ReadDialog", u"ibm.1440", None)) - self.combo_format.setItemText(55, QCoreApplication.translate("ReadDialog", u"ibm.160", None)) - self.combo_format.setItemText(56, QCoreApplication.translate("ReadDialog", u"ibm.1680", None)) - self.combo_format.setItemText(57, QCoreApplication.translate("ReadDialog", u"ibm.180", None)) - self.combo_format.setItemText(58, QCoreApplication.translate("ReadDialog", u"ibm.2880", None)) - self.combo_format.setItemText(59, QCoreApplication.translate("ReadDialog", u"ibm.320", None)) - self.combo_format.setItemText(60, QCoreApplication.translate("ReadDialog", u"ibm.360", None)) - self.combo_format.setItemText(61, QCoreApplication.translate("ReadDialog", u"ibm.720", None)) - self.combo_format.setItemText(62, QCoreApplication.translate("ReadDialog", u"ibm.800", None)) - self.combo_format.setItemText(63, QCoreApplication.translate("ReadDialog", u"ibm.dmf", None)) - self.combo_format.setItemText(64, QCoreApplication.translate("ReadDialog", u"ibm.scan", None)) - self.combo_format.setItemText(65, QCoreApplication.translate("ReadDialog", u"mac.400", None)) - self.combo_format.setItemText(66, QCoreApplication.translate("ReadDialog", u"mac.800", None)) - self.combo_format.setItemText(67, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ds", None)) - self.combo_format.setItemText(68, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ds.275", None)) - self.combo_format.setItemText(69, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ss", None)) - self.combo_format.setItemText(70, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ss.275", None)) - self.combo_format.setItemText(71, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ds", None)) - self.combo_format.setItemText(72, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ds.275", None)) - self.combo_format.setItemText(73, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ss", None)) - self.combo_format.setItemText(74, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ss.275", None)) - self.combo_format.setItemText(75, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_32", None)) - self.combo_format.setItemText(76, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_33", None)) - self.combo_format.setItemText(77, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_36", None)) - self.combo_format.setItemText(78, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_37", None)) - self.combo_format.setItemText(79, QCoreApplication.translate("ReadDialog", u"msx.1d", None)) - self.combo_format.setItemText(80, QCoreApplication.translate("ReadDialog", u"msx.1dd", None)) - self.combo_format.setItemText(81, QCoreApplication.translate("ReadDialog", u"msx.2d", None)) - self.combo_format.setItemText(82, QCoreApplication.translate("ReadDialog", u"msx.2dd", None)) - self.combo_format.setItemText(83, QCoreApplication.translate("ReadDialog", u"northstar.fm.ds", None)) - self.combo_format.setItemText(84, QCoreApplication.translate("ReadDialog", u"northstar.fm.ss", None)) - self.combo_format.setItemText(85, QCoreApplication.translate("ReadDialog", u"northstar.mfm.ds", None)) - self.combo_format.setItemText(86, QCoreApplication.translate("ReadDialog", u"northstar.mfm.ss", None)) - self.combo_format.setItemText(87, QCoreApplication.translate("ReadDialog", u"occ1.dd", None)) - self.combo_format.setItemText(88, QCoreApplication.translate("ReadDialog", u"occ1.sd", None)) - self.combo_format.setItemText(89, QCoreApplication.translate("ReadDialog", u"olivetti.m20", None)) - self.combo_format.setItemText(90, QCoreApplication.translate("ReadDialog", u"pc98.2d", None)) - self.combo_format.setItemText(91, QCoreApplication.translate("ReadDialog", u"pc98.2dd", None)) - self.combo_format.setItemText(92, QCoreApplication.translate("ReadDialog", u"pc98.2hd", None)) - self.combo_format.setItemText(93, QCoreApplication.translate("ReadDialog", u"pc98.2hs", None)) - self.combo_format.setItemText(94, QCoreApplication.translate("ReadDialog", u"pc98.n88basic.hd", None)) - self.combo_format.setItemText(95, QCoreApplication.translate("ReadDialog", u"raw.125", None)) - self.combo_format.setItemText(96, QCoreApplication.translate("ReadDialog", u"raw.250", None)) - self.combo_format.setItemText(97, QCoreApplication.translate("ReadDialog", u"raw.500", None)) - self.combo_format.setItemText(98, QCoreApplication.translate("ReadDialog", u"sci.prophet", None)) - self.combo_format.setItemText(99, QCoreApplication.translate("ReadDialog", u"sega.sf7000", None)) - self.combo_format.setItemText(100, QCoreApplication.translate("ReadDialog", u"thomson.1s160", None)) - self.combo_format.setItemText(101, QCoreApplication.translate("ReadDialog", u"thomson.1s320", None)) - self.combo_format.setItemText(102, QCoreApplication.translate("ReadDialog", u"thomson.1s80", None)) - self.combo_format.setItemText(103, QCoreApplication.translate("ReadDialog", u"thomson.2s160", None)) - self.combo_format.setItemText(104, QCoreApplication.translate("ReadDialog", u"thomson.2s320", None)) - self.combo_format.setItemText(105, QCoreApplication.translate("ReadDialog", u"tsc.flex.dsdd", None)) - self.combo_format.setItemText(106, QCoreApplication.translate("ReadDialog", u"tsc.flex.ssdd", None)) - self.combo_format.setItemText(107, QCoreApplication.translate("ReadDialog", u"zx.3dos.ds80", None)) - self.combo_format.setItemText(108, QCoreApplication.translate("ReadDialog", u"zx.3dos.ss40", None)) - self.combo_format.setItemText(109, QCoreApplication.translate("ReadDialog", u"zx.d80.ds80", None)) - self.combo_format.setItemText(110, QCoreApplication.translate("ReadDialog", u"zx.fdd3000.ds80", None)) - self.combo_format.setItemText(111, QCoreApplication.translate("ReadDialog", u"zx.fdd3000.ss40", None)) - self.combo_format.setItemText(112, QCoreApplication.translate("ReadDialog", u"zx.kempston.ds80", None)) - self.combo_format.setItemText(113, QCoreApplication.translate("ReadDialog", u"zx.kempston.ss40", None)) - self.combo_format.setItemText(114, QCoreApplication.translate("ReadDialog", u"zx.opus.ds80", None)) - self.combo_format.setItemText(115, QCoreApplication.translate("ReadDialog", u"zx.opus.ss40", None)) - self.combo_format.setItemText(116, QCoreApplication.translate("ReadDialog", u"zx.plusd.ds80", None)) - self.combo_format.setItemText(117, QCoreApplication.translate("ReadDialog", u"zx.quorum.ds80", None)) - self.combo_format.setItemText(118, QCoreApplication.translate("ReadDialog", u"zx.rocky.ds80", None)) - self.combo_format.setItemText(119, QCoreApplication.translate("ReadDialog", u"zx.rocky.ss40", None)) - self.combo_format.setItemText(120, QCoreApplication.translate("ReadDialog", u"zx.trdos.ds80", None)) - self.combo_format.setItemText(121, QCoreApplication.translate("ReadDialog", u"zx.turbodrive.ds40", None)) - self.combo_format.setItemText(122, QCoreApplication.translate("ReadDialog", u"zx.turbodrive.ds80", None)) - self.combo_format.setItemText(123, QCoreApplication.translate("ReadDialog", u"zx.watford.ds80", None)) - self.combo_format.setItemText(124, QCoreApplication.translate("ReadDialog", u"zx.watford.ss40", None)) + self.combo_format.setItemText(0, "") + self.combo_format.setItemText(1, QCoreApplication.translate("ReadDialog", u"acorn.adfs.160", None)) + self.combo_format.setItemText(2, QCoreApplication.translate("ReadDialog", u"acorn.adfs.1600", None)) + self.combo_format.setItemText(3, QCoreApplication.translate("ReadDialog", u"acorn.adfs.320", None)) + self.combo_format.setItemText(4, QCoreApplication.translate("ReadDialog", u"acorn.adfs.640", None)) + self.combo_format.setItemText(5, QCoreApplication.translate("ReadDialog", u"acorn.adfs.800", None)) + self.combo_format.setItemText(6, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ds", None)) + self.combo_format.setItemText(7, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ds80", None)) + self.combo_format.setItemText(8, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ss", None)) + self.combo_format.setItemText(9, QCoreApplication.translate("ReadDialog", u"acorn.dfs.ss80", None)) + self.combo_format.setItemText(10, QCoreApplication.translate("ReadDialog", u"akai.1600", None)) + self.combo_format.setItemText(11, QCoreApplication.translate("ReadDialog", u"akai.800", None)) + self.combo_format.setItemText(12, QCoreApplication.translate("ReadDialog", u"amiga.amigados", None)) + self.combo_format.setItemText(13, QCoreApplication.translate("ReadDialog", u"amiga.amigados_hd", None)) + self.combo_format.setItemText(14, QCoreApplication.translate("ReadDialog", u"apple2.appledos.140", None)) + self.combo_format.setItemText(15, QCoreApplication.translate("ReadDialog", u"apple2.nofs.140", None)) + self.combo_format.setItemText(16, QCoreApplication.translate("ReadDialog", u"apple2.prodos.140", None)) + self.combo_format.setItemText(17, QCoreApplication.translate("ReadDialog", u"atari.90", None)) + self.combo_format.setItemText(18, QCoreApplication.translate("ReadDialog", u"atarist.360", None)) + self.combo_format.setItemText(19, QCoreApplication.translate("ReadDialog", u"atarist.400", None)) + self.combo_format.setItemText(20, QCoreApplication.translate("ReadDialog", u"atarist.440", None)) + self.combo_format.setItemText(21, QCoreApplication.translate("ReadDialog", u"atarist.720", None)) + self.combo_format.setItemText(22, QCoreApplication.translate("ReadDialog", u"atarist.800", None)) + self.combo_format.setItemText(23, QCoreApplication.translate("ReadDialog", u"atarist.880", None)) + self.combo_format.setItemText(24, QCoreApplication.translate("ReadDialog", u"coco.decb", None)) + self.combo_format.setItemText(25, QCoreApplication.translate("ReadDialog", u"coco.decb.40t", None)) + self.combo_format.setItemText(26, QCoreApplication.translate("ReadDialog", u"coco.os9.40ds", None)) + self.combo_format.setItemText(27, QCoreApplication.translate("ReadDialog", u"coco.os9.40ss", None)) + self.combo_format.setItemText(28, QCoreApplication.translate("ReadDialog", u"coco.os9.80ds", None)) + self.combo_format.setItemText(29, QCoreApplication.translate("ReadDialog", u"coco.os9.80ss", None)) + self.combo_format.setItemText(30, QCoreApplication.translate("ReadDialog", u"commodore.1541", None)) + self.combo_format.setItemText(31, QCoreApplication.translate("ReadDialog", u"commodore.1571", None)) + self.combo_format.setItemText(32, QCoreApplication.translate("ReadDialog", u"commodore.1581", None)) + self.combo_format.setItemText(33, QCoreApplication.translate("ReadDialog", u"commodore.cmd.fd2000.dd", None)) + self.combo_format.setItemText(34, QCoreApplication.translate("ReadDialog", u"commodore.cmd.fd2000.hd", None)) + self.combo_format.setItemText(35, QCoreApplication.translate("ReadDialog", u"commodore.cmd.fd4000.ed", None)) + self.combo_format.setItemText(36, QCoreApplication.translate("ReadDialog", u"dec.rx01", None)) + self.combo_format.setItemText(37, QCoreApplication.translate("ReadDialog", u"dec.rx02", None)) + self.combo_format.setItemText(38, QCoreApplication.translate("ReadDialog", u"dragon.40ds", None)) + self.combo_format.setItemText(39, QCoreApplication.translate("ReadDialog", u"dragon.40ss", None)) + self.combo_format.setItemText(40, QCoreApplication.translate("ReadDialog", u"dragon.80ds", None)) + self.combo_format.setItemText(41, QCoreApplication.translate("ReadDialog", u"dragon.80ss", None)) + self.combo_format.setItemText(42, QCoreApplication.translate("ReadDialog", u"ensoniq.1600", None)) + self.combo_format.setItemText(43, QCoreApplication.translate("ReadDialog", u"ensoniq.800", None)) + self.combo_format.setItemText(44, QCoreApplication.translate("ReadDialog", u"ensoniq.mirage", None)) + self.combo_format.setItemText(45, QCoreApplication.translate("ReadDialog", u"epson.qx10.320", None)) + self.combo_format.setItemText(46, QCoreApplication.translate("ReadDialog", u"epson.qx10.396", None)) + self.combo_format.setItemText(47, QCoreApplication.translate("ReadDialog", u"epson.qx10.399", None)) + self.combo_format.setItemText(48, QCoreApplication.translate("ReadDialog", u"epson.qx10.400", None)) + self.combo_format.setItemText(49, QCoreApplication.translate("ReadDialog", u"epson.qx10.booter", None)) + self.combo_format.setItemText(50, QCoreApplication.translate("ReadDialog", u"epson.qx10.logo", None)) + self.combo_format.setItemText(51, QCoreApplication.translate("ReadDialog", u"gem.1600", None)) + self.combo_format.setItemText(52, QCoreApplication.translate("ReadDialog", u"hp.mmfm.9885", None)) + self.combo_format.setItemText(53, QCoreApplication.translate("ReadDialog", u"hp.mmfm.9895", None)) + self.combo_format.setItemText(54, QCoreApplication.translate("ReadDialog", u"ibm.1200", None)) + self.combo_format.setItemText(55, QCoreApplication.translate("ReadDialog", u"ibm.1440", None)) + self.combo_format.setItemText(56, QCoreApplication.translate("ReadDialog", u"ibm.160", None)) + self.combo_format.setItemText(57, QCoreApplication.translate("ReadDialog", u"ibm.1680", None)) + self.combo_format.setItemText(58, QCoreApplication.translate("ReadDialog", u"ibm.180", None)) + self.combo_format.setItemText(59, QCoreApplication.translate("ReadDialog", u"ibm.2880", None)) + self.combo_format.setItemText(60, QCoreApplication.translate("ReadDialog", u"ibm.320", None)) + self.combo_format.setItemText(61, QCoreApplication.translate("ReadDialog", u"ibm.360", None)) + self.combo_format.setItemText(62, QCoreApplication.translate("ReadDialog", u"ibm.720", None)) + self.combo_format.setItemText(63, QCoreApplication.translate("ReadDialog", u"ibm.800", None)) + self.combo_format.setItemText(64, QCoreApplication.translate("ReadDialog", u"ibm.dmf", None)) + self.combo_format.setItemText(65, QCoreApplication.translate("ReadDialog", u"ibm.scan", None)) + self.combo_format.setItemText(66, QCoreApplication.translate("ReadDialog", u"mac.400", None)) + self.combo_format.setItemText(67, QCoreApplication.translate("ReadDialog", u"mac.800", None)) + self.combo_format.setItemText(68, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ds", None)) + self.combo_format.setItemText(69, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ds.275", None)) + self.combo_format.setItemText(70, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ss", None)) + self.combo_format.setItemText(71, QCoreApplication.translate("ReadDialog", u"micropolis.100tpi.ss.275", None)) + self.combo_format.setItemText(72, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ds", None)) + self.combo_format.setItemText(73, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ds.275", None)) + self.combo_format.setItemText(74, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ss", None)) + self.combo_format.setItemText(75, QCoreApplication.translate("ReadDialog", u"micropolis.48tpi.ss.275", None)) + self.combo_format.setItemText(76, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_32", None)) + self.combo_format.setItemText(77, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_33", None)) + self.combo_format.setItemText(78, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_36", None)) + self.combo_format.setItemText(79, QCoreApplication.translate("ReadDialog", u"mm1.os9.80dshd_37", None)) + self.combo_format.setItemText(80, QCoreApplication.translate("ReadDialog", u"msx.1d", None)) + self.combo_format.setItemText(81, QCoreApplication.translate("ReadDialog", u"msx.1dd", None)) + self.combo_format.setItemText(82, QCoreApplication.translate("ReadDialog", u"msx.2d", None)) + self.combo_format.setItemText(83, QCoreApplication.translate("ReadDialog", u"msx.2dd", None)) + self.combo_format.setItemText(84, QCoreApplication.translate("ReadDialog", u"northstar.fm.ds", None)) + self.combo_format.setItemText(85, QCoreApplication.translate("ReadDialog", u"northstar.fm.ss", None)) + self.combo_format.setItemText(86, QCoreApplication.translate("ReadDialog", u"northstar.mfm.ds", None)) + self.combo_format.setItemText(87, QCoreApplication.translate("ReadDialog", u"northstar.mfm.ss", None)) + self.combo_format.setItemText(88, QCoreApplication.translate("ReadDialog", u"occ1.dd", None)) + self.combo_format.setItemText(89, QCoreApplication.translate("ReadDialog", u"occ1.sd", None)) + self.combo_format.setItemText(90, QCoreApplication.translate("ReadDialog", u"olivetti.m20", None)) + self.combo_format.setItemText(91, QCoreApplication.translate("ReadDialog", u"pc98.2d", None)) + self.combo_format.setItemText(92, QCoreApplication.translate("ReadDialog", u"pc98.2dd", None)) + self.combo_format.setItemText(93, QCoreApplication.translate("ReadDialog", u"pc98.2hd", None)) + self.combo_format.setItemText(94, QCoreApplication.translate("ReadDialog", u"pc98.2hs", None)) + self.combo_format.setItemText(95, QCoreApplication.translate("ReadDialog", u"pc98.n88basic.hd", None)) + self.combo_format.setItemText(96, QCoreApplication.translate("ReadDialog", u"raw.125", None)) + self.combo_format.setItemText(97, QCoreApplication.translate("ReadDialog", u"raw.250", None)) + self.combo_format.setItemText(98, QCoreApplication.translate("ReadDialog", u"raw.500", None)) + self.combo_format.setItemText(99, QCoreApplication.translate("ReadDialog", u"sci.prophet", None)) + self.combo_format.setItemText(100, QCoreApplication.translate("ReadDialog", u"sega.sf7000", None)) + self.combo_format.setItemText(101, QCoreApplication.translate("ReadDialog", u"thomson.1s160", None)) + self.combo_format.setItemText(102, QCoreApplication.translate("ReadDialog", u"thomson.1s320", None)) + self.combo_format.setItemText(103, QCoreApplication.translate("ReadDialog", u"thomson.1s80", None)) + self.combo_format.setItemText(104, QCoreApplication.translate("ReadDialog", u"thomson.2s160", None)) + self.combo_format.setItemText(105, QCoreApplication.translate("ReadDialog", u"thomson.2s320", None)) + self.combo_format.setItemText(106, QCoreApplication.translate("ReadDialog", u"tsc.flex.dsdd", None)) + self.combo_format.setItemText(107, QCoreApplication.translate("ReadDialog", u"tsc.flex.ssdd", None)) + self.combo_format.setItemText(108, QCoreApplication.translate("ReadDialog", u"zx.3dos.ds80", None)) + self.combo_format.setItemText(109, QCoreApplication.translate("ReadDialog", u"zx.3dos.ss40", None)) + self.combo_format.setItemText(110, QCoreApplication.translate("ReadDialog", u"zx.d80.ds80", None)) + self.combo_format.setItemText(111, QCoreApplication.translate("ReadDialog", u"zx.fdd3000.ds80", None)) + self.combo_format.setItemText(112, QCoreApplication.translate("ReadDialog", u"zx.fdd3000.ss40", None)) + self.combo_format.setItemText(113, QCoreApplication.translate("ReadDialog", u"zx.kempston.ds80", None)) + self.combo_format.setItemText(114, QCoreApplication.translate("ReadDialog", u"zx.kempston.ss40", None)) + self.combo_format.setItemText(115, QCoreApplication.translate("ReadDialog", u"zx.opus.ds80", None)) + self.combo_format.setItemText(116, QCoreApplication.translate("ReadDialog", u"zx.opus.ss40", None)) + self.combo_format.setItemText(117, QCoreApplication.translate("ReadDialog", u"zx.plusd.ds80", None)) + self.combo_format.setItemText(118, QCoreApplication.translate("ReadDialog", u"zx.quorum.ds80", None)) + self.combo_format.setItemText(119, QCoreApplication.translate("ReadDialog", u"zx.rocky.ds80", None)) + self.combo_format.setItemText(120, QCoreApplication.translate("ReadDialog", u"zx.rocky.ss40", None)) + self.combo_format.setItemText(121, QCoreApplication.translate("ReadDialog", u"zx.trdos.ds80", None)) + self.combo_format.setItemText(122, QCoreApplication.translate("ReadDialog", u"zx.turbodrive.ds40", None)) + self.combo_format.setItemText(123, QCoreApplication.translate("ReadDialog", u"zx.turbodrive.ds80", None)) + self.combo_format.setItemText(124, QCoreApplication.translate("ReadDialog", u"zx.watford.ds80", None)) + self.combo_format.setItemText(125, QCoreApplication.translate("ReadDialog", u"zx.watford.ss40", None)) self.label_8.setText(QCoreApplication.translate("ReadDialog", u"File Path", None)) self.btn_path_select.setText("") self.label_7.setText(QCoreApplication.translate("ReadDialog", u"Filename", None)) self.btn_file_select.setText("") self.groupBox_4.setTitle(QCoreApplication.translate("ReadDialog", u"Command Line", None)) - self.te_command_line.setPlainText(QCoreApplication.translate("ReadDialog", u"gw.exe read --device=COM3 \"C:\\Users\\Rainer\\Downloads\\GreaseweazleGUI-v2.127\\mydisk.scp\"", None)) + self.te_command_line.setPlainText("") self.groupBox_5.setTitle("") self.te_console.setHtml(QCoreApplication.translate("ReadDialog", u"\n" "\n" -"

Using CMD Console mode

", None)) +"


", None)) self.btn_launch.setText(QCoreApplication.translate("ReadDialog", u"Launch", None)) + self.btn_abort.setText(QCoreApplication.translate("ReadDialog", u"Abort", None)) self.btn_back.setText(QCoreApplication.translate("ReadDialog", u"Back", None)) # retranslateUi