From dbf5fcbae2a88c507ee65f3aa25c0a10c9720817 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Wed, 10 Jun 2009 14:56:19 +0200 Subject: [PATCH] remove gnome, gnome.ui, gtkhtml2 module dependencies --- entropy-notification-applet/src/applet.py | 10 +- entropy-notification-applet/src/etp_applet.py | 46 ++---- .../src/etp_applet_components.py | 148 ++---------------- 3 files changed, 33 insertions(+), 171 deletions(-) diff --git a/entropy-notification-applet/src/applet.py b/entropy-notification-applet/src/applet.py index ed1a01d10..68c9c8b94 100755 --- a/entropy-notification-applet/src/applet.py +++ b/entropy-notification-applet/src/applet.py @@ -7,7 +7,7 @@ # # $Id: applet.py,v 1.10 2003/09/15 15:07:19 veillard Exp $ -import sys, gtk +import sys #import signal sys.path.insert(0,'/usr/lib/entropy/client') sys.path.insert(0,'/usr/lib/entropy/libraries') @@ -17,6 +17,9 @@ sys.path.insert(0,'../../libraries') sys.path.insert(0,'../../sulfur/src') sys.path.insert(0,'../') sys.argv.append('--no-pid-handling') +import gtk +import gtk.gdk +import gobject import etp_applet @@ -24,8 +27,13 @@ if __name__ == "__main__": #signal.signal(signal.SIGINT, signal.SIG_DFL) applet = etp_applet.EntropyApplet() try: + gobject.threads_init() + gtk.gdk.threads_enter() gtk.main() + gtk.gdk.threads_leave() except KeyboardInterrupt: applet.close_service() + gobject.timeout_add(0, applet.exit_applet) + gtk.gdk.threads_leave() raise diff --git a/entropy-notification-applet/src/etp_applet.py b/entropy-notification-applet/src/etp_applet.py index 7ed5ad6fc..1e4be7254 100644 --- a/entropy-notification-applet/src/etp_applet.py +++ b/entropy-notification-applet/src/etp_applet.py @@ -26,8 +26,6 @@ import os import sys import time import subprocess -import gnome -import gnome.ui import gtk import gobject import pynotify @@ -37,8 +35,8 @@ import dbus.mainloop.glib # applet imports import etp_applet_config -from etp_applet_components import AppletNoticeWindow, AppletAboutWindow, \ - AppletErrorDialog, AppletExceptionDialog, AppletIconPixbuf +from etp_applet_components import AppletNoticeWindow, \ + AppletErrorDialog, AppletIconPixbuf # Entropy imports from entropy.i18n import _ @@ -108,18 +106,11 @@ class EntropyApplet: self.notice_window = None self.error_dialog = None self.error_threshold = 0 - self.about_window = None self.last_error = None self.package_updates = [] self.last_alert = None self.tooltip_text = "" self.last_trigger_check_t = 0.0 - gnome.program_init("entropy-notifier", etpConst['entropyversion']) - - self.session = gnome.ui.master_client() - if self.session: - gtk.Object.connect(self.session, "save-yourself", self.save_yourself) - gtk.Object.connect(self.session, "die", self.exit_applet) self.never_viewed_notices = 1 self.current_image = None @@ -134,7 +125,8 @@ class EntropyApplet: self.icons.add_file("critical", "applet-critical.png") self.icons.add_file("disable", "applet-disable.png") self.icons.add_file("sulfur","sulfur.png") - self.icons.add_file("about","applet-about.png") + # remove this in future + # self.icons.add_file("about","applet-about.png") self.icons.add_file("web","applet-web.png") self.icons.add_file("configuration","applet-configuration.png") self.applet_size = 22 @@ -153,7 +145,6 @@ class EntropyApplet: ("web_site", _("_Sabayon Linux Website"), _("Launch Sabayon Linux Website"), self.load_website), None, - ("about", _("_About"), _("About..."), self.about), ("exit", _("_Exit"), _("Exit"), self.exit_applet), ) @@ -370,8 +361,9 @@ class EntropyApplet: img = gtk.Image() if name == "update_now": pix = self.icons.best_match("sulfur",22) - elif name == "about": - pix = self.icons.best_match("about",22) + # remove this in future + #elif name == "about": + # pix = self.icons.best_match("about",22) elif name in ["web_panel","web_site"]: pix = self.icons.best_match("web",22) elif name == "configure_applet": @@ -403,16 +395,10 @@ class EntropyApplet: self.status_icon.set_visible(True) def load_packages_url(self, *data): - try: - gnome.url_show("http://www.sabayon.org/packages") - except gobject.GError: - self.load_url("http://www.sabayon.org/packages") + self.load_url("http://www.sabayon.org/packages") def load_website(self, *data): - try: - gnome.url_show("http://www.sabayon.org/") - except gobject.GError: - self.load_url("http://www.sabayon.org/") + self.load_url("http://www.sabayon.org/") def load_url(self, url): subprocess.call(['xdg-open',url]) @@ -469,20 +455,6 @@ class EntropyApplet: gtk.main_quit() raise SystemExit(0) - def save_yourself(self, *args): - if self.session: - self.session.set_clone_command(1, ["/usr/bin/entropy-update-applet"]) - self.session.set_restart_command(1, ["/usr/bin/entropy-update-applet"]) - return True - - def about(self, *data): - if self.about_window: - return - self.about_window = AppletAboutWindow(self) - - def about_dialog_closed(self): - self.about_window = None - def notice_window_closed(self): self.notice_window = None diff --git a/entropy-notification-applet/src/etp_applet_components.py b/entropy-notification-applet/src/etp_applet_components.py index 5dfe87080..a65579a68 100644 --- a/entropy-notification-applet/src/etp_applet_components.py +++ b/entropy-notification-applet/src/etp_applet_components.py @@ -22,13 +22,10 @@ """ import os -import gnome -import gnome.ui import gobject import gtk.glade gtk.glade.bindtextdomain('entropy', "/usr/share/locale") import gtk -import gtkhtml2 from entropy.const import etpConst from entropy.i18n import _ from entropy.core import SystemSettings @@ -76,6 +73,10 @@ class AppletNoticeWindow(GladeWindow): "on_close_clicked" : self.on_close, }) + message_label = gtk.Label() + message_label.set_line_wrap(True) + self.message_label = message_label + def on_sulfur(self, button): self.parent.launch_package_manager() @@ -95,43 +96,30 @@ class AppletNoticeWindow(GladeWindow): def set_critical(self, text, critical_active): if not self.critical_tab_contents: - html_view = gtkhtml2.View() - self.html_view = html_view - self.html_doc = gtkhtml2.Document() - - sw = gtk.ScrolledWindow() - sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - sw.set_border_width(2) - sw.add(html_view) + vb = gtk.VBox() + vb.add(self.message_label) tab_label = gtk.Label(_("Critical Information")) + tab_label.show() + self.message_label.show() + vb.show() - html_view.show() - sw.show() - - self.critical_tab = self.notebook.prepend_page(sw, tab_label) - self.critical_tab_contents = sw + self.critical_tab = self.notebook.prepend_page(vb, tab_label) + self.critical_tab_contents = vb if critical_active: self.notebook.set_current_page( self.notebook.page_num(self.critical_tab_contents)) self.set_critical_tab_text(text) + else: - if self.critical_tab_text != text: - self.set_critical_tab_text(text) + + self.set_critical_tab_text(text) def set_critical_tab_text(self, text): - self.critical_tab_text = text - - self.html_doc.clear() - self.html_doc.connect('link_clicked', self.on_link_clicked) - self.html_doc.open_stream("text/html") - self.html_doc.write_stream( - '' + text) - self.html_doc.close_stream() - self.html_view.set_document(self.html_doc) + self.message_label.set_markup(text) def remove_critical(self): if not self.critical_tab_contents: @@ -146,25 +134,6 @@ class AppletNoticeWindow(GladeWindow): self.package_list_model.append((name, avail,)) -class AppletAboutWindow: - - def __init__(self, parent): - self.window = gnome.ui.About("%s Updates Applet" % ( - SysSettings['system']['name'], - ), - etpConst['entropyversion'], "Copyright (C) 2009, Sabayon Linux", - "Sabayon, what else?", - [ "Sabayon Linux", "sabayon@sabayonlinux.org" ]) - self.window.connect("destroy", self.on_close) - self.parent = parent - self.window.show() - - def close_dialog(self, *rest): - self.parent.about_dialog_closed() - - def on_close(self, *data): - self.close_dialog() - class AppletErrorDialog(GladeWindow): def __init__(self, parent, error): GladeWindow.__init__(self) @@ -183,53 +152,9 @@ class AppletErrorDialog(GladeWindow): def on_close(self, *data): self.close_dialog() -# stolen from anaconda def growToParent(*args): return -def addFrame(dialog, title=None): - contents = dialog.get_children()[0] - dialog.remove(contents) - frame = gtk.Frame() - frame.set_shadow_type(gtk.SHADOW_OUT) - box = gtk.VBox() - try: - if title is None: - title = dialog.get_title() - - if title: - data = {} - data["state"] = 0 - data["button"] = 0 - data["deltax"] = 0 - data["deltay"] = 0 - data["window"] = dialog - eventBox = gtk.EventBox() - eventBox.connect("button-press-event", titleBarMousePressCB, data) - eventBox.connect("button-release-event", titleBarMouseReleaseCB, data) - eventBox.connect("motion-notify-event", titleBarMotionEventCB,data) - titleBox = gtk.HBox(gtk.FALSE, 5) - eventBox.add(titleBox) - eventBox.modify_bg(gtk.STATE_NORMAL, - eventBox.rc_get_style().bg[gtk.STATE_SELECTED]) - titlelbl = gtk.Label("") - titlelbl.set_markup(""+_(title)+"") - titlelbl.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse ("white")) - titlelbl.set_property("ypad", 4) - titleBox.pack_start(titlelbl) - box.pack_start(eventBox, gtk.FALSE, gtk.FALSE) - except: - pass - - frame2=gtk.Frame() - frame2.set_shadow_type(gtk.SHADOW_NONE) - frame2.set_border_width(4) - frame2.add(contents) - box.pack_start(frame2, gtk.TRUE, gtk.TRUE, padding=5) - frame.add(box) - frame.show() - dialog.add(frame) - class WrappingLabel(gtk.Label): def __init__(self, label=""): gtk.Label.__init__(self, label) @@ -237,49 +162,6 @@ class WrappingLabel(gtk.Label): self.ignoreEvents = 0 self.connect("size-allocate", growToParent) -class AppletExceptionDialog: - - def __init__ (self, parent, text): - self.parent = parent - win = gtk.Dialog("Exception Occured", None) - self.window = win - win.add_button('gtk-ok', 0) - - mybuf = gtk.TextBuffer(None) - mybuf.set_text(text) - textbox = gtk.TextView() - textbox.set_buffer(buffer) - textbox.set_property("editable", gtk.FALSE) - textbox.set_property("cursor_visible", gtk.FALSE) - sw = gtk.ScrolledWindow () - sw.add (textbox) - sw.set_policy (gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - - hbox = gtk.HBox (gtk.FALSE) - - info = WrappingLabel(_("An unhandled exception has occured. This " - "is most likely a bug. Please copy the " - "full text of this exception into an email " - "and send it to sabayon@sabayonlinux.org. Thank you.")) - info.set_size_request (400, -1) - - hbox.pack_start (sw, gtk.TRUE) - win.vbox.pack_start (info, gtk.FALSE) - win.vbox.pack_start (hbox, gtk.TRUE) - win.set_size_request (500, 300) - win.set_position (gtk.WIN_POS_CENTER) - addFrame(win) - win.show_all() - win.connect('close', self.on_close) - win.connect('response', self.on_close) - - def close_dialog(self, *rest): - self.parent.error_dialog_closed() - self.window.destroy() - - def on_close(self, *data): - self.close_dialog() - class AppletIconPixbuf: def __init__(self):