diff options
| -rw-r--r-- | DistUpgrade/DistUpgrade.glade | 165 | ||||
| -rw-r--r-- | DistUpgrade/DistUpgradeControler.py | 4 | ||||
| -rw-r--r-- | DistUpgrade/DistUpgradeViewGtk.py | 75 |
3 files changed, 198 insertions, 46 deletions
diff --git a/DistUpgrade/DistUpgrade.glade b/DistUpgrade/DistUpgrade.glade index 00b04644..7710fa5e 100644 --- a/DistUpgrade/DistUpgrade.glade +++ b/DistUpgrade/DistUpgrade.glade @@ -858,4 +858,169 @@ </child> </widget> +<widget class="GtkDialog" id="dialog_error"> + <property name="border_width">6</property> + <property name="title" translatable="yes"></property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> + <property name="modal">False</property> + <property name="resizable">False</property> + <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">True</property> + <property name="skip_pager_hint">True</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">True</property> + <property name="has_separator">False</property> + + <child internal-child="vbox"> + <widget class="GtkVBox" id="vbox6"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">12</property> + + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="hbuttonbox3"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + + <child> + <widget class="GtkButton" id="button5"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Report Bug</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-8</property> + </widget> + </child> + + <child> + <widget class="GtkButton" id="button6"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-close</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="response_id">-7</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox8"> + <property name="border_width">6</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">12</property> + + <child> + <widget class="GtkImage" id="image5"> + <property name="visible">True</property> + <property name="stock">gtk-dialog-error</property> + <property name="icon_size">6</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="vbox7"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkLabel" id="label_error"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkScrolledWindow" id="scroll_error_extended"> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + + <child> + <widget class="GtkTreeView" id="treeview_error_extended"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + <property name="rules_hint">False</property> + <property name="reorderable">False</property> + <property name="enable_search">True</property> + <property name="fixed_height_mode">False</property> + <property name="hover_selection">False</property> + <property name="hover_expand">False</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + </child> +</widget> + </glade-interface> diff --git a/DistUpgrade/DistUpgradeControler.py b/DistUpgrade/DistUpgradeControler.py index db6168ef..a0f5a642 100644 --- a/DistUpgrade/DistUpgradeControler.py +++ b/DistUpgrade/DistUpgradeControler.py @@ -251,7 +251,7 @@ class DistUpgradeControler(object): # this is the core def dapperUpgrade(self): # sanity check (check for ubuntu-desktop, brokenCache etc) - self._view.updateStatus(_("Checking update system")) + self._view.updateStatus(_("Checking package manager")) self._view.setStep(1) self.openCache() if not self.cache.sanityCheck(self._view): @@ -270,7 +270,7 @@ class DistUpgradeControler(object): self.abort() # then open the cache (again) - self._view.updateStatus(_("Checking update system")) + self._view.updateStatus(_("Checking package manager")) self.openCache() # calc the dist-upgrade and see if the removals are ok/expected diff --git a/DistUpgrade/DistUpgradeViewGtk.py b/DistUpgrade/DistUpgradeViewGtk.py index d798befa..9230098f 100644 --- a/DistUpgrade/DistUpgradeViewGtk.py +++ b/DistUpgrade/DistUpgradeViewGtk.py @@ -49,7 +49,6 @@ class GtkOpProgress(apt.progress.OpProgress): while gtk.events_pending(): gtk.main_iteration() def done(self): - #self.progressbar.hide() self.progressbar.set_text(" ") @@ -80,9 +79,8 @@ class GtkFetchProgressAdapter(apt.progress.FetchProgress): self.progress.set_fraction(0) self.status.show() def stop(self): - #self.progress.hide() self.progress.set_text(" ") - self.status.set_text("") + self.status.set_text(_("Download is complete")) def pulse(self): # FIXME: move the status_str and progress_str into python-apt # (python-apt need i18n first for this) @@ -119,7 +117,7 @@ class GtkInstallProgressAdapter(InstallProgress): # FIXME: add support for the timeout # of the terminal (to display something useful then) # -> longer term, move this code into python-apt - self.label_status.set_text(_("Installing updates ...")) + self.label_status.set_text(_("Installing updates")) self.progress.set_fraction(0.0) self.progress.set_text(" ") self.expander.set_sensitive(True) @@ -127,30 +125,25 @@ class GtkInstallProgressAdapter(InstallProgress): self.env = ["VTE_PTY_KEEP_FD=%s"% self.writefd, "DEBIAN_FRONTEND=gnome", "APT_LISTCHANGES_FRONTEND=none"] + def error(self, pkg, errormsg): - dialog = gtk.MessageDialog(self.parent.window_main, 0, - gtk.MESSAGE_ERROR, - gtk.BUTTONS_OK,"") - summary = _("Error installing '%s'" % pkg) - msg = _("During the install a error occured. This is usually a bug " - "in the packages, please report it. See the message below " - "for more information. ") - msg="<big><b>%s</b></big>\n\n%s" % (summary,msg) - dialog.set_markup(msg) - dialog.vbox.set_spacing(6) + self.dialog_error.set_transient_for(self.window_main) + + self.expander_terminal.set_expanded(True) + + summary = _("Could not install '%s'" % pkg) + msg = _("The upgrade will abort now. Please report the bug.") + msg="<big><b>%s</b></big>\n\n%s" % (summary, msg) + self.label_error.set_markup(msg) + if errormsg != None: - scroll = gtk.ScrolledWindow() - scroll.set_size_request(400,200) - textview = gtk.TextView() - textview.set_cursor_visible(False) - textview.set_editable(False) - textview.get_buffer().set_text(errormsg) - textview.show() - scroll.add(textview) - scroll.show() - dialog.vbox.pack_end(scroll) - dialog.run() - dialog.destroy() + self.treeview_error_extended.get_buffer().set_text(errormsg) + self.scroll_error_extended.show() + + self.dialog_error.run() + self.dialog_error.destroy() + return False + def conffile(self, current, new): self.expander.set_expanded=True pass @@ -165,7 +158,6 @@ class GtkInstallProgressAdapter(InstallProgress): self.updateInterface() return self.apt_status def finishUpdate(self): - self.progress.hide() self.label_status.set_text("") def updateInterface(self): InstallProgress.updateInterface(self) @@ -236,24 +228,19 @@ class GtkDistUpgradeView(DistUpgradeView,SimpleGladeApp): label.set_property("attributes",attrlist) def error(self, summary, msg, extended_msg=None): - dialog = gtk.MessageDialog(self.window_main, 0, gtk.MESSAGE_ERROR, - gtk.BUTTONS_OK,"") - msg="<big><b>%s</b></big>\n\n%s" % (summary,msg) - dialog.set_markup(msg) - dialog.vbox.set_spacing(6) + self.dialog_error.set_transient_for(self.window_main) + + self.expander_terminal.set_expanded(True) + + msg="<big><b>%s</b></big>\n\n%s" % (summary, msg) + self.label_error.set_markup(msg) + if extended_msg != None: - scroll = gtk.ScrolledWindow() - scroll.set_size_request(400,200) - textview = gtk.TextView() - textview.set_cursor_visible(False) - textview.set_editable(False) - textview.get_buffer().set_text(extended_msg) - textview.show() - scroll.add(textview) - scroll.show() - dialog.vbox.pack_end(scroll) - dialog.run() - dialog.destroy() + self.treeview_error_extended.get_buffer().set_text(extended_msg) + self.scroll_error_extended.show() + + self.dialog_error.run() + self.dialog_error.destroy() return False def confirmChanges(self, summary, changes, downloadSize): |
