diff options
| author | Florian Festi <ffesti@redhat.com> | 2010-08-26 16:56:03 +0200 |
|---|---|---|
| committer | Florian Festi <ffesti@redhat.com> | 2010-08-26 16:56:03 +0200 |
| commit | 81366cb187bf34ea886f9cf04ddb1a02d08b40c8 (patch) | |
| tree | b427bdcea920f2e799a534122bb3e28ec1fe66be | |
| parent | f605906035fa434ef5269111d4f70982eb58762a (diff) | |
| download | pkggui-81366cb187bf34ea886f9cf04ddb1a02d08b40c8.tar.gz pkggui-81366cb187bf34ea886f9cf04ddb1a02d08b40c8.tar.xz pkggui-81366cb187bf34ea886f9cf04ddb1a02d08b40c8.zip | |
Filter for existing packages
Use summary in result list
| -rwxr-xr-x | gui.py | 26 | ||||
| -rw-r--r-- | packages.ui | 9 |
2 files changed, 26 insertions, 9 deletions
@@ -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> |
