FreeBSD Bugzilla – Attachment 167512 Details for
Bug 207558
[patch] net-p2p/deluge: Fix Scheduler plugin and other 1.3-stable improvements
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
The changes introduced by switching to 1.3-stable
deluge.diff (text/plain), 32.19 KB, created by
David Naylor
on 2016-02-28 12:46:24 UTC
(
hide
)
Description:
The changes introduced by switching to 1.3-stable
Filename:
MIME Type:
Creator:
David Naylor
Created:
2016-02-28 12:46:24 UTC
Size:
32.19 KB
patch
obsolete
>diff -ru deluge-1.3.12/deluge/core/core.py deluge-1.3-stable/deluge/core/core.py >--- deluge-1.3.12/deluge/core/core.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/core/core.py 2015-09-28 12:53:27.000000000 +0200 >@@ -409,15 +409,18 @@ > @export > def pause_all_torrents(self): > """Pause all torrents in the session""" >- for torrent in self.torrentmanager.torrents.values(): >- torrent.pause() >+ if not self.session.is_paused(): >+ self.session.pause() >+ component.get("EventManager").emit(SessionPausedEvent()) > > @export > def resume_all_torrents(self): > """Resume all torrents in the session""" >- for torrent in self.torrentmanager.torrents.values(): >- torrent.resume() >- component.get("EventManager").emit(SessionResumedEvent()) >+ if self.session.is_paused(): >+ self.session.resume() >+ for torrent in self.torrentmanager.torrents.values(): >+ torrent.update_state() >+ component.get("EventManager").emit(SessionResumedEvent()) > > @export > def resume_torrent(self, torrent_ids): >@@ -434,9 +437,9 @@ > # Torrent was probaly removed meanwhile > return {} > >- # Get the leftover fields and ask the plugin manager to fill them >+ # Get any remaining keys from plugin manager or 'all' if no keys specified. > leftover_fields = list(set(keys) - set(status.keys())) >- if len(leftover_fields) > 0: >+ if len(leftover_fields) > 0 or len(keys) == 0: > status.update(self.pluginmanager.get_status(torrent_id, leftover_fields)) > return status > >diff -ru deluge-1.3.12/deluge/core/filtermanager.py deluge-1.3-stable/deluge/core/filtermanager.py >--- deluge-1.3.12/deluge/core/filtermanager.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/core/filtermanager.py 2015-09-28 12:53:27.000000000 +0200 >@@ -169,7 +169,9 @@ > for torrent_id in list(torrent_ids): > status = status_func(torrent_id, filter_dict.keys()) #status={key:value} > for field, values in filter_dict.iteritems(): >- if (not status[field] in values) and torrent_id in torrent_ids: >+ if field in status and status[field] in values: >+ continue >+ elif torrent_id in torrent_ids: > torrent_ids.remove(torrent_id) > > return torrent_ids >diff -ru deluge-1.3.12/deluge/core/pluginmanager.py deluge-1.3-stable/deluge/core/pluginmanager.py >--- deluge-1.3.12/deluge/core/pluginmanager.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/core/pluginmanager.py 2015-09-28 12:53:27.000000000 +0200 >@@ -92,6 +92,8 @@ > def get_status(self, torrent_id, fields): > """Return the value of status fields for the selected torrent_id.""" > status = {} >+ if len(fields) == 0: >+ fields = self.status_fields.keys() > for field in fields: > try: > status[field] = self.status_fields[field](torrent_id) >diff -ru deluge-1.3.12/deluge/core/torrentmanager.py deluge-1.3-stable/deluge/core/torrentmanager.py >--- deluge-1.3.12/deluge/core/torrentmanager.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/core/torrentmanager.py 2015-09-28 12:53:27.000000000 +0200 >@@ -674,9 +674,12 @@ > state = TorrentManagerState() > # Create the state for each Torrent and append to the list > for torrent in self.torrents.values(): >- paused = False >- if torrent.state == "Paused": >+ if self.session.is_paused(): >+ paused = torrent.handle.is_paused() >+ elif torrent.state == "Paused": > paused = True >+ else: >+ paused = False > > torrent_state = TorrentState( > torrent.torrent_id, >diff -ru deluge-1.3.12/deluge/httpdownloader.py deluge-1.3-stable/deluge/httpdownloader.py >--- deluge-1.3.12/deluge/httpdownloader.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/httpdownloader.py 2015-09-28 12:53:27.000000000 +0200 >@@ -211,7 +211,23 @@ > factory = HTTPDownloader(url, filename, callback, headers, force_filename, allow_compression) > if scheme == "https": > from twisted.internet import ssl >- reactor.connectSSL(host, port, factory, ssl.ClientContextFactory()) >+ # ClientTLSOptions in Twisted >= 14, see ticket #2765 for details on this addition. >+ try: >+ from twisted.internet._sslverify import ClientTLSOptions >+ except ImportError: >+ ctx_factory = ssl.ClientContextFactory() >+ else: >+ class TLSSNIContextFactory(ssl.ClientContextFactory): >+ """ >+ A custom context factory to add a server name for TLS connections. >+ """ >+ def getContext(self, hostname=None, port=None): >+ ctx = ssl.ClientContextFactory.getContext(self) >+ ClientTLSOptions(host, ctx) >+ return ctx >+ ctx_factory = TLSSNIContextFactory() >+ >+ reactor.connectSSL(host, port, factory, ctx_factory) > else: > reactor.connectTCP(host, port, factory) > >diff -ru deluge-1.3.12/deluge/plugins/blocklist/blocklist/core.py deluge-1.3-stable/deluge/plugins/blocklist/blocklist/core.py >--- deluge-1.3.12/deluge/plugins/blocklist/blocklist/core.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/plugins/blocklist/blocklist/core.py 2015-09-28 12:53:27.000000000 +0200 >@@ -425,12 +425,12 @@ > > def pause_session(self): > if not self.core.session.is_paused(): >- self.core.session.pause() >+ self.core.pause_all_torrents() > self.need_to_resume_session = True > else: > self.need_to_resume_session = False > > def resume_session(self, result): >- self.core.session.resume() >+ self.core.resume_all_torrents() > self.need_to_resume_session = False > return result >diff -ru deluge-1.3.12/deluge/plugins/label/label/data/label_options.glade deluge-1.3-stable/deluge/plugins/label/label/data/label_options.glade >--- deluge-1.3.12/deluge/plugins/label/label/data/label_options.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/plugins/label/label/data/label_options.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -10,7 +10,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> > <property name="skip_taskbar_hint">True</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox1"> > <property name="visible">True</property> >@@ -650,7 +649,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> > <property name="skip_taskbar_hint">True</property> >- <property name="has_separator">False</property> > <signal name="close" handler="on_label_cancel"/> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox2"> >diff -ru deluge-1.3.12/deluge/plugins/notifications/notifications/gtkui.py deluge-1.3-stable/deluge/plugins/notifications/notifications/gtkui.py >--- deluge-1.3.12/deluge/plugins/notifications/notifications/gtkui.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/plugins/notifications/notifications/gtkui.py 2015-09-28 12:53:27.000000000 +0200 >@@ -227,7 +227,7 @@ > return '' > > def _on_torrent_finished_event_popup(self, torrent_id): >- d = client.core.get_torrent_status(torrent_id, ["name", "num_files"]) >+ d = client.core.get_torrent_status(torrent_id, ["name", "file_progress"]) > d.addCallback(self._on_torrent_finished_event_got_torrent_status) > d.addErrback(self._on_torrent_finished_event_torrent_status_failure) > return d >@@ -239,6 +239,7 @@ > log.debug("Handler for TorrentFinishedEvent GTKUI called. " > "Got Torrent Status") > title = _("Finished Torrent") >+ torrent_status["num_files"] = torrent_status["file_progress"].count(1.0) > message = _("The torrent \"%(name)s\" including %(num_files)i file(s) " > "has finished downloading.") % torrent_status > return title, message >diff -ru deluge-1.3.12/deluge/plugins/scheduler/scheduler/core.py deluge-1.3-stable/deluge/plugins/scheduler/scheduler/core.py >--- deluge-1.3.12/deluge/plugins/scheduler/scheduler/core.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/plugins/scheduler/scheduler/core.py 2015-09-28 12:53:27.000000000 +0200 >@@ -127,9 +127,9 @@ > """ > core_config = deluge.configmanager.ConfigManager("core.conf") > for setting in CONTROLLED_SETTINGS: >- component.get("PreferencesManager").do_config_set_func(setting, core_config[setting]) >+ core_config.apply_set_functions(setting) > # Resume the session if necessary >- component.get("Core").session.resume() >+ component.get("Core").resume_all_torrents() > > def do_schedule(self, timer=True): > """ >@@ -153,10 +153,10 @@ > settings.active_seeds = self.config["low_active_up"] > session.set_settings(settings) > # Resume the session if necessary >- component.get("Core").session.resume() >+ component.get("Core").resume_all_torrents() > elif state == "Red": > # This is Red (Stop), so pause the libtorrent session >- component.get("Core").session.pause() >+ component.get("Core").pause_all_torrents() > > if state != self.state: > # The state has changed since last update so we need to emit an event >diff -ru deluge-1.3.12/deluge/plugins/scheduler/scheduler/gtkui.py deluge-1.3-stable/deluge/plugins/scheduler/scheduler/gtkui.py >--- deluge-1.3.12/deluge/plugins/scheduler/scheduler/gtkui.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/plugins/scheduler/scheduler/gtkui.py 2015-09-28 12:53:27.000000000 +0200 >@@ -77,20 +77,20 @@ > > #redraw the whole thing > def expose(self, widget, event): >- self.context = self.window.cairo_create() >- self.context.rectangle(event.area.x, event.area.y, event.area.width, event.area.height) >- self.context.clip() >+ context = self.window.cairo_create() >+ context.rectangle(event.area.x, event.area.y, event.area.width, event.area.height) >+ context.clip() > > width = self.window.get_size()[0] > height = self.window.get_size()[1] > > for y in xrange(7): > for x in xrange(24): >- self.context.set_source_rgba(self.colors[self.button_state[x][y]][0], self.colors[self.button_state[x][y]][1], self.colors[self.button_state[x][y]][2], 0.7) >- self.context.rectangle(width*(6*x/145.0+1/145.0), height*(6*y/43.0+1/43.0), 5*width/145.0, 5*height/43.0) >- self.context.fill_preserve() >- self.context.set_source_rgba(0.5, 0.5, 0.5, 0.5) >- self.context.stroke() >+ context.set_source_rgba(self.colors[self.button_state[x][y]][0], self.colors[self.button_state[x][y]][1], self.colors[self.button_state[x][y]][2], 0.7) >+ context.rectangle(width*(6*x/145.0+1/145.0), height*(6*y/43.0+1/43.0), 5*width/145.0, 5*height/43.0) >+ context.fill_preserve() >+ context.set_source_rgba(0.5, 0.5, 0.5, 0.5) >+ context.stroke() > > #coordinates --> which box > def get_point(self, event): >diff -ru deluge-1.3.12/deluge/ui/gtkui/addtorrentdialog.py deluge-1.3-stable/deluge/ui/gtkui/addtorrentdialog.py >--- deluge-1.3.12/deluge/ui/gtkui/addtorrentdialog.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/addtorrentdialog.py 2015-09-28 12:53:27.000000000 +0200 >@@ -251,12 +251,16 @@ > > for uri in uris: > s = uri.split("&")[0][20:] >+ info_hash = None > if len(s) == 32: > info_hash = base64.b32decode(s).encode("hex") > elif len(s) == 40: > info_hash = s >+ if info_hash is None: >+ log.error("Invalid info_hash in uri: %s", uri) >+ continue > if info_hash in self.infos: >- log.debug("Torrent already in list!") >+ log.debug("Torrent already in list: %s", uri) > continue > name = None > for i in uri.split("&"): >diff -ru deluge-1.3.12/deluge/ui/gtkui/connectionmanager.py deluge-1.3-stable/deluge/ui/gtkui/connectionmanager.py >--- deluge-1.3.12/deluge/ui/gtkui/connectionmanager.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/connectionmanager.py 2015-09-28 12:53:27.000000000 +0200 >@@ -39,6 +39,7 @@ > import time > import hashlib > from twisted.internet import reactor >+from socket import gethostbyname > > import deluge.component as component > import deluge.common >@@ -303,8 +304,11 @@ > user = row[HOSTLIST_COL_USER] > password = row[HOSTLIST_COL_PASS] > >- if client.connected() and \ >- (host, port, "localclient" if not user and host in ("127.0.0.1", "localhost") else user) == client.connection_info(): >+ if client.connected() and ( >+ gethostbyname(host), >+ port, >+ "localclient" if not user and host in ("127.0.0.1", "localhost") else user >+ ) == client.connection_info(): > def on_info(info): > if not self.running: > return >diff -ru deluge-1.3.12/deluge/ui/gtkui/edittrackersdialog.py deluge-1.3-stable/deluge/ui/gtkui/edittrackersdialog.py >--- deluge-1.3.12/deluge/ui/gtkui/edittrackersdialog.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/edittrackersdialog.py 2015-09-28 12:53:27.000000000 +0200 >@@ -133,10 +133,12 @@ > tracker = self.liststore.get_value(selected, 1) > self.glade.get_widget("entry_edit_tracker").set_text(tracker) > self.edit_tracker_entry.show() >- self.glade.get_widget("edit_tracker_entry").grab_focus() >+ self.edit_tracker_entry.grab_focus() >+ self.dialog.set_sensitive(False) > > def on_button_edit_cancel_clicked(self, widget): > log.debug("on_button_edit_cancel_clicked") >+ self.dialog.set_sensitive(True) > self.edit_tracker_entry.hide() > > def on_button_edit_ok_clicked(self, widget): >@@ -144,6 +146,7 @@ > selected = self.get_selected() > tracker = self.glade.get_widget("entry_edit_tracker").get_text() > self.liststore.set_value(selected, 1, tracker) >+ self.dialog.set_sensitive(True) > self.edit_tracker_entry.hide() > > def on_button_up_clicked(self, widget): >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/add_torrent_dialog.glade deluge-1.3-stable/deluge/ui/gtkui/glade/add_torrent_dialog.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/add_torrent_dialog.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/add_torrent_dialog.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -1017,7 +1017,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">dialog</property> > <property name="decorated">False</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox4"> > <property name="visible">True</property> >@@ -1176,7 +1175,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">dialog</property> > <property name="decorated">False</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox5"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/connection_manager.glade deluge-1.3-stable/deluge/ui/gtkui/glade/connection_manager.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/connection_manager.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/connection_manager.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -10,7 +10,6 @@ > <property name="window_position">GTK_WIN_POS_CENTER</property> > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox3"> > <property name="visible">True</property> >@@ -211,7 +210,6 @@ > <property name="default_height">300</property> > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox2"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/create_torrent_dialog.glade deluge-1.3-stable/deluge/ui/gtkui/glade/create_torrent_dialog.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/create_torrent_dialog.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/create_torrent_dialog.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -696,7 +696,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> > <property name="decorated">False</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox7"> > <property name="visible">True</property> >@@ -840,7 +839,6 @@ > <property name="title" translatable="yes">Creating Torrent</property> > <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox2"> > <property name="visible">True</property> >@@ -879,7 +877,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> > <property name="decorated">False</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox4"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/dgtkpopups.glade deluge-1.3-stable/deluge/ui/gtkui/glade/dgtkpopups.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/dgtkpopups.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/dgtkpopups.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -157,7 +157,6 @@ > <property name="skip_taskbar_hint">True</property> > <property name="skip_pager_hint">True</property> > <property name="decorated">False</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox3"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/edit_trackers.glade deluge-1.3-stable/deluge/ui/gtkui/glade/edit_trackers.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/edit_trackers.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/edit_trackers.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -11,7 +11,6 @@ > <property name="default_width">400</property> > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox1"> > <property name="visible">True</property> >@@ -226,7 +225,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> > <property name="decorated">False</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox2"> > <property name="visible">True</property> >@@ -382,7 +380,6 @@ > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> > <property name="decorated">False</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox4"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/main_window.glade deluge-1.3-stable/deluge/ui/gtkui/glade/main_window.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/main_window.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/main_window.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -2280,7 +2280,6 @@ > <property name="resizable">False</property> > <property name="window_position">center-on-parent</property> > <property name="type_hint">dialog</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox3"> > <property name="visible">True</property> >@@ -2477,7 +2476,6 @@ > <property name="window_position">center-on-parent</property> > <property name="icon_name">deluge</property> > <property name="type_hint">dialog</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox2"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/move_storage_dialog.glade deluge-1.3-stable/deluge/ui/gtkui/glade/move_storage_dialog.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/move_storage_dialog.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/move_storage_dialog.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -10,7 +10,6 @@ > <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox4"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/preferences_dialog.glade deluge-1.3-stable/deluge/ui/gtkui/glade/preferences_dialog.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/preferences_dialog.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/preferences_dialog.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -11,7 +11,6 @@ > <property name="default_height">560</property> > <property name="destroy_with_parent">True</property> > <property name="type_hint">dialog</property> >- <property name="has_separator">False</property> > <signal name="configure_event" handler="on_pref_dialog_configure_event"/> > <signal name="delete_event" handler="on_pref_dialog_delete_event"/> > <child internal-child="vbox"> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/queuedtorrents.glade deluge-1.3-stable/deluge/ui/gtkui/glade/queuedtorrents.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/queuedtorrents.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/queuedtorrents.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -11,7 +11,6 @@ > <property name="default_height">300</property> > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox1"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/glade/remove_torrent_dialog.glade deluge-1.3-stable/deluge/ui/gtkui/glade/remove_torrent_dialog.glade >--- deluge-1.3.12/deluge/ui/gtkui/glade/remove_torrent_dialog.glade 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/glade/remove_torrent_dialog.glade 2015-09-28 12:53:27.000000000 +0200 >@@ -10,7 +10,6 @@ > <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> > <property name="destroy_with_parent">True</property> > <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> >- <property name="has_separator">False</property> > <child internal-child="vbox"> > <widget class="GtkVBox" id="dialog-vbox1"> > <property name="visible">True</property> >diff -ru deluge-1.3.12/deluge/ui/gtkui/listview.py deluge-1.3-stable/deluge/ui/gtkui/listview.py >--- deluge-1.3.12/deluge/ui/gtkui/listview.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/listview.py 2015-09-28 12:53:27.000000000 +0200 >@@ -429,8 +429,6 @@ > if self.liststore is not None: > self.liststore.foreach(copy_row, (new_list, self.columns)) > self.liststore = new_list >- self.create_model_filter() >- return > > def update_treeview_column(self, header, add=True): > """Update TreeViewColumn based on ListView column mappings""" >@@ -503,6 +501,8 @@ > del self.liststore_columns[index] > # Create a new liststore > self.create_new_liststore() >+ # Create new model for the treeview >+ self.create_model_filter() > > # Re-create the menu > self.create_checklist_menu() >@@ -547,7 +547,11 @@ > # Create a new list with the added column > self.create_new_liststore() > >- if column_type == None: >+ # Happens only on columns added after the torrent list has been loaded >+ if self.model_filter: >+ self.create_model_filter() >+ >+ if column_type is None: > return > > self.update_treeview_column(header) >@@ -630,15 +634,14 @@ > def add_progress_column(self, header, col_types=[float, str], sortid=0, > hidden=False, position=None, status_field=None, > function=None, column_type="progress", >- default=True): >+ sort_func=None, default=True): > """Add a progress column to the listview.""" > > render = gtk.CellRendererProgress() > self.add_column(header, render, col_types, hidden, position, > status_field, sortid, function=function, > column_type=column_type, value=0, text=1, >- default=default) >- >+ sort_func=sort_func, default=default) > return True > > def add_texticon_column(self, header, col_types=[str, str], sortid=1, >diff -ru deluge-1.3.12/deluge/ui/gtkui/options_tab.py deluge-1.3-stable/deluge/ui/gtkui/options_tab.py >--- deluge-1.3.12/deluge/ui/gtkui/options_tab.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/options_tab.py 2015-09-28 12:53:27.000000000 +0200 >@@ -150,6 +150,7 @@ > self.chk_move_completed.set_active(status["move_on_completed"]) > if status["move_on_completed_path"] != self.prev_status["move_on_completed_path"]: > if client.is_localhost(): >+ self.filechooser_move_completed.unselect_all() > self.filechooser_move_completed.set_current_folder(status["move_on_completed_path"]) > else: > self.entry_move_completed.set_text(status["move_on_completed_path"]) >diff -ru deluge-1.3.12/deluge/ui/gtkui/systemtray.py deluge-1.3-stable/deluge/ui/gtkui/systemtray.py >--- deluge-1.3.12/deluge/ui/gtkui/systemtray.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/systemtray.py 2015-09-28 12:53:27.000000000 +0200 >@@ -350,7 +350,7 @@ > self.tray_glade.get_widget("menuitem_show_deluge").set_active(False) > > popup_function = gtk.status_icon_position_menu >- if deluge.common.windows_check(): >+ if deluge.common.windows_check() or deluge.common.osx_check(): > popup_function = None > button = 0 > self.tray_menu.popup(None, None, popup_function, >diff -ru deluge-1.3.12/deluge/ui/gtkui/torrentview.py deluge-1.3-stable/deluge/ui/gtkui/torrentview.py >--- deluge-1.3.12/deluge/ui/gtkui/torrentview.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/gtkui/torrentview.py 2015-09-28 12:53:27.000000000 +0200 >@@ -210,6 +210,17 @@ > return queue_peer_seed_sort_function(v2, v4) > return queue_peer_seed_sort_function(v1, v3) > >+def progress_sort(model, iter1, iter2, sort_column_id): >+ progress1 = model[iter1][sort_column_id] >+ progress2 = model[iter2][sort_column_id] >+ # Progress value is equal, so sort on state >+ if progress1 == progress2: >+ state1 = model[iter1][sort_column_id + 1] >+ state2 = model[iter2][sort_column_id + 1] >+ return cmp(state1, state2) >+ return cmp(progress1, progress2) >+ >+ > class TorrentView(listview.ListView, component.Component): > """TorrentView handles the listing of torrents.""" > def __init__(self): >@@ -256,7 +267,8 @@ > self.add_progress_column(_("Progress"), > status_field=["progress", "state"], > col_types=[float, str], >- function=cell_data_progress) >+ function=cell_data_progress, >+ sort_func=progress_sort) > self.add_func_column(_("Seeders"), listview.cell_data_peer, [int, int], > status_field=["num_seeds", "total_seeds"], > sort_func=seed_peer_column_sort, default=False) >@@ -265,9 +277,9 @@ > sort_func=seed_peer_column_sort, default=False) > self.add_func_column(_("Seeders") + "/" + _("Peers"), listview.cell_data_ratio, [float], > status_field=["seeds_peers_ratio"], default=False) >- self.add_func_column(_("Down Speed"), listview.cell_data_speed, [float], >+ self.add_func_column(_("Down Speed"), listview.cell_data_speed, [int], > status_field=["download_payload_rate"]) >- self.add_func_column(_("Up Speed"), listview.cell_data_speed, [float], >+ self.add_func_column(_("Up Speed"), listview.cell_data_speed, [int], > status_field=["upload_payload_rate"]) > self.add_func_column(_("Down Limit"), listview.cell_data_speed_limit, [float], > status_field=["max_download_speed"], default=False) >@@ -279,7 +291,7 @@ > status_field=["ratio"], default=False) > self.add_func_column(_("Avail"), listview.cell_data_ratio, [float], > status_field=["distributed_copies"], default=False) >- self.add_func_column(_("Added"), listview.cell_data_date, [float], >+ self.add_func_column(_("Added"), listview.cell_data_date, [int], > status_field=["time_added"], default=False) > self.add_texticon_column(_("Tracker"), > status_field=["tracker_host", "tracker_host"], >diff -ru deluge-1.3.12/deluge/ui/web/json_api.py deluge-1.3-stable/deluge/ui/web/json_api.py >--- deluge-1.3.12/deluge/ui/web/json_api.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/deluge/ui/web/json_api.py 2015-09-28 12:53:27.000000000 +0200 >@@ -428,6 +428,8 @@ > def __init__(self): > super(WebApi, self).__init__("Web", depend=["SessionProxy"]) > self.host_list = ConfigManager("hostlist.conf.1.2", DEFAULT_HOSTS) >+ if not os.path.isfile(self.host_list.config_file): >+ self.host_list.save() > self.core_config = CoreConfig() > self.event_queue = EventQueue() > try: >diff -ru deluge-1.3.12/setup.py deluge-1.3-stable/setup.py >--- deluge-1.3.12/setup.py 2015-09-13 22:32:11.000000000 +0200 >+++ deluge-1.3-stable/setup.py 2015-09-28 12:53:27.000000000 +0200 >@@ -489,7 +489,7 @@ > > # Data files to be installed to the system. > _data_files = [] >-if not windows_check(): >+if not windows_check() and not osx_check(): > _data_files = [ > ('share/icons/hicolor/scalable/apps', ['deluge/data/icons/scalable/apps/deluge.svg']), > ('share/icons/hicolor/128x128/apps', ['deluge/data/icons/hicolor/128x128/apps/deluge.png']),
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 207558
:
167511
| 167512