author | Padraig O'Briain <padraig.obriain@sun.com> |
Thu, 17 Dec 2009 15:12:34 +0000 | |
changeset 1597 | cad7238f86d9 |
parent 1592 | bb8305c64143 |
child 1603 | 84bd53597209 |
permissions | -rw-r--r-- |
1516
8c950a3b4171
10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents:
1487
diff
changeset
|
1 |
#!/usr/bin/python |
869
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 |
|
1487
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
31 |
RELEASE_URL = "http://www.opensolaris.org" # Fallback url for release notes if api |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
32 |
# does not gave us one. |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
33 |
|
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
34 |
import os |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
35 |
import sys |
1478
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
36 |
import urllib2 |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
37 |
import urlparse |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
38 |
import socket |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
39 |
try: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
40 |
import gobject |
942
cb2774668721
6707 Text change for Update Manager dialog
John Rice <john.rice@sun.com>
parents:
927
diff
changeset
|
41 |
import gnome |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
42 |
import gtk |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
43 |
import pango |
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
44 |
except ImportError: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
45 |
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
|
46 |
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
|
47 |
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
|
48 |
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
|
49 |
from pkg.gui.misc_non_gui import get_api_object as ngao |
1573
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
50 |
from pkg.gui.misc_non_gui import setup_logging as su_logging |
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
51 |
from pkg.gui.misc_non_gui import shutdown_logging as sd_logging |
942
cb2774668721
6707 Text change for Update Manager dialog
John Rice <john.rice@sun.com>
parents:
927
diff
changeset
|
52 |
|
1573
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
53 |
def setup_logging(client_name): |
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
54 |
su_logging(client_name) |
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
55 |
|
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
56 |
def shutdown_logging(): |
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
57 |
sd_logging() |
ae7488fbff6a
12240 PM / UM need to intercept and display client messages
John Rice <john.rice@sun.com>
parents:
1566
diff
changeset
|
58 |
|
869
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
59 |
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
|
60 |
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
|
61 |
"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
|
62 |
|
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
63 |
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
|
64 |
icon = icon_name.replace(' ', '_') |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
65 |
|
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
66 |
# 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
|
67 |
# 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
|
68 |
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
|
69 |
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
|
70 |
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
|
71 |
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
|
72 |
|
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
73 |
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
|
74 |
return None |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
75 |
try: |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
76 |
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
|
77 |
except gobject.GError: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
78 |
try: |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
79 |
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
|
80 |
except gobject.GError: |
0197953cd88a
5398 UM not following steps consistently
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff
changeset
|
81 |
return None |
1137
f6c7c39981aa
8660 packagemanager traceback if PACKAGE_MANAGER_ROOT missing trailing '/'
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1087
diff
changeset
|
82 |
|
1164
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
83 |
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
|
84 |
try: |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
85 |
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
|
86 |
except gobject.GError: |
1164
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
87 |
return None |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
88 |
|
1220
81379363d2ca
9889 Help doesn't work on UpdateManager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1217
diff
changeset
|
89 |
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
|
90 |
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
|
91 |
'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
|
92 |
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
|
93 |
|
81379363d2ca
9889 Help doesn't work on UpdateManager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1217
diff
changeset
|
94 |
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
|
95 |
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
|
96 |
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
|
97 |
else: |
978947aae45f
9513 Some icons are installed in wrong locations
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1141
diff
changeset
|
98 |
gnome.help_display('package-manager') |
942
cb2774668721
6707 Text change for Update Manager dialog
John Rice <john.rice@sun.com>
parents:
927
diff
changeset
|
99 |
|
1031
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
100 |
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
|
101 |
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
|
102 |
try: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
103 |
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
|
104 |
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
|
105 |
# 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
|
106 |
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
|
107 |
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
|
108 |
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
|
109 |
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
|
110 |
try: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
111 |
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
|
112 |
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
|
113 |
# 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
|
114 |
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
|
115 |
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
|
116 |
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
|
117 |
else: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
118 |
# 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
|
119 |
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
|
120 |
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
|
121 |
try: |
5c130cc07e44
7037 GUI to cut last all but part of new Category Path
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
985
diff
changeset
|
122 |
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
|
123 |
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
|
124 |
# 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
|
125 |
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
|
126 |
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
|
127 |
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
|
128 |
|
1168
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
129 |
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
|
130 |
api_o = None |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
131 |
message = None |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
132 |
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
|
133 |
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
|
134 |
except api_errors.VersionException, ex: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
135 |
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
|
136 |
(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
|
137 |
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
|
138 |
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
|
139 |
if message != None: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
140 |
if parent_dialog != None: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
141 |
error_occurred(parent_dialog, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
142 |
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
|
143 |
sys.exit(0) |
1168
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 |
print message |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
146 |
return api_o |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
147 |
|
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
148 |
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
|
149 |
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
|
150 |
msgbox = gtk.MessageDialog(parent = |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
151 |
parent, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
152 |
buttons = gtk.BUTTONS_CLOSE, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
153 |
flags = gtk.DIALOG_MODAL, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
154 |
type = msg_type, |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
155 |
message_format = None) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
156 |
if use_markup: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
157 |
msgbox.set_markup(error_msg) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
158 |
else: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
159 |
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
|
160 |
if msg_title != None: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
161 |
title = msg_title |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
162 |
else: |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
163 |
title = _("Error") |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
164 |
|
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
165 |
msgbox.set_title(title) |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
166 |
msgbox.run() |
6ca02b55d252
5197 gui should not manipulate image objects
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1164
diff
changeset
|
167 |
msgbox.destroy() |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
168 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
169 |
def set_package_details(pkg_name, local_info, remote_info, textview, |
1566
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
170 |
installed_icon, not_installed_icon, update_available_icon, |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
171 |
is_all_publishers_installed=None, pubs_disabled_status=None): |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
172 |
installed = True |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
173 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
174 |
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
|
175 |
# 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
|
176 |
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
|
177 |
installed = False |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
178 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
179 |
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
|
180 |
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
|
181 |
installed = True |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
182 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
183 |
labs = {} |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
184 |
labs["name"] = _("Name:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
185 |
labs["desc"] = _("Description:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
186 |
labs["size"] = _("Size:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
187 |
labs["cat"] = _("Category:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
188 |
labs["ins"] = _("Installed:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
189 |
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
|
190 |
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
|
191 |
labs["repository"] = _("Publisher:") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
192 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
193 |
description = _("None") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
194 |
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
|
195 |
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
|
196 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
197 |
text = {} |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
198 |
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
|
199 |
text["desc"] = description |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
200 |
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
|
201 |
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
|
202 |
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
|
203 |
{"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
|
204 |
"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
|
205 |
"branch": local_info.branch} |
1550
14df4437e8d2
12101 Package version information dialog
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1516
diff
changeset
|
206 |
labs["available"] = _("Latest Version:") |
1592
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
207 |
if not same_pkg_versions(local_info, remote_info): |
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
|
208 |
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
|
209 |
{"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
|
210 |
"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
|
211 |
"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
|
212 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
213 |
text["available"] = _("No") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
214 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
215 |
text["ins"] = _("No") |
1550
14df4437e8d2
12101 Package version information dialog
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1516
diff
changeset
|
216 |
labs["available"] = _("Latest Version:") |
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
|
217 |
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
|
218 |
"%(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
|
219 |
{"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
|
220 |
"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
|
221 |
"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
|
222 |
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
|
223 |
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
|
224 |
else: |
5cdbe05012bd
12105 Package with dependencies only should not show size in details
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1412
diff
changeset
|
225 |
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
|
226 |
categories = _("None") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
227 |
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
|
228 |
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
|
229 |
categories = "" |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
230 |
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
|
231 |
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
|
232 |
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
|
233 |
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
|
234 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
235 |
text["cat"] = categories |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
236 |
text["repository"] = local_info.publisher |
1566
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
237 |
# pubs_disabled_status: dict of publisher disabled status: |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
238 |
# pub_status[pub_name] = True disabled or False enabled |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
239 |
if is_all_publishers_installed and pubs_disabled_status != None: |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
240 |
if local_info.publisher in pubs_disabled_status: |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
241 |
if pubs_disabled_status[local_info.publisher]: |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
242 |
text["repository"] = local_info.publisher + \ |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
243 |
_(" (disabled)") |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
244 |
else: |
367d13217341
9801 PM Manage Installed Packages
John Rice <john.rice@sun.com>
parents:
1550
diff
changeset
|
245 |
text["repository"] = local_info.publisher + _(" (removed)") |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
246 |
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
|
247 |
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
|
248 |
return (labs, text) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
249 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
250 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
251 |
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
|
252 |
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
|
253 |
max_len = 0 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
254 |
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
|
255 |
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
|
256 |
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
|
257 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
258 |
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
|
259 |
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
|
260 |
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
|
261 |
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
|
262 |
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
|
263 |
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
|
264 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
265 |
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
|
266 |
infobuffer.set_text("") |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
267 |
i = 0 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
268 |
__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
|
269 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
270 |
__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
|
271 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
272 |
installed = False |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
273 |
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
|
274 |
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
|
275 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
276 |
icon = installed_icon |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
277 |
installed = True |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
278 |
__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
|
279 |
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
|
280 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
281 |
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
|
282 |
__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
|
283 |
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
|
284 |
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
|
285 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
286 |
__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
|
287 |
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
|
288 |
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
|
289 |
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
|
290 |
__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
|
291 |
i += 1 |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
292 |
__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
|
293 |
i += 1 |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
294 |
__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
|
295 |
text["repository"]) |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
296 |
|
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
297 |
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
|
298 |
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
|
299 |
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
|
300 |
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
|
301 |
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
|
302 |
if icon == None: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
303 |
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
|
304 |
else: |
1412
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
305 |
resized_icon = resize_icon(icon, font_size) |
1458
a6f813dbcc3e
12100 Update icons for next release of OpenSolaris
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1456
diff
changeset
|
306 |
text_buffer.insert(end_itr, "\t") |
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
307 |
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
|
308 |
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
|
309 |
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
|
310 |
|
1592
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
311 |
def same_pkg_versions(info1, info2): |
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
312 |
if info1 == None or info2 == None: |
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
313 |
return False |
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
314 |
|
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
315 |
return info1.version == info2.version and \ |
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
316 |
info1.build_release == info2.build_release and \ |
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
317 |
info1.branch == info2.branch |
bb8305c64143
13320 Status indicates Updates Available, however General tab indicates No
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1573
diff
changeset
|
318 |
|
1412
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
319 |
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
|
320 |
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
|
321 |
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
|
322 |
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
|
323 |
(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
|
324 |
font_size, |
c948dbc8a1a5
5321 package manager dependencies tab could show installation status
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1381
diff
changeset
|
325 |
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
|
326 |
|
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
327 |
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
|
328 |
info = None |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
329 |
try: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
330 |
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
|
331 |
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
|
332 |
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
|
333 |
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
|
334 |
return info |
1456
9eb0d782440f
12295 Package Manager does not deal properly with getting descriptions if no connection
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1446
diff
changeset
|
335 |
except (api_errors.InvalidDepotResponseException): |
9eb0d782440f
12295 Package Manager does not deal properly with getting descriptions if no connection
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1446
diff
changeset
|
336 |
return info |
9eb0d782440f
12295 Package Manager does not deal properly with getting descriptions if no connection
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1446
diff
changeset
|
337 |
|
1366
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
338 |
pkgs_info = None |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
339 |
package_info = None |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
340 |
if info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
341 |
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
|
342 |
if pkgs_info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
343 |
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
|
344 |
if package_info: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
345 |
return package_info |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
346 |
else: |
23cf80f57e61
11163 Rework needed for details panel for Update Manager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1336
diff
changeset
|
347 |
return None |
1469
30f9e05c523d
12458 Webinstall sub dialogs not getting focus
John Rice <john.rice@sun.com>
parents:
1458
diff
changeset
|
348 |
|
1487
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
349 |
def restart_system(): |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
350 |
# "init 6" performs reboot in a clean and orderly manner informing |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
351 |
# the svc.startd daemon of the change in runlevel which subsequently |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
352 |
# achieves the appropriate milestone and ultimately executes |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
353 |
# the rc0 kill scripts. |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
354 |
command = "init 6" |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
355 |
return os.system(command) |
2c36e9347c4f
12099 Change the be rename sequence in Update All.
Michal Pryc <Michal.Pryc@Sun.Com>
parents:
1482
diff
changeset
|
356 |
|
1469
30f9e05c523d
12458 Webinstall sub dialogs not getting focus
John Rice <john.rice@sun.com>
parents:
1458
diff
changeset
|
357 |
def set_modal_and_transient(top_window, parent_window = None): |
30f9e05c523d
12458 Webinstall sub dialogs not getting focus
John Rice <john.rice@sun.com>
parents:
1458
diff
changeset
|
358 |
if parent_window: |
30f9e05c523d
12458 Webinstall sub dialogs not getting focus
John Rice <john.rice@sun.com>
parents:
1458
diff
changeset
|
359 |
top_window.set_transient_for(parent_window) |
30f9e05c523d
12458 Webinstall sub dialogs not getting focus
John Rice <john.rice@sun.com>
parents:
1458
diff
changeset
|
360 |
top_window.set_modal(True) |
1478
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
361 |
|
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
362 |
def get_catalogrefresh_exception_msg(cre): |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
363 |
if not isinstance(cre, api_errors.CatalogRefreshException): |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
364 |
return "" |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
365 |
msg = _("Catalog refresh error:\n") |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
366 |
if cre.succeeded < cre.total: |
1597
cad7238f86d9
13431 translatable message should use mapping to enable swap of parameters (GUI part)
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1592
diff
changeset
|
367 |
msg += _( |
cad7238f86d9
13431 translatable message should use mapping to enable swap of parameters (GUI part)
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1592
diff
changeset
|
368 |
"Only %(suc)s out of %(tot)s catalogs successfully updated.\n") % \ |
cad7238f86d9
13431 translatable message should use mapping to enable swap of parameters (GUI part)
Padraig O'Briain <padraig.obriain@sun.com>
parents:
1592
diff
changeset
|
369 |
{"suc": cre.succeeded, "tot": cre.total} |
1478
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
370 |
msg += "\n" |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
371 |
|
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
372 |
for pub, err in cre.failed: |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
373 |
if isinstance(err, urllib2.HTTPError): |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
374 |
msg += "%s: %s - %s" % \ |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
375 |
(err.filename, err.code, err.msg) |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
376 |
elif isinstance(err, urllib2.URLError): |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
377 |
if err.args[0][0] == 8: |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
378 |
msg += "%s: %s" % \ |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
379 |
(urlparse.urlsplit( |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
380 |
pub["origin"])[1].split(":")[0], |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
381 |
err.args[0][1]) |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
382 |
else: |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
383 |
if isinstance(err.args[0], socket.timeout): |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
384 |
msg += "%s: %s" % \ |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
385 |
(pub["origin"], "timeout") |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
386 |
else: |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
387 |
msg += "%s: %s" % \ |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
388 |
(pub["origin"], err.args[0][1]) |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
389 |
else: |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
390 |
msg += str(err) |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
391 |
|
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
392 |
if cre.message: |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
393 |
msg += cre.message |
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
394 |
|
1e51eaebc8ee
12178 PM support Export Selections in .p5i format
John Rice <john.rice@sun.com>
parents:
1469
diff
changeset
|
395 |
return msg |
1482
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
396 |
|
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
397 |
def change_stockbutton_label(button, text): |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
398 |
# Gtk.Button->Gtk.Alignment->Gtk.HBox->[Gtk.Image, Gtk.Label] |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
399 |
# Drill into Button widget to get Gtk.Label and set its text |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
400 |
children = button.get_children() |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
401 |
if len(children) == 0: |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
402 |
return |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
403 |
align = children[0] |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
404 |
if not align or not isinstance(align, gtk.Alignment): |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
405 |
return |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
406 |
children = align.get_children() |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
407 |
if len(children) == 0: |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
408 |
return |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
409 |
hbox = children[0] |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
410 |
if not hbox or not isinstance(hbox, gtk.HBox): |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
411 |
return |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
412 |
children = hbox.get_children() |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
413 |
if not (len(children) > 1): |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
414 |
return |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
415 |
button_label = children[1] |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
416 |
if not button_label or not isinstance(button_label, gtk.Label): |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
417 |
return |
db83e3f4b9aa
12457 Inconsistency with icons in buttons
John Rice <john.rice@sun.com>
parents:
1478
diff
changeset
|
418 |
button_label.set_label(text) |