diff options
| author | Sebastian Heinlein <sebastian.heinlein@web.de> | 2006-02-01 05:27:46 +0100 |
|---|---|---|
| committer | Sebastian Heinlein <sebastian.heinlein@web.de> | 2006-02-01 05:27:46 +0100 |
| commit | c6d126a887c61610227717eae43c24f732580500 (patch) | |
| tree | e827efe6bff8cb39a3179f1dd6b7f66b5c1b96e3 | |
| parent | 01d13b8c0c6e6c59cbf1b39c4d1c3f8b800e0094 (diff) | |
| download | python-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.py | 73 | ||||
| -rw-r--r-- | data/SoftwareProperties.glade | 327 |
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"><b>Internet updates</b></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"><b>Sources</b></property> + <property name="label" translatable="yes"><b>Channels</b></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"><b>Internet updates</b></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> |
