def __init__(self, handlers=None, initial=None, cb=None, parent=None): """ :param handlers: dictionary of saved handlers from server :param initial: handler_id of handler to load initially :return: """ self.handlers = handlers if handlers else {} self.cb = cb try: initial_settings = handlers[initial] except KeyError: initial_settings = None self.glade = gtk.glade.XML(get_resource("handler_editor.glade")) super(self.__class__, self).__init__(self.glade, initial_settings) self.window = self.glade.get_widget("window1") self.window.set_modal(True) self.handler_name_combo_entry = self.glade.get_widget("handler_name_combo_entry") inflate_list_store_combo(handlers.keys(), self.handler_name_combo_entry) if initial: self.handler_name_combo_entry.get_child().set_text(initial) signal_dictionary = { "on_handler_name_combo_changed": self.on_handler_changed, "on_save_changes_clicked": self.on_save_changes_clicked, "on_cancel_changes_clicked": self.on_cancel_changes_clicked, "on_query_checkbox_toggled": self.on_query_checkbox_toggled, "on_download_subs_checkbox_toggled": self.on_download_subs_checkbox_toggled, } self.glade.signal_autoconnect(signal_dictionary) if parent: self.window.set_transient_for(parent) self.window.show_all()
def __init__(self, handlers=None, initial=None, cb=None, parent=None): """ :param handlers: dictionary of saved handlers from server :param initial: handler_id of handler to load initially :return: """ self.handlers = handlers if handlers else {} self.cb = cb try: initial_settings = handlers[initial] except KeyError: initial_settings = None self.glade = gtk.glade.XML(get_resource("handler_editor.glade")) super(self.__class__, self).__init__(self.glade, initial_settings) self.window = self.glade.get_widget("window1") self.window.set_modal(True) self.handler_name_combo_entry = self.glade.get_widget("handler_name_combo_entry") inflate_list_store_combo(handlers.keys(), self.handler_name_combo_entry) if initial: self.handler_name_combo_entry.get_child().set_text(initial) signal_dictionary = { "on_handler_name_combo_changed": self.on_handler_changed, "on_save_changes_clicked": self.on_save_changes_clicked, "on_cancel_changes_clicked": self.on_cancel_changes_clicked, "on_query_checkbox_toggled": self.on_query_checkbox_toggled, "on_download_subs_checkbox_toggled": self.on_download_subs_checkbox_toggled, } self.glade.signal_autoconnect(signal_dictionary) if parent: self.window.set_transient_for(parent) self.window.show_all()
def on_save_handlers_clicked(self, *args): handler_combo = self.glade.get_widget("saved_handlers_combo") handler_name = handler_combo.get_child().get_text() if not handler_name: return data = self.handler_ui.collect_dialog_settings() data['query_override'] = None if handler_name in self.saved_handlers: message = "Overwrite the {0} profile?".format(handler_name) dialog = user_messenger.ResponseDialog("Confirm Overwrite", message=message, modal=True) response = dialog.run() dialog.destroy() if response != gtk.RESPONSE_ACCEPT: return # preserve query override for pre-exsisting handlers (from config only) data['query_override'] = self.saved_handlers[handler_name][ 'query_override'] self.saved_handlers[handler_name] = data log.debug("Sending handler configurations to server.") client.filebottool.update_handlers(self.saved_handlers) inflate_list_store_combo(self.saved_handlers, handler_combo)
def on_save_handlers_clicked(self, *args): handler_combo = self.glade.get_widget("saved_handlers_combo") handler_name = handler_combo.get_child().get_text() if not handler_name: return data = self.handler_ui.collect_dialog_settings() data['query_override'] = None if handler_name in self.saved_handlers: message = "Overwrite the {0} profile?".format(handler_name) dialog = user_messenger.ResponseDialog( "Confirm Overwrite", message=message, modal=True) response = dialog.run() dialog.destroy() if response != gtk.RESPONSE_ACCEPT: return # preserve query override for pre-exsisting handlers (from config only) data['query_override'] = self.saved_handlers[handler_name]['query_override'] self.saved_handlers[handler_name] = data log.debug("Sending handler configurations to server.") client.filebottool.update_handlers(self.saved_handlers) inflate_list_store_combo(self.saved_handlers, handler_combo)
def init_combo_boxes(self, combo_data): """retrieves valid values for combo boxes and inflates them""" self.monitor_changes = False log.debug("building database combo box") databases = combo_data["valid_databases"] inflate_list_store_combo(databases, self.database_combo) log.debug("building rename action combo box") rename_actions = combo_data["valid_rename_actions"] inflate_list_store_combo(rename_actions, self.rename_action_combo) log.debug("building on conflict combo box") on_conflicts = combo_data["valid_on_conflicts"] inflate_list_store_combo(on_conflicts, self.on_conflict_combo) log.debug("building episode order combo box") episode_orders = combo_data["valid_episode_orders"] inflate_list_store_combo(episode_orders, self.episode_order_combo) if self.initial_settings: self.populate_with_settings(self.initial_settings) self.populated = True self.monitor_changes = True
def init_combo_boxes(self, combo_data): """retrieves valid values for combo boxes and inflates them""" self.monitor_changes = False log.debug("building database combo box") databases = combo_data["valid_databases"] inflate_list_store_combo(databases, self.database_combo) log.debug("building rename action combo box") rename_actions = combo_data["valid_rename_actions"] inflate_list_store_combo(rename_actions, self.rename_action_combo) log.debug("building on conflict combo box") on_conflicts = combo_data["valid_on_conflicts"] inflate_list_store_combo(on_conflicts, self.on_conflict_combo) log.debug("building episode order combo box") episode_orders = combo_data["valid_episode_orders"] inflate_list_store_combo(episode_orders, self.episode_order_combo) if self.initial_settings: self.populate_with_settings(self.initial_settings) self.populated = True self.monitor_changes = True
def __init__(self, dialog_settings): """sets up the dialog using the settings supplied by the server Also loads relevant glade widgets as members Args: dialog_settings: A dictionary containing the settings to populate. """ self.watch_for_setting_change = False self.messenger = user_messenger.UserMessenger() self.torrent_ids = dialog_settings["torrent_ids"] self.torrent_id = None self.files = [] self.current_save_path = "" self.glade = gtk.glade.XML(get_resource("rename.glade")) if len(dialog_settings["torrent_ids"]) == 1: self.torrent_id = dialog_settings["torrent_ids"][0] self.files = dialog_settings["files"] self.current_save_path = dialog_settings["torrent_save_path"] self.ui_settings = dialog_settings["rename_dialog_last_settings"] handler_name = self.ui_settings['handler_name'] if handler_name in dialog_settings['saved_handlers']: try: self.ui_settings = dialog_settings['saved_handlers'][handler_name] except KeyError: log.error('handler {0} could not be found'.format(handler_name)) self.handler_ui = HandlerUI(self.glade, self.ui_settings) self.server_filebot_version = dialog_settings["filebot_version"] self.window = self.glade.get_widget("rename_dialog") self.window.set_transient_for(component.get("MainWindow").window) fb_icon = self.glade.get_widget("execute_icon") image = get_resource("fb_icon24.png") fb_icon.set_from_file(image) self.original_files_treeview = self.glade.get_widget("files_treeview") self.new_files_treeview = self.glade.get_widget("new_files_treeview") self.history_files_treeview = self.glade.get_widget("history_files_treeview") if not self.torrent_id: self.glade.get_widget("tree_pane").hide() self.glade.get_widget("do_dry_run").hide() self.history_files_treeview.hide() # self.glade.get_widget("dialog_notebook").set_show_tabs(False) # self.glade.get_widget("query_entry").set_sensitive(False) # self.glade.get_widget("query_label").set_sensitive(False) signal_dictionary = { "on_toggle_advanced": self.on_toggle_advanced, "on_do_dry_run_clicked": self.on_do_dry_run_clicked, "on_format_help_clicked": self.on_format_help_clicked, "on_execute_filebot_clicked": self.on_execute_filebot_clicked, "on_revert_button_clicked": self.on_revert_button_clicked, "on_download_subs_toggled": self.on_download_subs_toggled, "on_setting_changed": self.on_setting_changed, "on_save_handlers_clicked": self.on_save_handlers_clicked, "on_load_saved_handler": self.on_load_saved_handler, "on_saved_handlers_entry_focus": self.on_saved_handers_entry_focus, } self.glade.signal_autoconnect(signal_dictionary) if self.server_filebot_version: self.glade.get_widget("filebot_version").set_text(self.server_filebot_version) else: def open_filebot_homepage(*args): webbrowser.open(r'http://www.filebot.net', new=2) log.debug('opening filebot homepage') signal = {"on_filebot_version_clicked": open_filebot_homepage} self.glade.signal_autoconnect(signal) self.toggle_button(self.glade.get_widget('do_dry_run')) self.toggle_button(self.glade.get_widget('execute_filebot')) advanced_options = self.glade.get_widget("advanced_options") show_advanced = dialog_settings['rename_dialog_last_settings']['show_advanced'] if advanced_options.get_visible() != show_advanced: self.on_toggle_advanced() download_subs = self.handler_ui.download_subs_checkbox if download_subs.get_active() != self.glade.get_widget( "subs_options").get_sensitive(): self.on_download_subs_toggled() self.init_treestore( self.original_files_treeview, "Original File Structure at {0}".format(self.current_save_path)) self.init_treestore(self.new_files_treeview, "New File Structure") self.init_treestore( self.history_files_treeview, "Current File Structure at {0}".format(self.current_save_path)) self.load_treestore(self.original_files_treeview, self.files) self.load_treestore(self.history_files_treeview, self.files) treeview = self.glade.get_widget("files_treeview") treeview.expand_all() self.saved_handlers = dialog_settings["saved_handlers"] inflate_list_store_combo(self.saved_handlers.keys(), self.glade.get_widget("saved_handlers_combo")) if handler_name: entry = self.glade.get_widget('saved_handlers_combo').get_child() log.debug('Setting text to {0}'.format(handler_name)) entry.set_text(handler_name) self.watch_for_setting_change = True self.window.show() tree_pane = self.glade.get_widget("tree_pane") tree_pane.set_position(tree_pane.allocation.width / 2)
def __init__(self, dialog_settings, server_plugin_version): """sets up the dialog using the settings supplied by the server Also loads relevant glade widgets as members Args: dialog_settings: A dictionary containing the settings to populate. """ self.server_plugin_version = server_plugin_version self.watch_for_setting_change = False self.messenger = user_messenger.UserMessenger() self.torrent_ids = dialog_settings["torrent_ids"] self.torrent_id = None self.files = [] self.current_save_path = "" self.glade = gtk.glade.XML(get_resource("rename.glade")) if len(dialog_settings["torrent_ids"]) == 1: self.torrent_id = dialog_settings["torrent_ids"][0] self.files = dialog_settings["files"] self.current_save_path = dialog_settings["torrent_save_path"] self.ui_settings = dialog_settings["rename_dialog_last_settings"] handler_name = self.ui_settings['handler_name'] if handler_name in dialog_settings['saved_handlers']: try: self.ui_settings = dialog_settings['saved_handlers'][handler_name] except KeyError: log.error('handler {0} could not be found'.format(handler_name)) self.handler_ui = HandlerUI(self.glade, self.ui_settings) self.server_filebot_version = dialog_settings["filebot_version"] self.window = self.glade.get_widget("rename_dialog") self.window.set_transient_for(component.get("MainWindow").window) fb_icon = self.glade.get_widget("execute_icon") image = get_resource("fb_icon24.png") fb_icon.set_from_file(image) self.original_files_treeview = self.glade.get_widget("files_treeview") self.new_files_treeview = self.glade.get_widget("new_files_treeview") self.history_files_treeview = self.glade.get_widget("history_files_treeview") self.previous_treeview = self.glade.get_widget("previous_treeview") if not self.torrent_id: self.glade.get_widget("tree_pane").hide() self.glade.get_widget("do_dry_run").hide() self.history_files_treeview.hide() self.previous_treeview.hide() # self.glade.get_widget("dialog_notebook").set_show_tabs(False) # self.glade.get_widget("query_entry").set_sensitive(False) # self.glade.get_widget("query_label").set_sensitive(False) signal_dictionary = { "on_toggle_advanced": self.on_toggle_advanced, "on_do_dry_run_clicked": self.on_do_dry_run_clicked, "on_format_help_clicked": self.on_format_help_clicked, "on_execute_filebot_clicked": self.on_execute_filebot_clicked, "on_revert_button_clicked": self.on_revert_button_clicked, "on_download_subs_toggled": self.on_download_subs_toggled, "on_setting_changed": self.on_setting_changed, "on_save_handlers_clicked": self.on_save_handlers_clicked, "on_load_saved_handler": self.on_load_saved_handler, "on_saved_handlers_entry_focus": self.on_saved_handers_entry_focus, } self.glade.signal_autoconnect(signal_dictionary) if self.server_filebot_version: self.glade.get_widget("filebot_version").set_text(self.server_filebot_version) else: def open_filebot_homepage(*args): webbrowser.open(r'http://www.filebot.net', new=2) log.debug('opening filebot homepage') signal = {"on_filebot_version_clicked": open_filebot_homepage} self.glade.signal_autoconnect(signal) self.toggle_button(self.glade.get_widget('do_dry_run')) self.toggle_button(self.glade.get_widget('execute_filebot')) advanced_options = self.glade.get_widget("advanced_options") show_advanced = dialog_settings['rename_dialog_last_settings']['show_advanced'] if advanced_options.get_visible() != show_advanced: self.on_toggle_advanced() download_subs = self.handler_ui.download_subs_checkbox if download_subs.get_active() != self.glade.get_widget( "subs_options").get_sensitive(): self.on_download_subs_toggled() self.init_treestore(self.new_files_treeview, "New File Structure") self.init_treestore(self.original_files_treeview, "Original File Structure at {0}".format( self.current_save_path)) self.load_treestore(self.original_files_treeview, self.files) self.init_treestore(self.history_files_treeview, "Current File Structure at {0}".format( self.current_save_path)) self.load_treestore(self.history_files_treeview, self.files) if self.server_plugin_version > (1, 1, 12): self.init_treestore(self.previous_treeview, "Awaiting FileBot History...") self.get_history(self.torrent_id) else: header = "Server version does not support History!" self.init_treestore(self.previous_treeview, header) treeview = self.glade.get_widget("files_treeview") treeview.expand_all() self.saved_handlers = dialog_settings["saved_handlers"] inflate_list_store_combo(self.saved_handlers.keys(), self.glade.get_widget("saved_handlers_combo")) if handler_name: entry = self.glade.get_widget('saved_handlers_combo').get_child() log.debug('Setting text to {0}'.format(handler_name)) entry.set_text(handler_name) self.watch_for_setting_change = True self.window.show() tree_pane = self.glade.get_widget("tree_pane") tree_pane.set_position(tree_pane.allocation.width / 2)