summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DistUpgrade/DistUpgrade.glade2
-rw-r--r--UpdateManager/GtkProgress.py22
-rw-r--r--UpdateManager/UpdateManager.py25
-rw-r--r--data/UpdateManager.glade322
4 files changed, 268 insertions, 103 deletions
diff --git a/DistUpgrade/DistUpgrade.glade b/DistUpgrade/DistUpgrade.glade
index 58aa10ad..affc7019 100644
--- a/DistUpgrade/DistUpgrade.glade
+++ b/DistUpgrade/DistUpgrade.glade
@@ -8,7 +8,7 @@
<property name="visible">True</property>
<property name="title" translatable="yes">Upgrading Ubuntu</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property>
+ <property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="modal">False</property>
<property name="resizable">False</property>
<property name="destroy_with_parent">False</property>
diff --git a/UpdateManager/GtkProgress.py b/UpdateManager/GtkProgress.py
index d25149e4..025858e3 100644
--- a/UpdateManager/GtkProgress.py
+++ b/UpdateManager/GtkProgress.py
@@ -27,7 +27,7 @@ import apt_pkg
from gettext import gettext as _
class GtkOpProgress(apt.OpProgress):
- def __init__(self, window,progressbar, parent):
+ def __init__(self, window, progressbar, parent):
self._parent = parent
self._window = window
self._progressbar = progressbar
@@ -37,11 +37,13 @@ class GtkOpProgress(apt.OpProgress):
#print self.Op
#print self.SubOp
self._window.show()
+ self._parent.set_sensitive(False)
self._progressbar.set_text(self.op)
self._progressbar.set_fraction(percent/100.0)
while gtk.events_pending():
gtk.main_iteration()
def done(self):
+ self._parent.set_sensitive(True)
self._window.hide()
class GtkFetchProgress(apt.progress.FetchProgress):
@@ -59,7 +61,6 @@ 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.window_fetch.show()
@@ -69,15 +70,20 @@ class GtkFetchProgress(apt.progress.FetchProgress):
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)))
+ if self.currentCPS > 0:
+ self.status.set_text(_("Downloading file %li of %li with %s/s"
+ % (currentItem, self.totalItems,
+ apt_pkg.SizeToStr(self.currentCPS))))
+ else:
+ self.status.set_text(_("Downloading file %li of %li with unknown "
+ "speed") % (currentItem, self.totalItems))
+ self.progress.set_fraction(self.percent/100.0)
+# self.progress.set_text(_("Time remaining %s" % (apt_pkg.TimeToStr(self.eta))))
+ self.progress.set_text(_("Time remaining"))
+
while gtk.events_pending():
gtk.main_iteration()
return self._continue
diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py
index d2c2bc54..89f4989e 100644
--- a/UpdateManager/UpdateManager.py
+++ b/UpdateManager/UpdateManager.py
@@ -213,12 +213,13 @@ 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.packages = []
self.dl_size = 0
@@ -281,7 +282,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,7 +343,6 @@ 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()
@@ -360,7 +360,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 +390,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 +398,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)
@@ -863,6 +862,19 @@ 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)
@@ -875,4 +887,5 @@ class UpdateManager(SimpleGladeApp):
gtk.main_iteration()
self.fillstore()
+ self.check_auto_update()
gtk.main()
diff --git a/data/UpdateManager.glade b/data/UpdateManager.glade
index c9b50999..78e5cb79 100644
--- a/data/UpdateManager.glade
+++ b/data/UpdateManager.glade
@@ -33,7 +33,7 @@
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">6</property>
<child>
<widget class="GtkHBox" id="hbox3">
@@ -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>
@@ -153,6 +153,23 @@
<property name="spacing">6</property>
<child>
+ <widget class="GtkImage" id="image11">
+ <property name="visible">True</property>
+ <property name="stock">gtk-dialog-info</property>
+ <property name="icon_size">3</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="label_new_release">
<property name="visible">True</property>
<property name="label"></property>
@@ -209,7 +226,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,17 +263,18 @@
<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="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -267,16 +285,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>
@@ -617,6 +715,7 @@
<child>
<widget class="GtkButton" id="button1">
<property name="visible">True</property>
+ <property name="tooltip" translatable="yes">Search for updates in the software channels</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
@@ -661,7 +760,7 @@
<child>
<widget class="GtkLabel" id="label24">
<property name="visible">True</property>
- <property name="label" translatable="yes">_Reload</property>
+ <property name="label" translatable="yes">_Query</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -694,7 +793,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 +801,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>
@@ -1303,7 +1326,7 @@ Need to get the changes from the central server</property>
<child>
<widget class="GtkLabel" id="label22">
<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="label" translatable="yes">&lt;big&gt;&lt;b&gt;Loading software 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>
@@ -1327,8 +1350,7 @@ Need to get the changes from the central server</property>
<child>
<widget class="GtkLabel" id="label23">
- <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="label" translatable="yes"></property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -1379,4 +1401,128 @@ Need to get the changes from the central server</property>
</child>
</widget>
+<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>
+ <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">False</property>
+ <property name="has_separator">False</property>
+
+ <child internal-child="vbox">
+ <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="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="label" translatable="yes">_Reload</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="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>
+ <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="hbox16">
+ <property name="border_width">6</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">11</property>
+
+ <child>
+ <widget class="GtkImage" id="image12">
+ <property name="visible">True</property>
+ <property name="stock">gtk-dialog-info</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="label27">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;&lt;big&gt;You need to manually query for updates&lt;/big&gt;&lt;/b&gt;
+
+Your system does not search 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">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</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>