diff options
| author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-03-02 15:30:17 +0100 |
|---|---|---|
| committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-03-02 15:30:17 +0100 |
| commit | b413cf38cdcbae6aede174aa54103181395f7bbc (patch) | |
| tree | eee47ca1edd79fbc3e47c993bbd584906727eb51 /src/Gui/CC_gui_functions.py | |
| parent | f98ee8ad41a9f9ebc8f2318a4bbf9ecfc01bc1ab (diff) | |
New gui
DBusBackend improvements
Diffstat (limited to 'src/Gui/CC_gui_functions.py')
| -rw-r--r-- | src/Gui/CC_gui_functions.py | 59 |
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 |
