def __init__(self, method, label_id="", label_name=""):

    self.config = component.get("GtkPlugin." + PLUGIN_NAME)._config

    self.method = method
    self.label_id = label_id
    self.label_name = label_name
    self.base_name = label_name.rpartition("/")[2]

    self.close_func = None

    self.icon = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 16, 16)
    self.icon.fill(0)

    self.type = DIALOG_TYPES[self.method]

    self.we = WidgetEncapsulator(get_resource("wnd_name_input.glade"))
    self.we.wnd_name_input.set_transient_for(
        component.get("MainWindow").window)
    self.we.wnd_name_input.set_destroy_with_parent(True)

    self.we.wnd_name_input.set_title(self.type[DIALOG_NAME])
    icon = self.we.wnd_name_input.render_icon(self.type[DIALOG_ICON],
        gtk.ICON_SIZE_SMALL_TOOLBAR)
    self.we.wnd_name_input.set_icon(icon)

    pos = self.config["common"]["name_input_pos"]
    if pos:
      self.we.wnd_name_input.move(*pos)

    size = self.config["common"]["name_input_size"]
    if size:
      size[1] = 1
      self.we.wnd_name_input.resize(*size)

    if self.method == "add":
      self.we.blk_header.hide()
    else:
      self.we.lbl_selected_label.set_text(self.base_name)
      self.we.lbl_selected_label.set_tooltip_text(self.label_name)

      if self.method == "rename":
        self.we.lbl_header.set_markup("<b>%s: </b>" % _("Current"))
        self.we.txt_name.set_text(self.base_name)
        self.we.txt_name.select_region(0, -1)
      elif self.method == "sublabel":
        self.we.lbl_header.set_markup("<b>%s: </b>" % _("Parent"))
      else:
        self.we.lbl_header.set_markup(
          "<b>%s</b>" % self.we.lbl_header.get_text())

    self.we.model.signal_autoconnect({
      "cb_do_submit" : self.cb_do_submit,
      "cb_do_close" : self.cb_do_close,
      "on_txt_changed" : self.on_txt_changed,
    })

    self.we.btn_ok.set_sensitive(False)

    self.we.wnd_name_input.show()
Example #2
0
  def _add_status_bar_item(self):

    self.status_item = component.get("StatusBar").add_item(
      image=get_resource("labelplus_icon.png"),
      text="",
      callback=self._do_open_label_options_bandwidth,
      tooltip="")

    self.status_item._ebox.hide_all()
  def __init__(self, label_id, label_name):

    self.config = deluge.configmanager.ConfigManager(GTKUI_CONFIG)

    self.label_id = label_id
    self.label_name = label_name
    self.daemon_is_local = client.is_localhost()

    self.we = WidgetEncapsulator(get_resource("wnd_label_options.glade"))
    self.we.wnd_label_options.set_transient_for(
        component.get("MainWindow").window)
    self.we.wnd_label_options.set_destroy_with_parent(True)

    icon = self.we.wnd_label_options.render_icon(gtk.STOCK_PREFERENCES,
        gtk.ICON_SIZE_SMALL_TOOLBAR)
    self.we.wnd_label_options.set_icon(icon)

    pos = self.config["label_options_pos"]
    if pos:
      self.we.wnd_label_options.move(*pos)

    size = self.config["label_options_size"]
    if size:
      self.we.wnd_label_options.resize(*size)

    self.we.lbl_header.set_markup("<b>%s</b>" % self.we.lbl_header.get_text())
    self.we.lbl_selected_label.set_text(label_name)
    self.we.lbl_selected_label.set_tooltip_text(label_name)

    self.option_widgets = (
      self.we.chk_download_settings,
      self.we.chk_move_data_completed,
      self.we.lbl_move_data_completed_path,
      self.we.chk_prioritize_first_last,

      self.we.chk_bandwidth_settings,
      self.we.spn_max_download_speed,
      self.we.spn_max_upload_speed,
      self.we.spn_max_connections,
      self.we.spn_max_upload_slots,

      self.we.chk_queue_settings,
      self.we.chk_auto_managed,
      self.we.chk_stop_at_ratio,
      self.we.spn_stop_ratio,
      self.we.chk_remove_at_ratio,

      self.we.chk_auto_settings,
      self.we.rb_auto_name,
      self.we.rb_auto_tracker,
    )

    self.dependency_widgets = {
      self.we.chk_download_settings:
        (self.we.blk_download_settings_group,),
      self.we.chk_bandwidth_settings:
        (self.we.blk_bandwidth_settings_group,),
      self.we.chk_queue_settings:
        (self.we.blk_queue_settings_group,),
      self.we.chk_auto_settings:
        (self.we.blk_auto_settings_group,),

      self.we.chk_move_data_completed:
        (self.we.blk_move_data_completed_group,),

      self.we.rb_move_data_completed_to_folder:
        (self.we.fcb_move_data_completed_select,
          self.we.txt_move_data_completed_entry),

      self.we.chk_stop_at_ratio:
        (self.we.spn_stop_ratio, self.we.chk_remove_at_ratio),

      self.we.chk_auto_retroactive: (self.we.chk_auto_unlabeled,),
    }

    self.rgrp_move_data_completed = (
      self.we.rb_move_data_completed_to_parent,
      self.we.rb_move_data_completed_to_subfolder,
      self.we.rb_move_data_completed_to_folder,
    )

    defers = []
    defers.append(client.labelplus.get_daemon_vars())
    defers.append(client.labelplus.get_parent_path(self.label_id))
    defers.append(client.labelplus.get_options(self.label_id))
    defers.append(client.labelplus.get_preferences())

    deferred = defer.DeferredList(defers)
    deferred.addCallback(self.cb_get_options_ok)
Example #4
0
  def __init__(self):

    self.config = deluge.configmanager.ConfigManager(GTKUI_CONFIG)

    self.plugin = component.get("PluginManager")
    self.we = WidgetEncapsulator(get_resource("wnd_preferences.glade"))
    self.daemon_is_local = client.is_localhost()
    self.last_prefs = None

    self.header_widgets = (
      self.we.lbl_general,
      self.we.lbl_defaults,
    )

    self.general_widgets = (
      self.we.chk_include_children,
      self.we.chk_show_full_name,
      self.we.chk_move_on_changes,
    )

    self.defaults_widgets = (
      self.we.chk_download_settings,
      self.we.chk_move_data_completed,
      self.we.chk_prioritize_first_last,

      self.we.chk_bandwidth_settings,
      self.we.spn_max_download_speed,
      self.we.spn_max_upload_speed,
      self.we.spn_max_connections,
      self.we.spn_max_upload_slots,

      self.we.chk_queue_settings,
      self.we.chk_auto_managed,
      self.we.chk_stop_at_ratio,
      self.we.spn_stop_ratio,
      self.we.chk_remove_at_ratio,

      self.we.chk_auto_settings,
      self.we.rb_auto_name,
      self.we.rb_auto_tracker,
    )

    self.rgrp_move_data_completed = (
      self.we.rb_move_data_completed_to_parent,
      self.we.rb_move_data_completed_to_subfolder,
      self.we.rb_move_data_completed_to_folder,
    )

    self.exp_group = (
      self.we.exp_download,
      self.we.exp_bandwidth,
      self.we.exp_queue,
      self.we.exp_autolabel,
    )

    expanded = self.config["prefs_state"]
    for exp in expanded:
      widget = getattr(self.we, exp, None)
      if widget:
        widget.set_expanded(True)

    for header in self.header_widgets:
      heading = header.get_text()
      header.set_markup("<b>%s</b>" % heading)

    self.we.btn_defaults.connect("clicked", self._reset_preferences)

    if self.daemon_is_local:
      self.we.fcb_move_data_completed_select.show()
      self.we.txt_move_data_completed_entry.hide()
    else:
      self.we.fcb_move_data_completed_select.hide()
      self.we.txt_move_data_completed_entry.show()

    self.we.blk_preferences.connect("expose-event", self._do_set_unavailable)

    self.plugin.add_preferences_page(DISPLAY_NAME, self.we.blk_preferences)
    self.plugin.register_hook("on_show_prefs", self._load_settings)
    self.plugin.register_hook("on_apply_prefs", self._save_settings)

    self._load_settings()