Ticket #1903: [1903][GTKUI]Add Options for super_seeding.patch

File [1903][GTKUI]Add Options for super_seeding.patch, 7.7 KB (added by Doadin, 10 years ago)
  • deluge/ui/gtkui/glade/main_window.tabs.ui

    From 90320ff36d428ccb6a8a61964dc8401a3c4a1608 Mon Sep 17 00:00:00 2001
    From: Doadin <tbkizle@gmail.com>
    Date: Sun, 6 Jul 2014 22:16:23 -0400
    Subject: [PATCH] [GTKUI] Add Options for super_seeding
    
    ---
     deluge/ui/gtkui/glade/main_window.tabs.ui     | 16 ++++++++++++++++
     deluge/ui/gtkui/glade/torrent_menu.options.ui |  9 +++++++++
     deluge/ui/gtkui/menubar.py                    | 19 +++++++++++++++++++
     deluge/ui/gtkui/options_tab.py                | 16 ++++++++++++++++
     4 files changed, 60 insertions(+)
    
    diff --git a/deluge/ui/gtkui/glade/main_window.tabs.ui b/deluge/ui/gtkui/glade/main_window.tabs.ui
    index ddc9ca1..3e1b6eb 100644
    a b  
    17781778                                    <property name="fill">True</property>
    17791779                                    <property name="position">1</property>
    17801780                                  </packing>
     1781                                <child>
     1782                                  <object class="GtkCheckButton" id="chk_super_seeding">
     1783                                    <property name="label" translatable="yes">Super Seeding</property>
     1784                                    <property name="use_action_appearance">False</property>
     1785                                    <property name="visible">True</property>
     1786                                    <property name="can_focus">True</property>
     1787                                    <property name="receives_default">False</property>
     1788                                    <property name="draw_indicator">True</property>
     1789                                    <signal name="toggled" handler="on_chk_toggled" swapped="no"/>
     1790                                  </object>
     1791                                  <packing>
     1792                                    <property name="expand">False</property>
     1793                                    <property name="fill">False</property>
     1794                                    <property name="position">0</property>
     1795                                  </packing>
     1796                                </child>
    17811797                                </child>
    17821798                              </object>
    17831799                            </child>
  • deluge/ui/gtkui/glade/torrent_menu.options.ui

    diff --git a/deluge/ui/gtkui/glade/torrent_menu.options.ui b/deluge/ui/gtkui/glade/torrent_menu.options.ui
    index 2044679..4cefb8c 100644
    a b  
    7979      </object>
    8080    </child>
    8181    <child>
     82      <object class="GtkMenuItem" id="menuitem_super_seeding">
     83        <property name="visible">True</property>
     84        <property name="can_focus">False</property>
     85        <property name="use_action_appearance">False</property>
     86        <property name="label" translatable="yes">_Super Seeding</property>
     87        <property name="use_underline">True</property>
     88      </object>
     89    </child>
     90    <child>
    8291      <object class="GtkMenuItem" id="menuitem_change_owner">
    8392        <property name="visible">True</property>
    8493        <property name="can_focus">False</property>
  • deluge/ui/gtkui/menubar.py

    diff --git a/deluge/ui/gtkui/menubar.py b/deluge/ui/gtkui/menubar.py
    index 0501681..eaf8b68 100644
    a b def __init__(self):  
    118118        submenu.append(item)
    119119        submenu.show_all()
    120120        self.builder.get_object("menuitem_stop_seed_at_ratio").set_submenu(submenu)
     121               
     122        submenu = gtk.Menu()
     123        item = gtk.MenuItem(_("Disable"))
     124        item.connect("activate", self.on_menuitem_set_super_seeding_disable)
     125        submenu.append(item)
     126        item = gtk.MenuItem(_("Enable..."))
     127        item.set_name("menuitem_super_seeding")
     128        item.connect("activate", self.on_menuitem_set_super_seeding_enable)
     129        submenu.append(item)
     130        submenu.show_all()
     131        self.builder.get_object("menuitem_super_seeding").set_submenu(submenu)
    121132
    122133        self.torrentmenu = self.builder.get_object("torrent_menu")
    123134        self.menu_torrent = self.main_builder.get_object("menu_torrent")
    def on_menuitem_set_automanaged_off(self, widget):  
    492503    def on_menuitem_set_stop_seed_at_ratio_disable(self, widget):
    493504        client.core.set_torrent_options(component.get("TorrentView").get_selected_torrents(),
    494505                                        {"stop_at_ratio": False})
     506       
     507    def on_menuitem_set_super_seeding_disable(self, widget):
     508        client.core.set_torrent_options(component.get("TorrentView").get_selected_torrents(),
     509                                        {"super_seeding": False})
     510
     511    def on_menuitem_set_super_seeding_enable(self, widget):
     512        client.core.set_torrent_options(component.get("TorrentView").get_selected_torrents(),
     513                                        {"super_seeding": True})
    495514
    496515    def on_menuitem_sidebar_zero_toggled(self, widget):
    497516        self.config["sidebar_show_zero"] = widget.get_active()
  • deluge/ui/gtkui/options_tab.py

    diff --git a/deluge/ui/gtkui/options_tab.py b/deluge/ui/gtkui/options_tab.py
    index 5595bae..e134ad5 100644
    a b def __init__(self):  
    6060        self.chk_stop_at_ratio = builder.get_object("chk_stop_at_ratio")
    6161        self.chk_remove_at_ratio = builder.get_object("chk_remove_at_ratio")
    6262        self.spin_stop_ratio = builder.get_object("spin_stop_ratio")
     63        self.chk_super_seeding = builder.get_object("chk_super_seeding")
    6364        self.chk_move_completed = builder.get_object("chk_move_completed")
    6465        self.entry_move_completed = builder.get_object("entry_move_completed")
    6566        self.chk_shared = builder.get_object("chk_shared")
    def update(self):  
    123124            "stop_at_ratio",
    124125            "stop_ratio",
    125126            "remove_at_ratio",
     127            "super_seeding",
    126128            "storage_mode",
    127129            "sequential_download",
    128130            "move_on_completed",
    def _on_get_torrent_status(self, status):  
    162164                self.spin_stop_ratio.set_value(status["stop_ratio"])
    163165            if status["remove_at_ratio"] != self.prev_status["remove_at_ratio"]:
    164166                self.chk_remove_at_ratio.set_active(status["remove_at_ratio"])
     167            if status["super_seeding"] != self.prev_status["super_seeding"]:
     168                self.chk_super_seeding.set_active(status["super_seeding"])
    165169            if status["move_on_completed"] != self.prev_status["move_on_completed"]:
    166170                self.chk_move_completed.set_active(status["move_on_completed"])
    167171            if status["move_on_completed_path"] != self.prev_status["move_on_completed_path"]:
    def _on_button_apply_clicked(self, button):  
    237241            client.core.set_torrent_remove_at_ratio(
    238242                self.prev_torrent_id, self.chk_remove_at_ratio.get_active()
    239243            )
     244                if self.chk_super_seeding.get_active () != self.prev_status["super_seeing"]:
     245            client.core.set_super_seeding(
     246                self.prev_torrent_id, self.chk_super_seeding.get_active()
     247            )
    240248        if self.chk_move_completed.get_active() != self.prev_status["move_on_completed"]:
    241249            client.core.set_torrent_move_completed(
    242250                self.prev_torrent_id, self.chk_move_completed.get_active()
    def _on_chk_stop_at_ratio_toggled(self, widget):  
    275283
    276284        if not self.button_apply.is_sensitive():
    277285            self.button_apply.set_sensitive(True)
     286                       
     287    def _on_chk_super_seeding_toggled(self, widget):
     288        value = widget.get_active()
     289
     290        self.chk_super_seeding.set_sensitive(value)
     291
     292        if not self.button_apply.is_sensitive():
     293            self.button_apply.set_sensitive(True)
    278294
    279295    def _on_chk_toggled(self, widget):
    280296        if not self.button_apply.is_sensitive():