def __init__(self, parent=None): print("RefreshWindow parent =", parent) title = gettext("Updating Database") super().__init__(parent, title, maximizable=False) self.set_icon(fsui.Icon("refresh", "pkg:workspace")) self.layout = fsui.VerticalLayout() self.layout.min_width = 500 self.layout.set_padding(20, 20, 20, 20) self.icon_header = IconHeader(self, fsui.Icon("refresh", "pkg:workspace"), gettext("Updating Database"), "") self.layout.add(self.icon_header, fill=True, margin_bottom=20) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True) self.created_label = fsui.Label(self, "") hori_layout.add(self.created_label, expand=True) hori_layout.add_spacer(20) self.stop_button = fsui.Button(self, gettext("Stop")) self.stop_button.activated.connect(self.on_abort_activated) hori_layout.add(self.stop_button) self.set_size(self.layout.get_min_size()) self.center_on_parent() self.task = DatabaseRefreshTask() self.task.progressed.connect(self.on_progress) self.task.failed.connect(self.on_failure) self.task.succeeded.connect(self.close) self.task.stopped.connect(self.close) self.task.start()
def __init__(self, parent, task): fsui.Window.__init__( self, parent, task.get_task_name()) self.set_icon(fsui.Icon("tools", "pkg:workspace")) self.layout = fsui.VerticalLayout() self.layout.min_width = 500 self.layout.set_padding(20, 20, 20, 20) self.icon_header = IconHeader( self, fsui.Icon("tools", "pkg:workspace"), task.get_task_name(), "") self.layout.add(self.icon_header, fill=True, margin_bottom=20) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True) self.created_label = fsui.Label(self, "") hori_layout.add(self.created_label, expand=True) hori_layout.add_spacer(20) self.abort_button = fsui.Button(self, gettext("Stop")) self.abort_button.activated.connect(self.on_abort_activated) hori_layout.add(self.abort_button) self.set_size(self.layout.get_min_size()) self.center_on_parent() self.task = task self.task.progressed.connect(self.on_progress) self.task.failed.connect(self.on_failure) self.task.succeeded.connect(self.close) self.task.stopped.connect(self.close) self.task.start()
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("joystick-settings", "pkg:workspace") # gettext("Joystick Settings") title = gettext("Joysticks & Gamepads") subtitle = gettext("Configure joysticks and set preferred joystick " "devices") self.add_header(icon, title, subtitle) self.list_view = fsui.ListView(self) self.list_view.set_min_height(140) self.list_view.item_activated.connect(self.on_joystick_activated) image = fsui.Image("workspace:res/16/gamepad.png") for device_name in DeviceManager.get_joystick_names(): if DeviceManager.is_joystick(device_name): self.list_view.add_item(device_name, icon=image) self.layout.add(self.list_view, fill=True, expand=True) label = fsui.Label( self, gettext("Double-click a device entry to configure it (map " "joystick buttons).")) self.layout.add(label, margin_top=10) self.layout.add_spacer(20) self.pref_group = PreferredJoysticksGroup(self) self.layout.add(self.pref_group, fill=True)
def __init__(self, parent): if fsgs.product == "OpenRetro": app_name = "OpenRetro Launcher" else: app_name = "FS-UAE Launcher" title = "{} - {}".format(gettext("About"), app_name) super().__init__(parent, title, minimizable=False, maximizable=False) self.theme = LauncherTheme.get() self.layout = fsui.VerticalLayout() self.layout.set_padding(20) self.icon_header = IconHeader( self, fsui.Icon("fs-uae-launcher", "pkg:launcher"), "{name} {version}".format(name=app_name, version=app.version), "Copyright © 2012-2017 Frode Solheim", ) self.layout.add(self.icon_header, fill=True, margin_bottom=20) self.text_area = fsui.TextArea(self, about_message, read_only=True, font_family="monospace") self.text_area.scroll_to_start() self.text_area.set_min_width(760) self.text_area.set_min_height(340) self.layout.add(self.text_area, fill=True, expand=True) CloseButton.add_to_layout(self, self.layout, margin_top=20)
def __init__(self, parent): super().__init__(parent) self.layout = fsui.VerticalLayout() header = WizardHeader(self, fsui.Icon("fs-uae-launcher", "pkg:launcher"), "Welcome") self.layout.add(header, fill=True, margin_bottom=20) v_layout = fsui.VerticalLayout() self.layout.add(v_layout, margin=20) label = fsui.MultiLineLabel( self, gettext("Welcome to the setup wizard for FS-UAE Launcher!"), SetupWizardPage.WIDTH, ) v_layout.add(label, fill=True, margin_top=0) label = fsui.MultiLineLabel( self, gettext( "You can close this wizard at any time if you do not want to " "use it, and you can also run it again later."), SetupWizardPage.WIDTH, ) v_layout.add(label, fill=True, margin_top=20)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("settings", "pkg:workspace") gettext("Advanced") title = gettext("Advanced Settings") subtitle = gettext("Specify global options and settings which does " "not have UI controls") self.add_header(icon, title, subtitle) label = fsui.MultiLineLabel( self, gettext( "You can write key = value pairs here to set FS-UAE options " "not currently supported by the user interface. This is only a " "temporary feature until the GUI supports all options " "directly."), 640) self.layout.add(label, fill=True, margin_bottom=10) label = fsui.MultiLineLabel( self, gettext( "The options specified here are global and will apply to all " "configurations. Config options such as hardware and memory " "options will be ignored. Options suitable here are options " "like theme options."), 640) self.layout.add(label, fill=True, margin_bottom=10) self.text_area = fsui.TextArea(self, font_family="monospace") self.text_area.set_text(self.get_initial_text()) self.layout.add(self.text_area, fill=True, expand=True) self.text_area.changed.connect(self.update_settings)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("fs-uae-launcher", "pkg:launcher") self.add_header(icon, "{} Launcher".format(fsgs.product)) if fsboot.get("fws") == "1": # We omit the appearance settings, since they have no effect # when running under the workspace environment. pass else: self.add_option(Option.LAUNCHER_THEME) self.add_option(Option.LAUNCHER_FONT_SIZE) self.add_option(Option.LAUNCHER_CLOSE_BUTTONS) self.add_section(gettext("Experimental Features")) # Netplay feature is now enabled by default # self.add_option(Option.NETPLAY_FEATURE) if not openretro: self.add_option(Option.PLATFORMS_FEATURE) # self.add_option(Option.LAUNCHER_CONFIG_FEATURE) # self.add_option(Option.LAUNCHER_SETUP_WIZARD_FEATURE) self.add_section(gettext("Maintenance")) label = fsui.MultiLineLabel( self, gettext( "Defragmenting the databases will improve performance " "by ensuring that tables and indices are stored contiguously " "on disk. It will also reclaim some storage space."), 640) self.layout.add(label, fill=True, margin_top=20) button = fsui.Button(self, gettext("Defragment Databases")) button.activated.connect(self.on_defragment_button) self.layout.add(button, margin_top=20)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("settings", "pkg:workspace") # gettext("WHDLoad Settings") title = gettext("WHDLoad") subtitle = gettext("Options for WHDLoad support in FS-UAE Launcher") self.add_header(icon, title, subtitle) label = fsui.MultiLineLabel(self, gettext( "The following options only apply when you use the automatic " "WHDLoad support in FS-UAE Launcher, for example in relation with " "the online game database."), 640) self.layout.add(label, fill=True, margin_top=0) self.add_option("whdload_splash_delay") label = fsui.Label( self, gettext("Directory for WHDLoad.key file (if you have it):")) self.layout.add(label, margin_top=10) hor_layout = fsui.HorizontalLayout() self.layout.add(hor_layout, margin_top=4, fill=True) label = fsui.Label( self, FSGSDirectories.get_base_dir()) hor_layout.add_spacer(0, expand=True) hor_layout.add(label)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("video-settings", "pkg:workspace") gettext("Video Settings") title = gettext("Video") subtitle = "" self.add_header(icon, title, subtitle) self.add_option("fullscreen") self.add_option("monitor") self.add_section(gettext("Scaling & Filters")) self.add_option("zoom") self.add_option("keep_aspect") # self.add_section(gettext("Filters")) self.add_option("scanlines") self.add_option("rtg_scanlines") self.add_section(gettext("Video Synchronization")) # FIXME: Move 640 to constants label = fsui.MultiLineLabel( self, gettext( "Enabling the following option will synchronize the emulation " "to the display when the emulation refresh rate matches the " "screen refresh rate."), 640, ) self.layout.add(label, fill=True, margin_top=0) self.video_sync_group = self.add_option("video_sync")
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("video-settings", "pkg:workspace") gettext("Advanced Video Settings") title = gettext("Advanced Video") subtitle = "" self.add_header(icon, title, subtitle) self.add_option(Option.FULLSCREEN_MODE) self.add_option(Option.VIDEO_FORMAT) self.low_latency_group = self.add_option(Option.LOW_LATENCY_VSYNC) self.add_section(gettext("OpenGL Settings")) self.add_option(Option.FSAA) self.add_option(Option.TEXTURE_FILTER) self.add_option(Option.TEXTURE_FORMAT) # self.add_section(gettext("Video Synchronization")) self.sync_method_label = fsui.MultiLineLabel(self, gettext( "Depending on your OS and OpenGL drivers, video synchronization " "can use needlessly much CPU (esp. applies to " "Linux). You can experiment with different sync methods " "to improve performance."), 640) self.layout.add(self.sync_method_label, fill=True, margin_top=20) self.sync_method_group = self.add_option(Option.VIDEO_SYNC_METHOD)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("fs-uae-arcade", "pkg:launcher") self.add_header(icon, "{} Arcade".format(Product.base_name)) self.add_option(Option.ARCADE_FULLSCREEN) self.add_option(Option.ARCADE_THEME) self.add_option(Option.ARCADE_INITIAL_FAVORITES)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("joystick-settings", "pkg:workspace") # gettext("Joystick Settings") title = gettext("Controllers") subtitle = gettext( "Configure joysticks and set preferred joystick " "devices" ) self.add_header(icon, title, subtitle) label = fsui.Label( self, gettext("Double-click a controller to configure it:") ) self.layout.add(label, margin_bottom=10) self.list_view = fsui.ListView(self) self.list_view.set_min_height(140) self.list_view.item_activated.connect(self.on_joystick_activated) image = fsui.Image("workspace:res/16x16/gamepad.png") for device_name in DeviceManager.get_joystick_names(): if DeviceManager.is_joystick(device_name): self.list_view.add_item(device_name, icon=image) self.layout.add(self.list_view, fill=True, expand=True) self.layout.add_spacer(20) self.pref_group = PreferredJoysticksGroup(self) self.layout.add(self.pref_group, fill=True) # For reset to defaults function self.options_on_page.add(Option.PRIMARY_JOYSTICK) self.options_on_page.add(Option.SECONDARY_JOYSTICK)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("language-settings", "pkg:workspace") # gettext("Appearance") title = gettext("Language") # gettext("Set language and look for FS-UAE applications") subtitle = gettext("Set language for FS-UAE applications") self.add_header(icon, title, subtitle) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True) # hori_layout.add(fsui.Label(self, gettext("Language:"))) hori_layout.add(fsui.Label(self, gettext("Language:"))) hori_layout.add_spacer(0, expand=True) self.language_choice = LanguageSettingChoice(self) hori_layout.add(self.language_choice) self.layout.add_spacer(20) information = "" # information = gettext( # "A change of language will only affect applications " # "which are restarted after the change.") # information += "\n\n" information += gettext( "When Automatic is specified, your preferred language is set " "based on information from the operating system (or English, " "if a supported language is not detected).") self.layout.add(fsui.MultiLineLabel(self, information, 640))
def __init__(self, parent): title = gettext("About {name}").format(name="FS-UAE Launcher") title = "{} - FS-UAE Launcher".format(gettext("About")) super().__init__(parent, title, minimizable=False, maximizable=False) # buttons, layout = fsui.DialogButtons.create_with_layout(self) # buttons.create_close_button() self.layout = fsui.VerticalLayout() self.layout.set_padding(20) layout = self.layout self.icon_header = IconHeader( self, fsui.Icon("fs-uae-launcher", "pkg:launcher"), "{name} {version}".format(name="FS-UAE Launcher", version=app.version), "Copyright © 2012-2015 Frode Solheim") layout.add(self.icon_header, fill=True, margin_bottom=20) self.text_area = fsui.TextArea(self, about_message, read_only=True, font_family="monospace") self.text_area.scroll_to_start() self.text_area.set_min_width(760) self.text_area.set_min_height(340) layout.add(self.text_area, fill=True, expand=True)
def __init__(self, parent=None): title = gettext("Log Out from Your OAGD.net Account") super().__init__(parent, title, minimizable=False, maximizable=False) self.set_icon(fsui.Icon("password", "pkg:workspace")) self.layout = fsui.VerticalLayout() self.layout.set_padding(20, 20, 20, 20) heading_layout = fsui.HorizontalLayout() self.layout.add(heading_layout) heading_layout.add(fsui.ImageView( self, fsui.Image("workspace:res/48/password.png"))) heading_layout.add_spacer(20) heading_layout_2 = fsui.VerticalLayout() heading_layout.add( heading_layout_2, expand=True, fill=False, valign=0.5) heading_layout_2.add(fsui.HeadingLabel( self, gettext("Log Out from Your OAGD.net Account"))) heading_layout_2.add_spacer(2) heading_layout_2.add(fsui.Label( self, gettext("While logged out you will not get " "database updates"))) self.layout.add_spacer(20) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True) self.created_label = fsui.Label(self, "") hori_layout.add(self.created_label, expand=True) hori_layout.add_spacer(20) self.logout_button = fsui.Button(self, gettext("Log Out")) # self.logout_button.disable() self.logout_button.activated.connect(self.on_logout_activated) hori_layout.add(self.logout_button)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("database-settings", "pkg:workspace") gettext("Game Database Settings") title = gettext("Game Database") subtitle = "" self.add_header(icon, title, subtitle) self.add_option(Option.DATABASE_SHOW_GAMES) self.add_option(Option.DATABASE_SHOW_ADULT) self.add_section(gettext("Additional Databases")) self.add_option(Option.DATABASE_GB, "Game Boy") self.add_option(Option.DATABASE_GBC, "Game Boy Color") self.add_option(Option.DATABASE_GBA, "Game Boy Advance") self.add_option(Option.DATABASE_NES, "Nintendo") self.add_option(Option.DATABASE_SNES, "Super Nintendo") label = fsui.MultiLineLabel( self, gettext("Note: Support for additional game databases is an " "experimental feature and does not provide the " "same level of maturity as Amiga/CDTV/CD32. " "Also, additional plugins are needed to play the " "games."), 640) self.layout.add(label, margin_top=20)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("settings", "pkg:workspace") title = gettext("Experimental Features") subtitle = "" self.add_header(icon, title, subtitle) self.add_option(Option.NETPLAY_FEATURE) self.add_option(Option.LAUNCHER_CONFIG_FEATURE)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("database-settings", "pkg:workspace") title = gettext("Game Platforms") subtitle = "" self.add_header(icon, title, subtitle) self.hori_layout = None self.hori_counter = 0 if openretro or settings.get(Option.PLATFORMS_FEATURE) == "1": # self.add_section(gettext("Game Databases")) label = fsui.MultiLineLabel( self, gettext("Note: This is an experimental feature. " "Additional plugins are needed."), 640, ) self.layout.add(label, margin_top=20, margin_bottom=20) self.add_database_option(Platform.CPC, Option.CPC_DATABASE, "Amstrad CPC") self.add_database_option(Platform.ARCADE, Option.ARCADE_DATABASE, "Arcade") self.add_database_option(Platform.A7800, Option.A7800_DATABASE, "Atari 7800") self.add_database_option(Platform.C64, Option.C64_DATABASE, "Commodore 64") self.add_database_option(Platform.DOS, Option.DOS_DATABASE, "DOS") self.add_database_option(Platform.GB, Option.GB_DATABASE, "Game Boy") self.add_database_option(Platform.GBA, Option.GBA_DATABASE, "Game Boy Advance") self.add_database_option(Platform.GBC, Option.GBC_DATABASE, "Game Boy Color") self.add_database_option(Platform.SMS, Option.SMS_DATABASE, "Master System") self.add_database_option(Platform.SMD, Option.SMD_DATABASE, "Mega Drive") self.add_database_option(Platform.NEOGEO, Option.NEOGEO_DATABASE, "Neo-Geo") self.add_database_option(Platform.NES, Option.NES_DATABASE, "Nintendo") self.add_database_option(Platform.PSX, Option.PSX_DATABASE, "PlayStation") self.add_database_option(Platform.SNES, Option.SNES_DATABASE, "Super Nintendo") self.add_database_option(Platform.ST, Option.ST_DATABASE, "Atari ST") self.add_database_option(Platform.TG16, Option.TG16_DATABASE, "TurboGrafx-16") self.add_database_option(Platform.TGCD, Option.TGCD_DATABASE, "TurboGrafx-CD") self.add_database_option(Platform.ZXS, Option.ZXS_DATABASE, "ZX Spectrum")
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("database-settings", "pkg:workspace") gettext("Game Database Settings") title = gettext("Game Database") subtitle = "" self.add_header(icon, title, subtitle) self.add_option("database_show_games") self.add_option("database_show_adult")
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("netplay-settings", "pkg:workspace") gettext("Net Play Settings") title = gettext("Net Play") subtitle = "" self.add_header(icon, title, subtitle) self.add_option("irc_nick") self.add_option("netplay_tag") self.add_option("irc_server")
def __init__(self, parent=None): title = gettext("OpenRetro Locker Uploader") super().__init__(parent, title) self.theme = WorkspaceTheme.instance() self.layout = fsui.VerticalLayout() self.set_icon(fsui.Icon("refresh", "pkg:workspace")) self.layout.min_width = 600 self.layout.set_padding(20, 20, 20, 20) self.icon_header = IconHeader( self, fsui.Icon("refresh", "pkg:workspace"), gettext("OpenRetro Locker Uploader"), gettext("Upload recognized Amiga files to your OpenRetro locker"), ) self.layout.add(self.icon_header, fill=True, margin_bottom=20) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True) self.created_label = fsui.Label(self, "") hori_layout.add(self.created_label, expand=True) self.upload_button = fsui.Button(self, gettext("Upload")) self.upload_button.activated.connect(self.on_upload_activated) hori_layout.add(self.upload_button, margin_left=10) self.stop_button = fsui.Button(self, gettext("Stop")) self.stop_button.activated.connect(self.on_stop_activated) self.stop_button.disable() hori_layout.add(self.stop_button, margin_left=10) if self.window.theme.has_close_buttons: self.close_button = CloseButton(self) hori_layout.add(self.close_button, margin_left=10) else: self.close_button = None self.set_size(self.layout.get_min_size()) self.center_on_parent() self.task = None
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("mouse-settings", "pkg:workspace") gettext("Mouse Settings") title = gettext("Mouse") subtitle = "" self.add_header(icon, title, subtitle) self.add_option("automatic_input_grab") self.add_option("initial_input_grab") self.add_option("middle_click_ungrab") self.add_option("mouse_speed")
def __init__(self, parent, fsgs): fsui.LegacyDialog.__init__(self, parent, gettext("Terms of Download")) self.fsgs = fsgs self.download_file = fsgs.config.get("download_file") self.download_terms = fsgs.config.get("download_terms") self.task = None self.layout = fsui.VerticalLayout() self.layout.set_padding(20, 20, 20, 20) self.icon_header = IconHeader( self, fsui.Icon("web-browser", "pkg:workspace"), gettext("Terms of Download"), gettext( "This game can be automatically downloaded if you " "accept the terms" ), ) self.layout.add(self.icon_header, fill=True, margin_bottom=20) self.label = fsui.MultiLineLabel(self, gettext("Loading...")) self.label.set_min_width(600) self.label.set_min_height(100) self.layout.add(self.label) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True, margin_top=20) hori_layout.add_spacer(0, expand=True) self.reject_button = fsui.Button(self, gettext("Reject")) self.reject_button.activated.connect(self.on_reject_button) hori_layout.add(self.reject_button, margin_left=10) self.accept_button = fsui.Button(self, gettext("Accept")) self.accept_button.activated.connect(self.on_accept_button) hori_layout.add(self.accept_button, margin_left=10) self.accept_button.disable() self.reject_button.disable() self.task = DownloadTermsTask(self.download_terms) # self.task.progressed.connect(self.on_progress) self.task.failed.connect(self.on_failure) self.task.succeeded.connect(self.on_success) self.task.start() self.set_size(self.layout.get_min_size()) self.center_on_parent()
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("database-settings", "pkg:workspace") gettext("Game Database Settings") title = gettext("Game Database") subtitle = "" self.add_header(icon, title, subtitle) self.hori_layout = None self.hori_counter = 0 self.add_option(Option.DATABASE_SHOW_GAMES) self.add_option(Option.DATABASE_SHOW_ADULT) self.add_option(Option.DATABASE_SHOW_UNPUBLISHED)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("fs-uae", "pkg:launcher") self.add_header(icon, "FS-UAE") label = fsui.MultiLineLabel( self, gettext("The following options may affect performance, " "so only enable them when needed for testing or " "debugging purposes."), 640) self.layout.add(label, fill=True, margin_top=20) self.add_option(Option.LOG_AUTOSCALE) self.add_option(Option.LOG_INPUT)
def __init__(self, parent=None): title = gettext("OAGD.net Locker Uploader") super().__init__(parent, title, maximizable=False) self.set_icon(fsui.Icon("refresh", "pkg:workspace")) self.layout = fsui.VerticalLayout() self.layout.min_width = 600 self.layout.set_padding(20, 20, 20, 20) self.icon_header = IconHeader( self, fsui.Icon("refresh", "pkg:workspace"), gettext("OAGD.net Locker Uploader"), gettext("Upload recognized Amiga files to your OAGD.net locker")) self.layout.add(self.icon_header, fill=True, margin_bottom=20) hori_layout = fsui.HorizontalLayout() self.layout.add(hori_layout, fill=True) self.created_label = fsui.Label(self, "") hori_layout.add(self.created_label, expand=True) self.upload_button = fsui.Button(self, gettext("Upload")) self.upload_button.activated.connect(self.on_upload_activated) hori_layout.add(self.upload_button, margin_left=10) self.stop_button = fsui.Button(self, gettext("Stop")) self.stop_button.activated.connect(self.on_stop_activated) self.stop_button.disable() hori_layout.add(self.stop_button, margin_left=10) # self.close_button = fsui.Button(self, gettext("Close")) # self.close_button.activated.connect(self.on_close_activated) # hori_layout.add(self.close_button, margin_left=10) self.set_size(self.layout.get_min_size()) self.center_on_parent() self.task = None
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("settings", "pkg:workspace") self.add_header(icon, "FS-UAE Launcher") if fsboot.get("fws") == "1": # We omit the appearance settings, since they have no effect # when running under the workspace environment. pass else: self.add_option("launcher_theme") self.add_option("launcher_font_size") self.add_section(gettext("Experimental Features")) # self.add_option(Option.NETPLAY_FEATURE) self.add_option(Option.LAUNCHER_CONFIG_FEATURE)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("settings", "pkg:workspace") title = gettext("Logging") subtitle = "" self.add_header(icon, title, subtitle) label = fsui.MultiLineLabel( self, gettext("The following options may affect performance, " "so only enable them when needed for testing or " "debugging purposes."), 640) self.layout.add(label, fill=True, margin_top=20) self.add_option("log_autoscale") self.add_option("log_input")
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("maintenance", "pkg:workspace") title = gettext("Maintenance") subtitle = gettext("Miscellaneous functions to optimize {name}").format( name="FS-UAE Launcher") self.add_header(icon, title, subtitle) label = fsui.MultiLineLabel(self, gettext( "Defragmenting the databases will improve performance " "by ensuring that tables and indices are stored contiguously " "on disk. It will also reclaim some storage space."), 640) self.layout.add(label, fill=True, margin_top=20) button = fsui.Button(self, gettext("Defragment Databases")) button.activated.connect(self.on_defragment_button) self.layout.add(button, margin_top=20)
def __init__(self, parent): super().__init__(parent) icon = fsui.Icon("plugins", "pkg:workspace") self.add_header(icon, gettext("Plugins")) self.list_view = fsui.ListView(self) self.list_view.set_min_height(140) # self.list_view.item_activated.connect(self.on_plugin_activated) image = fsui.Image("workspace:res/16x16/settings.png") plugin_manager = PluginManager.instance() for plugin in plugin_manager.plugins(): text = "{0} ({1})".format(plugin.name, plugin.version) if plugin.outdated: text += " - " + gettext("This plugin is outdated").upper() print("[PLUGINS] {0}".format(text)) self.list_view.add_item(text, icon=image) self.layout.add(self.list_view, fill=True, expand=True)