summaryrefslogtreecommitdiffstats
path: root/src/Gui/CC_gui_functions.py
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-03-02 15:30:17 +0100
committerJiri Moskovcak <jmoskovc@redhat.com>2009-03-02 15:30:17 +0100
commitb413cf38cdcbae6aede174aa54103181395f7bbc (patch)
treeeee47ca1edd79fbc3e47c993bbd584906727eb51 /src/Gui/CC_gui_functions.py
parentf98ee8ad41a9f9ebc8f2318a4bbf9ecfc01bc1ab (diff)
New gui
DBusBackend improvements
Diffstat (limited to 'src/Gui/CC_gui_functions.py')
-rw-r--r--src/Gui/CC_gui_functions.py59
1 files changed, 57 insertions, 2 deletions
diff --git a/src/Gui/CC_gui_functions.py b/src/Gui/CC_gui_functions.py
index 5ac8e8c7..703ec25e 100644
--- a/src/Gui/CC_gui_functions.py
+++ b/src/Gui/CC_gui_functions.py
@@ -1,4 +1,9 @@
import gtk
+try:
+ # we don't want to add dependency to rpm, but if we have it, we can use it
+ import rpm
+except:
+ rpm = None
def gui_error_message ( message, parent_dialog=None,
message_type=gtk.MESSAGE_ERROR,
@@ -19,8 +24,8 @@ def gui_error_message ( message, parent_dialog=None,
dialog.destroy()
return ret
-def gui_info_dialog ( message, parent_dialog=None,
- message_type=gtk.MESSAGE_INFO,
+def gui_question_dialog ( message, parent_dialog=None,
+ message_type=gtk.MESSAGE_QUESTION,
widget=None, page=0, broken_widget=None ):
dialog = gtk.MessageDialog( parent_dialog,
@@ -37,3 +42,53 @@ def gui_info_dialog ( message, parent_dialog=None,
ret = dialog.run ()
dialog.destroy()
return ret
+
+def get_icon_for_package(theme,package):
+ #print package
+ try:
+ return theme.load_icon(package, 22, gtk.ICON_LOOKUP_USE_BUILTIN)
+ except:
+ # try to find icon filename by manually
+ if not rpm:
+ return None
+ ts = rpm.TransactionSet()
+ mi = ts.dbMatch( 'name', package )
+ possible_icons = []
+ icon_filename = ""
+ filenames = ""
+ for h in mi:
+ filenames = h['filenames']
+ for filename in filenames:
+ # add check only for last 4 chars
+ if filename.rfind(".png") != -1:
+ possible_icons.append(filename)
+ if filename.rfind(".desktop") != -1:
+ #print filename
+ desktop_file = open(filename, 'r')
+ lines = desktop_file.readlines()
+ for line in lines:
+ if line.find("Icon=") != -1:
+ #print line[5:-1]
+ icon_filename = line[5:-1]
+ break
+ desktop_file.close()
+ # .dektop file found
+ for filename in h['filenames']:
+ if filename.rfind("%s.png" % icon_filename) != -1:
+ #print filename
+ icon_filename = filename
+ break
+ #we didn't find the .desktop file
+ else:
+ for filename in possible_icons:
+ if filename.rfind("%s.png" % package):
+ # return the first possible filename
+ icon_filename = filename
+ break
+ if icon_filename:
+ break
+ if icon_filename:
+ #print "icon created form %s" % icon_filename
+ return gtk.gdk.pixbuf_new_from_file_at_size(icon_filename,22,22)
+ else:
+ return None