summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNecoro <>2008-02-23 00:31:53 +0000
committerNecoro <>2008-02-23 00:31:53 +0000
commitc8d34d5474bfef3f1a621aad63311dcc971cef99 (patch)
treecf5b6bcbb14117c4beef76cac49623984169d9cf
parentc47a04e95db9fae95b482aa9aa96bb7a9263c303 (diff)
downloadportato-c8d34d5474bfef3f1a621aad63311dcc971cef99.tar.gz
portato-c8d34d5474bfef3f1a621aad63311dcc971cef99.tar.bz2
portato-c8d34d5474bfef3f1a621aad63311dcc971cef99.zip
r785@Devoty: necoro | 2008-02-23 01:31:44 +0100
improved new search
-rw-r--r--portato/gui/gui_helper.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/portato/gui/gui_helper.py b/portato/gui/gui_helper.py
index d48dadd..57b9e43 100644
--- a/portato/gui/gui_helper.py
+++ b/portato/gui/gui_helper.py
@@ -13,6 +13,7 @@
from __future__ import absolute_import
# some stuff needed
+import re
import logging
import sys, os, pty
import signal, threading, time
@@ -194,7 +195,7 @@ class Database (object):
yield pkg
if self.restrict:
- return (pkg for pkg in get_pkgs() if pkg[1].find(self.restrict) != -1)
+ return (pkg for pkg in get_pkgs() if self.restrict.search(pkg[1]))#if pkg[1].find(self.restrict) != -1)
else:
return get_pkgs()
@@ -217,12 +218,13 @@ class Database (object):
cats = self._db.iterkeys()
else:
- cats = set((pkg[0] for pkg in self.get_cat(self.ALL)))
-
if installed:
- cats = cats.intersection(self.inst_cats)
+ cats = set((pkg[0] for pkg in self.get_cat(self.ALL) if pkg[2]))
+ else:
+ cats = set((pkg[0] for pkg in self.get_cat(self.ALL)))
- cats.add(self.ALL)
+ if len(cats)>1:
+ cats.add(self.ALL)
return (cat for cat in cats)
@@ -251,8 +253,12 @@ class Database (object):
if not restrict:
self._restrict = None
else:
- #self._restrict = re.compile(".*%s.*" % restrict)
- self._restrict = restrict
+ try:
+ regex = re.compile(restrict, re.I)
+ except re.error, e:
+ info(_("Error while compiling search expression: '%s'."), str(e))
+ else: # only set self._restrict if no error occurred
+ self._restrict = regex
restrict = property(get_restrict, set_restrict)