src/updatemanager.py
changeset 1023 73f73773b4c9
parent 997 4c5d85a87ea2
child 1024 e83271f2e133
--- a/src/updatemanager.py	Wed Apr 08 09:26:31 2009 +0200
+++ b/src/updatemanager.py	Wed Apr 08 13:06:40 2009 +0100
@@ -36,6 +36,7 @@
 from threading import Timer
 
 try:
+        import gnome
         import gobject
         gobject.threads_init()        
         import gtk
@@ -257,7 +258,8 @@
                 self.do_refresh = False
                 self.ua_start = 0
                 self.pylintstub = None
-                
+                self.release_notes_url = "http://www.opensolaris.org"
+
                 # Progress Dialog
                 self.gladefile = self.application_dir + \
                     "/usr/share/update-manager/updatemanager.glade"
@@ -324,7 +326,20 @@
                 self.w_select_checkbox = w_xmltree_um.get_widget("selectall_checkbutton")
                 self.w_um_cancel_button = w_xmltree_um.get_widget("cancel_button")
                 self.w_um_close_button = w_xmltree_um.get_widget("close_button")
-                
+
+                # UM Completed Dialog
+                w_xmltree_um_completed = gtk.glade.XML(self.gladefile, 
+                    "um_completed_dialog")
+                self.w_um_completed_dialog = w_xmltree_um_completed.get_widget(
+                    "um_completed_dialog")
+                self.w_um_completed_dialog .connect("destroy", self.__on_um_dialog_close)
+                self.w_um_completed_time_label = w_xmltree_um_completed.get_widget(
+                    "um_completed_time_label")
+                self.w_um_completed_release_label = w_xmltree_um_completed.get_widget(
+                    "um_completed_release_label")
+                self.w_um_completed_linkbutton = w_xmltree_um_completed.get_widget(
+                    "um_completed_linkbutton")
+
                 self.details_cache = {}
                 
                 try:
@@ -358,6 +373,15 @@
                             }
                         w_xmltree_progress.signal_autoconnect(dic_progress)
 
+                        dic_completed = \
+                            {
+                                "on_um_complete_close_button_clicked": \
+                                     self.__on_um_dialog_close,
+                                "on_um_completed_linkbutton_clicked": \
+                                     self.__on_um_completed_linkbutton_clicked,
+                                     
+                            }
+                        w_xmltree_um_completed.signal_autoconnect(dic_completed)
 
                 except AttributeError, error:
                         print _("GUI will not respond to any event! %s. "
@@ -897,6 +921,13 @@
                                 infobuffer.insert_with_tags_by_name(textiter,
                                         _("\nNo details available"), "bold")
 
+        def __on_um_completed_linkbutton_clicked(self, widget):
+                try:
+                        gnome.url_show(self.release_notes_url)
+                except gobject.GError:
+                        self.__error_occurred(_("Unable to navigate to:\n\t%s") % 
+                            self.release_notes_url, title=_("Update Manager"))
+
         def __on_um_dialog_close(self, widget):
                 self.__exit_app()
 
@@ -1014,21 +1045,21 @@
                         info_str = \
                             _(
                             "\nUpdate All finished successfully in < 1 min\n\n")
+                self.w_um_completed_time_label.set_text(info_str.strip('\n'))
 
-                info_str += _(
+                info_str = _(
                     "Review the posted release notes before rebooting your system:\n\n"
-                    "http://opensolaris.org/os/project/indiana/resources/"
-                    "relnotes/200811/x86/")
+                    )
+                self.w_um_completed_release_label.set_text(info_str.strip('\n'))
 
+                info_str = misc.get_release_notes_url()
+                self.w_um_completed_linkbutton.set_uri(info_str)
+                self.w_um_completed_linkbutton.set_label(info_str)
+                self.release_notes_url = info_str
+                
                 self.w_um_dialog.hide()
-                msgbox = gtk.MessageDialog(parent = self.w_um_dialog,
-                    buttons = gtk.BUTTONS_CLOSE, flags = gtk.DIALOG_MODAL,
-                    type = gtk.MESSAGE_INFO,
-                    message_format = info_str)
-                msgbox.set_title(_("Update All Completed"))
-                msgbox.run()
-                msgbox.destroy()                        
-                self.__exit_app()
+                self.w_um_completed_dialog.set_title(_("Update All Completed"))
+                self.w_um_completed_dialog.show()
                 
         def __handle_cancel_exception(self):
                 gobject.idle_add(self.w_progress_dialog.hide)
@@ -1499,7 +1530,7 @@
                         um.update_all_proceed = True
                         um.ua_be_name = argument
 
-                        
+
         um.show_all_opts = show_all_opts
         um.show_install_updates_only = show_install_updates_only
         um.do_refresh = do_refresh