def select_file(self, dialog, response): if response == Gtk.ResponseType.OK: target_path = dialog.get_filename() if target_path: self.file_chooser_dlg.set_current_folder(target_path) self.entry.set_text(reverse_expanduser(target_path)) dialog.hide()
def _select_file(self, dialog, response): if response == Gtk.ResponseType.OK: target_path = dialog.get_filename() if target_path: self.file_chooser_dlg.set_current_folder(target_path) self.entry.set_text(reverse_expanduser(target_path)) dialog.hide()
def on_select_file(self, dialog, response): """FileChooserDialog response callback""" if response == Gtk.ResponseType.OK: target_path = dialog.get_filename() if target_path: dialog.set_current_folder(target_path) self.entry.set_text(system.reverse_expanduser(target_path)) dialog.hide()
def folder_size_cb(self, folder_size, error): if error: logger.error(error) return self.delete_files = True self.delete_button.set_sensitive(True) self.folder_label.set_markup( "This will delete all contents from <b>%s</b> (%s)" % (reverse_expanduser(self.game.directory), human_size(folder_size)))
def folder_size_cb(self, folder_size, error): if error: logger.error(error) return self.delete_files = True self.delete_button.set_sensitive(True) self.folder_label.hide() self.confirm_delete_button.show() self.confirm_delete_button.set_label( "Delete %s (%s)" % (reverse_expanduser(self.game.directory), human_size(folder_size)))
def __init__(self, game_id, parent=None): super().__init__(parent=parent) self.set_size_request(640, 128) self.game = Game(game_id) self.delete_files = False container = Gtk.VBox(visible=True) self.get_content_area().add(container) title_label = Gtk.Label(visible=True) title_label.set_line_wrap(True) title_label.set_alignment(0, 0.5) title_label.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR) title_label.set_markup( "<span font_desc='14'><b>Uninstall %s</b></span>" % gtk_safe(self.game.name)) container.pack_start(title_label, False, False, 4) self.folder_label = Gtk.Label(visible=True) self.folder_label.set_alignment(0, 0.5) self.delete_button = Gtk.Button(_("Uninstall"), visible=True) self.delete_button.connect("clicked", self.on_delete_clicked) if not self.game.directory: self.folder_label.set_markup("No file will be deleted") elif len(get_games(searches={"directory": self.game.directory})) > 1: self.folder_label.set_markup( "The folder %s is used by other games and will be kept." % self.game.directory) elif is_removeable(self.game.directory): self.delete_button.set_sensitive(False) self.folder_label.set_markup("<i>Calculating size…</i>") AsyncCall(get_disk_size, self.folder_size_cb, self.game.directory) else: self.folder_label.set_markup( "Content of %s are protected and will not be deleted." % reverse_expanduser(self.game.directory)) container.pack_start(self.folder_label, False, False, 4) self.confirm_delete_button = Gtk.CheckButton() self.confirm_delete_button.set_active(True) container.pack_start(self.confirm_delete_button, False, False, 4) button_box = Gtk.HBox(visible=True) button_box.set_margin_top(30) style_context = button_box.get_style_context() style_context.add_class("linked") cancel_button = Gtk.Button(_("Cancel"), visible=True) cancel_button.connect("clicked", self.on_close) button_box.add(cancel_button) button_box.add(self.delete_button) container.pack_end(button_box, False, False, 0) self.show()
def generate_directory_chooser(self, option_name, label_text, value=None): """Generate a file chooser button to select a directory.""" label = Label(label_text) directory_chooser = FileChooserEntry( title='Select folder', action=Gtk.FileChooserAction.SELECT_FOLDER, default_path=reverse_expanduser(value)) directory_chooser.entry.connect('changed', self.on_chooser_dir_set, option_name) directory_chooser.set_valign(Gtk.Align.CENTER) label.set_alignment(0.5, 0.5) self.wrapper.pack_start(label, False, False, 0) self.wrapper.pack_start(directory_chooser, True, True, 0) self.option_widget = directory_chooser
def generate_directory_chooser(self, option_name, label_text, value=None): """Generate a file chooser button to select a directory.""" label = Label(label_text) directory_chooser = FileChooserEntry( action=Gtk.FileChooserAction.SELECT_FOLDER, default=reverse_expanduser(value) ) directory_chooser.entry.connect('changed', self.on_chooser_dir_set, option_name) directory_chooser.set_valign(Gtk.Align.CENTER) label.set_alignment(0.5, 0.5) self.wrapper.pack_start(label, False, False, 0) self.wrapper.pack_start(directory_chooser, True, True, 0) self.option_widget = directory_chooser
def initialize(self, game_id=None, callback=None): self.game = Game(game_id) self.callback = callback runner = self.game.runner self.substitute_label(self.builder.get_object("description_label"), "game", self.game.name) self.substitute_label( self.builder.get_object("remove_from_library_button"), "game", self.game.name, ) remove_contents_button = self.builder.get_object( "remove_contents_button") if self.game.is_installed: path = self.game.directory or "" if hasattr(runner, "own_game_remove_method"): remove_contents_button.set_label(runner.own_game_remove_method) remove_contents_button.set_active(True) else: try: default_path = runner.default_path except AttributeError: default_path = "/" if is_removeable(path, excludes=[default_path]): remove_contents_button.set_active(True) else: remove_contents_button.set_sensitive(False) path = _("No game folder") path = reverse_expanduser(path) self.substitute_label(remove_contents_button, "path", path) label = remove_contents_button.get_child() label.set_use_markup(True) label.set_line_wrap(True) label.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR) else: remove_contents_button.hide() cancel_button = self.builder.get_object("cancel_button") cancel_button.connect("clicked", self.on_close) apply_button = self.builder.get_object("apply_button") apply_button.connect("clicked", self.on_apply_button_clicked)
def initialize(self, game_id=None, callback=None): self.game = Game(game_id) self.callback = callback runner = self.game.runner self.substitute_label(self.builder.get_object('description_label'), 'game', self.game.name) self.substitute_label( self.builder.get_object('remove_from_library_button'), 'game', self.game.name ) remove_contents_button = self.builder.get_object( 'remove_contents_button' ) if self.game.is_installed: path = self.game.directory or '' if hasattr(runner, 'own_game_remove_method'): remove_contents_button.set_label(runner.own_game_remove_method) remove_contents_button.set_active(True) else: try: default_path = runner.default_path except AttributeError: default_path = "/" if is_removeable(path, excludes=[default_path]): remove_contents_button.set_active(True) else: remove_contents_button.set_sensitive(False) path = 'No game folder' path = reverse_expanduser(path) self.substitute_label(remove_contents_button, 'path', path) label = remove_contents_button.get_child() label.set_use_markup(True) label.set_line_wrap(True) label.set_line_wrap_mode(Pango.WrapMode.WORD_CHAR) else: remove_contents_button.hide() cancel_button = self.builder.get_object('cancel_button') cancel_button.connect('clicked', self.on_close) apply_button = self.builder.get_object('apply_button') apply_button.connect('clicked', self.on_apply_button_clicked)