summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Festi <ffesti@redhat.com>2010-08-28 11:01:42 +0200
committerFlorian Festi <ffesti@redhat.com>2010-08-28 11:01:42 +0200
commit08c5f16dff1c59c9795882b04f07bb5b137aad6f (patch)
tree26c4456066d3a1cf1ec00674268355ba9f8d7cb8
parent42604e86a460a406371f91584022c95e120d029b (diff)
downloadpkggui-08c5f16dff1c59c9795882b04f07bb5b137aad6f.tar.gz
pkggui-08c5f16dff1c59c9795882b04f07bb5b137aad6f.tar.xz
pkggui-08c5f16dff1c59c9795882b04f07bb5b137aad6f.zip
Always show selected group (filtered by selected others)
Limit results to 1000 - still need paging to really fix this
-rwxr-xr-xgui.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/gui.py b/gui.py
index fb69f83..6a5ed86 100755
--- a/gui.py
+++ b/gui.py
@@ -35,7 +35,6 @@ class PackagesUI:
}
self.activeSearchItems = []
- self.result = set()
self.treeItems = {}
self.mainwindow = m = uic.loadUi("packages.ui")
@@ -64,6 +63,7 @@ class PackagesUI:
self.packageProperties = m.findChild(QtGui.QTextBrowser, "packageProperties")
self.allPkgs = set(self.yum.pkgSack.returnPackages())
+ self.result = self.allPkgs.copy()
self.allPackagesByName = dict(((p.name, p) for p in self.allPkgs))
# tags
@@ -107,6 +107,13 @@ class PackagesUI:
def fillResults(self, pkgs):
self.resultList.clear()
+ # XXX cheat for now
+ # use pages instead
+ if len(pkgs) > 1000:
+ l = [(p.name, p) for p in pkgs]
+ l.sort()
+ l = l[:1000]
+ pkgs = set((p for n, p in l))
for pkg in pkgs:
item = QtGui.QListWidgetItem("%s\n\t%s" % (pkg.summary, pkg.name),
self.resultList, 0)
@@ -162,23 +169,20 @@ class PackagesUI:
self.refreshSearchResults()
def refreshSearchResults(self):
- if self.activeSearchItems:
- result = self.activeSearchItems[0].result.copy()
- for s in self.activeSearchItems:
- result &= s.result
- else:
- result = set()
+ result = self.allPkgs.copy()
+ for s in self.activeSearchItems:
+ result &= s.result
self.result = result
self.fillResults(result)
self.updateSearchItems()
def currentSearchItemChanged(self, current, previous):
- if self.activeSearchItems:
- return
searchItem = current.data(3, 0).toPyObject()
if searchItem:
- self.fillResults(searchItem.result)
+ self.fillResults(searchItem.result & self.result)
+ else:
+ self.fillResults(self.result)
def fillTags(self):
for _type, name in (("search", "Searches"),
@@ -186,7 +190,7 @@ class PackagesUI:
("menu", "Application Menu"),
("group", "Groups")):
if self.result:
- items = [(len(item.result & self.result), item.pattern, len(item.result))
+ items = [(len(item.result & self.result), item.pattern, len(item.result), item)
for item in self.searchItems[_type]]
else:
items = [(len(item.result), item.pattern, len(item.result), item)