diff options
| -rw-r--r-- | DistUpgrade/DistUpgrade.glade | 2 | ||||
| -rw-r--r-- | UpdateManager/GtkProgress.py | 22 | ||||
| -rw-r--r-- | UpdateManager/UpdateManager.py | 25 | ||||
| -rw-r--r-- | data/UpdateManager.glade | 322 |
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"><big><b>Reading package information</b></big></property> + <property name="label" translatable="yes"><big><b>Loading software information</b></big></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"><b><big>You need to manually query for updates</big></b> + +Your system does not search for updates automatically. You can configure this behavior in "System" -> "Administration" -> "Software Properties".</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> |
