mirror of
https://github.com/codex-storage/deluge.git
synced 2025-02-26 01:55:15 +00:00
Migrated create torrent dialog to GtkBuilder.
Additionally creating a torrent and saving it on a remote path now mimics the behaviour on doing it locally. Need to evaluate to see if it's possible to also show a progress when doing this remotely as now, the progress is only seen when doing it locally.
This commit is contained in:
parent
dd50b7bea1
commit
12d0e9574b
@ -53,17 +53,31 @@ log = logging.getLogger(__name__)
|
||||
|
||||
class CreateTorrentDialog:
|
||||
def show(self):
|
||||
self.glade = gtk.glade.XML(
|
||||
deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui",
|
||||
os.path.join("glade", "create_torrent_dialog.glade")))
|
||||
self.builder = gtk.Builder()
|
||||
|
||||
# The main dialog
|
||||
self.builder.add_from_file(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "create_torrent_dialog.ui")
|
||||
))
|
||||
# The remote path dialog
|
||||
self.builder.add_from_file(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "create_torrent_dialog.remote_path.ui")
|
||||
))
|
||||
# The remote save dialog
|
||||
self.builder.add_from_file(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "create_torrent_dialog.remote_save.ui")
|
||||
))
|
||||
# The progress dialog
|
||||
self.builder.add_from_file(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "create_torrent_dialog.progress.ui")
|
||||
))
|
||||
|
||||
self.config = ConfigManager("gtkui.conf")
|
||||
|
||||
self.dialog = self.glade.get_widget("create_torrent_dialog")
|
||||
self.dialog = self.builder.get_object("create_torrent_dialog")
|
||||
self.dialog.set_transient_for(component.get("MainWindow").window)
|
||||
|
||||
self.glade.signal_autoconnect({
|
||||
self.builder.connect_signals({
|
||||
"on_button_file_clicked": self._on_button_file_clicked,
|
||||
"on_button_folder_clicked": self._on_button_folder_clicked,
|
||||
"on_button_remote_path_clicked": self._on_button_remote_path_clicked,
|
||||
@ -86,32 +100,32 @@ class CreateTorrentDialog:
|
||||
column.pack_start(render, True)
|
||||
column.add_attribute(render, "text", 0)
|
||||
column.set_expand(True)
|
||||
self.glade.get_widget("treeview_files").append_column(column)
|
||||
self.builder.get_object("treeview_files").append_column(column)
|
||||
|
||||
column = gtk.TreeViewColumn(_("Size"))
|
||||
render = gtk.CellRendererText()
|
||||
column.pack_start(render)
|
||||
column.set_cell_data_func(render, listview.cell_data_size, 2)
|
||||
self.glade.get_widget("treeview_files").append_column(column)
|
||||
self.builder.get_object("treeview_files").append_column(column)
|
||||
|
||||
self.glade.get_widget("treeview_files").set_model(self.files_treestore)
|
||||
self.glade.get_widget("treeview_files").set_show_expanders(False)
|
||||
self.builder.get_object("treeview_files").set_model(self.files_treestore)
|
||||
self.builder.get_object("treeview_files").set_show_expanders(False)
|
||||
|
||||
# tier, url
|
||||
self.trackers_liststore = gtk.ListStore(int, str)
|
||||
|
||||
self.glade.get_widget("tracker_treeview").append_column(
|
||||
self.builder.get_object("tracker_treeview").append_column(
|
||||
gtk.TreeViewColumn(_("Tier"), gtk.CellRendererText(), text=0))
|
||||
self.glade.get_widget("tracker_treeview").append_column(
|
||||
self.builder.get_object("tracker_treeview").append_column(
|
||||
gtk.TreeViewColumn(_("Tracker"), gtk.CellRendererText(), text=1))
|
||||
|
||||
self.glade.get_widget("tracker_treeview").set_model(self.trackers_liststore)
|
||||
self.builder.get_object("tracker_treeview").set_model(self.trackers_liststore)
|
||||
self.trackers_liststore.set_sort_column_id(0, gtk.SORT_ASCENDING)
|
||||
|
||||
if not client.is_localhost() and client.connected():
|
||||
self.glade.get_widget("button_remote_path").show()
|
||||
self.builder.get_object("button_remote_path").show()
|
||||
else:
|
||||
self.glade.get_widget("button_remote_path").hide()
|
||||
self.builder.get_object("button_remote_path").hide()
|
||||
|
||||
self.dialog.show()
|
||||
|
||||
@ -130,12 +144,12 @@ class CreateTorrentDialog:
|
||||
def adjust_piece_size(self):
|
||||
"""Adjusts the recommended piece based on the file/folder/path selected."""
|
||||
size = self.files_treestore[0][2]
|
||||
model = self.glade.get_widget("combo_piece_size").get_model()
|
||||
model = self.builder.get_object("combo_piece_size").get_model()
|
||||
for index,value in enumerate(model):
|
||||
psize = self.parse_piece_size_text(value[0])
|
||||
pieces = size / psize
|
||||
if pieces < 2048 or (index + 1) == len(model):
|
||||
self.glade.get_widget("combo_piece_size").set_active(index)
|
||||
self.builder.get_object("combo_piece_size").set_active(index)
|
||||
break
|
||||
|
||||
def _on_button_file_clicked(self, widget):
|
||||
@ -197,8 +211,8 @@ class CreateTorrentDialog:
|
||||
|
||||
def _on_button_remote_path_clicked(self, widget):
|
||||
log.debug("_on_button_remote_path_clicked")
|
||||
dialog = self.glade.get_widget("remote_path_dialog")
|
||||
entry = self.glade.get_widget("entry_path")
|
||||
dialog = self.builder.get_object("remote_path_dialog")
|
||||
entry = self.builder.get_object("entry_path")
|
||||
dialog.set_transient_for(self.dialog)
|
||||
entry.set_text("/")
|
||||
entry.grab_focus()
|
||||
@ -229,10 +243,14 @@ class CreateTorrentDialog:
|
||||
is_remote = self.files_treestore[0][1] == gtk.STOCK_NETWORK
|
||||
if is_remote:
|
||||
# This is a remote path
|
||||
dialog = self.glade.get_widget("remote_save_dialog")
|
||||
dialog = self.builder.get_object("remote_save_dialog")
|
||||
dialog.set_transient_for(self.dialog)
|
||||
self.builder.get_object("entry_save_path").set_text(
|
||||
os.path.split(self.files_treestore[0][0])[-1] + ".torrent"
|
||||
)
|
||||
response = dialog.run()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
result = self.glade.get_widget("entry_save_path").get_text()
|
||||
result = self.builder.get_object("entry_save_path").get_text()
|
||||
else:
|
||||
dialog.hide()
|
||||
return
|
||||
@ -242,8 +260,7 @@ class CreateTorrentDialog:
|
||||
chooser = gtk.FileChooserDialog(_("Save .torrent file"),
|
||||
self.dialog,
|
||||
gtk.FILE_CHOOSER_ACTION_SAVE,
|
||||
buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE,
|
||||
gtk.RESPONSE_OK))
|
||||
buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE, gtk.RESPONSE_OK))
|
||||
|
||||
chooser.set_transient_for(self.dialog)
|
||||
chooser.set_select_multiple(False)
|
||||
@ -294,22 +311,20 @@ class CreateTorrentDialog:
|
||||
|
||||
# Get a list of webseeds
|
||||
webseeds = []
|
||||
b = self.glade.get_widget("textview_webseeds").get_buffer()
|
||||
b = self.builder.get_object("textview_webseeds").get_buffer()
|
||||
lines = b.get_text(b.get_start_iter(), b.get_end_iter()).strip().split("\n")
|
||||
import deluge.common
|
||||
for l in lines:
|
||||
if deluge.common.is_url(l):
|
||||
webseeds.append(l)
|
||||
# Get the piece length in bytes
|
||||
combo = self.glade.get_widget("combo_piece_size")
|
||||
piece_length = \
|
||||
self.parse_piece_size_text(combo.get_model()[combo.get_active()][0])
|
||||
num_pieces = self.files_treestore[0][2] / piece_length
|
||||
combo = self.builder.get_object("combo_piece_size")
|
||||
piece_length = self.parse_piece_size_text(combo.get_model()[combo.get_active()][0])
|
||||
|
||||
author = self.glade.get_widget("entry_author").get_text()
|
||||
comment = self.glade.get_widget("entry_comments").get_text()
|
||||
private = self.glade.get_widget("chk_private_flag").get_active()
|
||||
add_to_session = self.glade.get_widget("chk_add_to_session").get_active()
|
||||
author = self.builder.get_object("entry_author").get_text()
|
||||
comment = self.builder.get_object("entry_comments").get_text()
|
||||
private = self.builder.get_object("chk_private_flag").get_active()
|
||||
add_to_session = self.builder.get_object("chk_add_to_session").get_active()
|
||||
|
||||
if is_remote:
|
||||
client.core.create_torrent(
|
||||
@ -326,11 +341,11 @@ class CreateTorrentDialog:
|
||||
|
||||
else:
|
||||
# Setup progress dialog
|
||||
self.glade.get_widget("progress_dialog").set_transient_for(component.get("MainWindow").window)
|
||||
self.glade.get_widget("progress_dialog").show_all()
|
||||
self.builder.get_object("progress_dialog").set_transient_for(component.get("MainWindow").window)
|
||||
self.builder.get_object("progress_dialog").show_all()
|
||||
|
||||
def hide_progress(result):
|
||||
self.glade.get_widget("progress_dialog").hide_all()
|
||||
self.builder.get_object("progress_dialog").hide_all()
|
||||
|
||||
deferToThread(self.create_torrent,
|
||||
path.decode('utf-8'),
|
||||
@ -348,7 +363,7 @@ class CreateTorrentDialog:
|
||||
self.dialog.destroy()
|
||||
|
||||
def create_torrent(self, path, tracker, piece_length, progress, comment, target,
|
||||
webseeds, private, created_by, trackers, add_to_session):
|
||||
webseeds, private, created_by, trackers, add_to_session):
|
||||
import deluge.metafile
|
||||
deluge.metafile.make_meta_file(
|
||||
path,
|
||||
@ -370,14 +385,14 @@ class CreateTorrentDialog:
|
||||
|
||||
def _on_create_torrent_progress(self, value, num_pieces):
|
||||
percent = float(value)/float(num_pieces)
|
||||
pbar = self.glade.get_widget("progressbar")
|
||||
pbar = self.builder.get_object("progressbar")
|
||||
pbar.set_text("%.2f%%" % (percent*100))
|
||||
if percent >= 0 and percent <= 1.0:
|
||||
pbar.set_fraction(percent)
|
||||
|
||||
def _on_button_up_clicked(self, widget):
|
||||
log.debug("_on_button_up_clicked")
|
||||
row = self.glade.get_widget("tracker_treeview").get_selection().get_selected()[1]
|
||||
row = self.builder.get_object("tracker_treeview").get_selection().get_selected()[1]
|
||||
if row is None:
|
||||
return
|
||||
if self.trackers_liststore[row][0] == 0:
|
||||
@ -387,7 +402,7 @@ class CreateTorrentDialog:
|
||||
|
||||
def _on_button_down_clicked(self, widget):
|
||||
log.debug("_on_button_down_clicked")
|
||||
row = self.glade.get_widget("tracker_treeview").get_selection().get_selected()[1]
|
||||
row = self.builder.get_object("tracker_treeview").get_selection().get_selected()[1]
|
||||
if row is None:
|
||||
return
|
||||
self.trackers_liststore[row][0] += 1
|
||||
@ -419,7 +434,7 @@ class CreateTorrentDialog:
|
||||
if deluge.common.is_url(l):
|
||||
trackers.append(l)
|
||||
|
||||
# We are going to add these trackers to the heighest tier + 1
|
||||
# We are going to add these trackers to the highest tier + 1
|
||||
tier = 0
|
||||
for row in self.trackers_liststore:
|
||||
if row[0] > tier:
|
||||
@ -432,7 +447,7 @@ class CreateTorrentDialog:
|
||||
|
||||
def _on_button_remove_clicked(self, widget):
|
||||
log.debug("_on_button_remove_clicked")
|
||||
row = self.glade.get_widget("tracker_treeview").get_selection().get_selected()[1]
|
||||
row = self.builder.get_object("tracker_treeview").get_selection().get_selected()[1]
|
||||
if row is None:
|
||||
return
|
||||
self.trackers_liststore.remove(row)
|
||||
|
53
deluge/ui/gtkui/glade/create_torrent_dialog.progress.ui
Normal file
53
deluge/ui/gtkui/glade/create_torrent_dialog.progress.ui
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk+" version="2.24"/>
|
||||
<!-- interface-naming-policy project-wide -->
|
||||
<object class="GtkDialog" id="progress_dialog">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="title" translatable="yes">Creating Torrent</property>
|
||||
<property name="window_position">center-on-parent</property>
|
||||
<property name="type_hint">dialog</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkVBox" id="dialog-vbox9">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkHButtonBox" id="dialog-action_area9">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="layout_style">end</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkProgressBar" id="progressbar">
|
||||
<property name="width_request">200</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
186
deluge/ui/gtkui/glade/create_torrent_dialog.remote_path.ui
Normal file
186
deluge/ui/gtkui/glade/create_torrent_dialog.remote_path.ui
Normal file
@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk+" version="2.24"/>
|
||||
<!-- interface-naming-policy project-wide -->
|
||||
<object class="GtkDialog" id="remote_path_dialog">
|
||||
<property name="width_request">462</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="title" translatable="yes">Enter Remote Path</property>
|
||||
<property name="window_position">center-on-parent</property>
|
||||
<property name="destroy_with_parent">True</property>
|
||||
<property name="type_hint">dialog</property>
|
||||
<property name="decorated">False</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkVBox" id="dialog-vbox7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkHButtonBox" id="dialog-action_area7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="layout_style">end</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="button_add_cancel">
|
||||
<property name="label">gtk-cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="button_add_ok">
|
||||
<property name="label">gtk-ok</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="has_default">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="vbox6">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox7">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="image11">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="stock">gtk-network</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes"><b>Remote Path</b></property>
|
||||
<property name="use_markup">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHSeparator" id="hseparator3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label21">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes">Path:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="entry_path">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="activates_default">True</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<action-widgets>
|
||||
<action-widget response="-6">button_add_cancel</action-widget>
|
||||
<action-widget response="-5">button_add_ok</action-widget>
|
||||
</action-widgets>
|
||||
</object>
|
||||
</interface>
|
186
deluge/ui/gtkui/glade/create_torrent_dialog.remote_save.ui
Normal file
186
deluge/ui/gtkui/glade/create_torrent_dialog.remote_save.ui
Normal file
@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<requires lib="gtk+" version="2.24"/>
|
||||
<!-- interface-naming-policy project-wide -->
|
||||
<object class="GtkDialog" id="remote_save_dialog">
|
||||
<property name="width_request">462</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="border_width">5</property>
|
||||
<property name="title" translatable="yes">Save .torrent as</property>
|
||||
<property name="window_position">center-on-parent</property>
|
||||
<property name="destroy_with_parent">True</property>
|
||||
<property name="type_hint">dialog</property>
|
||||
<property name="decorated">False</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkVBox" id="dialog-vbox5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkHButtonBox" id="dialog-action_area5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="layout_style">end</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="button_add_cancel1">
|
||||
<property name="label">gtk-cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="button_add_ok1">
|
||||
<property name="label">gtk-ok</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="has_default">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="use_stock">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkVBox" id="vbox5">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox15">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="stock">gtk-network</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label10">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes"><b>Save .torrent file</b></property>
|
||||
<property name="use_markup">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHSeparator" id="hseparator2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHBox" id="hbox16">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label15">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="label" translatable="yes">Path:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="entry_save_path">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="activates_default">True</property>
|
||||
<property name="invisible_char_set">True</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">True</property>
|
||||
<property name="secondary_icon_sensitive">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<action-widgets>
|
||||
<action-widget response="-6">button_add_cancel1</action-widget>
|
||||
<action-widget response="-5">button_add_ok1</action-widget>
|
||||
</action-widgets>
|
||||
</object>
|
||||
</interface>
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user