[kernel] r5697 -
people/waldi/linux-2.6/debian/lib/python/debian_linux/kconfigeditor
Bastian Blank
waldi at costa.debian.org
Fri Feb 3 00:26:14 UTC 2006
Author: waldi
Date: Fri Feb 3 00:26:13 2006
New Revision: 5697
Modified:
people/waldi/linux-2.6/debian/lib/python/debian_linux/kconfigeditor/editor.py
Log:
debian/lib/python/debian_linux/kconfigeditor/editor.py: Update.
Modified: people/waldi/linux-2.6/debian/lib/python/debian_linux/kconfigeditor/editor.py
==============================================================================
--- people/waldi/linux-2.6/debian/lib/python/debian_linux/kconfigeditor/editor.py (original)
+++ people/waldi/linux-2.6/debian/lib/python/debian_linux/kconfigeditor/editor.py Fri Feb 3 00:26:13 2006
@@ -6,7 +6,20 @@
_marker = object()
+class items_fake(dict):
+ def delete_match(self, key, match):
+ pass
+
+ def get(self, key, default = _marker):
+ pass
+
class items_real(kconfigfile):
+ def delete_match(self, key, value):
+ try:
+ if self[key] == value:
+ del self[key]
+ except KeyError: pass
+
def get_summary(self, key, default = _marker):
value = super(items_real, self).get(key, _marker)
if value is _marker:
@@ -21,6 +34,9 @@
def __init__(self, real):
self.real = real
+ def delete_match(self, key, value):
+ self.real.delete_match(key, value)
+
def get(self, key, default = _marker):
value = self.real.get(key, _marker)
if value is _marker:
@@ -123,12 +139,15 @@
def add_file(self, file, arch = None, subarch = None, flavour = None):
import os, stat
- inode = os.stat(file)[stat.ST_INO]
- if inode in self.file_inodes:
- f = items_ghost(self.file_inodes[inode])
+ if file is None:
+ f = items_fake()
else:
- f = items_real(file)
- self.file_inodes[inode] = f
+ inode = os.stat(file)[stat.ST_INO]
+ if inode in self.file_inodes:
+ f = items_ghost(self.file_inodes[inode])
+ else:
+ f = items_real(file)
+ self.file_inodes[inode] = f
self.items[(arch, subarch, flavour)] = f
def cell_data(self, column, cell, model, iter, data):
@@ -262,6 +281,26 @@
self.editor.items[key][self.key] = 'n'
elif command == "Remove":
del self.editor.items[key][self.key]
+ elif command == "Remove more specific":
+ value = self.editor.items[key][self.key]
+ if key[0] is None:
+ for arch, variant_arch in self.editor.variants.iteritems():
+ self.editor.items[(arch, None, None)].delete_match(self.key, value)
+ for subarch, variant_subarch in variant_arch.iteritems():
+ self.editor.items[(arch, subarch, None)].delete_match(self.key, value)
+ for flavour in variant_subarch.iterkeys():
+ self.editor.items[(arch, subarch, flavour)].delete_match(self.key, value)
+ elif key[1] is None:
+ variant_arch = self.editor.variants[key[0]]
+ for subarch, variant_subarch in variant_arch.iteritems():
+ self.editor.items[(arch, subarch, None)].delete_match(self.key, value)
+ for flavour in variant_subarch.iterkeys():
+ self.editor.items[(arch, subarch, flavour)].delete_match(self.key, value)
+ elif key[2] is None:
+ variant_subarch = self.editor.variants[key[0]][key[1]]
+ for flavour in variant_subarch.iterkeys():
+ self.editor.items[(arch, subarch, flavour)].delete_match(self.key, value)
+
elif command == "Edit":
pass
else:
@@ -286,7 +325,7 @@
def get_edit_menu(self, key):
menu = gtk.Menu()
- for i in ("Set to Yes", "Set to Mod", "Set to No", "Remove", "Edit"):
+ for i in ("Set to Yes", "Set to Mod", "Set to No", "Remove", "Remove more specific", "Edit"):
item = gtk.MenuItem(i)
item.connect("activate", self.edit_menu_activate, key, i)
item.show()
More information about the Kernel-svn-changes
mailing list