deskbar-applet r2031 - in trunk: . deskbar/handlers
- From: sebp svn gnome org
- To: svn-commits-list gnome org
- Subject: deskbar-applet r2031 - in trunk: . deskbar/handlers
- Date: Thu, 20 Mar 2008 11:08:10 +0000 (GMT)
Author: sebp
Date: Thu Mar 20 11:08:10 2008
New Revision: 2031
URL: http://svn.gnome.org/viewvc/deskbar-applet?rev=2031&view=rev
Log:
Sort matches that results from .desktop files have higher priority than programs in $PATH and that binary names that are exactly the query term are always at the top
Modified:
trunk/ChangeLog
trunk/deskbar/handlers/programs.py
Modified: trunk/deskbar/handlers/programs.py
==============================================================================
--- trunk/deskbar/handlers/programs.py (original)
+++ trunk/deskbar/handlers/programs.py Thu Mar 20 11:08:10 2008
@@ -21,6 +21,7 @@
EXACT_MATCH_PRIO = 50
EXACT_WORD_PRIO = 5
+DESKTOP_FILE_PRIO = 25
class GenericAction(OpenWithApplicationAction):
@@ -287,10 +288,11 @@
desktop_progs = set()
for match in result:
desktop_progs.add( match.get_program () )
+ match.set_priority (self.get_priority() + DESKTOP_FILE_PRIO + match.get_priority())
- result += self.query_path_programs(query, desktop_progs)
+ path_result = self.query_path_programs(query, desktop_progs)
+ result += path_result
- self.set_priority_for_matches(result)
self._emit_query_ready(query, result )
def query_path_programs(self, query, desktop_progs):
@@ -308,19 +310,23 @@
pathprog = join(pathdir, f)
if (not (f in desktop_progs)) and not isdir(pathprog) \
and f.lower().startswith(program) and is_executable(pathprog):
- results.append( StartsWithPathProgramMatch(f) )
+ match = StartsWithPathProgramMatch(f)
+ match.set_priority (self.get_priority() + get_priority_for_name(query, f))
+ results.append( match )
return results
else:
# We have arguments, execute the command as typed in by the user
if not (program in desktop_progs) and is_program_in_path(program):
- return [PathProgramMatch(program, query)]
+ match = PathProgramMatch(program, query)
+ match.set_priority (self.get_priority() + EXACT_MATCH_PRIO)
+ return [match]
else:
return []
def query_desktop_programs(self, query):
result = []
for match in self._indexer.look_up(query):
- match._priority = get_priority_for_name(query, match._desktop.get_string("Exec"))
+ match.set_priority (get_priority_for_name(query, match._desktop.get_string("Exec")))
result.append(match)
return result
@@ -344,7 +350,8 @@
), match)
def get_priority_for_name(query, name):
- if name.split(" ")[0].endswith(query):
+ bin = name.split(" ")[0]
+ if bin == query:
return EXACT_MATCH_PRIO
else:
return EXACT_WORD_PRIO
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]