mirror of
https://git.deluge-torrent.org/deluge
synced 2025-04-20 11:35:49 +00:00
Cleaner fix for #1874, code clean up and reusability.
Translations are now setup on `deluge.common`. Where they used to be setup, a call to `setup_translations(setup_pygtk=False)` is now made. Every call to `pkg_resources.resource_filename()` is now made through `deluge.common.resource_filename` to make sure that we're loading data from the right deluge install.
This commit is contained in:
parent
9e9261e6f8
commit
df3214168c
23 changed files with 100 additions and 171 deletions
|
@ -207,7 +207,7 @@ def get_pixmap(fname):
|
|||
"""
|
||||
return resource_filename("deluge", os.path.join("ui", "data", "pixmaps", fname))
|
||||
|
||||
def resource_filename(package, path):
|
||||
def resource_filename(module, path):
|
||||
# While developing, if there's a second deluge package, installed globally
|
||||
# and another in develop mode somewhere else, while pkg_resources.require("Deluge")
|
||||
# returns the proper deluge instance, pkg_resources.resource_filename does
|
||||
|
@ -215,8 +215,7 @@ def resource_filename(package, path):
|
|||
# enough.
|
||||
# This is a work-around that.
|
||||
return pkg_resources.require("Deluge>=%s" % get_version())[0].get_resource_filename(
|
||||
pkg_resources.resource_filename.im_self,
|
||||
os.path.join(package, path)
|
||||
pkg_resources._manager, os.path.join(*(module.split('.')+[path]))
|
||||
)
|
||||
|
||||
def open_file(path):
|
||||
|
@ -682,17 +681,22 @@ def create_localclient_account(append=False):
|
|||
|
||||
|
||||
# Initialize gettext
|
||||
try:
|
||||
if hasattr(locale, "bindtextdomain"):
|
||||
locale.bindtextdomain("deluge", resource_filename("deluge", "i18n"))
|
||||
if hasattr(locale, "textdomain"):
|
||||
locale.textdomain("deluge")
|
||||
gettext.bindtextdomain("deluge", resource_filename("deluge", "i18n"))
|
||||
gettext.textdomain("deluge")
|
||||
gettext.install("deluge", resource_filename("deluge", "i18n"))
|
||||
except Exception, e:
|
||||
raise
|
||||
log.error("Unable to initialize gettext/locale!")
|
||||
log.exception(e)
|
||||
import __builtin__
|
||||
__builtin__.__dict__["_"] = lambda x: x
|
||||
def setup_translations(setup_pygtk=False):
|
||||
try:
|
||||
if hasattr(locale, "bindtextdomain"):
|
||||
locale.bindtextdomain("deluge", resource_filename("deluge", "i18n"))
|
||||
if hasattr(locale, "textdomain"):
|
||||
locale.textdomain("deluge")
|
||||
gettext.bindtextdomain("deluge", resource_filename("deluge", "i18n"))
|
||||
gettext.textdomain("deluge")
|
||||
gettext.install("deluge", resource_filename("deluge", "i18n"))
|
||||
if setup_pygtk:
|
||||
import gtk
|
||||
import gtk.glade
|
||||
gtk.glade.bindtextdomain("deluge", resource_filename("deluge", "i18n"))
|
||||
gtk.glade.textdomain("deluge")
|
||||
except Exception, e:
|
||||
log.error("Unable to initialize gettext/locale!")
|
||||
log.exception(e)
|
||||
import __builtin__
|
||||
__builtin__.__dict__["_"] = lambda x: x
|
||||
|
|
|
@ -33,10 +33,7 @@
|
|||
#
|
||||
|
||||
import os
|
||||
import gettext
|
||||
import locale
|
||||
import logging
|
||||
import pkg_resources
|
||||
from twisted.internet import reactor
|
||||
import twisted.internet.error
|
||||
|
||||
|
@ -101,19 +98,7 @@ class Daemon(object):
|
|||
)
|
||||
|
||||
# Initialize gettext
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
if hasattr(locale, "bindtextdomain"):
|
||||
locale.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
if hasattr(locale, "textdomain"):
|
||||
locale.textdomain("deluge")
|
||||
gettext.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
gettext.textdomain("deluge")
|
||||
gettext.install("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
except Exception, e:
|
||||
log.error("Unable to initialize gettext/locale: %s", e)
|
||||
import __builtin__
|
||||
__builtin__.__dict__["_"] = lambda x: x
|
||||
deluge.common.setup_translations()
|
||||
|
||||
# Twisted catches signals to terminate, so just have it call the shutdown
|
||||
# method.
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
import os
|
||||
import logging
|
||||
import threading
|
||||
import pkg_resources
|
||||
from twisted.internet.task import LoopingCall
|
||||
|
||||
from deluge._libtorrent import lt
|
||||
|
@ -450,10 +449,8 @@ class PreferencesManager(component.Component):
|
|||
geoip_db = ""
|
||||
if os.path.exists(value):
|
||||
geoip_db = value
|
||||
elif os.path.exists(
|
||||
pkg_resources.resource_filename("deluge",
|
||||
os.path.join("data", "GeoIP.dat"))):
|
||||
geoip_db = pkg_resources.resource_filename(
|
||||
elif os.path.exists(deluge.common.resource_filename("deluge", os.path.join("data", "GeoIP.dat"))):
|
||||
geoip_db = deluge.common.resource_filename(
|
||||
"deluge", os.path.join("data", "GeoIP.dat")
|
||||
)
|
||||
else:
|
||||
|
|
|
@ -89,6 +89,7 @@ def start_ui():
|
|||
# Setup the logger
|
||||
deluge.log.setupLogger(level=options.loglevel, filename=options.logfile,
|
||||
filemode=logfile_mode)
|
||||
deluge.common.setup_translations()
|
||||
|
||||
if options.config:
|
||||
if not os.path.exists(options.config):
|
||||
|
@ -184,6 +185,7 @@ this should be an IP address", metavar="IFACE",
|
|||
# Setup the logger
|
||||
deluge.log.setupLogger(level=options.loglevel, filename=options.logfile,
|
||||
filemode=logfile_mode)
|
||||
deluge.common.setup_translations()
|
||||
|
||||
import deluge.configmanager
|
||||
if options.config:
|
||||
|
|
|
@ -4,6 +4,7 @@ import time
|
|||
import tempfile
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
import deluge.common
|
||||
import deluge.configmanager
|
||||
import deluge.log
|
||||
|
||||
|
@ -22,17 +23,7 @@ import locale
|
|||
import pkg_resources
|
||||
|
||||
# Initialize gettext
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
if hasattr(locale, "bindtextdomain"):
|
||||
locale.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
if hasattr(locale, "textdomain"):
|
||||
locale.textdomain("deluge")
|
||||
gettext.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
gettext.textdomain("deluge")
|
||||
gettext.install("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
except Exception, e:
|
||||
print e
|
||||
deluge.common.setup_translations()
|
||||
|
||||
def start_core():
|
||||
CWD = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
import pkg_resources
|
||||
from deluge.ui.client import client
|
||||
|
||||
import deluge.common
|
||||
|
@ -286,10 +285,10 @@ class AboutDialog:
|
|||
if not client.is_classicmode():
|
||||
self.about.set_comments(
|
||||
self.about.get_comments() + "Server Version: %coreversion%\n")
|
||||
|
||||
|
||||
self.about.set_comments(
|
||||
self.about.get_comments() + "Libtorrent Version: %ltversion%\n")
|
||||
|
||||
|
||||
def on_lt_version(result):
|
||||
c = self.about.get_comments()
|
||||
c = c.replace("%ltversion%", result)
|
||||
|
|
|
@ -45,8 +45,6 @@ import logging
|
|||
import os
|
||||
from urlparse import urljoin
|
||||
|
||||
import pkg_resources
|
||||
|
||||
import twisted.web.client
|
||||
import twisted.web.error
|
||||
from deluge.ui.client import client
|
||||
|
@ -64,9 +62,9 @@ log = logging.getLogger(__name__)
|
|||
class AddTorrentDialog(component.Component):
|
||||
def __init__(self):
|
||||
component.Component.__init__(self, "AddTorrentDialog")
|
||||
self.glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename(
|
||||
"deluge.ui.gtkui", "glade/add_torrent_dialog.glade"))
|
||||
self.glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "add_torrent_dialog.glade"))
|
||||
)
|
||||
|
||||
self.dialog = self.glade.get_widget("dialog_add_torrent")
|
||||
|
||||
|
|
|
@ -42,7 +42,6 @@ pygtk.require('2.0')
|
|||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import pkg_resources
|
||||
|
||||
from deluge.ui.client import client
|
||||
import deluge.component as component
|
||||
|
@ -152,9 +151,9 @@ def show_other_dialog(header, type_str, image_stockid=None, image_filename=None,
|
|||
if type(default) != int and type(default) != float:
|
||||
raise TypeError("default value needs to be an int or float")
|
||||
|
||||
glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/dgtkpopups.glade"))
|
||||
glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "dgtkpopups.glade"))
|
||||
)
|
||||
dialog = glade.get_widget("other_dialog")
|
||||
dialog.set_transient_for(component.get("MainWindow").window)
|
||||
dialog.set_title("")
|
||||
|
|
|
@ -35,12 +35,12 @@
|
|||
|
||||
import os
|
||||
import gtk
|
||||
import pkg_resources
|
||||
import time
|
||||
import hashlib
|
||||
import logging
|
||||
from twisted.internet import reactor
|
||||
|
||||
import deluge.common
|
||||
import deluge.component as component
|
||||
import common
|
||||
import deluge.configmanager
|
||||
|
@ -136,9 +136,9 @@ class ConnectionManager(component.Component):
|
|||
"""
|
||||
self.config = self.__load_config()
|
||||
# Get the glade file for the connection manager
|
||||
self.glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/connection_manager.glade"))
|
||||
self.glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "connection_manager.glade"))
|
||||
)
|
||||
self.window = component.get("MainWindow")
|
||||
|
||||
# Setup the ConnectionManager dialog
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
|
||||
import gtk
|
||||
import sys
|
||||
import pkg_resources
|
||||
import os.path
|
||||
import gobject
|
||||
import base64
|
||||
|
@ -55,9 +54,9 @@ log = logging.getLogger(__name__)
|
|||
class CreateTorrentDialog:
|
||||
def show(self):
|
||||
self.glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename(
|
||||
deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui",
|
||||
"glade/create_torrent_dialog.glade"))
|
||||
os.path.join("glade", "create_torrent_dialog.glade")))
|
||||
|
||||
self.config = ConfigManager("gtkui.conf")
|
||||
|
||||
|
@ -396,9 +395,9 @@ class CreateTorrentDialog:
|
|||
def _on_button_add_clicked(self, widget):
|
||||
log.debug("_on_button_add_clicked")
|
||||
glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename(
|
||||
deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui",
|
||||
"glade/edit_trackers.glade"))
|
||||
os.path.join("glade", "edit_trackers.glade")))
|
||||
dialog = glade.get_widget("add_tracker_dialog")
|
||||
dialog.set_transient_for(self.dialog)
|
||||
textview = glade.get_widget("textview_trackers")
|
||||
|
|
|
@ -33,11 +33,10 @@
|
|||
#
|
||||
#
|
||||
|
||||
|
||||
import os.path
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import pkg_resources
|
||||
|
||||
from twisted.internet import defer
|
||||
import deluge.common
|
||||
|
@ -50,10 +49,9 @@ log = logging.getLogger(__name__)
|
|||
class EditTrackersDialog:
|
||||
def __init__(self, torrent_id, parent=None):
|
||||
self.torrent_id = torrent_id
|
||||
self.glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/edit_trackers.glade"))
|
||||
|
||||
self.glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "edit_trackers.glade"))
|
||||
)
|
||||
self.dialog = self.glade.get_widget("edit_trackers_dialog")
|
||||
self.treeview = self.glade.get_widget("tracker_treeview")
|
||||
self.add_tracker_dialog = self.glade.get_widget("add_tracker_dialog")
|
||||
|
|
|
@ -34,11 +34,10 @@
|
|||
#
|
||||
#
|
||||
|
||||
|
||||
import os
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import pkg_resources
|
||||
import glib
|
||||
import warnings
|
||||
|
||||
|
@ -112,8 +111,8 @@ class FilterTreeView(component.Component):
|
|||
self.sidebar.notebook.connect("hide", self._on_hide)
|
||||
|
||||
#menu
|
||||
glade_menu = gtk.glade.XML(pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/filtertree_menu.glade"))
|
||||
glade_menu = gtk.glade.XML(deluge.common.resource_filename("deluge.ui.gtkui",
|
||||
os.path.join("glade", "filtertree_menu.glade")))
|
||||
self.menu = glade_menu.get_widget("filtertree_menu")
|
||||
glade_menu.signal_autoconnect({
|
||||
"select_all": self.on_select_all,
|
||||
|
|
|
@ -40,34 +40,12 @@ gobject.set_prgname("deluge")
|
|||
from twisted.internet import gtk2reactor
|
||||
reactor = gtk2reactor.install()
|
||||
|
||||
import gettext
|
||||
import locale
|
||||
import pkg_resources
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import sys
|
||||
import logging
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# Initialize gettext
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
if hasattr(locale, "bindtextdomain"):
|
||||
locale.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
if hasattr(locale, "textdomain"):
|
||||
locale.textdomain("deluge")
|
||||
gettext.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
gettext.textdomain("deluge")
|
||||
gettext.install("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
gtk.glade.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
gtk.glade.textdomain("deluge")
|
||||
except Exception, e:
|
||||
log.error("Unable to initialize gettext/locale!")
|
||||
log.exception(e)
|
||||
import __builtin__
|
||||
__builtin__.__dict__["_"] = lambda x: x
|
||||
|
||||
import deluge.component as component
|
||||
from deluge.ui.client import client
|
||||
from mainwindow import MainWindow
|
||||
|
@ -105,7 +83,7 @@ class Gtk(_UI):
|
|||
|
||||
def start(self):
|
||||
super(Gtk, self).start()
|
||||
|
||||
deluge.common.setup_translations(setup_pygtk=True)
|
||||
GtkUI(self.args)
|
||||
|
||||
def start():
|
||||
|
|
|
@ -34,12 +34,12 @@
|
|||
#
|
||||
|
||||
|
||||
import os.path
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import pkg_resources
|
||||
from urlparse import urlparse
|
||||
import urllib
|
||||
|
||||
|
@ -59,9 +59,9 @@ class MainWindow(component.Component):
|
|||
component.Component.__init__(self, "MainWindow", interval=2)
|
||||
self.config = ConfigManager("gtkui.conf")
|
||||
# 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.main_glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "main_window.glade"))
|
||||
)
|
||||
|
||||
self.window = self.main_glade.get_widget("main_window")
|
||||
|
||||
|
|
|
@ -34,13 +34,12 @@
|
|||
#
|
||||
#
|
||||
|
||||
|
||||
import os.path
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import pkg_resources
|
||||
|
||||
import deluge.error
|
||||
import deluge.component as component
|
||||
|
@ -60,9 +59,9 @@ class MenuBar(component.Component):
|
|||
self.config = ConfigManager("gtkui.conf")
|
||||
|
||||
# Get the torrent menu from the glade file
|
||||
self.torrentmenu_glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/torrent_menu.glade"))
|
||||
self.torrentmenu_glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "torrent_menu.glade"))
|
||||
)
|
||||
|
||||
self.torrentmenu_glade.get_widget("menuitem_queue").set_submenu(
|
||||
self.torrentmenu_glade.get_widget("queue_torrent_menu"))
|
||||
|
@ -355,8 +354,8 @@ class MenuBar(component.Component):
|
|||
|
||||
def show_move_storage_dialog(self, status):
|
||||
log.debug("show_move_storage_dialog")
|
||||
glade = gtk.glade.XML(pkg_resources.resource_filename(
|
||||
"deluge.ui.gtkui", "glade/move_storage_dialog.glade"
|
||||
glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "move_storage_dialog.glade")
|
||||
))
|
||||
# Keep it referenced:
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=546802
|
||||
|
|
|
@ -34,12 +34,12 @@
|
|||
#
|
||||
|
||||
|
||||
import os
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import os.path
|
||||
import cPickle
|
||||
import pkg_resources
|
||||
from itertools import izip
|
||||
|
||||
from deluge.ui.client import client
|
||||
|
@ -271,7 +271,7 @@ class PeersTab(Tab):
|
|||
# We haven't created a pixbuf for this country yet
|
||||
try:
|
||||
self.cached_flag_pixbufs[country] = gtk.gdk.pixbuf_new_from_file(
|
||||
pkg_resources.resource_filename(
|
||||
deluge.common.resource_filename(
|
||||
"deluge",
|
||||
os.path.join("ui", "data", "pixmaps", "flags", country.lower() + ".png")))
|
||||
except Exception, e:
|
||||
|
@ -378,9 +378,9 @@ class PeersTab(Tab):
|
|||
def _on_menuitem_add_peer_activate(self, menuitem):
|
||||
"""This is a callback for manually adding a peer"""
|
||||
log.debug("on_menuitem_add_peer")
|
||||
dialog_glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/dgtkpopups.glade"))
|
||||
dialog_glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "dgtkpopups.glade"))
|
||||
)
|
||||
peer_dialog = dialog_glade.get_widget("connect_peer_dialog")
|
||||
txt_ip = dialog_glade.get_widget("txt_ip")
|
||||
response = peer_dialog.run()
|
||||
|
|
|
@ -34,13 +34,12 @@
|
|||
#
|
||||
#
|
||||
|
||||
|
||||
import os
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import pkg_resources
|
||||
|
||||
import deluge.component as component
|
||||
from deluge.ui.client import client
|
||||
|
@ -66,8 +65,8 @@ class Preferences(component.Component):
|
|||
def __init__(self):
|
||||
component.Component.__init__(self, "Preferences")
|
||||
self.window = component.get("MainWindow")
|
||||
self.glade = gtk.glade.XML(pkg_resources.resource_filename(
|
||||
"deluge.ui.gtkui", "glade/preferences_dialog.glade"
|
||||
self.glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "preferences_dialog.glade")
|
||||
))
|
||||
self.pref_dialog = self.glade.get_widget("pref_dialog")
|
||||
self.pref_dialog.set_icon(common.get_deluge_icon())
|
||||
|
|
|
@ -40,7 +40,6 @@ import gtk
|
|||
import gtk.glade
|
||||
import logging
|
||||
import gobject
|
||||
import pkg_resources
|
||||
|
||||
import deluge.component as component
|
||||
from deluge.ui.client import client
|
||||
|
@ -57,9 +56,9 @@ class QueuedTorrents(component.Component):
|
|||
self.status_item = None
|
||||
|
||||
self.config = ConfigManager("gtkui.conf")
|
||||
self.glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/queuedtorrents.glade"))
|
||||
self.glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "queuedtorrents.glade"))
|
||||
)
|
||||
self.glade.get_widget("chk_autoadd").set_active(
|
||||
self.config["autoadd_queued"])
|
||||
self.dialog = self.glade.get_widget("queued_torrents_dialog")
|
||||
|
|
|
@ -33,12 +33,13 @@
|
|||
#
|
||||
#
|
||||
|
||||
import os
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import logging
|
||||
import pkg_resources
|
||||
|
||||
from deluge.ui.client import client
|
||||
import deluge.common
|
||||
import deluge.component as component
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -63,9 +64,9 @@ class RemoveTorrentDialog(object):
|
|||
|
||||
self.__torrent_ids = torrent_ids
|
||||
|
||||
glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/remove_torrent_dialog.glade"))
|
||||
glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "remove_torrent_dialog.glade"))
|
||||
)
|
||||
|
||||
self.__dialog = glade.get_widget("remove_torrent_dialog")
|
||||
self.__dialog.set_transient_for(component.get("MainWindow").window)
|
||||
|
|
|
@ -38,9 +38,9 @@ try:
|
|||
except ImportError:
|
||||
appindicator = None
|
||||
|
||||
import os
|
||||
import gtk
|
||||
import logging
|
||||
import pkg_resources
|
||||
|
||||
import deluge.component as component
|
||||
from deluge.ui.client import client
|
||||
|
@ -87,9 +87,9 @@ class SystemTray(component.Component):
|
|||
|
||||
def enable(self):
|
||||
"""Enables the system tray icon."""
|
||||
self.tray_glade = gtk.glade.XML(
|
||||
pkg_resources.resource_filename("deluge.ui.gtkui",
|
||||
"glade/tray_menu.glade"))
|
||||
self.tray_glade = gtk.glade.XML(deluge.common.resource_filename(
|
||||
"deluge.ui.gtkui", os.path.join("glade", "tray_menu.glade"))
|
||||
)
|
||||
|
||||
self.tray_glade.signal_autoconnect({
|
||||
"on_menuitem_show_deluge_activate": \
|
||||
|
|
|
@ -33,12 +33,12 @@
|
|||
#
|
||||
#
|
||||
|
||||
import sys
|
||||
import logging
|
||||
from optparse import OptionParser, OptionGroup
|
||||
import deluge.common
|
||||
import deluge.configmanager
|
||||
import deluge.log
|
||||
import os
|
||||
|
||||
DEFAULT_PREFS = {
|
||||
"default_ui": "gtk"
|
||||
|
@ -53,8 +53,6 @@ class _UI(object):
|
|||
def __init__(self, name="gtk"):
|
||||
self.__name = name
|
||||
|
||||
usage="%prog [options] [actions]",
|
||||
|
||||
self.__parser = OptionParser(version=deluge.common.get_version())
|
||||
|
||||
group = OptionGroup(self.__parser, "Common Options")
|
||||
|
@ -102,6 +100,8 @@ class _UI(object):
|
|||
filename=self.__options.logfile,
|
||||
filemode=logfile_mode)
|
||||
|
||||
deluge.common.setup_translations()
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
if self.__options.config:
|
||||
|
|
|
@ -35,16 +35,13 @@
|
|||
|
||||
import os
|
||||
import time
|
||||
import locale
|
||||
import shutil
|
||||
import urllib
|
||||
import fnmatch
|
||||
import gettext
|
||||
import hashlib
|
||||
import logging
|
||||
import tempfile
|
||||
import mimetypes
|
||||
import pkg_resources
|
||||
|
||||
from twisted.application import service, internet
|
||||
from twisted.internet import reactor, defer, error
|
||||
|
@ -62,23 +59,6 @@ from deluge.ui.web.pluginmanager import PluginManager
|
|||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# Initialize gettext
|
||||
try:
|
||||
locale.setlocale(locale.LC_ALL, "")
|
||||
if hasattr(locale, "bindtextdomain"):
|
||||
locale.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
if hasattr(locale, "textdomain"):
|
||||
locale.textdomain("deluge")
|
||||
gettext.bindtextdomain("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
gettext.textdomain("deluge")
|
||||
gettext.install("deluge", pkg_resources.resource_filename("deluge", "i18n"))
|
||||
except Exception, e:
|
||||
log.error("Unable to initialize gettext/locale: %s", e)
|
||||
|
||||
_ = gettext.gettext
|
||||
|
||||
current_dir = os.path.dirname(__file__)
|
||||
|
||||
CONFIG_DEFAULTS = {
|
||||
# Misc Settings
|
||||
"enabled_plugins": [],
|
||||
|
@ -121,7 +101,7 @@ def rpath(*paths):
|
|||
"""Convert a relative path into an absolute path relative to the location
|
||||
of this script.
|
||||
"""
|
||||
return os.path.join(current_dir, *paths)
|
||||
return common.resource_filename(__name__, os.path.join(*paths))
|
||||
|
||||
class GetText(resource.Resource):
|
||||
def render(self, request):
|
||||
|
@ -226,8 +206,7 @@ class Flag(resource.Resource):
|
|||
def render(self, request):
|
||||
headers = {}
|
||||
path = ("data", "pixmaps", "flags", request.country.lower() + ".png")
|
||||
filename = pkg_resources.resource_filename("deluge",
|
||||
os.path.join(*path))
|
||||
filename = common.resource_filename("deluge", os.path.join(*path))
|
||||
if os.path.exists(filename):
|
||||
request.setHeader("cache-control",
|
||||
"public, must-revalidate, max-age=86400")
|
||||
|
|
|
@ -41,6 +41,9 @@ from optparse import OptionGroup
|
|||
|
||||
class WebUI(UI):
|
||||
def __init__(self, args):
|
||||
# Setup translations
|
||||
deluge.common.setup_translations()
|
||||
|
||||
import server
|
||||
deluge_web = server.DelugeWeb()
|
||||
deluge_web.start()
|
||||
|
@ -48,11 +51,11 @@ class WebUI(UI):
|
|||
class Web(_UI):
|
||||
|
||||
help = """Starts the Deluge web interface"""
|
||||
|
||||
|
||||
def __init__(self):
|
||||
super(Web, self).__init__("web")
|
||||
self.__server = None
|
||||
|
||||
|
||||
group = OptionGroup(self.parser, "Web Options")
|
||||
group.add_option("-b", "--base", dest="base",
|
||||
help="Set the base path that the ui is running on (proxying)",
|
||||
|
@ -87,14 +90,14 @@ class Web(_UI):
|
|||
group.add_option("--ssl", dest="ssl", action="store_true",
|
||||
help="Forces the webserver to use ssl", default=False)
|
||||
self.parser.add_option_group(group)
|
||||
|
||||
|
||||
@property
|
||||
def server(self):
|
||||
return self.__server
|
||||
|
||||
|
||||
def start(self):
|
||||
super(Web, self).start()
|
||||
|
||||
|
||||
# Steps taken from http://www.faqs.org/faqs/unix-faq/programmer/faq/
|
||||
# Section 1.7
|
||||
if self.options.fork:
|
||||
|
@ -102,14 +105,14 @@ class Web(_UI):
|
|||
# or shell invoking the program.
|
||||
if os.fork():
|
||||
os._exit(0)
|
||||
|
||||
|
||||
# setsid() to become a process group and session group leader.
|
||||
os.setsid()
|
||||
|
||||
|
||||
# fork() again so the parent, (the session group leader), can exit.
|
||||
if os.fork():
|
||||
os._exit(0)
|
||||
|
||||
|
||||
# chdir() to esnure that our process doesn't keep any directory in
|
||||
# use that may prevent a filesystem unmount.
|
||||
import deluge.configmanager
|
||||
|
@ -134,10 +137,10 @@ class Web(_UI):
|
|||
|
||||
if self.options.base:
|
||||
self.server.base = self.options.base
|
||||
|
||||
|
||||
if self.options.port:
|
||||
self.server.port = self.options.port
|
||||
|
||||
|
||||
if self.options.ssl:
|
||||
self.server.https = self.options.ssl
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue