From d1772d410235592b482e3b08b1863f6624d9fe6b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 19 Feb 2023 15:52:21 +0100 Subject: Adding upstream version 2.0.3. Signed-off-by: Daniel Baumann --- deluge/ui/gtk3/trackers_tab.py | 74 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 deluge/ui/gtk3/trackers_tab.py (limited to 'deluge/ui/gtk3/trackers_tab.py') diff --git a/deluge/ui/gtk3/trackers_tab.py b/deluge/ui/gtk3/trackers_tab.py new file mode 100644 index 0000000..d83b995 --- /dev/null +++ b/deluge/ui/gtk3/trackers_tab.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2008 Andrew Resch +# +# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with +# the additional special exception to link portions of this program with the OpenSSL library. +# See LICENSE for more details. +# + +from __future__ import unicode_literals + +import logging + +import deluge.component as component +from deluge.common import ftime + +from .tab_data_funcs import fcount, ftranslate, fyes_no +from .torrentdetails import Tab + +log = logging.getLogger(__name__) + + +class TrackersTab(Tab): + def __init__(self): + super(TrackersTab, self).__init__( + 'Trackers', 'trackers_tab', 'trackers_tab_label' + ) + + self.add_tab_widget('summary_next_announce', ftime, ('next_announce',)) + self.add_tab_widget('summary_tracker', None, ('tracker_host',)) + self.add_tab_widget('summary_tracker_status', ftranslate, ('tracker_status',)) + self.add_tab_widget('summary_tracker_total', fcount, ('trackers',)) + self.add_tab_widget('summary_private', fyes_no, ('private',)) + + component.get('MainWindow').connect_signals(self) + + def update(self): + # Get the first selected torrent + selected = component.get('TorrentView').get_selected_torrents() + + # Only use the first torrent in the list or return if None selected + if selected: + selected = selected[0] + else: + self.clear() + return + + session = component.get('SessionProxy') + session.get_torrent_status(selected, self.status_keys).addCallback( + self._on_get_torrent_status + ) + + def _on_get_torrent_status(self, status): + # Check to see if we got valid data from the core + if not status: + return + + # Update all the tab label widgets + for widget in self.tab_widgets.values(): + txt = self.widget_status_as_fstr(widget, status) + if widget.obj.get_text() != txt: + widget.obj.set_text(txt) + + def clear(self): + for widget in self.tab_widgets.values(): + widget.obj.set_text('') + + def on_button_edit_trackers_clicked(self, button): + torrent_id = component.get('TorrentView').get_selected_torrent() + if torrent_id: + from .edittrackersdialog import EditTrackersDialog + + dialog = EditTrackersDialog(torrent_id, component.get('MainWindow').window) + dialog.run() -- cgit v1.2.3