Work in progress
This commit is contained in:
40
live_output.py
Normal file
40
live_output.py
Normal file
@ -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}")
|
||||
176
main.py
176
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_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)
|
||||
|
||||
264
readdisk.py
264
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")
|
||||
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)
|
||||
|
||||
BIN
screenshots/banner2.jpg
Normal file
BIN
screenshots/banner2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 118 KiB |
45
settings.json.old
Normal file
45
settings.json.old
Normal file
@ -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"
|
||||
}
|
||||
2
ui/1
Normal file
2
ui/1
Normal file
@ -0,0 +1,2 @@
|
||||
qt.pysideplugin: Environment variable PYSIDE_DESIGNER_PLUGINS is not set, bailing out.
|
||||
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
|
||||
143
ui/mainwindow.ui
143
ui/mainwindow.ui
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>543</width>
|
||||
<height>544</height>
|
||||
<width>486</width>
|
||||
<height>373</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -205,7 +205,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_serial">
|
||||
<widget class="QGroupBox" name="gb_profile">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
@ -213,31 +213,147 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>USB Serial Ports</string>
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,0">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Profile</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QListView" name="list_view">
|
||||
<property name="resizeMode">
|
||||
<enum>QListView::ResizeMode::Adjust</enum>
|
||||
<widget class="QComboBox" name="combo_port">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Available Ports</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Auto</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_refresh_ports">
|
||||
<property name="text">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Refresh</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="QIcon::ThemeIcon::SystemReboot"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>USB Serial Port</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QComboBox" name="combo_profile"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_add_profile">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add new profile</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="QIcon::ThemeIcon::ListAdd"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_delete_profile">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Delete profile</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset theme="QIcon::ThemeIcon::ListRemove"/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_execute">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Execute</string>
|
||||
</property>
|
||||
@ -245,13 +361,18 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_close">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@ -260,7 +381,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>543</width>
|
||||
<width>486</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
||||
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>685</width>
|
||||
<height>710</height>
|
||||
<width>743</width>
|
||||
<height>832</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -572,6 +572,11 @@
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="combo_disktype">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>.a2r</string>
|
||||
@ -783,6 +788,11 @@
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QComboBox" name="combo_format">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>acorn.adfs.160</string>
|
||||
@ -1489,6 +1499,12 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Command Line</string>
|
||||
</property>
|
||||
@ -1496,7 +1512,7 @@
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="te_command_line">
|
||||
<property name="plainText">
|
||||
<string>gw.exe read --device=COM3 "C:\Users\Rainer\Downloads\GreaseweazleGUI-v2.127\mydisk.scp"</string>
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -1511,6 +1527,15 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QTextEdit" name="te_console">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="acceptDrops">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
@ -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></string>
|
||||
<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></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -1549,16 +1574,32 @@ li.checked::marker { content: "\2612"; }
|
||||
<property name="text">
|
||||
<string>Launch</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_abort">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Abort</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_back">
|
||||
<property name="text">
|
||||
<string>Back</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
||||
@ -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))
|
||||
|
||||
360
ui_read_disk.py
360
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"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
|
||||
@ -935,8 +958,9 @@ class Ui_ReadDialog(object):
|
||||
"li.unchecked::marker { content: \"\\2610\"; }\n"
|
||||
"li.checked::marker { content: \"\\2612\"; }\n"
|
||||
"</style></head><body style=\" font-family:'Fira Sans'; font-size:10pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<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>", None))
|
||||
"<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>", 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user