summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Festi <ffesti@redhat.com>2010-08-26 16:56:03 +0200
committerFlorian Festi <ffesti@redhat.com>2010-08-26 16:56:03 +0200
commit81366cb187bf34ea886f9cf04ddb1a02d08b40c8 (patch)
treeb427bdcea920f2e799a534122bb3e28ec1fe66be
parentf605906035fa434ef5269111d4f70982eb58762a (diff)
downloadpkggui-81366cb187bf34ea886f9cf04ddb1a02d08b40c8.tar.gz
pkggui-81366cb187bf34ea886f9cf04ddb1a02d08b40c8.tar.xz
pkggui-81366cb187bf34ea886f9cf04ddb1a02d08b40c8.zip
Filter for existing packages
Use summary in result list
-rwxr-xr-xgui.py26
-rw-r--r--packages.ui9
2 files changed, 26 insertions, 9 deletions
diff --git a/gui.py b/gui.py
index d77f87d..f5aee69 100755
--- a/gui.py
+++ b/gui.py
@@ -59,13 +59,16 @@ class PackagesUI:
self.resultList.setModel(self.resultModel)
self.resultList.clicked.connect(self.packageSelected)
+ self.allPkgs = set((pkg.name for pkg in self.yum.pkgSack.returnPackages()))
+
# tags
self.tag2pkgs = {}
for name, tags in self.yum.pkgtags.search_tags('').iteritems():
for tag in tags:
self.tag2pkgs.setdefault(tag, set()).add(name)
for tag, pkgs in self.tag2pkgs.iteritems():
- if len(pkgs) == 1 or tag.startswith("X-"):
+ pkgs.intersection_update(self.allPkgs)
+ if len(pkgs) <= 1 or tag.startswith("X-"):
continue
self.searchItems["tag"].append(SearchItem(tag, pkgs, "tag"))
@@ -73,8 +76,9 @@ class PackagesUI:
for group in self.yum.comps.groups:
if not group.user_visible or not group.packages:
continue
+ pkgs = set(group.packages) & self.allPkgs
self.searchItems["group"].append(
- SearchItem(group.name, set(group.packages), "group"))
+ SearchItem(group.name, pkgs, "group"))
self.fillTags()
@@ -82,13 +86,19 @@ class PackagesUI:
self.mainwindow.show()
def fillResults(self, result):
- result = list(result)
- result.sort(reverse=True)
+ pkgs = []
+ for name in result:
+ try:
+ pkgs.append(self.yum.pkgSack.returnNewestByName(name)[0])
+ except yum.Errors.PackageSackError, e:
+ print e
self.resultList.model().clear()
- for r in result:
- self.resultList.model().insertRow(0, QtGui.QStandardItem(r))
- pass
+ for pkg in pkgs:
+ self.resultList.model().insertRow(
+ 0, [QtGui.QStandardItem("%s\n\t%s" % (pkg.summary, pkg.name)),
+ QtGui.QStandardItem(pkg.name)])
+ self.resultList.model().sort(0, 0)
def _addActiveSearchItem(self, searchItem):
for s in self.activeSearchItems:
@@ -196,7 +206,7 @@ class PackagesUI:
self.tagList.sortItems(2, 1)
def packageSelected(self, index):
- pass
+ print str(self.resultList.model().data(index, 0).toString())
app = QtGui.QApplication(sys.argv)
diff --git a/packages.ui b/packages.ui
index dc14e65..eb92927 100644
--- a/packages.ui
+++ b/packages.ui
@@ -100,7 +100,14 @@
</layout>
</item>
<item>
- <widget class="QListView" name="resultList"/>
+ <widget class="QListView" name="resultList">
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ </widget>
</item>
</layout>
</widget>