def on_add_button(self): existing_items = self.create_list() default_dir = FSGSDirectories.get_floppies_dir() if self.cd_mode: dialog = LauncherFilePicker(self.get_window(), gettext("Select Multiple CD-ROMs"), "cd", multiple=True) else: dialog = LauncherFilePicker(self.get_window(), gettext("Select Multiple Floppies"), "floppy", multiple=True) if not dialog.show_modal(): print("dialog.show returned false") return print("dialog.show returned true") paths = dialog.get_paths() paths.sort() print(paths) checksum_tool = ChecksumTool(self.get_window()) for i, path in enumerate(paths): sha1 = checksum_tool.checksum(path) path = Paths.contract_path(path, default_dir) dir, file = os.path.split(path) if os.path.normcase(os.path.normpath(dir)) == \ os.path.normcase(os.path.normpath(default_dir)): path = file existing_items.append((path, sha1)) self.set_new_config(existing_items)
def on_browse(self): if self.mode == self.CD_MODE: title = gettext("Choose CD-ROM Image") # default_dir = FSGSDirectories.get_cdroms_dir() media_type = "cd" elif self.mode == self.TAPE_MODE: title = gettext("Choose Tape Image") media_type = "tape" elif self.mode == self.CARTRIDGE_MODE: title = gettext("Choose Cartridge Image") media_type = "cartridge" else: title = gettext("Choose Floppy Image") # default_dir = FSGSDirectories.get_floppies_dir() media_type = "floppy" dialog = LauncherFilePicker( self.window, title, media_type, LauncherConfig.get(self.config_key)) if not dialog.show_modal(): return path = dialog.get_path() if self.mode == self.CD_MODE: fsgs.amiga.insert_cd(self.drive, path) elif self.mode == self.FLOPPY_MODE: fsgs.amiga.insert_floppy(self.drive, path) else: fsgs.config.set(self.config_key, Paths.contract_path(path))
def insert_floppy(self, drive, path, sha1=None): if sha1 is None: sha1 = ChecksumTool().checksum(path) default_dir = FSGSDirectories.get_floppies_dir() path = Paths.contract_path(path, default_dir) self.set_config([("floppy_drive_{0}".format(drive), path), ("x_floppy_drive_{0}_sha1".format(drive), sha1)])
def on_add_button(self): existing_items = self.create_list() default_dir = FSGSDirectories.get_floppies_dir() if self.cd_mode: dialog = LauncherFilePicker( self.get_window(), gettext("Select Multiple CD-ROMs"), "cd", multiple=True) else: dialog = LauncherFilePicker( self.get_window(), gettext("Select Multiple Floppies"), "floppy", multiple=True) if not dialog.show_modal(): print("dialog.show returned false") return print("dialog.show returned true") paths = dialog.get_paths() paths.sort() print(paths) checksum_tool = ChecksumTool(self.get_window()) for i, path in enumerate(paths): sha1 = checksum_tool.checksum(path) path = Paths.contract_path(path, default_dir) dir, file = os.path.split(path) if os.path.normcase(os.path.normpath(dir)) == \ os.path.normcase(os.path.normpath(default_dir)): path = file existing_items.append((path, sha1)) self.set_new_config(existing_items)
def insert_floppy(self, drive, path, sha1=None): if sha1 is None: sha1 = ChecksumTool().checksum(path) default_dir = FSGSDirectories.get_floppies_dir() path = Paths.contract_path(path, default_dir) self.set_config([ ("floppy_drive_{0}".format(drive), path), ("x_floppy_drive_{0}_sha1".format(drive), sha1)])
def insert_cd(self, drive, path, sha1=None): if sha1 is None: sha1 = "" print("FIXME: not calculating CD checksum just yet") default_dir = FSGSDirectories.get_cdroms_dir() path = Paths.contract_path(path, default_dir) self.set_config([("cdrom_drive_{0}".format(drive), path), ("x_cdrom_drive_{0}_sha1".format(drive), sha1)])
def insert_multiple_floppies(self, insert_paths): paths = [] for path in insert_paths: embedded_files = [] if path.endswith(".zip"): archive = Archive(path) files = archive.list_files() for file in files: name, ext = os.path.splitext(file) # FIXME: get list of floppy extensions from a central # place if ext in [".adf", ".ipf"]: embedded_files.append(file) if len(embedded_files) > 0: embedded_files.sort() print("found embedded floppy images:") print(embedded_files) for file in embedded_files: paths.append(file) else: paths.append(path) default_dir = FSGSDirectories.get_floppies_dir() checksum_tool = ChecksumTool() for i, path in enumerate(paths): sha1 = checksum_tool.checksum(path) path = Paths.contract_path(path, default_dir) if i < 4: self.set_config( [ ("floppy_drive_{0}".format(i), path), ("x_floppy_drive_{0}_sha1".format(i), sha1), ] ) self.set_config( [ ("floppy_image_{0}".format(i), path), ("x_floppy_image_{0}_sha1".format(i), sha1), ] ) # blank the rest of the drives for i in range(len(paths), 4): self.set_config( [ ("floppy_drive_{0}".format(i), ""), ("x_floppy_drive_{0}_sha1".format(i), ""), ] ) # blank the rest of the image list for i in range(len(paths), 20): self.set_config( [ ("floppy_image_{0}".format(i), ""), ("x_floppy_image_{0}_sha1".format(i), ""), ] )
def multi_select(cls, parent=None): default_dir = FSGSDirectories.get_floppies_dir() dialog = LauncherFilePicker(parent, gettext("Select Multiple Floppies"), "floppy", multiple=True) if not dialog.show_modal(): return original_paths = dialog.get_paths() original_paths.sort() paths = [] for path in original_paths: path = Paths.get_real_case(path) embedded_files = [] if path.endswith(".zip"): archive = Archive(path) files = archive.list_files() for file in files: name, ext = os.path.splitext(file) # FIXME: get list of floppy extensions from a central # place if ext in [".adf", ".ipf"]: embedded_files.append(file) if len(embedded_files) > 0: embedded_files.sort() print("found embedded floppy images:") print(embedded_files) for file in embedded_files: paths.append(file) else: paths.append(path) checksum_tool = ChecksumTool(parent) for i, path in enumerate(paths): sha1 = checksum_tool.checksum(path) path = Paths.contract_path(path, default_dir, force_real_case=False) if i < 4: LauncherConfig.set_multiple([ ("floppy_drive_{0}".format(i), path), ("x_floppy_drive_{0}_sha1".format(i), sha1) ]) LauncherConfig.set_multiple([("floppy_image_{0}".format(i), path), ("x_floppy_image_{0}_sha1".format(i), sha1)]) # blank the rest of the drives for i in range(len(paths), 4): LauncherConfig.set_multiple([("floppy_drive_{0}".format(i), ""), ("x_floppy_drive_{0}_sha1".format(i), "")]) # blank the rest of the image list for i in range(len(paths), 20): LauncherConfig.set_multiple([("floppy_image_{0}".format(i), ""), ("x_floppy_image_{0}_sha1".format(i), "")])
def insert_cd(self, drive, path, sha1=None): if sha1 is None: sha1 = "" print("FIXME: not calculating CD checksum just yet") default_dir = FSGSDirectories.get_cdroms_dir() path = Paths.contract_path(path, default_dir) self.set_config([ ("cdrom_drive_{0}".format(drive), path), ("x_cdrom_drive_{0}_sha1".format(drive), sha1)])
def multiselect(cls, parent=None): default_dir = FSGSDirectories.get_floppies_dir() dialog = LauncherFilePicker( parent, gettext("Select Multiple Floppies"), "floppy", multiple=True) if not dialog.show_modal(): return original_paths = dialog.get_paths() original_paths.sort() paths = [] for path in original_paths: path = Paths.get_real_case(path) embedded_files = [] if path.endswith(".zip"): archive = Archive(path) files = archive.list_files() for file in files: name, ext = os.path.splitext(file) # FIXME: get list of floppy extensions from a central # place if ext in [".adf", ".ipf"]: embedded_files.append(file) if len(embedded_files) > 0: embedded_files.sort() print("found embedded floppy images:") print(embedded_files) for file in embedded_files: paths.append(file) else: paths.append(path) checksum_tool = ChecksumTool(parent) for i, path in enumerate(paths): sha1 = checksum_tool.checksum(path) path = Paths.contract_path( path, default_dir, force_real_case=False) if i < 4: LauncherConfig.set_multiple([ ("floppy_drive_{0}".format(i), path), ("x_floppy_drive_{0}_sha1".format(i), sha1)]) LauncherConfig.set_multiple([ ("floppy_image_{0}".format(i), path), ("x_floppy_image_{0}_sha1".format(i), sha1)]) # blank the rest of the drives for i in range(len(paths), 4): LauncherConfig.set_multiple([ ("floppy_drive_{0}".format(i), ""), ("x_floppy_drive_{0}_sha1".format(i), "")]) # blank the rest of the image list for i in range(len(paths), 20): LauncherConfig.set_multiple([ ("floppy_image_{0}".format(i), ""), ("x_floppy_image_{0}_sha1".format(i), "")])
def multi_select(cls, parent=None): default_dir = FSGSDirectories.get_cdroms_dir() dialog = LauncherFilePicker( parent, gettext("Select Multiple CD-ROMs"), "cd", multiple=True ) if not dialog.show_modal(): return paths = dialog.get_paths() paths.sort() # checksum_tool = ChecksumTool(parent) for i, path in enumerate(paths): # sha1 = checksum_tool.checksum(path) sha1 = "" print("FIXME: not calculating CD checksum just yet") path = Paths.contract_path(path, default_dir) if i < 1: LauncherConfig.set_multiple( [ ("cdrom_drive_{0}".format(i), path), ("x_cdrom_drive_{0}_sha1".format(i), sha1), ] ) LauncherConfig.set_multiple( [ ("cdrom_image_{0}".format(i), path), ("x_cdrom_image_{0}_sha1".format(i), sha1), ] ) # blank the rest of the drives for i in range(len(paths), 1): LauncherConfig.set_multiple( [ ("cdrom_drive_{0}".format(i), ""), ("x_cdrom_drive_{0}_sha1".format(i), ""), ] ) # Config.set("x_cdrom_drive_{0}_sha1".format(i), "") # Config.set("x_cdrom_drive_{0}_name".format(i), "") # blank the rest of the image list for i in range(len(paths), Amiga.MAX_CDROM_IMAGES): LauncherConfig.set_multiple( [ ("cdrom_image_{0}".format(i), ""), ("x_cdrom_image_{0}_sha1".format(i), ""), ] )
def multi_select(cls, parent=None, *, config): default_dir = FSGSDirectories.get_cdroms_dir() dialog = LauncherFilePicker( parent, gettext("Select multiple CD-ROMs"), "cd", multiple=True ) if not dialog.show_modal(): return paths = dialog.get_paths() paths.sort() # checksum_tool = ChecksumTool(parent) for i, path in enumerate(paths): # sha1 = checksum_tool.checksum(path) sha1 = "" print("FIXME: not calculating CD checksum just yet") path = Paths.contract_path(path, default_dir) if i < 1: config.set_multiple( [ ("cdrom_drive_{0}".format(i), path), ("x_cdrom_drive_{0}_sha1".format(i), sha1), ] ) config.set_multiple( [ ("cdrom_image_{0}".format(i), path), ("x_cdrom_image_{0}_sha1".format(i), sha1), ] ) # blank the rest of the drives for i in range(len(paths), 1): config.set_multiple( [ ("cdrom_drive_{0}".format(i), ""), ("x_cdrom_drive_{0}_sha1".format(i), ""), ] ) # Config.set("x_cdrom_drive_{0}_sha1".format(i), "") # Config.set("x_cdrom_drive_{0}_name".format(i), "") # blank the rest of the image list for i in range(len(paths), Amiga.MAX_CDROM_IMAGES): config.set_multiple( [ ("cdrom_image_{0}".format(i), ""), ("x_cdrom_image_{0}_sha1".format(i), ""), ] )
def insert_multiple_floppies(self, insert_paths): paths = [] for path in insert_paths: embedded_files = [] if path.endswith(".zip"): archive = Archive(path) files = archive.list_files() for file in files: name, ext = os.path.splitext(file) # FIXME: get list of floppy extensions from a central # place if ext in [".adf", ".ipf"]: embedded_files.append(file) if len(embedded_files) > 0: embedded_files.sort() print("found embedded floppy images:") print(embedded_files) for file in embedded_files: paths.append(file) else: paths.append(path) default_dir = FSGSDirectories.get_floppies_dir() checksum_tool = ChecksumTool() for i, path in enumerate(paths): sha1 = checksum_tool.checksum(path) path = Paths.contract_path(path, default_dir) if i < 4: self.set_config([ ("floppy_drive_{0}".format(i), path), ("x_floppy_drive_{0}_sha1".format(i), sha1), ]) self.set_config([ ("floppy_image_{0}".format(i), path), ("x_floppy_image_{0}_sha1".format(i), sha1), ]) # blank the rest of the drives for i in range(len(paths), 4): self.set_config([ ("floppy_drive_{0}".format(i), ""), ("x_floppy_drive_{0}_sha1".format(i), ""), ]) # blank the rest of the image list for i in range(len(paths), 20): self.set_config([ ("floppy_image_{0}".format(i), ""), ("x_floppy_image_{0}_sha1".format(i), ""), ])
def fix(key): if self.config.get(key): self.config[key] = Paths.contract_path(self.config.get(key), default_dir, force_real_case=False)
def fix(key): if self.config.get(key): self.config[key] = Paths.contract_path( self.config.get(key), default_dir, force_real_case=False )