[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