Various interface improvements.

Initial import of SideBar.
This commit is contained in:
Andrew Resch 2007-11-25 02:16:54 +00:00
parent 2815d8f19f
commit fe33a72022
6 changed files with 883 additions and 658 deletions

View File

@ -52,7 +52,7 @@ class AboutDialog:
self.about.set_name("Deluge")
self.about.set_version(deluge.common.get_version())
self.about.set_authors(["Andrew Resch", "Marcos Pinto"])
self.about.set_artists(["Andrew Wedderburn"])
self.about.set_artists(["Andrew Wedderburn", "Andrew Resch"])
self.about.set_translator_credits(_("translator-credits"))
self.about.set_license(_("Deluge is free software, you can redistribute \
it and/or\nmodify it under the terms of the GNU General Public\n License as \

File diff suppressed because it is too large Load Diff

View File

@ -45,6 +45,7 @@ from menubar import MenuBar
from toolbar import ToolBar
from torrentview import TorrentView
from torrentdetails import TorrentDetails
from sidebar import SideBar
from preferences import Preferences
from systemtray import SystemTray
from statusbar import StatusBar
@ -121,6 +122,7 @@ class GtkUI:
self.toolbar = ToolBar()
self.torrentview = TorrentView()
self.torrentdetails = TorrentDetails()
self.sidebar = SideBar()
self.preferences = Preferences()
self.systemtray = SystemTray()
self.statusbar = StatusBar()

View File

@ -77,9 +77,14 @@ class MenuBar(component.Component):
## View Menu
"on_menuitem_toolbar_toggled": self.on_menuitem_toolbar_toggled,
"on_menuitem_sidebar_toggled": self.on_menuitem_sidebar_toggled,
"on_menuitem_infopane_toggled": self.on_menuitem_infopane_toggled,
## Help Menu
"on_menuitem_homepage_activate": self.on_menuitem_homepage_activate,
"on_menuitem_faq_activate": self.on_menuitem_faq_activate,
"on_menuitem_community_activate": \
self.on_menuitem_community_activate,
"on_menuitem_about_activate": self.on_menuitem_about_activate
})
@ -209,12 +214,28 @@ class MenuBar(component.Component):
def on_menuitem_toolbar_toggled(self, value):
log.debug("on_menuitem_toolbar_toggled")
component.get("ToolBar").visible(value.get_active())
def on_menuitem_sidebar_toggled(self, value):
log.debug("on_menuitem_sidebar_toggled")
component.get("SideBar").visible(value.get_active())
def on_menuitem_infopane_toggled(self, value):
log.debug("on_menuitem_infopane_toggled")
component.get("TorrentDetails").visible(value.get_active())
## Help Menu ##
def on_menuitem_homepage_activate(self, data=None):
log.debug("on_menuitem_homepage_activate")
client.open_url_in_browser("http://deluge-torrent.org")
def on_menuitem_faq_activate(self, data=None):
log.debug("on_menuitem_faq_activate")
client.open_url_in_browser("http://deluge-torrent.org/faq")
def on_menuitem_community_activate(self, data=None):
log.debug("on_menuitem_community_activate")
client.open_url_in_browser("http://forum.deluge-torrent.org/")
def on_menuitem_about_activate(self, data=None):
log.debug("on_menuitem_about_activate")
from aboutdialog import AboutDialog

View File

@ -0,0 +1,73 @@
#
# sidebar.py
#
# Copyright (C) 2007 Andrew Resch ('andar') <andrewresch@gmail.com>
#
# Deluge is free software.
#
# You may redistribute it and/or modify it under the terms of the
# GNU General Public License, as published by the Free Software
# Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# deluge is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with deluge. If not, write to:
# The Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor
# Boston, MA 02110-1301, USA.
#
# In addition, as a special exception, the copyright holders give
# permission to link the code of portions of this program with the OpenSSL
# library.
# You must obey the GNU General Public License in all respects for all of
# the code used other than OpenSSL. If you modify file(s) with this
# exception, you may extend this exception to your version of the file(s),
# but you are not obligated to do so. If you do not wish to do so, delete
# this exception statement from your version. If you delete this exception
# statement from all source files in the program, then also delete it here.
import gtk
import gtk.glade
import deluge.ui.component as component
from deluge.log import LOG as log
class SideBar(component.Component):
def __init__(self):
component.Component.__init__(self, "SideBar")
self.window = component.get("MainWindow")
glade = self.window.main_glade
self.label_view = glade.get_widget("label_view")
self.hpaned = glade.get_widget("hpaned")
self.scrolled = glade.get_widget("scrolledwindow_sidebar")
self.is_visible = True
# Create the liststore
self.liststore = gtk.ListStore(str, gtk.gdk.Pixbuf)
# Create the column
column = gtk.TreeViewColumn(_("Labels"))
render = gtk.CellRendererPixbuf()
column.pack_start(render, expand=False)
column.add_attribute(render, 'pixbuf', 1)
render = gtk.CellRendererText()
column.pack_start(render, expand=True)
column.add_attribute(render, 'text', 0)
self.label_view.append_column(column)
self.label_view.set_model(self.liststore)
def visible(self, visible):
if visible:
self.scrolled.show()
else:
self.scrolled.hide()
self.hpaned.set_position(-1)
self.is_visible = visible

View File

@ -52,6 +52,10 @@ class TorrentDetails(component.Component):
self.notebook = glade.get_widget("torrent_info")
self.details_tab = glade.get_widget("torrentdetails_tab")
# Don't show tabs if there is only 1
if self.notebook.get_n_pages() < 2:
self.notebook.set_show_tabs(False)
self.is_visible = True
# Get the labels we need to update.
@ -88,6 +92,10 @@ class TorrentDetails(component.Component):
self.clear()
def update(self):
# Show tabs if more than 1 page
if self.notebook.get_n_pages() > 1:
self.notebook.set_show_tabs(True)
# Only update if this page is showing
if self.notebook.page_num(self.details_tab) is \
self.notebook.get_current_page() and \