summaryrefslogtreecommitdiff
path: root/DistUpgrade
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-02-20 15:59:34 +0100
committerMichael Vogt <michael.vogt@ubuntu.com>2006-02-20 15:59:34 +0100
commite5141921e05f57aaef3a0195171960871345fbfa (patch)
treeb8a0d51b48a27ffb9350ddf6b01d02528924acfb /DistUpgrade
parent92515fd2901336f8f5dccef140dc58de26c954ae (diff)
parentd87c4020340ed0c869346c5b569a3b2e261b7be2 (diff)
downloadpython-apt-e5141921e05f57aaef3a0195171960871345fbfa.tar.gz
* merged with sebi
* updated pt_BR translation
Diffstat (limited to 'DistUpgrade')
-rw-r--r--DistUpgrade/DistUpgrade.glade309
-rw-r--r--DistUpgrade/DistUpgradeControler.py37
-rw-r--r--DistUpgrade/DistUpgradeViewGtk.py89
3 files changed, 315 insertions, 120 deletions
diff --git a/DistUpgrade/DistUpgrade.glade b/DistUpgrade/DistUpgrade.glade
index 5b59fb4d..c28b20ad 100644
--- a/DistUpgrade/DistUpgrade.glade
+++ b/DistUpgrade/DistUpgrade.glade
@@ -12,7 +12,6 @@
<property name="modal">False</property>
<property name="resizable">False</property>
<property name="destroy_with_parent">False</property>
- <property name="icon">update-manager.png</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
@@ -293,6 +292,7 @@
<widget class="GtkImage" id="image_step5">
<property name="width_request">18</property>
<property name="height_request">18</property>
+ <property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
@@ -309,7 +309,8 @@
<child>
<widget class="GtkLabel" id="label_step5">
- <property name="label" translatable="yes"></property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Restarting the system</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -519,7 +520,7 @@
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
- <widget class="GtkButton" id="button_changes_ok">
+ <widget class="GtkButton" id="button_cancel">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
@@ -532,11 +533,11 @@
</child>
<child>
- <widget class="GtkButton" id="button2">
+ <widget class="GtkButton" id="button_start">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
- <property name="label">_Continue</property>
+ <property name="label">_Start Upgrade</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -553,106 +554,70 @@
</child>
<child>
- <widget class="GtkVBox" id="vbox3">
+ <widget class="GtkHBox" id="hbox12">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label_summary">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</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">False</property>
- </packing>
- </child>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label_changes">
+ <widget class="GtkImage" id="image9">
<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="stock">gtk-dialog-question</property>
+ <property name="icon_size">6</property>
<property name="xalign">0</property>
- <property name="yalign">0.5</property>
+ <property name="yalign">0</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">False</property>
+ <property name="fill">True</property>
</packing>
</child>
<child>
- <widget class="GtkExpander" id="expander1">
+ <widget class="GtkVBox" id="vbox3">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="expanded">False</property>
- <property name="spacing">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="width_request">400</property>
- <property name="height_request">200</property>
+ <widget class="GtkLabel" id="label_summary">
<property name="visible">True</property>
- <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_details">
- <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>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</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">False</property>
+ </packing>
</child>
<child>
- <widget class="GtkLabel" id="label4">
+ <widget class="GtkLabel" id="label_changes">
<property name="visible">True</property>
- <property name="label" translatable="yes">Details</property>
+ <property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
- <property name="use_markup">False</property>
+ <property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
+ <property name="wrap">True</property>
<property name="selectable">False</property>
- <property name="xalign">0.5</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -662,7 +627,73 @@
<property name="angle">0</property>
</widget>
<packing>
- <property name="type">label_item</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkExpander" id="expander_details">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="expanded">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="width_request">400</property>
+ <property name="height_request">200</property>
+ <property name="visible">True</property>
+ <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_details">
+ <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>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Details</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.5</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="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -1285,4 +1316,128 @@ This is you last chance to cancel the upgrade.</property>
</child>
</widget>
+<widget class="GtkDialog" id="dialog_cancel">
+ <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="vbox11">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="hbuttonbox5">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="button_cancel">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">_Cancel Upgrade</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">-6</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="button_resume">
+ <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">_Resume Upgrade</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">-5</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="hbox11">
+ <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="image8">
+ <property name="visible">True</property>
+ <property name="stock">gtk-dialog-question</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="GtkLabel" id="label29">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;&lt;big&gt;Cancel the running upgrade?&lt;/big&gt;&lt;/b&gt;
+
+The system could be in an unusable state if you cancel the upgrade. You are strongly adviced to resume the upgrade.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</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">False</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 9fa717fe..6dcc0e2a 100644
--- a/DistUpgrade/DistUpgradeControler.py
+++ b/DistUpgrade/DistUpgradeControler.py
@@ -187,13 +187,16 @@ class DistUpgradeControler(object):
st = os.statvfs(archivedir)
free = st[statvfs.F_BAVAIL]*st[statvfs.F_FRSIZE]
if self.cache.requiredDownload > free:
- self._view.error(_("Not enough free space"),
- _("There is not enough free space on your "
- "system to download the required pacakges. "
- "Please free some space before trying again "
- "with e.g. 'sudo apt-get clean'"))
- return False
- res = self._view.confirmChanges(_("Perform Upgrade?"),changes,
+ free_at_least = apt_pkg.SizeToStr(self.cache.requiredDownload-free)
+ self._view.error(_("Not enough free disk space"),
+ _("The upgrade aborts now. "
+ "Please free at least %s of disk space. "
+ "Empty your trash and remove temporary "
+ "packages of former installations using "
+ "'sudo apt-get clean'." % free_at_least ))
+ return False
+ res = self._view.confirmChanges(_("Do you want to start the upgrade?"),
+ changes,
self.cache.requiredDownload)
return res
@@ -208,12 +211,11 @@ class DistUpgradeControler(object):
res = self.cache.commit(fprogress,iprogress)
except SystemError, e:
# installing the packages failed, can't be retried
- self._view.error(_("Error during commit"),
- _("Some problem occured during the upgrade. "
- "Most likely packages failed to install. "
- "Try 'sudo apt-get install -f' or synaptic "
- "to fix your system."),
- "%s" % e)
+ self._view.error(_("Could not install the upgrades"),
+ _("The upgrade aborts now. Your system "
+ "can be in an unusable state. Please "
+ "try 'sudo apt-get install -f' or Synaptic "
+ "to fix your system."), "%s" % e)
return False
except IOError, e:
# fetch failed, will be retried
@@ -225,11 +227,10 @@ class DistUpgradeControler(object):
# maximum fetch-retries reached without a successful commit
logging.debug("giving up on fetching after maximum retries")
- self._view.error(_("Error fetching the packages"),
- _("Some problem occured during the fetching "
- "of the packages. This is most likely a network "
- "problem. Please check your network and try "
- "again. "),
+ self._view.error(_("Could not download the upgrades"),
+ _("The upgrade aborts now. Please check your "\
+ "internet connection or "\
+ "installation media and try again. "),
"%s" % e)
# abort here because we want our sources.list back
self.abort()
diff --git a/DistUpgrade/DistUpgradeViewGtk.py b/DistUpgrade/DistUpgradeViewGtk.py
index 014efbd5..9bd55d24 100644
--- a/DistUpgrade/DistUpgradeViewGtk.py
+++ b/DistUpgrade/DistUpgradeViewGtk.py
@@ -39,6 +39,7 @@ from apt.progress import InstallProgress
from DistUpgradeView import DistUpgradeView
from UpdateManager.Common.SimpleGladeApp import SimpleGladeApp, bindtextdomain
+import gettext
from gettext import gettext as _
def utf8(str):
@@ -74,7 +75,7 @@ class GtkFetchProgressAdapter(apt.progress.FetchProgress):
def mediaChange(self, medium, drive):
#print "mediaChange %s %s" % (medium, drive)
msg = _("Please insert '%s' into the drive '%s'" % (medium,drive))
- dialog = gtk.MessageDialog(parent=self.main,
+ dialog = gtk.MessageDialog(parent=self.window_main,
flags=gtk.DIALOG_MODAL,
type=gtk.MESSAGE_QUESTION,
buttons=gtk.BUTTONS_OK_CANCEL)
@@ -140,17 +141,20 @@ class GtkInstallProgressAdapter(InstallProgress):
"APT_LISTCHANGES_FRONTEND=none"]
def error(self, pkg, errormsg):
- logging.error("got a error from dpkg for pkg: '%s': '%s'" % (pkg, errormsg))
+ logging.error("got an error from dpkg for pkg: '%s': '%s'" % (pkg, errormsg))
#self.expander_terminal.set_expanded(True)
self.parent.dialog_error.set_transient_for(self.parent.window_main)
summary = _("Could not install '%s'" % pkg)
- msg = _("The upgrade will abort. Please report the bug.")
+ msg = _("The upgrade aborts now. Please report this bug.")
markup="<big><b>%s</b></big>\n\n%s" % (summary, msg)
+ self.parent.dialog_error.realize()
+ self.parent.dialog_error.window.set_functions(gtk.gdk.FUNC_MOVE)
self.parent.label_error.set_markup(markup)
self.parent.textview_error.get_buffer().set_text(utf8(errormsg))
self.parent.scroll_error.show()
self.parent.dialog_error.run()
self.parent.dialog_error.hide()
+
def conffile(self, current, new):
logging.debug("got a conffile-prompt from dpkg for file: '%s'" % current)
self.expander.set_expanded(True)
@@ -184,9 +188,13 @@ class DistUpgradeViewGtk(DistUpgradeView,SimpleGladeApp):
# FIXME: i18n must be somewhere relative do this dir
bindtextdomain("update-manager",os.path.join(os.getcwd(),"mo"))
+ icons = gtk.icon_theme_get_default()
+ gtk.window_set_default_icon(icons.load_icon("update-manager", 32, 0))
SimpleGladeApp.__init__(self, "DistUpgrade.glade",
None, domain="update-manager")
self.window_main.set_keep_above(True)
+ self.window_main.realize()
+ self.window_main.window.set_functions(gtk.gdk.FUNC_MOVE)
self._opCacheProgress = GtkOpProgress(self.progressbar_cache)
self._fetchProgress = GtkFetchProgressAdapter(self)
self._installProgress = GtkInstallProgressAdapter(self)
@@ -216,10 +224,9 @@ class DistUpgradeViewGtk(DistUpgradeView,SimpleGladeApp):
lines = traceback.format_exception(type, value, tb)
logging.error("not handled expection:\n%s" % "\n".join(lines))
self.error(_("A fatal error occured"),
- _("During the operation a fatal error occured. "
- "Please report this as a bug and include the "
+ _("Please report this as a bug and include the "
"files ~/dist-upgrade.log and ~/dist-upgrade-apt.log "
- "in your report. The upgrade will abort now. "),
+ "in your report. The upgrade aborts now. "),
"\n".join(lines))
def create_terminal(self, arg1,arg2,arg3,arg4):
@@ -282,8 +289,9 @@ class DistUpgradeViewGtk(DistUpgradeView,SimpleGladeApp):
self.scroll_error.show()
else:
self.scroll_error.hide()
+ self.dialog_error.realize()
+ self.dialog_error.window.set_functions(gtk.gdk.FUNC_MOVE)
self.dialog_error.run()
- self.dialog_error.show()
self.dialog_error.destroy()
return False
@@ -291,24 +299,51 @@ class DistUpgradeViewGtk(DistUpgradeView,SimpleGladeApp):
# FIXME: add a whitelist here for packages that we expect to be
# removed (how to calc this automatically?)
DistUpgradeView.confirmChanges(self, summary, changes, downloadSize)
+ pkgs_remove = len(self.toRemove)
+ pkgs_inst = len(self.toInstall)
+ pkgs_upgrade = len(self.toUpgrade)
+ msg = ""
+
+ if pkgs_remove > 0:
+ msg += gettext.ngettext("%s package is going to be removed." %\
+ pkgs_remove,
+ "%s packages are going to be removed." %\
+ pkgs_remove, pkgs_remove)
+ msg +=" "
+ if pkgs_inst > 0:
+ msg += gettext.ngettext("%s new package is going to be "\
+ "installed." % pkgs_inst,
+ "%s new packages are going to be "\
+ "installed." % pkgs_inst, pkgs_inst)
+ msg +=" "
+ if pkgs_upgrade > 0:
+ msg += gettext.ngettext("%s package is going to be upgraded." %\
+ pkgs_upgrade,
+ "%s packages are going to be upgraded." %\
+ pkgs_upgrade, pkgs_upgrade)
+ msg +=" "
+ if msg == "":
+ # FIXME: this should go into DistUpgradeController
+ summary = _("Could not find any upgrades")
+ msg = _("Your system has already been upgraded.")
+ self.error(summary, msg)
+ return False
+ else:
+ msg += _("You have to download a total of %s." %\
+ apt_pkg.SizeToStr(downloadSize))
self.label_summary.set_markup("<big><b>%s</b></big>" % summary)
- msg = _("%s packages are going to be removed.\n"
- "%s packages are going to be newly installed.\n"
- "%s packages are going to be upgraded.\n\n"
- "%s needs to be fetched" % (len(self.toRemove),
- len(self.toInstall),
- len(self.toUpgrade),
- apt_pkg.SizeToStr(downloadSize)))
self.label_changes.set_text(msg)
# fill in the details
self.details_list.clear()
for rm in self.toRemove:
- self.details_list.append([_("<b>To be removed: %s</b>" % rm)])
+ self.details_list.append([_("<b>Remove %s</b>" % rm)])
for inst in self.toInstall:
- self.details_list.append([_("To be installed: %s" % inst)])
+ self.details_list.append([_("Install %s" % inst)])
for up in self.toUpgrade:
- self.details_list.append([_("To be upgraded: %s" % up)])
+ self.details_list.append([_("Upgrade %s" % up)])
self.dialog_changes.set_transient_for(self.window_main)
+ self.dialog_changes.realize()
+ self.dialog_changes.window.set_functions(gtk.gdk.FUNC_MOVE)
res = self.dialog_changes.run()
self.dialog_changes.hide()
if res == gtk.RESPONSE_YES:
@@ -330,6 +365,8 @@ class DistUpgradeViewGtk(DistUpgradeView,SimpleGladeApp):
def confirmRestart(self):
self.dialog_restart.set_transient_for(self.window_main)
+ self.dialog_restart.realize()
+ self.dialog_restart.window.set_functions(gtk.gdk.FUNC_MOVE)
res = self.dialog_restart.run()
self.dialog_restart.hide()
if res == gtk.RESPONSE_YES:
@@ -337,14 +374,16 @@ class DistUpgradeViewGtk(DistUpgradeView,SimpleGladeApp):
return False
def on_window_main_delete_event(self, widget, event):
- #print "on_window_main_delete_event()"
- summary = _("Are you sure you want cancel?")
- msg = _("Canceling during a upgrade can leave the system in a "
- "unstable state. It is strongly adviced to continue "
- "the operation. ")
- if self.askYesNoQuestion(summary, msg):
- self.exit(1)
- return True
+ self.dialog_cancel.set_transient_for(self.window_main)
+ self.dialog_cancel.realize()
+ self.dialog_cancel.window.set_functions(gtk.gdk.FUNC_MOVE)
+ res = self.dialog_cancel.run()
+ self.dialog_cancel.hide()
+ if res == gtk.RESPONSE_CANCEL:
+ #FIXME: this does not work correctly and leaves a stalled
+ # dist-upgrade.py process
+ self.destroy()
+ return True
if __name__ == "__main__":
view = GtkDistUpgradeView()