From 2e2c637be425f7ecb4cbaeb8aa27e92c47c54fa0 Mon Sep 17 00:00:00 2001
From: "glatzor@ubuntu.com" <>
Date: Mon, 11 Sep 2006 17:16:38 +0200
Subject: * Move the "run full dit upgrade" dialog into the UpdateManager class
- to avoid spliting the UI stuff into several classes * Use a glade based
dialog with better buttons instead of yes/no * Improved wording
---
UpdateManager/UpdateManager.py | 46 +++++++++++++-----------------------------
1 file changed, 14 insertions(+), 32 deletions(-)
(limited to 'UpdateManager')
diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py
index 343dcd85..69308ec6 100644
--- a/UpdateManager/UpdateManager.py
+++ b/UpdateManager/UpdateManager.py
@@ -219,7 +219,7 @@ class UpdateList:
self.importance = importance
self.description = desc
- def __init__(self, parent_window):
+ def __init__(self):
# a map of packages under their origin
pipe = os.popen("lsb_release -c -s")
dist = pipe.read().strip()
@@ -236,14 +236,12 @@ class UpdateList:
self.pkgs = {}
self.matcher = {}
self.num_updates = 0
- self.parent_window = parent_window
for (origin, archive, desc, importance) in templates:
self.matcher[(origin, archive)] = self.UpdateOrigin(desc, importance)
self.unknown_origin = self.UpdateOrigin(_("Other updates"), -1)
def update(self, cache):
held_back = []
- broken = []
# do the upgrade
cache.saveDistUpgrade()
@@ -268,34 +266,7 @@ class UpdateList:
held_back.append(pkg.name)
for l in self.pkgs.keys():
self.pkgs[l].sort(lambda x,y: cmp(x.name,y.name))
-
- # check if we have held-back something
- if cache._depcache.KeepCount > 0:
- keepcount = cache._depcache.KeepCount
- msg = ("%s\n\n%s" % \
- (_("Cannot install all available updates"),
- _("Some of the updates require more extensive changes "
- "than expected.\n\n"
- "This usually means that you have enabled unoffical "
- "repositories, that it is not "
- "fully upgraded from the last distribution release or "
- "that you run a development release "
- "of the distribution.\n\n"
- "Would you like to perform a full distribution upgrade "
- "now?")))
- dialog = gtk.MessageDialog(self.parent_window, 0,
- gtk.MESSAGE_QUESTION,
- gtk.BUTTONS_YES_NO,"")
- dialog.set_default_response(gtk.RESPONSE_NO)
- dialog.set_markup(msg)
- dialog.set_title("")
- dialog.vbox.set_spacing(6)
- res = dialog.run()
- if res == gtk.RESPONSE_YES:
- os.execl("/usr/bin/gksu",
- "/usr/bin/gksu",
- "/usr/bin/update-manager --dist-upgrade")
- dialog.destroy()
+ self.keepcount = cache._depcache.KeepCount
class UpdateManagerDbusControler(dbus.service.Object):
@@ -811,7 +782,7 @@ class UpdateManager(SimpleGladeApp):
self.dl_size = 0
self.store.clear()
self.initCache()
- self.list = UpdateList(self.window_main)
+ self.list = UpdateList()
# fill them again
self.list.update(self.cache)
@@ -929,6 +900,16 @@ class UpdateManager(SimpleGladeApp):
if res == gtk.RESPONSE_YES:
self.on_button_reload_clicked(None)
+ def check_all_updates_installable(self):
+ """ Check if all available updates can be installed and suggest
+ to run a distribution upgrade if not """
+ if self.list.keepcount > 0:
+ self.dialog_dist_upgrade.set_transient_for(self.window_main)
+ res = self.dialog_dist_upgrade.run()
+ if res == gtk.RESPONSE_YES:
+ os.execl("/usr/bin/gksu",
+ "/usr/bin/gksu",
+ "/usr/bin/update-manager --dist-upgrade")
def main(self, options):
gconfclient = gconf.client_get_default()
@@ -945,5 +926,6 @@ class UpdateManager(SimpleGladeApp):
gtk.main_iteration()
self.fillstore()
+ self.check_all_updates_installable()
self.check_auto_update()
gtk.main()
--
cgit v1.2.3
From 134c1c31fcbdc975d68ebb39e83c01830f078cc3 Mon Sep 17 00:00:00 2001
From: "glatzor@ubuntu.com" <>
Date: Mon, 11 Sep 2006 17:34:04 +0200
Subject: * show not installable updates as disabled in the update list * also
check for non installable updates after an "apt-get update"
---
UpdateManager/UpdateManager.py | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
(limited to 'UpdateManager')
diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py
index 69308ec6..623b406d 100644
--- a/UpdateManager/UpdateManager.py
+++ b/UpdateManager/UpdateManager.py
@@ -241,14 +241,14 @@ class UpdateList:
self.unknown_origin = self.UpdateOrigin(_("Other updates"), -1)
def update(self, cache):
- held_back = []
+ self.held_back = []
# do the upgrade
cache.saveDistUpgrade()
# sort by origin
for pkg in cache:
- if pkg.markedUpgrade or pkg.markedInstall:
+ if pkg.markedUpgrade or pkg.markedInstall or pkg.isUpgradable:
# TRANSLATORS: updates from an 'unknown' origin
originstr = _("Other updates")
for aorigin in pkg.candidateOrigin:
@@ -262,8 +262,8 @@ class UpdateList:
self.pkgs[origin_node] = []
self.pkgs[origin_node].append(pkg)
self.num_updates = self.num_updates + 1
- elif pkg.isUpgradable:
- held_back.append(pkg.name)
+ if pkg.isUpgradable:
+ self.held_back.append(pkg.name)
for l in self.pkgs.keys():
self.pkgs[l].sort(lambda x,y: cmp(x.name,y.name))
self.keepcount = cache._depcache.KeepCount
@@ -390,6 +390,8 @@ class UpdateManager(SimpleGladeApp):
return
to_install = pkg.markedInstall or pkg.markedUpgrade
renderer.set_property("active", to_install)
+ if pkg.name in self.list.held_back:
+ renderer.set_property("activatable", False)
def package_column_view_func(self, cell_layout, renderer, model, iter):
self.header_column_func(cell_layout, renderer, model, iter)
@@ -705,6 +707,8 @@ class UpdateManager(SimpleGladeApp):
self.window_main.set_sensitive(True)
self.window_main.window.set_cursor(None)
+ self.check_all_updates_installable()
+
def inhibit_sleep(self):
"""Send a dbus signal to gnome-power-manager to not suspend
the system"""
--
cgit v1.2.3
From ae0d9a877711e2f12cf7e62899d5cc60d50e9bd0 Mon Sep 17 00:00:00 2001
From: "glatzor@ubuntu.com" <>
Date: Mon, 11 Sep 2006 17:58:30 +0200
Subject: * use a different label for the cache progress dialog if it gets
reinitiated * clear the store after the long caching process to reduce visual
noise * move the check_all_updates_installable call into fillstore itself
---
UpdateManager/UpdateManager.py | 7 ++++---
data/glade/UpdateManager.glade | 29 ++++++++++++++++++++++++++---
2 files changed, 30 insertions(+), 6 deletions(-)
(limited to 'UpdateManager')
diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py
index 623b406d..432a00e0 100644
--- a/UpdateManager/UpdateManager.py
+++ b/UpdateManager/UpdateManager.py
@@ -699,6 +699,7 @@ class UpdateManager(SimpleGladeApp):
time.sleep(0.05)
while gtk.events_pending():
gtk.main_iteration()
+ self.label_cache_progress_title.set_label("%s" % _("Checking for updates"))
self.fillstore()
# Allow suspend after synaptic is finished
@@ -707,7 +708,6 @@ class UpdateManager(SimpleGladeApp):
self.window_main.set_sensitive(True)
self.window_main.window.set_cursor(None)
- self.check_all_updates_installable()
def inhibit_sleep(self):
"""Send a dbus signal to gnome-power-manager to not suspend
@@ -784,8 +784,8 @@ class UpdateManager(SimpleGladeApp):
# clean most objects
self.dl_size = 0
- self.store.clear()
self.initCache()
+ self.store.clear()
self.list = UpdateList()
# fill them again
@@ -814,6 +814,7 @@ class UpdateManager(SimpleGladeApp):
self.store.append([contents, pkg.name, pkg])
self.update_count()
self.setBusy(False)
+ self.check_all_updates_installable()
return False
def dist_no_longer_supported(self, meta_release):
@@ -910,6 +911,7 @@ class UpdateManager(SimpleGladeApp):
if self.list.keepcount > 0:
self.dialog_dist_upgrade.set_transient_for(self.window_main)
res = self.dialog_dist_upgrade.run()
+ self.dialog_dist_upgrade.hide()
if res == gtk.RESPONSE_YES:
os.execl("/usr/bin/gksu",
"/usr/bin/gksu",
@@ -930,6 +932,5 @@ class UpdateManager(SimpleGladeApp):
gtk.main_iteration()
self.fillstore()
- self.check_all_updates_installable()
self.check_auto_update()
gtk.main()
diff --git a/data/glade/UpdateManager.glade b/data/glade/UpdateManager.glade
index e9fd6bfc..2a4965fd 100644
--- a/data/glade/UpdateManager.glade
+++ b/data/glade/UpdateManager.glade
@@ -1371,11 +1371,34 @@ Your system does not check for updates automatically. You can configure this beh
12
-
+
True
- <big><b>Starting update manager</b></big>
+ <big><b>Starting update manager</b></big>
+ False
+ True
+ GTK_JUSTIFY_LEFT
+ False
+ False
+ 0
+ 0
+ 0
+ 0
+ PANGO_ELLIPSIZE_NONE
+ -1
+ False
+ 0
+
+
+ 0
+ False
+ False
+
+
-Software updates correct errors, eliminate security vulnerabilities and provide new features.
+
+
+ True
+ Software updates correct errors, eliminate security vulnerabilities and provide new features.
False
True
GTK_JUSTIFY_LEFT
--
cgit v1.2.3