This commit is contained in:
Andrew Resch 2007-07-13 00:48:21 +00:00
parent 61ca73dde1
commit a7c93458c8
5 changed files with 118 additions and 114 deletions

View file

@ -81,7 +81,9 @@ class Core(dbus.service.Object):
log.debug("Starting main loop..")
self.loop = gobject.MainLoop()
self.loop.run()
# Exported Methods
@dbus.service.method(dbus_interface="org.deluge_torrent.Deluge",
in_signature="s", out_signature="")
def add_torrent_file(self, _filename):
@ -92,6 +94,8 @@ class Core(dbus.service.Object):
self.session.add_torrent(torrent.torrent_info,
self.config["download_location"],
self.config["compact_allocation"])
# Emit the torrent_added signal
self.torrent_added()
@dbus.service.method(dbus_interface="org.deluge_torrent.Deluge",
in_signature="s", out_signature="")
@ -110,4 +114,9 @@ class Core(dbus.service.Object):
log.info("Shutting down core..")
self.loop.quit()
# Signals
@dbus.service.signal(dbus_interface="org.deluge_torrent.Deluge",
signature="")
def torrent_added(self):
"""Emitted when a new torrent is added to the core"""
pass

View file

@ -251,20 +251,20 @@
<widget class="GtkMenu" id="menu2">
<property name="visible">True</property>
<child>
<widget class="GtkImageMenuItem" id="menuitem9">
<widget class="GtkImageMenuItem" id="menuitem_preferences">
<property name="visible">True</property>
<property name="label">gtk-preferences</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="pref_clicked"/>
<signal name="activate" handler="on_menuitem_preferences_activate"/>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="plugins1">
<widget class="GtkImageMenuItem" id="menuitem_plugins">
<property name="visible">True</property>
<property name="label" translatable="yes">Pl_ugins</property>
<property name="use_underline">True</property>
<signal name="activate" handler="plugins_clicked"/>
<signal name="activate" handler="on_menuitem_plugins_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image3">
<property name="visible">True</property>
@ -294,105 +294,28 @@
<widget class="GtkMenu" id="menu1">
<property name="visible">True</property>
<child>
<widget class="GtkCheckMenuItem" id="chk_toolbar">
<widget class="GtkCheckMenuItem" id="menuitem_toolbar">
<property name="visible">True</property>
<property name="label" translatable="yes">_Toolbar</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="toolbar_toggle"/>
<signal name="toggled" handler="on_menuitem_toolbar_toggled"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_infopane">
<widget class="GtkCheckMenuItem" id="menuitem_infopane">
<property name="visible">True</property>
<property name="label" translatable="yes">_Details</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="infopane_toggle"/>
<signal name="toggled" handler="on_menuitem_infopane_toggled"/>
</widget>
</child>
<child>
<widget class="GtkMenuItem" id="menu_column">
<widget class="GtkMenuItem" id="menu_columns">
<property name="visible">True</property>
<property name="label" translatable="yes">Columns</property>
<property name="use_underline">True</property>
<child>
<widget class="GtkMenu" id="menu3">
<property name="visible">True</property>
<child>
<widget class="GtkCheckMenuItem" id="chk_size">
<property name="visible">True</property>
<property name="label" translatable="yes">Size</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="size_toggle"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_status">
<property name="visible">True</property>
<property name="label" translatable="yes">Status</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="status_toggle"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_seed">
<property name="visible">True</property>
<property name="label" translatable="yes">Seeders</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="seeders_toggle"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_peer">
<property name="visible">True</property>
<property name="label" translatable="yes">Peers</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="peers_toggle"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_download">
<property name="visible">True</property>
<property name="label" translatable="yes">Download</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="dl_toggle"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_upload">
<property name="visible">True</property>
<property name="label" translatable="yes">Upload</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="ul_toggle"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_eta">
<property name="visible">True</property>
<property name="label" translatable="yes">Time Remaining</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="eta_toggle"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="chk_ratio">
<property name="visible">True</property>
<property name="label" translatable="yes">Share Ratio</property>
<property name="use_underline">True</property>
<property name="active">True</property>
<signal name="toggled" handler="share_toggle"/>
</widget>
</child>
</widget>
</child>
</widget>
</child>
</widget>
@ -407,12 +330,12 @@
<child>
<widget class="GtkMenu" id="menuitem2_menu">
<child>
<widget class="GtkImageMenuItem" id="menuitem4">
<widget class="GtkImageMenuItem" id="menuitem_about">
<property name="visible">True</property>
<property name="label">gtk-about</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="show_about_dialog"/>
<signal name="activate" handler="on_menuitem_about_activate"/>
</widget>
</child>
</widget>

View file

@ -5,21 +5,21 @@
<widget class="GtkMenu" id="torrent_menu">
<property name="visible">True</property>
<child>
<widget class="GtkImageMenuItem" id="menu_pause">
<widget class="GtkImageMenuItem" id="menuitem_pause">
<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</property>
<property name="label">gtk-media-pause</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="start_pause"/>
<signal name="activate" handler="on_menuitem_pause_activate"/>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="menuitem5">
<widget class="GtkImageMenuItem" id="menuitem_updatetracker">
<property name="visible">True</property>
<property name="label" translatable="yes">_Update Tracker</property>
<property name="use_underline">True</property>
<signal name="activate" handler="update_tracker"/>
<signal name="activate" handler="on_menuitem_updatetracker_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image5">
<property name="visible">True</property>
@ -31,12 +31,12 @@
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="menuitem13">
<widget class="GtkImageMenuItem" id="menuitem_edittrackers">
<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</property>
<property name="label" translatable="yes">_Edit Trackers</property>
<property name="use_underline">True</property>
<signal name="activate" handler="edit_trackers"/>
<signal name="activate" handler="on_menuitem_edittrackers_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image12">
<property name="visible">True</property>
@ -53,7 +53,7 @@
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="menuitem12">
<widget class="GtkImageMenuItem" id="menuitem_remove">
<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</property>
<property name="label" translatable="yes">_Remove Torrent</property>
@ -75,7 +75,7 @@
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="menuitem2">
<widget class="GtkImageMenuItem" id="menuitem_queue">
<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</property>
<property name="label" translatable="yes">_Queue</property>
@ -85,12 +85,12 @@
<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</property>
<child>
<widget class="GtkImageMenuItem" id="menuitem1">
<widget class="GtkImageMenuItem" id="menuitem_queuetop">
<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</property>
<property name="label" translatable="yes">_Top</property>
<property name="use_underline">True</property>
<signal name="activate" handler="queue_top"/>
<signal name="activate" handler="on_menuitem_queuetop_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image10">
<property name="visible">True</property>
@ -102,7 +102,7 @@
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="menuitem6">
<widget class="GtkImageMenuItem" id="menuitem_queueup">
<property name="visible">True</property>
<property name="label" translatable="yes">_Up</property>
<property name="use_underline">True</property>
@ -118,7 +118,7 @@
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="menuitem7">
<widget class="GtkImageMenuItem" id="menuitem_queuedown">
<property name="visible">True</property>
<property name="label" translatable="yes">_Down</property>
<property name="use_underline">True</property>
@ -134,11 +134,11 @@
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="menuitem8">
<widget class="GtkImageMenuItem" id="menuitem_queuebottom">
<property name="visible">True</property>
<property name="label" translatable="yes">_Bottom</property>
<property name="use_underline">True</property>
<signal name="activate" handler="queue_bottom"/>
<signal name="activate" handler="on_menuitem_queuebottom_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image8">
<property name="visible">True</property>

View file

@ -36,7 +36,6 @@ import logging
import pygtk
pygtk.require('2.0')
import gtk, gtk.glade
import pkg_resources
from mainwindow import MainWindow
@ -48,12 +47,8 @@ class GtkUI:
# Get the core proxy object from the args
self.core = core
# Get the glade file for the main window
self.main_glade = gtk.glade.XML(
pkg_resources.resource_filename("deluge.ui.gtkui", "glade/main_window.glade"))
# Initialize the main window
self.main_window = MainWindow(self.main_glade)
self.main_window = MainWindow(self.core)
# Show the main window
self.main_window.show()

View file

@ -36,13 +36,20 @@ import logging
import pygtk
pygtk.require('2.0')
import gtk, gtk.glade
import pkg_resources
# Get the logger
log = logging.getLogger("deluge")
class MainWindow:
def __init__(self, glade_xml):
self.main_glade = glade_xml
def __init__(self, core):
self.core = core
# Get the glade file for the main window
self.main_glade = gtk.glade.XML(
pkg_resources.resource_filename("deluge.ui.gtkui",
"glade/main_window.glade"))
self.window = self.main_glade.get_widget("main_window")
# Initialize various components of the gtkui
@ -62,7 +69,14 @@ class MainWindowMenuBar:
def __init__(self, mainwindow):
log.debug("MainWindowMenuBar init..")
self.mainwindow = mainwindow
self.torrentmenu = gtk.glade.XML(
pkg_resources.resource_filename("deluge.ui.gtkui",
"glade/torrent_menu.glade"))
# Attach the torrent_menu to the Torrent file menu
self.mainwindow.main_glade.get_widget("menu_torrent").set_submenu(
self.torrentmenu.get_widget("torrent_menu"))
### Connect Signals ###
self.mainwindow.main_glade.signal_autoconnect({
## File Menu
@ -70,10 +84,39 @@ class MainWindowMenuBar:
"on_menuitem_addurl_activate": self.on_menuitem_addurl_activate,
"on_menuitem_clear_activate": \
self.on_menuitem_clear_activate,
"on_menuitem_quit_activate": self.on_menuitem_quit_activate
"on_menuitem_quit_activate": self.on_menuitem_quit_activate,
## Edit Menu
"on_menuitem_preferences_activate": \
self.on_menuitem_preferences_activate,
"on_menuitem_plugins_activate": self.on_menuitem_plugins_activate,
## View Menu
"on_menuitem_toolbar_toggled": self.on_menuitem_toolbar_toggled,
"on_menuitem_infopane_toggled": self.on_menuitem_infopane_toggled,
## Help Menu
"on_menuitem_about_activate": self.on_menuitem_about_activate
})
self.torrentmenu.signal_autoconnect({
## Torrent Menu
"on_menuitem_pause_activate": self.on_menuitem_pause_activate,
"on_menuitem_updatetracker_activate": \
self.on_menuitem_updatetracker_activate,
"on_menuitem_edittrackers_activate": \
self.on_menuitem_edittrackers_activate,
"on_menuitem_remove_activate": self.on_menuitem_remove_activate,
"on_menuitem_queuetop_activate": self.on_menuitem_queuetop_activate,
"on_menuitem_queueup_activate": self.on_menuitem_queueup_activate,
"on_menuitem_queuedown_activate": self.on_menuitem_queuedown_activate,
"on_menuitem_queuebottom_activate": \
self.on_menuitem_queuebottom_activate
})
### Callbacks ###
## File Menu ##
def on_menuitem_addtorrent_activate(self, data=None):
log.debug("on_menuitem_addtorrent_activate")
def on_menuitem_addurl_activate(self, data=None):
@ -83,6 +126,40 @@ class MainWindowMenuBar:
def on_menuitem_quit_activate(self, data=None):
log.debug("on_menuitem_quit_activate")
self.mainwindow.quit()
## Edit Menu ##
def on_menuitem_preferences_activate(self, data=None):
log.debug("on_menuitem_preferences_activate")
def on_menuitem_plugins_activate(self, data=None):
log.debug("on_menuitem_plugins_activate")
## Torrent Menu ##
def on_menuitem_pause_activate(self, data=None):
log.debug("on_menuitem_pause_activate")
def on_menuitem_updatetracker_activate(self, data=None):
log.debug("on_menuitem_updatetracker_activate")
def on_menuitem_edittrackers_activate(self, data=None):
log.debug("on_menuitem_edittrackers_activate")
def on_menuitem_remove_activate(self, data=None):
log.debug("on_menuitem_remove_activate")
def on_menuitem_queuetop_activate(self, data=None):
log.debug("on_menuitem_queuetop_activate")
def on_menuitem_queueup_activate(self, data=None):
log.debug("on_menuitem_queueup_activate")
def on_menuitem_queuedown_activate(self, data=None):
log.debug("on_menuitem_queuedown_activate")
def on_menuitem_queuebottom_activate(self, data=None):
log.debug("on_menuitem_queuebottom_activate")
## View Menu ##
def on_menuitem_toolbar_toggled(self, data=None):
log.debug("on_menuitem_toolbar_toggled")
def on_menuitem_infopane_toggled(self, data=None):
log.debug("on_menuitem_infopane_toggled")
## Help Menu ##
def on_menuitem_about_activate(self, data=None):
log.debug("on_menuitem_about_activate")
class MainWindowToolBar:
def __init__(self, mainwindow):