summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Heinlein <sebastian.heinlein@web.de>2006-02-01 05:27:46 +0100
committerSebastian Heinlein <sebastian.heinlein@web.de>2006-02-01 05:27:46 +0100
commitc6d126a887c61610227717eae43c24f732580500 (patch)
treee827efe6bff8cb39a3179f1dd6b7f66b5c1b96e3
parent01d13b8c0c6e6c59cbf1b39c4d1c3f8b800e0094 (diff)
downloadpython-apt-c6d126a887c61610227717eae43c24f732580500.tar.gz
* Move Internet updates to its own tab
* Add option for autoclean (not working 100% :) * Add option for auto download (working) * Add option for unattended install (placeholder)
-rw-r--r--SoftwareProperties/SoftwareProperties.py73
-rw-r--r--data/SoftwareProperties.glade327
2 files changed, 291 insertions, 109 deletions
diff --git a/SoftwareProperties/SoftwareProperties.py b/SoftwareProperties/SoftwareProperties.py
index 8da70eee..21f42cf6 100644
--- a/SoftwareProperties/SoftwareProperties.py
+++ b/SoftwareProperties/SoftwareProperties.py
@@ -115,6 +115,43 @@ class SoftwareProperties(SimpleGladeApp):
self.checkbutton_auto_update.set_active(False)
self.combobox_update_interval.set_sensitive(False)
+ # Automatic removal of cached packages by age
+ self.combobox_delete_interval_mapping = { 0 : 7,
+ 1 : 14,
+ 2 : 31 }
+
+ delete_days = apt_pkg.Config.FindI(CONF_MAP["max_age"])
+
+ self.combobox_delete_interval.append_text("After one week")
+ self.combobox_delete_interval.append_text("After two weeks")
+ self.combobox_delete_interval.append_text("After one month")
+ self.combobox_delete_interval.append_text("Immediatly")
+
+ # If a custom period is defined add an corresponding entry
+ if not delete_days in self.combobox_delete_interval_mapping.values():
+ if delete_days > 0 and CONF_MAP["autoclean"] != 0:
+ self.combobox_delete_interval.append_text(_("After %s days"
+ % delete_days))
+ self.combobox_delete_interval_mapping[3] = delete_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 delete_days >= 1 and CONF_MAP["autoclean"] != 0:
+ self.checkbutton_auto_delete.set_active(True)
+ self.combobox_delete_interval.set_sensitive(True)
+ else:
+ self.checkbutton_auto_delete.set_active(False)
+ self.combobox_delete_interval.set_sensitive(False)
+
+ # Autodownload
+ if CONF_MAP["autodownload"] == 1:
+ self.checkbutton_auto_download.set_active(True)
+ else:
+ self.checkbutton_auto_download.set_active(False)
+
# apt-key stuff
self.apt_key = apt_key()
self.init_keyslist()
@@ -175,7 +212,7 @@ class SoftwareProperties(SimpleGladeApp):
apt_pkg.Config.Set(CONF_MAP["autoupdate"], str(value))
self.write_config()
- def opt_autoupdate_toggled(self, widget):
+ def on_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
@@ -190,6 +227,40 @@ class SoftwareProperties(SimpleGladeApp):
apt_pkg.Config.Set(CONF_MAP["autoupdate"], str(value))
# FIXME: Write config options, apt_pkg should be able to do this.
self.write_config()
+
+ def on_opt_autodownload_toggled(self, widget):
+ if self.checkbutton_auto_download.get_active():
+ apt_pkg.Config.Set(CONF_MAP["autodownload"], str(1))
+ else:
+ apt_pkg.Config.Set(CONF_MAP["autodownload"], str(0))
+ # FIXME: Write config options, apt_pkg should be able to do this.
+ self.write_config()
+
+ def on_combobox_delete_interval_changed(self, widget):
+ i = self.combobox_delete_interval.get_active()
+ value = self.combobox_delete_interval_mapping[i]
+ # Only write the key if it has changed
+ if not value == apt_pkg.Config.FindI(CONF_MAP["max_age"]):
+ apt_pkg.Config.Set(CONF_MAP["max_age"], str(value))
+ self.write_config()
+
+ def opt_autodelete_toggled(self, widget):
+ if self.checkbutton_auto_delete.get_active():
+ self.combobox_delete_interval.set_sensitive(True)
+ # if no frequency was specified use daily
+ i = self.combobox_delete_interval.get_active()
+ if i == -1:
+ i = 0
+ self.combobox_delete_interval.set_active(i)
+ value_maxage = self.combobox_delete_interval_mapping[i]
+ value_clean = 1
+ apt_pkg.Config.Set(CONF_MAP["max_age"], str(value_clean))
+ else:
+ self.combobox_delete_interval.set_sensitive(False)
+ value_clean = 0
+ apt_pkg.Config.Set(CONF_MAP["autoclean"], str(value_clean))
+ # FIXME: Write config options, apt_pkg should be able to do this.
+ self.write_config()
def write_config(self):
#print "write_config()"
diff --git a/data/SoftwareProperties.glade b/data/SoftwareProperties.glade
index 0a39a13f..9df03955 100644
--- a/data/SoftwareProperties.glade
+++ b/data/SoftwareProperties.glade
@@ -42,6 +42,224 @@
<property name="enable_popup">False</property>
<child>
+ <widget class="GtkFrame" id="frame2">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.5</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">6</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_auto_update">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Check for updates automatically:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="opt_autoupdate_toggled" last_modification_time="Mon, 04 Jul 2005 23:22:04 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combobox_update_interval">
+ <property name="visible">True</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"/>
+ </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">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_auto_download">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Download updates in the backgound, but do not install them</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_opt_autodownload_toggled" last_modification_time="Wed, 01 Feb 2006 04:12:21 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_unattended">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Install new updates without confirmation</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_opt_unattended_toggled" last_modification_time="Wed, 01 Feb 2006 04:11:56 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox5">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_auto_delete">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">D_elete downloaded software files:</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_opt_autodelete_toggled" last_modification_time="Wed, 01 Feb 2006 04:23:43 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combobox_delete_interval">
+ <property name="visible">True</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_delete_interval_changed" last_modification_time="Wed, 01 Feb 2006 04:11:18 GMT"/>
+ </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">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Internet updates&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">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="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Internet Updates</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">tab</property>
+ </packing>
+ </child>
+
+ <child>
<widget class="GtkVBox" id="vbox2">
<property name="border_width">12</property>
<property name="visible">True</property>
@@ -237,7 +455,7 @@
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Sources&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;Channels&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -263,113 +481,6 @@
<property name="fill">True</property>
</packing>
</child>
-
- <child>
- <widget class="GtkFrame" id="frame2">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">6</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox3">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <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="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="opt_autoupdate_toggled" last_modification_time="Mon, 04 Jul 2005 23:22:04 GMT"/>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkComboBox" id="combobox_update_interval">
- <property name="visible">True</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"/>
- </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">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Internet updates&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">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">True</property>
- </packing>
- </child>
</widget>
<packing>
<property name="tab_expand">False</property>