mirror of
https://github.com/codex-storage/deluge.git
synced 2025-01-27 19:55:57 +00:00
reorderable tabs and remember order
This commit is contained in:
parent
26f1970d6c
commit
7c563d92ed
@ -1,9 +1,9 @@
|
|||||||
Deluge 0.5.5 (xx August 2007)
|
Deluge 0.5.5 (xx August 2007)
|
||||||
* Editing a torrent's tracker list is now persistent between sessions
|
* Editing a torrent's tracker list is now persistent between sessions
|
||||||
* Email alerts in the Torrent Notification plugin
|
|
||||||
* New wizard to aid first-time users with configuration
|
|
||||||
* Persistence between sessions for Speed Limiter, Web Seed and Desired Ratio
|
* Persistence between sessions for Speed Limiter, Web Seed and Desired Ratio
|
||||||
plugins
|
plugins
|
||||||
|
* New wizard to aid first-time users with configuration
|
||||||
|
* Reorderable tabs and remember order
|
||||||
* Fix losing data and having to re-download parts
|
* Fix losing data and having to re-download parts
|
||||||
* Fix password lock showing when main window is not hidden
|
* Fix password lock showing when main window is not hidden
|
||||||
* Get rid of the plugin manager and integrate it into preferences
|
* Get rid of the plugin manager and integrate it into preferences
|
||||||
|
@ -76,6 +76,8 @@ class DelugeGTK:
|
|||||||
# self.notebook is used by plugins
|
# self.notebook is used by plugins
|
||||||
self.notebook = self.wtree.get_widget("torrent_info")
|
self.notebook = self.wtree.get_widget("torrent_info")
|
||||||
self.notebook.connect("switch-page", self.notebook_switch_page)
|
self.notebook.connect("switch-page", self.notebook_switch_page)
|
||||||
|
self.notebook.connect("page-reordered", self.notebook_page_reordered)
|
||||||
|
self.notebook.connect("page-added", self.notebook_page_added)
|
||||||
|
|
||||||
# Tabs
|
# Tabs
|
||||||
self.tab_details = tab_details.DetailsTabManager(self.wtree,
|
self.tab_details = tab_details.DetailsTabManager(self.wtree,
|
||||||
@ -195,6 +197,13 @@ class DelugeGTK:
|
|||||||
gobject.timeout_add(10, self.update_torrent_info_widget)
|
gobject.timeout_add(10, self.update_torrent_info_widget)
|
||||||
gobject.timeout_add(10, self.plugins.update_active_plugins)
|
gobject.timeout_add(10, self.plugins.update_active_plugins)
|
||||||
|
|
||||||
|
def notebook_page_reordered(self, notebook, page, page_num):
|
||||||
|
if page_num == 0:
|
||||||
|
notebook.reorder_child(page, 1)
|
||||||
|
|
||||||
|
def notebook_page_added(self, notebook, page, page_num):
|
||||||
|
notebook.set_tab_reorderable(page, True)
|
||||||
|
|
||||||
def pause_all_clicked(self, arg=None):
|
def pause_all_clicked(self, arg=None):
|
||||||
self.manager.pause_all()
|
self.manager.pause_all()
|
||||||
|
|
||||||
@ -915,6 +924,14 @@ window, please enter your password"))
|
|||||||
|
|
||||||
# Load plugins after we showed main window (if not started in tray)
|
# Load plugins after we showed main window (if not started in tray)
|
||||||
self.load_plugins()
|
self.load_plugins()
|
||||||
|
self.load_tabs_order()
|
||||||
|
#now we load blocklist plugin separately since it takes much longer
|
||||||
|
enable_plugins = self.config.get('enabled_plugins').split(':')
|
||||||
|
if "Blocklist Importer" in enable_plugins:
|
||||||
|
try:
|
||||||
|
self.plugins.enable_plugin("Blocklist Importer")
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
gtk.main()
|
gtk.main()
|
||||||
@ -930,11 +947,6 @@ window, please enter your password"))
|
|||||||
self.plugins.enable_plugin(plugin)
|
self.plugins.enable_plugin(plugin)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
if "Blocklist Importer" in enable_plugins:
|
|
||||||
try:
|
|
||||||
self.plugins.enable_plugin("Blocklist Importer")
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
## Call via a timer to update the interface
|
## Call via a timer to update the interface
|
||||||
def update(self):
|
def update(self):
|
||||||
@ -1427,6 +1439,33 @@ this torrent will be deleted!") + "</i>")
|
|||||||
self.config.set(pref_name, eval('self.' + columns +
|
self.config.set(pref_name, eval('self.' + columns +
|
||||||
'_column.get_width()'))
|
'_column.get_width()'))
|
||||||
|
|
||||||
|
# Saves the tabs order (except the 'Details' tab)
|
||||||
|
def save_tabs_order(self):
|
||||||
|
tabs_order = []
|
||||||
|
num_tabs = self.notebook.get_n_pages()
|
||||||
|
for i in range(1, num_tabs):
|
||||||
|
tab = self.notebook.get_nth_page(i)
|
||||||
|
tabs_order.append(self.notebook.get_tab_label_text(tab))
|
||||||
|
|
||||||
|
tabs_order_str = ':'.join(tabs_order)
|
||||||
|
self.config.set('tabs_order', tabs_order_str)
|
||||||
|
|
||||||
|
def load_tabs_order(self):
|
||||||
|
tabs_order_str = self.config.get('tabs_order') or ""
|
||||||
|
tabs_order = tabs_order_str.split(':')
|
||||||
|
tabs = {}
|
||||||
|
num_tabs = self.notebook.get_n_pages()
|
||||||
|
for i in range(1, num_tabs):
|
||||||
|
tab = self.notebook.get_nth_page(i)
|
||||||
|
tab_title = self.notebook.get_tab_label_text(tab)
|
||||||
|
tabs[tab_title] = tab
|
||||||
|
|
||||||
|
i = 1
|
||||||
|
for tab in tabs_order:
|
||||||
|
if tab in tabs:
|
||||||
|
self.notebook.reorder_child(tabs[tab], i)
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
def window_configure_event(self, widget, event):
|
def window_configure_event(self, widget, event):
|
||||||
if self.config.get("window_maximized") == False:
|
if self.config.get("window_maximized") == False:
|
||||||
self.config.set("window_x_pos", self.window.get_position()[0])
|
self.config.set("window_x_pos", self.window.get_position()[0])
|
||||||
@ -1481,6 +1520,7 @@ this torrent will be deleted!") + "</i>")
|
|||||||
def shutdown(self):
|
def shutdown(self):
|
||||||
self.save_column_widths()
|
self.save_column_widths()
|
||||||
self.save_window_settings()
|
self.save_window_settings()
|
||||||
|
self.save_tabs_order()
|
||||||
gtk.main_quit()
|
gtk.main_quit()
|
||||||
for torrent in self.manager.get_queue():
|
for torrent in self.manager.get_queue():
|
||||||
unique_id = self.manager.get_torrent_unique_id(torrent)
|
unique_id = self.manager.get_torrent_unique_id(torrent)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user