summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DistUpgrade/DistUpgrade.glade165
-rw-r--r--DistUpgrade/DistUpgradeControler.py4
-rw-r--r--DistUpgrade/DistUpgradeViewGtk.py75
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):