mirror of
https://git.deluge-torrent.org/deluge
synced 2025-04-20 03:24:54 +00:00
connected a few toolbar buttons, started tinkering with preference dialog
This commit is contained in:
parent
2e8b880158
commit
ee60730dae
5 changed files with 1094 additions and 1004 deletions
|
@ -18,7 +18,7 @@
|
|||
# 51 Franklin Street, Fifth Floor
|
||||
# Boston, MA 02110-1301, USA.
|
||||
|
||||
import sys, os, webbrowser
|
||||
import sys, os, os.path, webbrowser
|
||||
|
||||
PROGRAM_NAME = "Deluge"
|
||||
PROGRAM_VERSION = "0.4.9.0"
|
||||
|
@ -36,6 +36,9 @@ class DelugePreferences:
|
|||
def get(self, key):
|
||||
return self.pref[key]
|
||||
|
||||
def keys(self):
|
||||
return self.pref.keys()
|
||||
|
||||
def load_from_file(self, filename):
|
||||
f = open(filename, mode='r')
|
||||
for line in f:
|
||||
|
|
115
src/delugegtk.py
115
src/delugegtk.py
|
@ -37,10 +37,20 @@ class DelugeGTK(dbus.service.Object):
|
|||
dbus.service.Object.__init__(self, bus_name, object_path)
|
||||
self.is_running = False
|
||||
self.torrent_file_queue = []
|
||||
#Load up a config file:
|
||||
self.conf_file = xdg.BaseDirectory.save_config_path("deluge-svn") + '/deluge.conf'
|
||||
if os.path.isdir(self.conf_file):
|
||||
print 'Weird, the file I was trying to write to, %s, is an existing directory'%(self.conf_file)
|
||||
sys.exit(0)
|
||||
if not os.path.isfile(self.conf_file):
|
||||
f = open(self.conf_file, mode='w')
|
||||
f.flush()
|
||||
f.close()
|
||||
self.pref = dcommon.DelugePreferences()
|
||||
self.pref.load_from_file(self.conf_file)
|
||||
#Start the Deluge Manager:
|
||||
self.manager = deluge.Manager("DE", "0500", "Deluge 0.5.0",
|
||||
os.path.expanduser("~") + "/Temp")
|
||||
#xdg.BaseDirectory.save_config_path("deluge-svn"))
|
||||
self.manager = deluge.Manager("DE", "0490", "Deluge 0.4.9",
|
||||
xdg.BaseDirectory.save_config_path("deluge-svn"))
|
||||
#Set up the interface:
|
||||
self.gladefile = dcommon.get_glade_file("delugegtk.glade")
|
||||
self.wtree = gtk.glade.XML(self.gladefile)
|
||||
|
@ -68,8 +78,8 @@ class DelugeGTK(dbus.service.Object):
|
|||
"remove_torrent" : self.remove_torrent_clicked,
|
||||
"menu_quit": self.quit,
|
||||
## Edit Menu
|
||||
"pref_clicked": self.prf.show_pref,
|
||||
"plugins_clicked": self.prf.show_plugins,
|
||||
"pref_clicked": self.show_pref,
|
||||
"plugins_clicked": self.show_plugins,
|
||||
## View Menu
|
||||
"infopane_toggle": self.infopane_toggle,
|
||||
"size_toggle": self.size_toggle,
|
||||
|
@ -83,7 +93,11 @@ class DelugeGTK(dbus.service.Object):
|
|||
## Help Menu
|
||||
"show_about_dialog": self.abt.show,
|
||||
## Toolbar
|
||||
"recheck_files": self.recheck_files,
|
||||
"update_tracker": self.update_tracker,
|
||||
"clear_finished": self.clear_finished,
|
||||
"queue_up": self.q_torrent_up,
|
||||
"queue_down": self.q_torrent_down,
|
||||
## Other events
|
||||
"torrentrow_click": self.torrentview_clicked,
|
||||
})
|
||||
|
@ -91,7 +105,7 @@ class DelugeGTK(dbus.service.Object):
|
|||
## Create the torrent listview
|
||||
self.view = self.wtree.get_widget("torrent_view")
|
||||
# UID, Q#, Name, Size, Progress, Message, Seeders, Peers, DL, UL, ETA, Share
|
||||
self.store = gtk.ListStore(int, int, str, str, int, str, str, str, str, str, str, str)
|
||||
self.store = gtk.ListStore(int, int, str, str, float, str, str, str, str, str, str, str)
|
||||
self.view.set_model(self.store)
|
||||
self.view.set_rules_hint(True)
|
||||
|
||||
|
@ -157,6 +171,7 @@ class DelugeGTK(dbus.service.Object):
|
|||
self.text_summary_eta = self.wtree.get_widget("summary_eta")
|
||||
|
||||
## Interface created
|
||||
self.apply_prefs()
|
||||
|
||||
## external_add_torrent should only be called from outside the class
|
||||
@dbus.service.method('org.deluge_torrent.DelugeInterface')
|
||||
|
@ -196,8 +211,34 @@ class DelugeGTK(dbus.service.Object):
|
|||
gtk.main()
|
||||
except KeyboardInterrupt:
|
||||
self.manager.quit()
|
||||
|
||||
def show_pref(self, o=None):
|
||||
self.pref = self.prf.show_dlg(self.pref)
|
||||
|
||||
def show_plugins(self, o=None):
|
||||
pass
|
||||
|
||||
def apply_prefs(self):
|
||||
for k in self.pref.keys():
|
||||
print k, self.pref.get(k)
|
||||
|
||||
|
||||
# UID, Q#, Name, Size, Progress, Message, Seeders, Peers, DL, UL, ETA, Share
|
||||
def get_list_from_unique_id(self, unique_id):
|
||||
state = self.manager.get_torrent_state(unique_id)
|
||||
queue = int(state['queue_pos']) + 1
|
||||
name = state['name']
|
||||
size = dcommon.fsize(state['total_size'])
|
||||
progress = float(state['progress'] * 100)
|
||||
message = deluge.STATE_MESSAGES[state['state']]
|
||||
seeds = dcommon.fseed(state)
|
||||
peers = dcommon.fpeer(state)
|
||||
dlrate = dcommon.frate(state['download_rate'])
|
||||
ulrate = dcommon.frate(state['upload_rate'])
|
||||
eta = "NULL"
|
||||
share = self.calc_share_ratio(unique_id, state)
|
||||
return [unique_id, queue, name, size, progress, message,
|
||||
seeds, peers, dlrate, ulrate, eta, share]
|
||||
|
||||
## Call via a timer to update the interface
|
||||
def update(self):
|
||||
|
@ -239,7 +280,7 @@ class DelugeGTK(dbus.service.Object):
|
|||
self.text_summary_seeders.set_text(dcommon.fseed(state))
|
||||
self.text_summary_peers.set_text(dcommon.fpeer(state))
|
||||
self.text_summary_percentage_done.set_text(dcommon.fpcnt(state["progress"]))
|
||||
self.text_summary_share_ratio.set_text(self.calc_share_ratio(state))
|
||||
self.text_summary_share_ratio.set_text(self.calc_share_ratio(self.get_selected_torrent(), state))
|
||||
#self.text_summary_downloaded_this_session.set_text(str(state[""]))
|
||||
#self.text_summary_uplodaded_this_session.set_text(str(state[""]))
|
||||
self.text_summary_tracker.set_text(str(state["tracker"]))
|
||||
|
@ -263,34 +304,16 @@ class DelugeGTK(dbus.service.Object):
|
|||
|
||||
return True
|
||||
|
||||
def calc_share_ratio(self, torrent_state):
|
||||
if torrent_state["total_upload"] == 0:
|
||||
return "0"
|
||||
elif torrent_state["total_download"] == 0:
|
||||
return "Undefined"
|
||||
else:
|
||||
ratio = float(torrent_state["total_upload"]) / float(torrent_state["total_download"])
|
||||
return dcommon.fpcnt(ratio)
|
||||
def calc_share_ratio(self, unique_id, torrent_state):
|
||||
r = self.manager.calc_ratio(unique_id, torrent_state)
|
||||
return '%.2f'%(r)
|
||||
|
||||
def get_selected_torrent(self):
|
||||
return self.store.get_value(self.view.get_selection().get_selected()[1], 0)
|
||||
|
||||
# UID, Q#, Name, Size, Progress, Message, Seeders, Peers, DL, UL, ETA, Share
|
||||
def get_list_from_unique_id(self, unique_id):
|
||||
state = self.manager.get_torrent_state(unique_id)
|
||||
queue = int(state['queue_pos']) + 1
|
||||
name = state['name']
|
||||
size = dcommon.fsize(state['total_size'])
|
||||
progress =state['progress']
|
||||
message = deluge.STATE_MESSAGES[state['state']]
|
||||
seeds = dcommon.fseed(state)
|
||||
peers = dcommon.fpeer(state)
|
||||
dlrate = dcommon.frate(state['download_rate'])
|
||||
ulrate = dcommon.frate(state['upload_rate'])
|
||||
eta = "NULL"
|
||||
share = self.calc_share_ratio(state)
|
||||
return [unique_id, queue, name, size, progress, message,
|
||||
seeds, peers, dlrate, ulrate, eta, share]
|
||||
try:
|
||||
return self.store.get_value(self.view.get_selection().get_selected()[1], 0)
|
||||
except TypeError:
|
||||
return None
|
||||
|
||||
|
||||
def new_torrent_clicked(self, obj=None):
|
||||
pass
|
||||
|
@ -302,11 +325,31 @@ class DelugeGTK(dbus.service.Object):
|
|||
self.store.append(self.get_list_from_unique_id(uid))
|
||||
|
||||
def remove_torrent_clicked(self, obj=None):
|
||||
self.manager.remove_torrent(self.get_selected_torrent(), False)
|
||||
torrent = self.get_selected_torrent()
|
||||
if torrent is not None:
|
||||
self.manager.remove_torrent(torrent, False)
|
||||
|
||||
def recheck_files(self, obj=None):
|
||||
pass
|
||||
|
||||
def update_tracker(self, obj=None):
|
||||
self.manager.update_tracker(get_selected_torrent())
|
||||
|
||||
torrent = self.get_selected_torrent()
|
||||
if torrent is not None:
|
||||
self.manager.update_tracker(torrent)
|
||||
|
||||
def clear_finished(self, obj=None):
|
||||
self.manager.clear_completed()
|
||||
|
||||
def q_torrent_up(self, obj=None):
|
||||
torrent = self.get_selected_torrent()
|
||||
if torrent is not None:
|
||||
self.manager.queue_up(torrent)
|
||||
|
||||
def q_torrent_down(self, obj=None):
|
||||
torrent = self.get_selected_torrent()
|
||||
if torrent is not None:
|
||||
self.manager.queue_up(torrent)
|
||||
|
||||
def torrentview_clicked(self, widget, event):
|
||||
pass
|
||||
|
||||
|
|
58
src/dgtk.py
58
src/dgtk.py
|
@ -63,33 +63,51 @@ class AboutDialog:
|
|||
self.abt.show_all()
|
||||
self.abt.run()
|
||||
self.abt.hide_all()
|
||||
|
||||
|
||||
|
||||
## TODO: Merge this class (and possibly others) into the main interface class
|
||||
class PreferencesDialog:
|
||||
def __init__(self):
|
||||
self.gladefile = dcommon.get_glade_file("dgtkpref.glade")
|
||||
self.wtree = gtk.glade.XML(self.gladefile)
|
||||
self.prf = self.wtree.get_widget("pref_dialog")
|
||||
self.dlg = self.wtree.get_widget("pref_dialog")
|
||||
self.notebook = self.wtree.get_widget("pref_notebook")
|
||||
self.prf.set_icon_from_file(dcommon.get_pixmap("deluge32.png"))
|
||||
self.dlg.set_icon_from_file(dcommon.get_pixmap("deluge32.png"))
|
||||
|
||||
self.plugin_view = self.wtree.get_widget("plugin_view")
|
||||
self.plugin_store = gtk.ListStore(str, 'gboolean')
|
||||
self.plugin_view.set_model(self.plugin_store)
|
||||
self.plugin_name_column = add_text_column(self.plugin_view, "Plugin", 0)
|
||||
self.plugin_name_column.set_expand(True)
|
||||
self.plugin_toggle_column = add_toggle_column(self.plugin_view, "Enable", 1)
|
||||
#self.plugin_view = self.wtree.get_widget("plugin_view")
|
||||
#self.plugin_store = gtk.ListStore(str, 'gboolean')
|
||||
#self.plugin_view.set_model(self.plugin_store)
|
||||
#self.plugin_name_column = add_text_column(self.plugin_view, "Plugin", 0)
|
||||
#self.plugin_name_column.set_expand(True)
|
||||
#self.plugin_toggle_column = add_toggle_column(self.plugin_view, "Enable", 1)
|
||||
|
||||
self.wtree.signal_autoconnect({"tray_toggle": self.tray_toggle,
|
||||
})
|
||||
|
||||
def show_pref(self, arg=None):
|
||||
self.prf.show_all()
|
||||
self.notebook.set_current_page(0)
|
||||
self.prf.run()
|
||||
self.prf.hide_all()
|
||||
def tray_toggle(self, obj):
|
||||
if obj.get_active():
|
||||
self.wtree.get_widget("chk_min_on_close").set_sensitive(True)
|
||||
else:
|
||||
self.wtree.get_widget("chk_min_on_close").set_sensitive(False)
|
||||
|
||||
def show_plugins(self, arg=None):
|
||||
self.prf.show_all()
|
||||
self.notebook.set_current_page(2)
|
||||
self.prf.run()
|
||||
self.prf.hide_all()
|
||||
def set_pref(self, pref_file):
|
||||
pass
|
||||
|
||||
def get_pref(self, pref_file):
|
||||
pass
|
||||
|
||||
def show_dlg(self, conf=None, page=0):
|
||||
self.dlg.show_all()
|
||||
self.notebook.set_current_page(page)
|
||||
# Set existing options
|
||||
self.set_pref(conf)
|
||||
|
||||
self.dlg.run()
|
||||
self.dlg.hide_all()
|
||||
|
||||
class PluginsDialog:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
|
||||
## A simple file open dialog. I'm going to improve it later,
|
||||
|
@ -137,4 +155,4 @@ def add_toggle_column(view, header, cid, toggled_signal=None):
|
|||
view.append_column(column)
|
||||
if toggled_signal is not None:
|
||||
render.connect("toggled", toggled_signal, cid)
|
||||
return column
|
||||
return column
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -32,6 +32,7 @@
|
|||
<child>
|
||||
<widget class="GtkExpander" id="expander6">
|
||||
<property name="visible">True</property>
|
||||
<property name="expanded">True</property>
|
||||
<child>
|
||||
<widget class="GtkTable" id="table5">
|
||||
<property name="visible">True</property>
|
||||
|
@ -44,10 +45,15 @@
|
|||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
<widget class="GtkCheckButton" id="chk_use_tray">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Enable system tray icon</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="tray_toggle"/>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="chk_min_on_close">
|
||||
|
@ -57,6 +63,9 @@
|
|||
</widget>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_padding">12</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
|
@ -78,23 +87,26 @@
|
|||
<child>
|
||||
<widget class="GtkExpander" id="expander1">
|
||||
<property name="visible">True</property>
|
||||
<property name="expanded">True</property>
|
||||
<child>
|
||||
<widget class="GtkTable" id="table3">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">2</property>
|
||||
<property name="n_columns">2</property>
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="radio_ask_save">
|
||||
<widget class="GtkFileChooserButton" id="filechooserbutton1">
|
||||
<property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Ask me where to save each download</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkRadioButton" id="radio_save_all_too">
|
||||
<widget class="GtkRadioButton" id="radio_save_all_to">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Save all downloads to:</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
|
@ -106,15 +118,13 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkFileChooserButton" id="filechooserbutton1">
|
||||
<widget class="GtkRadioButton" id="radio_ask_save">
|
||||
<property name="visible">True</property>
|
||||
<property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
|
||||
<property name="label" translatable="yes">Ask me where to save each download</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
|
@ -137,25 +147,18 @@
|
|||
<child>
|
||||
<widget class="GtkExpander" id="expander2">
|
||||
<property name="visible">True</property>
|
||||
<property name="expanded">True</property>
|
||||
<child>
|
||||
<widget class="GtkTable" id="table4">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">1</property>
|
||||
<property name="n_columns">2</property>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbutton1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Stop seeding torrents when
|
||||
their share ratio reaches:</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spinbutton1">
|
||||
<widget class="GtkSpinButton" id="ratio_spinner">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0.10000000000000001 0 10 0.10000000000000001 10 10</property>
|
||||
<property name="climb_rate">0.10000000149011612</property>
|
||||
<property name="adjustment">1 0 10 0.10000000000000001 10 10</property>
|
||||
<property name="climb_rate">0.05000000074505806</property>
|
||||
<property name="digits">2</property>
|
||||
<property name="snap_to_ticks">True</property>
|
||||
</widget>
|
||||
|
@ -164,6 +167,14 @@ their share ratio reaches:</property>
|
|||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="chk_autoseed">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Stop seeding torrents when
|
||||
their share ratio reaches:</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -184,8 +195,9 @@ their share ratio reaches:</property>
|
|||
<child>
|
||||
<widget class="GtkExpander" id="expander3">
|
||||
<property name="visible">True</property>
|
||||
<property name="expanded">True</property>
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbutton2">
|
||||
<widget class="GtkCheckButton" id="chk_compact">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Use compact storage allocation</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
|
@ -256,27 +268,41 @@ their share ratio reaches:</property>
|
|||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkButton" id="button6">
|
||||
<widget class="GtkLabel" id="label25">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Test Port</property>
|
||||
<property name="label" translatable="yes">Try from:</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label28">
|
||||
<widget class="GtkLabel" id="label26">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">label</property>
|
||||
<property name="label" translatable="yes">to:</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spin_port_min">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spin_port_max">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="right_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -292,42 +318,28 @@ their share ratio reaches:</property>
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spinbutton3">
|
||||
<widget class="GtkLabel" id="active_port_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="right_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spinbutton2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label26">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">to:</property>
|
||||
<property name="label" translatable="yes">0000</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label25">
|
||||
<widget class="GtkButton" id="btn_test_port">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Try from:</property>
|
||||
<property name="label" translatable="yes">Test Port</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="right_attach">4</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
@ -355,32 +367,53 @@ their share ratio reaches:</property>
|
|||
<property name="n_rows">4</property>
|
||||
<property name="n_columns">2</property>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label4">
|
||||
<widget class="GtkSpinButton" id="spinbutton4">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Maximum Upload Rate:</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Maximum number of Uploads:</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spin_num_download">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spin_num_upload">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label2">
|
||||
<widget class="GtkSpinButton" id="spin_max_upload">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Maximum Download Rate:</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -395,55 +428,34 @@ their share ratio reaches:</property>
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spinbutton7">
|
||||
<widget class="GtkLabel" id="label2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Maximum Download Rate:</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spinbutton6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spinbutton5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkSpinButton" id="spinbutton4">
|
||||
<widget class="GtkLabel" id="label3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="adjustment">0 0 100 1 10 10</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Maximum number of Uploads:</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">3</property>
|
||||
<property name="bottom_attach">4</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Maximum Upload Rate:</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -486,81 +498,6 @@ their share ratio reaches:</property>
|
|||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkTable" id="plugins_options">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">2</property>
|
||||
<property name="n_columns">2</property>
|
||||
<child>
|
||||
<widget class="GtkTextView" id="plugin_text">
|
||||
<property name="visible">True</property>
|
||||
<property name="editable">False</property>
|
||||
<property name="wrap_mode">GTK_WRAP_WORD</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="x_padding">10</property>
|
||||
<property name="y_padding">10</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox1">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="button1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">gtk-preferences</property>
|
||||
<property name="use_stock">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkButton" id="button2">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">gtk-apply</property>
|
||||
<property name="use_stock">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkTreeView" id="plugin_view">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">2</property>
|
||||
<property name="tab_expand">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label20">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Plugins</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="type">tab</property>
|
||||
<property name="position">2</property>
|
||||
<property name="tab_expand">False</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
|
@ -597,4 +534,128 @@ their share ratio reaches:</property>
|
|||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<widget class="GtkDialog" id="plugin_dialog">
|
||||
<property name="width_request">480</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="title" translatable="yes">Preferences Dialog</property>
|
||||
<property name="default_width">583</property>
|
||||
<property name="default_height">431</property>
|
||||
<property name="has_separator">False</property>
|
||||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="dialog-vbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK</property>
|
||||
<property name="spacing">2</property>
|
||||
<child>
|
||||
<widget class="GtkNotebook" id="pref_notebook1">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<widget class="GtkTable" id="plugins_options1">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">2</property>
|
||||
<property name="n_columns">2</property>
|
||||
<child>
|
||||
<widget class="GtkTextView" id="plugin_text1">
|
||||
<property name="visible">True</property>
|
||||
<property name="editable">False</property>
|
||||
<property name="wrap_mode">GTK_WRAP_WORD</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="x_padding">10</property>
|
||||
<property name="y_padding">10</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="button7">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">gtk-preferences</property>
|
||||
<property name="use_stock">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkButton" id="button8">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">gtk-apply</property>
|
||||
<property name="use_stock">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="bottom_attach">2</property>
|
||||
<property name="x_options">GTK_FILL</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkTreeView" id="plugin_view1">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="bottom_attach">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="tab_expand">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label34">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Plugins</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="type">tab</property>
|
||||
<property name="tab_expand">False</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="dialog-action_area2">
|
||||
<property name="visible">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
<child>
|
||||
<widget class="GtkButton" id="button9">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">gtk-cancel</property>
|
||||
<property name="use_stock">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkButton" id="button10">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">gtk-ok</property>
|
||||
<property name="use_stock">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</glade-interface>
|
||||
|
|
Loading…
Add table
Reference in a new issue