summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DistUpgrade/DistUpgrade.glade511
-rw-r--r--DistUpgrade/DistUpgradeControler.py5
-rw-r--r--DistUpgrade/DistUpgradeView.py3
-rw-r--r--DistUpgrade/DistUpgradeViewGtk.py82
-rw-r--r--SoftwareProperties/SoftwareProperties.py31
-rw-r--r--UpdateManager/GtkProgress.py44
-rw-r--r--UpdateManager/UpdateManager.py178
-rw-r--r--data/SoftwareProperties.glade9
-rw-r--r--data/UpdateManager.glade469
-rw-r--r--debian/changelog2
10 files changed, 1002 insertions, 332 deletions
diff --git a/DistUpgrade/DistUpgrade.glade b/DistUpgrade/DistUpgrade.glade
index 00b04644..697514cf 100644
--- a/DistUpgrade/DistUpgrade.glade
+++ b/DistUpgrade/DistUpgrade.glade
@@ -39,7 +39,7 @@
<child>
<widget class="GtkLabel" id="label_title">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot; size=&quot;x-large&quot;&gt;Upgrading Ubuntu&lt;/span&gt;</property>
+ <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot; size=&quot;x-large&quot;&gt;Upgrading to Ubuntu &quot;Dapper&quot; 6.04&lt;/span&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -95,7 +95,7 @@
<child>
<widget class="GtkTable" id="table_steps">
<property name="visible">True</property>
- <property name="n_rows">4</property>
+ <property name="n_rows">5</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -161,7 +161,7 @@
<child>
<widget class="GtkLabel" id="label_step1">
<property name="visible">True</property>
- <property name="label" translatable="yes">Preparing upgrade</property>
+ <property name="label" translatable="yes">Preparing the upgrade</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -189,7 +189,7 @@
<child>
<widget class="GtkLabel" id="label_step2">
<property name="visible">True</property>
- <property name="label" translatable="yes">Upgrading software channels</property>
+ <property name="label" translatable="yes">Modifing the software channels</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -217,7 +217,7 @@
<child>
<widget class="GtkLabel" id="label_step3">
<property name="visible">True</property>
- <property name="label" translatable="yes">Upgrading the system</property>
+ <property name="label" translatable="yes">Downloading and installing the upgrades</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -288,6 +288,51 @@
<property name="x_options">fill</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkImage" id="image_step5">
+ <property name="width_request">18</property>
+ <property name="height_request">18</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label_step5">
+ <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="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
@@ -439,43 +484,6 @@
<property name="fill">True</property>
</packing>
</child>
-
- <child>
- <widget class="GtkHButtonBox" id="hbuttonbox2">
- <property name="border_width">6</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="button3">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button4">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-media-pause</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
</widget>
</child>
</widget>
@@ -858,4 +866,423 @@
</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="button_bugreport">
+ <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">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label_error">
+ <property name="visible">True</property>
+ <property name="can_focus">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">True</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">
+ <property name="width_request">400</property>
+ <property name="height_request">200</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="GtkTextView" id="textview_error">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
+ <property name="justification">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap_mode">GTK_WRAP_NONE</property>
+ <property name="cursor_visible">True</property>
+ <property name="pixels_above_lines">4</property>
+ <property name="pixels_below_lines">4</property>
+ <property name="pixels_inside_wrap">0</property>
+ <property name="left_margin">4</property>
+ <property name="right_margin">4</property>
+ <property name="indent">0</property>
+ <property name="text" translatable="yes"></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>
+
+<widget class="GtkDialog" id="dialog_obsolete">
+ <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="default_width">500</property>
+ <property name="default_height">400</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="vbox8">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="hbuttonbox4">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="button7">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</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">-6</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="button8">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">_Continue</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>
+ </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="GtkVBox" id="vbox9">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox9">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkImage" id="image6">
+ <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="GtkVBox" id="vbox10">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label26">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;&lt;big&gt;Start the upgrade?&lt;/big&gt;&lt;/b&gt;</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>
+
+ <child>
+ <widget class="GtkLabel" id="label27">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">The upgrade of your system requires
+
+ ... to download 2000 MByte
+
+ ... to install 23 new packages
+ ... to remove 19 packages
+ ... to update 200 packages
+
+This is you last chance to cancel the upgrade.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</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>
+
+ <child>
+ <widget class="GtkExpander" id="expander2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="expanded">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow4">
+ <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="treeview2">
+ <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="label25">
+ <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">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </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">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 8321ce8f..6ab77103 100644
--- a/DistUpgrade/DistUpgradeControler.py
+++ b/DistUpgrade/DistUpgradeControler.py
@@ -277,7 +277,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):
@@ -296,7 +296,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
@@ -317,6 +317,7 @@ class DistUpgradeControler(object):
self.doPostUpgrade()
# done, ask for reboot
+ self._view.setStep(5)
self._view.updateStatus(_("System upgrade is complete."))
# FIXME should we look into /var/run/reboot-required here?
if self._view.confirmRestart():
diff --git a/DistUpgrade/DistUpgradeView.py b/DistUpgrade/DistUpgradeView.py
index abc5b340..4c9103ba 100644
--- a/DistUpgrade/DistUpgradeView.py
+++ b/DistUpgrade/DistUpgradeView.py
@@ -38,11 +38,12 @@ class DistUpgradeView(object):
"""
pass
def setStep(self, step):
- """ we have 4 steps current for a upgrade:
+ """ we have 5 steps current for a upgrade:
1. Analyzing the system
2. Updating repository information
3. Performing the upgrade
4. Post upgrade stuff
+ 5. Complete
"""
pass
def confirmChanges(self, summary, changes, downloadSize):
diff --git a/DistUpgrade/DistUpgradeViewGtk.py b/DistUpgrade/DistUpgradeViewGtk.py
index 20f5f99a..61fd442b 100644
--- a/DistUpgrade/DistUpgradeViewGtk.py
+++ b/DistUpgrade/DistUpgradeViewGtk.py
@@ -46,14 +46,19 @@ def utf8(str):
class GtkOpProgress(apt.progress.OpProgress):
def __init__(self, progressbar):
self.progressbar = progressbar
+ #self.progressbar.set_pulse_step(0.01)
+ #self.progressbar.pulse()
+
def update(self, percent):
- #self._progressbar.show()
- #self.progressbar.set_text(self.op)
+ #if percent > 99:
+ # self.progressbar.set_fraction(1)
+ #else:
+ # self.progressbar.pulse()
self.progressbar.set_fraction(percent/100.0)
while gtk.events_pending():
gtk.main_iteration()
+
def done(self):
- #self.progressbar.hide()
self.progressbar.set_text(" ")
@@ -84,9 +89,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)
@@ -123,7 +127,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)
@@ -131,35 +135,22 @@ class GtkInstallProgressAdapter(InstallProgress):
self.env = ["VTE_PTY_KEEP_FD=%s"% self.writefd,
"DEBIAN_FRONTEND=gnome",
"APT_LISTCHANGES_FRONTEND=none"]
+
def error(self, pkg, errormsg):
logging.error("got a error from dpkg for pkg: '%s': '%s'" % (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)
- 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(utf8(errormsg))
- textview.show()
- scroll.add(textview)
- scroll.show()
- dialog.vbox.pack_end(scroll)
- dialog.run()
- dialog.destroy()
+ #self.expander_terminal.set_expanded(True)
+ self.dialog_error.set_transient_for(self.window_main)
+ summary = _("Could not install '%s'" % pkg)
+ msg = _("The upgrade will abort. Please report the bug.")
+ markup="<big><b>%s</b></big>\n\n%s" % (summary, msg)
+ self.label_error.set_markup(markup)
+ self.textview_error.get_buffer().set_text(utf8(errormsg))
+ self.scroll_error.show()
+ self.dialog_error.run()
+ self.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)
- pass
def fork(self):
pid = self.term.forkpty(envv=self.env)
return pid
@@ -171,7 +162,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)
@@ -275,26 +265,22 @@ class GtkDistUpgradeView(DistUpgradeView,SimpleGladeApp):
#attr = pango.AttrStyle(pango.STYLE_ITALIC, 0, -1)
attrlist.insert(attr)
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()
+ buffer = self.textview_error.get_buffer()
+ buffer.set_text(extended_msg)
+ self.scroll_error.show()
+ else:
+ self.scroll_error.hide()
+ self.dialog_error.run()
+ self.dialog_error.show()
+ self.dialog_error.destroy()
return False
def confirmChanges(self, summary, changes, downloadSize):
diff --git a/SoftwareProperties/SoftwareProperties.py b/SoftwareProperties/SoftwareProperties.py
index 6b992df7..8da70eee 100644
--- a/SoftwareProperties/SoftwareProperties.py
+++ b/SoftwareProperties/SoftwareProperties.py
@@ -86,14 +86,28 @@ class SoftwareProperties(SimpleGladeApp):
self.combobox_interval_mapping = { 0 : 1,
1 : 2,
2 : 7,
- 3 : 14,
- 4 : -1}
+ 3 : 14 }
self.combobox_update_interval.set_active(0)
+
update_days = apt_pkg.Config.FindI(CONF_MAP["autoupdate"])
+
+ self.combobox_update_interval.append_text("Daily")
+ self.combobox_update_interval.append_text("Every two days")
+ self.combobox_update_interval.append_text("Weekly")
+ self.combobox_update_interval.append_text("Every two weeks")
+
+ # If a custom period is defined add an corresponding entry
+ if not update_days in self.combobox_interval_mapping.values():
+ if update_days > 0:
+ self.combobox_update_interval.append_text(_("Every %s days"
+ % update_days))
+ self.combobox_interval_mapping[4] = update_days
+
for key in self.combobox_interval_mapping:
if self.combobox_interval_mapping[key] == update_days:
self.combobox_update_interval.set_active(key)
break
+
if update_days >= 1:
self.checkbutton_auto_update.set_active(True)
self.combobox_update_interval.set_sensitive(True)
@@ -156,19 +170,24 @@ class SoftwareProperties(SimpleGladeApp):
def on_combobox_update_interval_changed(self, widget):
i = self.combobox_update_interval.get_active()
value = self.combobox_interval_mapping[i]
- apt_pkg.Config.Set(CONF_MAP["autoupdate"], str(value))
- self.write_config()
+ # Only write the key if it has changed
+ if not value == apt_pkg.Config.FindI(CONF_MAP["autoupdate"]):
+ apt_pkg.Config.Set(CONF_MAP["autoupdate"], str(value))
+ self.write_config()
def opt_autoupdate_toggled(self, widget):
if self.checkbutton_auto_update.get_active():
self.combobox_update_interval.set_sensitive(True)
+ # if no frequency was specified use daily
i = self.combobox_update_interval.get_active()
+ if i == -1:
+ i = 0
+ self.combobox_update_interval.set_active(i)
value = self.combobox_interval_mapping[i]
else:
self.combobox_update_interval.set_sensitive(False)
value = 0
apt_pkg.Config.Set(CONF_MAP["autoupdate"], str(value))
-
# FIXME: Write config options, apt_pkg should be able to do this.
self.write_config()
@@ -234,7 +253,7 @@ class SoftwareProperties(SimpleGladeApp):
self.modified = True
def add_key_clicked(self, widget):
- chooser = gtk.FileChooserDialog(title=_("Choose a key-file"),
+ chooser = gtk.FileChooserDialog(title=_("Import key"),
parent=self.window_main,
buttons=(gtk.STOCK_CANCEL,
gtk.RESPONSE_REJECT,
diff --git a/UpdateManager/GtkProgress.py b/UpdateManager/GtkProgress.py
index d25149e4..704946c7 100644
--- a/UpdateManager/GtkProgress.py
+++ b/UpdateManager/GtkProgress.py
@@ -27,21 +27,32 @@ import apt_pkg
from gettext import gettext as _
class GtkOpProgress(apt.OpProgress):
- def __init__(self, window,progressbar, parent):
+ def __init__(self, window, progressbar, status, parent):
self._parent = parent
self._window = window
+ self._status = status
self._progressbar = progressbar
+ #self._progressbar.set_pulse_step(0.01)
+ #self._progressbar.pulse()
window.set_transient_for(parent)
def update(self, percent):
#print percent
#print self.Op
#print self.SubOp
+ # Use pulse until apt doesn't restarts the progress bar
+ # several times
self._window.show()
- self._progressbar.set_text(self.op)
+ self._parent.set_sensitive(False)
+ self._status.set_markup("<i>%s</i>" % self.op)
self._progressbar.set_fraction(percent/100.0)
+ #if percent > 99:
+ # self._progressbar.set_fraction(1)
+ #else:
+ # self._progressbar.pulse()
while gtk.events_pending():
gtk.main_iteration()
def done(self):
+ self._parent.set_sensitive(True)
self._window.hide()
class GtkFetchProgress(apt.progress.FetchProgress):
@@ -59,25 +70,32 @@ class GtkFetchProgress(apt.progress.FetchProgress):
if self.summary != "":
self.summary.set_markup("<big><b>%s</b></big> \n\n%s" %
(summary, descr))
- self.window_fetch.set_title(summary)
def start(self):
- self.progress.set_fraction(0)
+ self.progress.set_fraction(0)
self.window_fetch.show()
def stop(self):
- self.window_fetch.hide()
+ self.window_fetch.hide()
def on_button_fetch_cancel_clicked(self, widget):
self._continue = False
def pulse(self):
apt.progress.FetchProgress.pulse(self)
- if self.currentCPS > 0:
- self.status.set_text(_("Download rate: %s/s - %s remaining" % (apt_pkg.SizeToStr(self.currentCPS), apt_pkg.TimeToStr(self.eta))))
- else:
- self.status.set_text(_("Download rate: unkown"))
- self.progress.set_fraction(self.percent/100.0)
currentItem = self.currentItems + 1
if currentItem > self.totalItems:
currentItem = self.totalItems
- self.progress.set_text(_("Downloading file %li of %li" % (currentItem, self.totalItems)))
- while gtk.events_pending():
- gtk.main_iteration()
+ if self.currentCPS > 0:
+ statusText = (_("Downloading file %li of %li with %s/s"
+ % (currentItem, self.totalItems,
+ apt_pkg.SizeToStr(self.currentCPS))))
+ else:
+ statusText = (_("Downloading file %li of %li with unknown "
+ "speed") % (currentItem, self.totalItems))
+ self.progress.set_fraction(self.percent/100.0)
+ self.status.set_markup("<i>%s</i>" % statusText)
+ # TRANSLATORS: show the remaining time in a progress bar:
+ #self.progress.set_text(_("About %s left" % (apt_pkg.TimeToStr(self.eta))))
+ # FIXME: show remaining time
+ self.progress.set_text("")
+
+ while gtk.events_pending():
+ gtk.main_iteration()
return self._continue
diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py
index d2c2bc54..de77f041 100644
--- a/UpdateManager/UpdateManager.py
+++ b/UpdateManager/UpdateManager.py
@@ -142,10 +142,15 @@ class MyCache(apt.Cache):
self.all_changes[name] = [alllines, srcpkg]
except urllib2.HTTPError:
if lock.locked():
- self.all_changes[name] = [_("Changes not found, the server may not be updated yet."), srcpkg]
+ self.all_changes[name] = [_("The list of changes is not "
+ "available yet. Please try again "
+ "later."), srcpkg]
except IOError:
if lock.locked():
- self.all_changes[name] = [_("Failed to download changes. Please check if there is an active internet connection."), srcpkg]
+ self.all_changes[name] = [_("Failed to download the list"
+ "of changes. Please "
+ "check your internet "
+ "connection."), srcpkg]
if lock.locked():
lock.release()
@@ -172,24 +177,19 @@ class UpdateList:
self.pkgs.sort(lambda x,y: cmp(x.name,y.name))
if cache._depcache.KeepCount > 0:
#print "WARNING, keeping packages"
- msg=("<big><b>%s</b></big>\n\n%s"%(_("It is not possible to upgrade "
- "all packages."),
- _("This means that "
- "besides the actual upgrade of the "
- "packages some further action "
- "(such as installing or removing "
- "packages) "
- "is required. Please use Synaptic "
- "\"Smart Upgrade\" or "
- "\"apt-get dist-upgrade\" to fix "
- "the situation."
- )))
+ msg = ("<big><b>%s</b></big>\n\n%s" % \
+ (_("Cannot install all available updates"),
+ _("Some updates require to install or remove further software. "
+ "Use the function \"Smart Upgrade\" of the package manager "
+ "\"Synaptic\" or run \"sudo apt-get dist-upgrade\" in a "
+ "terminal to update your system completely.")))
dialog = gtk.MessageDialog(self.parent_window, 0, gtk.MESSAGE_INFO,
- gtk.BUTTONS_OK,"")
+ gtk.BUTTONS_CLOSE,"")
dialog.set_default_response(gtk.RESPONSE_OK)
dialog.set_markup(msg)
+ dialog.set_title("")
dialog.vbox.set_spacing(6)
- label = gtk.Label(_("The following packages are not upgraded: "))
+ label = gtk.Label(_("The following updates will be skipped:"))
label.set_alignment(0.0,0.5)
dialog.set_border_width(6)
label.show()
@@ -213,12 +213,14 @@ class UpdateList:
class UpdateManager(SimpleGladeApp):
def __init__(self, datadir):
-
+
self.datadir = datadir
SimpleGladeApp.__init__(self, datadir+"glade/UpdateManager.glade",
None, domain="update-manager")
self.gnome_program = gnome.init("update-manager", "0.41")
+ self.window_main.set_sensitive(False)
+
self.packages = []
self.dl_size = 0
@@ -281,7 +283,7 @@ class UpdateManager(SimpleGladeApp):
self.gconfclient = gconf.client_get_default()
# restore state
self.restore_state()
-
+
def set_changes_buffer(self, changes_buffer, text, name, srcpkg):
changes_buffer.set_text("")
@@ -342,12 +344,11 @@ class UpdateManager(SimpleGladeApp):
self.set_changes_buffer(changes_buffer, changes[0], name, changes[1])
else:
if self.expander_details.get_expanded():
- self.treeview_update.set_sensitive(False)
self.hbox_footer.set_sensitive(False)
lock = thread.allocate_lock()
lock.acquire()
t=thread.start_new_thread(self.cache.get_changelog,(name,lock))
- changes_buffer.set_text(_("Downloading changes..."))
+ changes_buffer.set_text(_("Downloading the list of changes..."))
button = self.button_cancel_dl_changelog
button.show()
id = button.connect("clicked",
@@ -360,7 +361,6 @@ class UpdateManager(SimpleGladeApp):
# download finished (or canceld, or time-out)
button.hide()
button.disconnect(id);
- self.treeview_update.set_sensitive(True)
self.hbox_footer.set_sensitive(True)
if self.cache.all_changes.has_key(name):
@@ -391,7 +391,7 @@ class UpdateManager(SimpleGladeApp):
text_download = ""
self.expander_details.set_sensitive(False)
self.treeview_update.set_sensitive(False)
- self.label_downsize.hide()
+ self.label_downsize.set_text=""
self.button_cancel.grab_default()
else:
text_header = "<big><b>"+gettext.ngettext("You can install one update", "You can install %s updates" % len(self.store), len(self.store))+"</b></big>"
@@ -399,8 +399,8 @@ class UpdateManager(SimpleGladeApp):
text_download = _("Download size: %s" % apt_pkg.SizeToStr(self.dl_size))
self.expander_details.set_sensitive(True)
self.treeview_update.set_sensitive(True)
- self.label_downsize.show()
self.button_install.grab_default()
+
self.label_header.set_markup(text_header)
self.label_downsize.set_markup(text_download)
@@ -424,9 +424,9 @@ class UpdateManager(SimpleGladeApp):
if action == INSTALL:
cmd.append("--set-selections")
cmd.append("--progress-str")
- cmd.append("%s" % _("The updates are being applied."))
+ cmd.append("%s" % _("Please wait, this can take some time."))
cmd.append("--finish-str")
- cmd.append("%s" % _("Upgrade is complete"))
+ cmd.append("%s" % _("Update is complete"))
proc = subprocess.Popen(cmd, stdin=subprocess.PIPE)
f = proc.stdin
for s in self.packages:
@@ -465,24 +465,25 @@ class UpdateManager(SimpleGladeApp):
#print "on_button_reload_clicked"
#self.invoke_manager(UPDATE)
progress = GtkProgress.GtkFetchProgress(self,
- _("Downloading package "
- "information"),
- _("The repositories will be "
- "checked for new, removed "
- "or upgraded software "
- "packages."))
+ _("Reloading the information about "
+ "latest updates"),
+ _("It is important to check "
+ "the software sources for "
+ "available upgrades reguarly."))
# FIXME: do a try/except here otherwise it may bomb
try:
self.cache.update(progress)
except (IOError,SystemError), msg:
dialog = gtk.MessageDialog(self.window_main, 0, gtk.MESSAGE_ERROR,
- gtk.BUTTONS_OK,"")
+ gtk.BUTTONS_CLOSE,"")
+ # FIXME: wording
dialog.set_markup("<span weight=\"bold\" size=\"larger\">%s</span>"%\
- _("Error reloading"))
- dialog.format_secondary_text(_("A error occured during the package "
+ _("Could not reload the update information"))
+ dialog.format_secondary_text(_("An error occured during the package "
"list reload. Please see the below "
"information for details what went "
"wrong."))
+ diaolg.set_title("")
dialog.set_border_width(6)
dialog.set_size_request(width=500,height=-1)
scroll = gtk.ScrolledWindow()
@@ -533,7 +534,7 @@ class UpdateManager(SimpleGladeApp):
"at the same time. Please close "
"this other application first.")));
dialog = gtk.MessageDialog(self.window_main, 0, gtk.MESSAGE_ERROR,
- gtk.BUTTONS_OK,"")
+ gtk.BUTTONS_CLOSE,"")
dialog.set_markup(msg)
dialog.run()
dialog.destroy()
@@ -546,8 +547,9 @@ class UpdateManager(SimpleGladeApp):
self.window_main.set_sensitive(False)
# create a progress window that will swallow the synaptic progress bars
win = gtk.Window()
+ win.set_property("type-hint", gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
win.set_title("")
- win.set_border_width(12)
+ win.set_border_width(6)
win.set_transient_for(self.window_main)
win.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
win.set_property("skip-taskbar-hint", True)
@@ -645,7 +647,7 @@ class UpdateManager(SimpleGladeApp):
secondary = _("You need to reload the package list from the servers "
"for your changes to take effect. Do you want to do "
"this now?")
- dialog = gtk.MessageDialog(self.window_main,gtk.DIALOG_MODAL,
+ dialog = gtk.MessageDialog(self.window_main, 0,
gtk.MESSAGE_INFO,gtk.BUTTONS_YES_NO,"")
dialog.set_markup(primary);
dialog.format_secondary_text(secondary);
@@ -690,10 +692,10 @@ class UpdateManager(SimpleGladeApp):
name = xml.sax.saxutils.escape(pkg.name)
summary = xml.sax.saxutils.escape(pkg.summary)
contents = "<big><b>%s</b></big>\n<small>%s\n\n" % (name, summary)
- contents = contents + _("New version: %s (Size: %s)") % (pkg.candidateVersion,apt.SizeToStr(pkg.packageSize)) + "</small>"
+ contents = contents + _("New version: %s (Size: %s)") % (pkg.candidateVersion,apt.SizeToStr(pkg.packageSize)) + "</small>"
iter = self.store.append([True, contents, pkg.name, pkg.summary, pkg.candidateVersion, pkg.description, pkg])
- self.add_update(pkg)
+ self.add_update(pkg)
i = i + 1
@@ -701,9 +703,16 @@ class UpdateManager(SimpleGladeApp):
return False
def dist_no_longer_supported(self, meta_release):
- msg = "<big><b>%s</b></big>\n\n%s" % (_("Your distribution is no longer supported"), _("Please upgrade to a newer version of Ubuntu Linux. The version you are running will no longer get security fixes or other critical updates. Please see http://www.ubuntulinux.org for upgrade information."))
+ msg = "<big><b>%s</b></big>\n\n%s" % \
+ (_("Your distribution is not supported anymore"),
+ _("You will not get any further security fixes or critical "
+ "updates. "
+ "Upgrade to a later version of Ubuntu Linux. See "
+ "http://www.ubuntu.com for more information on "
+ "upgrading."))
dialog = gtk.MessageDialog(self.window_main, 0, gtk.MESSAGE_WARNING,
- gtk.BUTTONS_OK,"")
+ gtk.BUTTONS_CLOSE,"")
+ dialog.set_title("")
dialog.set_markup(msg)
dialog.run()
dialog.destroy()
@@ -733,11 +742,25 @@ class UpdateManager(SimpleGladeApp):
res = self.dialog_release_notes.run()
self.dialog_release_notes.hide()
except urllib2.HTTPError:
- # FIXME: make proper error dialogs here
- print _("Release notes not found on the server.")
+ primary = "<span weight=\"bold\" size=\"larger\">%s</span>" % \
+ _("Could not find the release notes")
+ secondary = _("The server may be overloaded. ")
+ dialog = gtk.MessageDialog(self.window_main,gtk.DIALOG_MODAL,
+ gtk.MESSAGE_ERROR,gtk.BUTTONS_CLOSE,"")
+ dialog.set_title("")
+ dialog.set_markup(primary);
+ dialog.format_secondary_text(secondary);
+ dialog.run()
except IOError:
- print _("Failed to download Release Notes. Please "
- "check if there is an active internet connection.")
+ primary = "<span weight=\"bold\" size=\"larger\">%s</span>" % \
+ _("Could not download the release notes")
+ secondary = _("Please check your internet connection.")
+ dialog = gtk.MessageDialog(self.window_main,gtk.DIALOG_MODAL,
+ gtk.MESSAGE_ERROR,gtk.BUTTONS_CLOSE,"")
+ dialog.set_title("")
+ dialog.set_markup(primary);
+ dialog.format_secondary_text(secondary);
+ dialog.run()
self.window_main.set_sensitive(True)
self.window_main.window.set_cursor(None)
# user clicked cancel
@@ -749,10 +772,11 @@ class UpdateManager(SimpleGladeApp):
os.chdir(tmpdir)
if self.new_dist.upgradeTool != None:
progress = GtkProgress.GtkFetchProgress(self,
- _("Downloading upgrade "
- "informtion"),
- _("The upgrade information "
- "are downloaded"))
+ _("Downloading the upgrade "
+ "tool"),
+ _("The upgrade tool will "
+ "guide you through the "
+ "upgrade process."))
fetcher = apt_pkg.GetAcquire(progress)
uri = self.new_dist.upgradeTool
#print "Downloading %s to %s" % (uri, tmpdir)
@@ -774,8 +798,17 @@ class UpdateManager(SimpleGladeApp):
# see if we have a script file that we can run
script = "%s/%s" % (tmpdir, self.new_dist.name)
if not os.path.exists(script):
- # FIXME: display a proper error message here
- print "no script file found in extracted tarbal"
+ # no script file found in extracted tarbal
+ primary = "<span weight=\"bold\" size=\"larger\">%s</span>" % \
+ _("Could not run the upgrade tool")
+ secondary = _("This is most likely a bug in the upgrade tool. "
+ "Please report it as a bug")
+ dialog = gtk.MessageDialog(self.window_main,gtk.DIALOG_MODAL,
+ gtk.MESSAGE_ERROR,gtk.BUTTONS_CLOSE,"")
+ dialog.set_title("")
+ dialog.set_markup(primary);
+ dialog.format_secondary_text(secondary);
+ dialog.run()
else:
#print "runing: %s" % script
os.execv(script,[])
@@ -824,13 +857,14 @@ class UpdateManager(SimpleGladeApp):
d = gtk.MessageDialog(parent=self.window_main,
flags=gtk.DIALOG_MODAL,
type=gtk.MESSAGE_ERROR,
- buttons=gtk.BUTTONS_OK)
+ buttons=gtk.BUTTONS_CLOSE)
d.set_markup("<big><b>%s</b></big>\n\n%s" % (
- _("Unable to get exclusive lock"),
- _("This usually means that another package management "
- "application (like apt-get or aptitude) already running. "
- "Please close that application first")))
+ _("Only one software management tool is allowed to "
+ "run at the same time"),
+ _("Please close the other application e.g. \"aptitude\" "
+ "or \"Synaptic\" at first.")))
print "error from apt: '%s'" % e
+ d.set_title("")
res = d.run()
d.destroy()
sys.exit()
@@ -838,20 +872,19 @@ class UpdateManager(SimpleGladeApp):
try:
self.cache = MyCache(GtkProgress.GtkOpProgress(self.dialog_cacheprogress,
self.progressbar_cache,
+ self.label_cache,
self.window_main))
except AssertionError:
# we assert a clean cache
msg=("<big><b>%s</b></big>\n\n%s"% \
- (_("Your system has broken packages!"),
- _("This means that some dependencies "
- "of the installed packages are not "
- "satisfied. Please use \"Synaptic\" "
- "or \"apt-get\" to fix the "
- "situation."
- )))
+ (_("Software index is broken"),
+ _("It is impossible to install or remove any software. "
+ "Please use the package manager \"Synaptic\" or run "
+ "\"sudo apt-get install -f\" in a terminal to fix "
+ "this issue at first.")))
dialog = gtk.MessageDialog(self.window_main,
0, gtk.MESSAGE_ERROR,
- gtk.BUTTONS_OK,"")
+ gtk.BUTTONS_CLOSE,"")
dialog.set_markup(msg)
dialog.vbox.set_spacing(6)
dialog.run()
@@ -863,16 +896,27 @@ class UpdateManager(SimpleGladeApp):
self.cache._depcache.ReadPinFile(SYNAPTIC_PINFILE)
self.cache._depcache.Init()
+
+ def check_auto_update(self):
+ # Check if automatic update is enabled. If not show a dialog to inform
+ # the user about the need of manual "reloads"
+ update_days = apt_pkg.Config.FindI("APT::Periodic::Update-Package-Lists")
+ if update_days < 1:
+ self.dialog_manual_update.set_transient_for(self.window_main)
+ res = self.dialog_manual_update.run()
+ self.dialog_manual_update.hide()
+ if res == gtk.RESPONSE_YES:
+ self.on_button_reload_clicked(None)
+
+
def main(self):
self.meta = MetaRelease()
self.meta.connect("new_dist_available",self.new_dist_available)
self.meta.connect("dist_no_longer_supported",self.dist_no_longer_supported)
- self.store.append([True, _("Initializing and getting list of updates..."),
- None, None, None, None, None])
-
while gtk.events_pending():
gtk.main_iteration()
self.fillstore()
+ self.check_auto_update()
gtk.main()
diff --git a/data/SoftwareProperties.glade b/data/SoftwareProperties.glade
index 6bf1aa0f..0a39a13f 100644
--- a/data/SoftwareProperties.glade
+++ b/data/SoftwareProperties.glade
@@ -14,6 +14,7 @@
<property name="modal">False</property>
<property name="resizable">True</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>
@@ -298,7 +299,7 @@
<widget class="GtkCheckButton" id="checkbutton_auto_update">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">Automatically check for updates</property>
+ <property name="label" translatable="yes">Automatically check for updates:</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -317,11 +318,7 @@
<child>
<widget class="GtkComboBox" id="combobox_update_interval">
<property name="visible">True</property>
- <property name="items" translatable="yes">daily
-every two days
-weekly
-every two weeks
-custom</property>
+ <property name="items" translatable="yes"></property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
<signal name="changed" handler="on_combobox_update_interval_changed" last_modification_time="Wed, 18 Jan 2006 09:43:34 GMT"/>
diff --git a/data/UpdateManager.glade b/data/UpdateManager.glade
index c9b50999..2258e394 100644
--- a/data/UpdateManager.glade
+++ b/data/UpdateManager.glade
@@ -16,7 +16,7 @@
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</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">False</property>
@@ -66,7 +66,7 @@
<child>
<widget class="GtkLabel" id="label_header">
<property name="visible">True</property>
- <property name="label" translatable="yes" context="yes">&lt;big&gt;&lt;b&gt;Install software updates&lt;/b&gt;&lt;/big&gt;</property>
+ <property name="label" translatable="yes" context="yes">&lt;big&gt;&lt;b&gt;Keep your system up-to-date&lt;/b&gt;&lt;/big&gt;</property>
<property name="use_underline">True</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -142,7 +142,7 @@
<property name="yscale">1</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
+ <property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
@@ -180,6 +180,7 @@
<child>
<widget class="GtkButton" id="button_dist_upgrade">
<property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Upgrade to the latest version of Ubuntu</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">U_pgrade</property>
<property name="use_underline">True</property>
@@ -209,7 +210,7 @@
<widget class="GtkVBox" id="vbox12">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">4</property>
+ <property name="spacing">6</property>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow2">
@@ -246,18 +247,19 @@
<widget class="GtkHBox" id="hbox15">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">12</property>
<child>
<widget class="GtkLabel" id="label_downsize">
+ <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.5</property>
- <property name="yalign">0.5</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>
@@ -267,16 +269,96 @@
</widget>
<packing>
<property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="button_install">
+ <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="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked" handler="on_button_install_clicked" last_modification_time="Fri, 18 Feb 2005 22:38:03 GMT"/>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment4">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox11">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image9">
+ <property name="visible">True</property>
+ <property name="stock">gtk-apply</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</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">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label16">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Install Updates</property>
+ <property name="use_underline">True</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="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -406,7 +488,7 @@
<child>
<widget class="GtkLabel" id="label13">
<property name="visible">True</property>
- <property name="label" translatable="yes">Cancel downloading of the changelog</property>
+ <property name="label" translatable="yes">Cancel _Download</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -617,6 +699,7 @@
<child>
<widget class="GtkButton" id="button1">
<property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Reload the latest information about updates</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
@@ -694,7 +777,7 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
- <property name="label">gtk-cancel</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>
@@ -702,82 +785,6 @@
<accelerator key="Q" modifiers="GDK_CONTROL_MASK" signal="clicked"/>
</widget>
</child>
-
- <child>
- <widget class="GtkButton" id="button_install">
- <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="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <signal name="clicked" handler="on_button_install_clicked" last_modification_time="Fri, 18 Feb 2005 22:38:03 GMT"/>
-
- <child>
- <widget class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox11">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image9">
- <property name="visible">True</property>
- <property name="stock">gtk-apply</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</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">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label16">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Install</property>
- <property name="use_underline">True</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="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
</widget>
<packing>
<property name="padding">0</property>
@@ -1043,14 +1050,14 @@ Need to get the changes from the central server</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">True</property>
- <property name="resizable">True</property>
+ <property name="modal">False</property>
+ <property name="resizable">False</property>
<property name="destroy_with_parent">False</property>
<property name="icon">synaptic.xpm</property>
<property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</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">False</property>
@@ -1069,37 +1076,37 @@ Need to get the changes from the central server</property>
<property name="spacing">12</property>
<child>
+ <widget class="GtkLabel" id="label_fetch_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>
+
+ <child>
<widget class="GtkVBox" id="vbox8">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label_fetch_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>
-
- <child>
<widget class="GtkProgressBar" id="progressbar_fetch">
<property name="visible">True</property>
<property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
@@ -1257,7 +1264,7 @@ Need to get the changes from the central server</property>
</child>
</widget>
-<widget class="GtkDialog" id="dialog_cacheprogress">
+<widget class="GtkDialog" id="dialog_manual_update">
<property name="border_width">6</property>
<property name="title" translatable="yes"></property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
@@ -1266,8 +1273,8 @@ Need to get the changes from the central server</property>
<property name="resizable">False</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</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>
@@ -1275,15 +1282,103 @@ Need to get the changes from the central server</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
- <widget class="GtkVBox" id="vbox13">
+ <widget class="GtkVBox" id="dialog-vbox4">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child internal-child="action_area">
- <widget class="GtkHButtonBox" id="hbuttonbox8">
+ <widget class="GtkHButtonBox" id="dialog-action_area4">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
+
+ <child>
+ <widget class="GtkButton" id="cancelbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="response_id">-8</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox17">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image13">
+ <property name="visible">True</property>
+ <property name="stock">gtk-refresh</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</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">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label28">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Reload</property>
+ <property name="use_underline">True</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="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="okbutton2">
+ <property name="visible">True</property>
+ <property name="can_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>
@@ -1294,48 +1389,43 @@ Need to get the changes from the central server</property>
</child>
<child>
- <widget class="GtkVBox" id="vbox14">
+ <widget class="GtkHBox" id="hbox16">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="spacing">11</property>
<child>
- <widget class="GtkLabel" id="label22">
+ <widget class="GtkImage" id="image12">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;Reading package information&lt;/b&gt;&lt;/big&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
+ <property name="stock">gtk-dialog-info</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="GtkLabel" id="label23">
+ <widget class="GtkLabel" id="label27">
<property name="visible">True</property>
- <property name="label" translatable="yes">Reading information about the installed packages. Depending on the speed of your computer this may take a bit.</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;&lt;big&gt;You need to manually reload the latest information about updates&lt;/big&gt;&lt;/b&gt;
+
+Your system does not check for updates automatically. You can configure this behavior in &quot;System&quot; -&gt; &quot;Administration&quot; -&gt; &quot;Software Properties&quot;.</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">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
+ <property name="selectable">True</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>
@@ -1349,6 +1439,72 @@ Need to get the changes from the central server</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>
+
+<widget class="GtkWindow" id="dialog_cacheprogress">
+ <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_NONE</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">False</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox14">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label22">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;Checking for available updates&lt;/b&gt;&lt;/big&gt;
+
+Software updates can fix possible security holes, fix possible errors, so called &quot;bugs&quot;, or provide new features to you.</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="GtkVBox" id="vbox16">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
<widget class="GtkProgressBar" id="progressbar_cache">
@@ -1366,13 +1522,34 @@ Need to get the changes from the central server</property>
</child>
<child>
- <placeholder/>
+ <widget class="GtkLabel" id="label_cache">
+ <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">False</property>
+ </packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
</widget>
diff --git a/debian/changelog b/debian/changelog
index 91a63585..70e94e66 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,7 +4,7 @@ update-manager (0.42.2ubuntu1) dapper; urgency=low
- never offer a upgrade to a unsupported (i.e. developer) dist
* data/gnome-software-properties.desktop.in: use X-KDE-SubstituteUID=true
- --
+ -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 27 Jan 2006 22:57:43 +0100
update-manager (0.42.1ubuntu1) dapper; urgency=low