author | Padraig O'Briain <padraig.obriain@sun.com> |
Tue, 27 Oct 2009 15:23:17 +0000 | |
changeset 1446 | 72569184fd0d |
parent 1444 | 5cdbe05012bd |
child 1456 | 9eb0d782440f |
permissions | -rw-r--r-- |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.4 |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
2 |
# |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
3 |
# CDDL HEADER START |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
4 |
# |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
5 |
# The contents of this file are subject to the terms of the |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
6 |
# Common Development and Distribution License (the "License"). |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
7 |
# You may not use this file except in compliance with the License. |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
8 |
# |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
10 |
# or http://www.opensolaris.org/os/licensing. |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
11 |
# See the License for the specific language governing permissions |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
12 |
# and limitations under the License. |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
13 |
# |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
19 |
# |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
20 |
# CDDL HEADER END |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
21 |
# |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
22 |
# Copyright 2009 Sun Microsystems, Inc. All rights reserved. |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
23 |
# Use is subject to license terms. |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
24 |
# |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
25 |
|
1031
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
26 |
SPECIAL_CATEGORIES = ["locale", "plugin"] # We should cut all, but last part of the |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
27 |
# new name scheme as part of fix for #7037. |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
28 |
# However we need to have an exception rule |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
29 |
# where we will cut all but three last parts. |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
30 |
|
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
31 |
import os |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
32 |
import sys |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
33 |
try: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
34 |
import gobject |
942
cb2774668721
6707 Text change for Update Manager dialog
John Rice <john.rice@sun.com>
parents:
927
diff
changeset
|
35 |
import gnome |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
36 |
import gtk |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
37 |
import pango |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
38 |
except ImportError: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
39 |
sys.exit(1) |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
40 |
import pkg.misc as misc |
1168
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
41 |
import pkg.client.api_errors as api_errors |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
42 |
import pkg.client.api as api |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
43 |
from pkg.gui.misc_non_gui import get_api_object as ngao |
942
cb2774668721
6707 Text change for Update Manager dialog
John Rice <john.rice@sun.com>
parents:
927
diff
changeset
|
44 |
|
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
45 |
def get_icon_pixbuf(application_dir, icon_name): |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
46 |
return get_pixbuf_from_path(os.path.join(application_dir, |
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
47 |
"usr/share/icons/package-manager"), icon_name) |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
48 |
|
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
49 |
def get_pixbuf_from_path(path, icon_name): |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
50 |
icon = icon_name.replace(' ', '_') |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
51 |
|
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
52 |
# Performance: Faster to check if files exist rather than catching |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
53 |
# exceptions when they do not. Picked up open failures using dtrace |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
54 |
png_path = os.path.join(path, icon + ".png") |
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
55 |
png_exists = os.path.exists(png_path) |
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
56 |
svg_path = os.path.join(path, icon + ".png") |
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
57 |
svg_exists = os.path.exists(png_path) |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
58 |
|
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
59 |
if not png_exists and not svg_exists: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
60 |
return None |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
61 |
try: |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
62 |
return gtk.gdk.pixbuf_new_from_file(png_path) |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
63 |
except gobject.GError: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
64 |
try: |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
65 |
return gtk.gdk.pixbuf_new_from_file(svg_path) |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
66 |
except gobject.GError: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
67 |
return None |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
68 |
|
1164
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
69 |
def get_icon(icon_theme, name, size=16): |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
70 |
try: |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
71 |
return icon_theme.load_icon(name, size, 0) |
1217
1e2405e83d3a
9788 pylint errors in Package Manager and Update Manager should be fixed
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1168
diff
changeset
|
72 |
except gobject.GError: |
1164
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
73 |
return None |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
74 |
|
1220
81379363d2ca
9889 Help doesn't work on UpdateManager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1217
diff
changeset
|
75 |
def init_for_help(application_dir="/"): |
1164
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
76 |
props = { gnome.PARAM_APP_DATADIR : os.path.join(application_dir, |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
77 |
'usr/share/package-manager/help') } |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
78 |
gnome.program_init('package-manager', '0.1', properties=props) |
1220
81379363d2ca
9889 Help doesn't work on UpdateManager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1217
diff
changeset
|
79 |
|
81379363d2ca
9889 Help doesn't work on UpdateManager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1217
diff
changeset
|
80 |
def display_help(help_id=None): |
1217
1e2405e83d3a
9788 pylint errors in Package Manager and Update Manager should be fixed
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1168
diff
changeset
|
81 |
if help_id != None: |
1e2405e83d3a
9788 pylint errors in Package Manager and Update Manager should be fixed
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1168
diff
changeset
|
82 |
gnome.help_display('package-manager', link_id=help_id) |
1164
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
83 |
else: |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
84 |
gnome.help_display('package-manager') |
942
cb2774668721
6707 Text change for Update Manager dialog
John Rice <john.rice@sun.com>
parents:
927
diff
changeset
|
85 |
|
1031
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
86 |
def get_pkg_name(pkg_name): |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
87 |
index = -1 |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
88 |
try: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
89 |
index = pkg_name.rindex("/") |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
90 |
except ValueError: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
91 |
# Package Name without "/" |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
92 |
return pkg_name |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
93 |
pkg_name_bk = pkg_name |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
94 |
test_name = pkg_name[index:] |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
95 |
pkg_name = pkg_name[:index] |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
96 |
try: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
97 |
index = pkg_name.rindex("/") |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
98 |
except ValueError: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
99 |
# Package Name with only one "/" |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
100 |
return pkg_name_bk |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
101 |
if pkg_name[index:].strip("/") not in SPECIAL_CATEGORIES: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
102 |
return test_name.strip("/") |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
103 |
else: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
104 |
# The package name contains special category |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
105 |
converted_name = pkg_name[index:] + test_name |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
106 |
pkg_name = pkg_name[:index] |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
107 |
try: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
108 |
index = pkg_name.rindex("/") |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
109 |
except ValueError: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
110 |
# Only three parts "part1/special/part2" |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
111 |
return pkg_name + converted_name |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
112 |
return pkg_name[index:].strip("/") + converted_name |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
113 |
return pkg_name_bk |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
114 |
|
1168
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
115 |
def get_api_object(img_dir, progtrack, parent_dialog): |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
116 |
api_o = None |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
117 |
message = None |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
118 |
try: |
1336
2ea22dad29e3
10192 /usr/lib/pm-checkforupdates emits warning when DISPLAY is not set.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1271
diff
changeset
|
119 |
api_o = ngao(img_dir, progtrack) |
1168
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
120 |
except api_errors.VersionException, ex: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
121 |
message = _("Version mismatch: expected version %d, got version %d") % \ |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
122 |
(ex.expected_version, ex.received_version) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
123 |
except api_errors.ImageNotFoundException, ex: |
1217
1e2405e83d3a
9788 pylint errors in Package Manager and Update Manager should be fixed
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1168
diff
changeset
|
124 |
message = _("%s is not an install image") % ex.user_dir |
1168
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
125 |
if message != None: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
126 |
if parent_dialog != None: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
127 |
error_occurred(parent_dialog, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
128 |
message, _("API Error")) |
1228
07ef6e279231
9852 UMN and PM check for updates should use plan_update_all
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1220
diff
changeset
|
129 |
sys.exit(0) |
1168
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
130 |
else: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
131 |
print message |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
132 |
return api_o |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
133 |
|
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
134 |
def error_occurred(parent, error_msg, msg_title = None, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
135 |
msg_type=gtk.MESSAGE_ERROR, use_markup = False): |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
136 |
msgbox = gtk.MessageDialog(parent = |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
137 |
parent, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
138 |
buttons = gtk.BUTTONS_CLOSE, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
139 |
flags = gtk.DIALOG_MODAL, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
140 |
type = msg_type, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
141 |
message_format = None) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
142 |
if use_markup: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
143 |
msgbox.set_markup(error_msg) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
144 |
else: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
145 |
msgbox.set_property('text', error_msg) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
146 |
if msg_title != None: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
147 |
title = msg_title |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
148 |
else: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
149 |
title = _("Error") |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
150 |
|
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
151 |
msgbox.set_title(title) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
152 |
msgbox.run() |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
153 |
msgbox.destroy() |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
154 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
155 |
def set_package_details(pkg_name, local_info, remote_info, textview, |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
156 |
installed_icon, not_installed_icon, update_available_icon): |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
157 |
installed = True |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
158 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
159 |
if not local_info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
160 |
# Package is not installed |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
161 |
local_info = remote_info |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
162 |
installed = False |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
163 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
164 |
if not remote_info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
165 |
remote_info = local_info |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
166 |
installed = True |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
167 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
168 |
labs = {} |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
169 |
labs["name"] = _("Name:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
170 |
labs["desc"] = _("Description:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
171 |
labs["size"] = _("Size:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
172 |
labs["cat"] = _("Category:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
173 |
labs["ins"] = _("Installed:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
174 |
labs["available"] = _("Version Available:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
175 |
labs["lat"] = _("Latest Version:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
176 |
labs["repository"] = _("Publisher:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
177 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
178 |
description = _("None") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
179 |
if local_info.summary: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
180 |
description = local_info.summary |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
181 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
182 |
text = {} |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
183 |
text["name"] = pkg_name |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
184 |
text["desc"] = description |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
185 |
if installed: |
1381
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
186 |
yes_text = _("Yes, %(version)s (Build %(build)s-%(branch)s)") |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
187 |
text["ins"] = yes_text % \ |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
188 |
{"version": local_info.version, |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
189 |
"build": local_info.build_release, |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
190 |
"branch": local_info.branch} |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
191 |
labs["available"] = _("Update Available:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
192 |
if (local_info.build_release != remote_info.build_release or |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
193 |
local_info.branch != remote_info.branch): |
1381
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
194 |
text["available"] = yes_text % \ |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
195 |
{"version": remote_info.version, |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
196 |
"build": remote_info.build_release, |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
197 |
"branch": remote_info.branch} |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
198 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
199 |
text["available"] = _("No") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
200 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
201 |
text["ins"] = _("No") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
202 |
labs["available"] = _("Version Available:") |
1381
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
203 |
text["available"] = _( |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
204 |
"%(version)s (Build %(build)s-%(branch)s)") % \ |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
205 |
{"version": remote_info.version, |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
206 |
"build": remote_info.build_release, |
1abf1c22cf33
11445 packagemanager does not display main package version string in General tab.
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1366
diff
changeset
|
207 |
"branch": remote_info.branch} |
1444
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
208 |
if local_info.size != 0: |
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
209 |
text["size"] = misc.bytes_to_str(local_info.size) |
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
210 |
else: |
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
211 |
text["size"] = "0" |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
212 |
categories = _("None") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
213 |
if local_info.category_info_list: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
214 |
verbose = len(local_info.category_info_list) > 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
215 |
categories = "" |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
216 |
categories += local_info.category_info_list[0].__str__(verbose) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
217 |
if len(local_info.category_info_list) > 1: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
218 |
for ci in local_info.category_info_list[1:]: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
219 |
categories += ", " + ci.__str__(verbose) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
220 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
221 |
text["cat"] = categories |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
222 |
text["repository"] = local_info.publisher |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
223 |
set_package_details_text(labs, text, textview, installed_icon, |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
224 |
not_installed_icon, update_available_icon) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
225 |
return (labs, text) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
226 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
227 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
228 |
def set_package_details_text(labs, text, textview, installed_icon, |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
229 |
not_installed_icon, update_available_icon): |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
230 |
max_len = 0 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
231 |
for lab in labs: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
232 |
if len(labs[lab]) > max_len: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
233 |
max_len = len(labs[lab]) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
234 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
235 |
style = textview.get_style() |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
236 |
font_size_in_pango_unit = style.font_desc.get_size() |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
237 |
font_size_in_pixel = font_size_in_pango_unit / pango.SCALE |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
238 |
tab_array = pango.TabArray(2, True) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
239 |
tab_array.set_tab(1, pango.TAB_LEFT, max_len * font_size_in_pixel) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
240 |
textview.set_tabs(tab_array) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
241 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
242 |
infobuffer = textview.get_buffer() |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
243 |
infobuffer.set_text("") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
244 |
i = 0 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
245 |
__add_line_to_generalinfo(infobuffer, i, labs["name"], text["name"]) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
246 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
247 |
__add_line_to_generalinfo(infobuffer, i, labs["desc"], text["desc"]) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
248 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
249 |
installed = False |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
250 |
if text["ins"] == _("No"): |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
251 |
icon = not_installed_icon |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
252 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
253 |
icon = installed_icon |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
254 |
installed = True |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
255 |
__add_line_to_generalinfo(infobuffer, i, labs["ins"], |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
256 |
text["ins"], icon, font_size_in_pixel) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
257 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
258 |
if installed and text["available"] != _("No"): |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
259 |
__add_line_to_generalinfo(infobuffer, i, |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
260 |
labs["available"], text["available"], |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
261 |
update_available_icon, font_size_in_pixel) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
262 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
263 |
__add_line_to_generalinfo(infobuffer, i, |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
264 |
labs["available"], text["available"]) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
265 |
i += 1 |
1444
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
266 |
if text["size"] != "0": |
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
267 |
__add_line_to_generalinfo(infobuffer, i, labs["size"], text["size"]) |
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
268 |
i += 1 |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
269 |
__add_line_to_generalinfo(infobuffer, i, labs["cat"], text["cat"]) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
270 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
271 |
__add_line_to_generalinfo(infobuffer, i, labs["repository"], |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
272 |
text["repository"]) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
273 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
274 |
def __add_line_to_generalinfo(text_buffer, index, label, text, |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
275 |
icon = None, font_size = 1): |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
276 |
itr = text_buffer.get_iter_at_line(index) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
277 |
text_buffer.insert_with_tags_by_name(itr, label, "bold") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
278 |
end_itr = text_buffer.get_end_iter() |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
279 |
if icon == None: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
280 |
text_buffer.insert(end_itr, "\t%s\n" % text) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
281 |
else: |
1412
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
282 |
resized_icon = resize_icon(icon, font_size) |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
283 |
text_buffer.insert(end_itr, "\t ") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
284 |
text_buffer.get_end_iter() |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
285 |
text_buffer.insert_pixbuf(end_itr, resized_icon) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
286 |
text_buffer.insert(end_itr, " %s\n" % text) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
287 |
|
1412
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
288 |
def resize_icon(icon, font_size): |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
289 |
width = icon.get_width() |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
290 |
height = icon.get_height() |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
291 |
return icon.scale_simple( |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
292 |
(font_size * width) / height, |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
293 |
font_size, |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
294 |
gtk.gdk.INTERP_BILINEAR) |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
295 |
|
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
296 |
def get_pkg_info(api_o, pkg_stem, local): |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
297 |
info = None |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
298 |
try: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
299 |
info = api_o.info([pkg_stem], local, |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
300 |
api.PackageInfo.ALL_OPTIONS - |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
301 |
frozenset([api.PackageInfo.LICENSES])) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
302 |
except (api_errors.TransportError): |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
303 |
return info |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
304 |
pkgs_info = None |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
305 |
package_info = None |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
306 |
if info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
307 |
pkgs_info = info[0] |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
308 |
if pkgs_info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
309 |
package_info = pkgs_info[0] |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
310 |
if package_info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
311 |
return package_info |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
312 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
313 |
return None |