Fixed completion highlighting.

This commit is contained in:
Antoni Boucher 2015-07-12 20:18:32 -04:00
parent 523cb458a6
commit d4c91f7b0c
5 changed files with 20 additions and 4 deletions

View File

@ -195,10 +195,14 @@ class CompletionItemDelegate(QStyledItemDelegate):
if index.parent().isValid():
pattern = index.model().pattern
repl = r'<span class="highlight">\g<0></span>'
text = re.sub(re.escape(pattern), repl, self._opt.text,
flags=re.IGNORECASE)
self._doc.setHtml(text)
if(index.column() in index.model().srcmodel.columns_to_highlight
and pattern):
repl = r'<span class="highlight">\g<0></span>'
text = re.sub(re.escape(pattern), repl, self._opt.text,
flags=re.IGNORECASE)
self._doc.setHtml(text)
else:
self._doc.setPlainText(self._opt.text)
else:
self._doc.setHtml('<b>{}</b>'.format(html.escape(self._opt.text)))

View File

@ -44,6 +44,7 @@ class BaseCompletionModel(QStandardItemModel):
def __init__(self, parent=None):
super().__init__(parent)
self.setColumnCount(3)
self.columns_to_highlight = []
def new_category(self, name, sort=None):
"""Add a new category to the model.

View File

@ -34,6 +34,7 @@ class SettingSectionCompletionModel(base.BaseCompletionModel):
def __init__(self, parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
cat = self.new_category("Sections")
for name in configdata.DATA.keys():
desc = configdata.SECTION_DESC[name].splitlines()[0].strip()
@ -53,6 +54,7 @@ class SettingOptionCompletionModel(base.BaseCompletionModel):
def __init__(self, section, parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
cat = self.new_category(section)
sectdata = configdata.DATA[section]
self._misc_items = {}
@ -106,6 +108,7 @@ class SettingValueCompletionModel(base.BaseCompletionModel):
def __init__(self, section, option, parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
self._section = section
self._option = option
objreg.get('config').changed.connect(self.update_current_value)

View File

@ -33,6 +33,7 @@ class CommandCompletionModel(base.BaseCompletionModel):
def __init__(self, parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
assert cmdutils.cmd_dict
cmdlist = []
for obj in set(cmdutils.cmd_dict.values()):
@ -56,6 +57,7 @@ class HelpCompletionModel(base.BaseCompletionModel):
def __init__(self, parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
self._init_commands()
self._init_settings()
@ -98,6 +100,7 @@ class QuickmarkCompletionModel(base.BaseCompletionModel):
def __init__(self, match_field='url', parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
cat = self.new_category("Quickmarks")
quickmarks = objreg.get('quickmark-manager').marks.items()
if match_field == 'url':
@ -119,6 +122,7 @@ class BookmarkCompletionModel(base.BaseCompletionModel):
def __init__(self, match_field='url', parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
cat = self.new_category("Bookmarks")
bookmarks = objreg.get('bookmark-manager').bookmarks.items()
if match_field == 'url':
@ -140,6 +144,7 @@ class SessionCompletionModel(base.BaseCompletionModel):
def __init__(self, parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
cat = self.new_category("Sessions")
try:
for name in objreg.get('session-manager').list_sessions():

View File

@ -39,6 +39,9 @@ class UrlCompletionModel(base.BaseCompletionModel):
def __init__(self, parent=None):
super().__init__(parent)
self.columns_to_highlight.append(0)
self.columns_to_highlight.append(1)
self._quickmark_cat = self.new_category("Quickmarks")
self._bookmark_cat = self.new_category("Bookmarks")
self._history_cat = self.new_category("History")