Add statusbar coloring for caret and visual modes
This commit is contained in:
parent
941eac848e
commit
a6443231e5
@ -758,6 +758,14 @@ DATA = collections.OrderedDict([
|
|||||||
SettingValue(typ.QssColor(), 'darkgreen'),
|
SettingValue(typ.QssColor(), 'darkgreen'),
|
||||||
"Background color of the statusbar in insert mode."),
|
"Background color of the statusbar in insert mode."),
|
||||||
|
|
||||||
|
('statusbar.bg.caret',
|
||||||
|
SettingValue(typ.QssColor(), 'purple'),
|
||||||
|
"Background color of the statusbar in caret mode."),
|
||||||
|
|
||||||
|
('statusbar.bg.visual',
|
||||||
|
SettingValue(typ.QssColor(), '#a12dff'),
|
||||||
|
"Background color of the statusbar in visual mode."),
|
||||||
|
|
||||||
('statusbar.progress.bg',
|
('statusbar.progress.bg',
|
||||||
SettingValue(typ.QssColor(), 'white'),
|
SettingValue(typ.QssColor(), 'white'),
|
||||||
"Background color of the progress bar."),
|
"Background color of the progress bar."),
|
||||||
|
@ -91,6 +91,8 @@ class StatusBar(QWidget):
|
|||||||
_severity = None
|
_severity = None
|
||||||
_prompt_active = False
|
_prompt_active = False
|
||||||
_insert_active = False
|
_insert_active = False
|
||||||
|
_caret_active = False
|
||||||
|
_visual_active = False
|
||||||
|
|
||||||
STYLESHEET = """
|
STYLESHEET = """
|
||||||
QWidget#StatusBar {
|
QWidget#StatusBar {
|
||||||
@ -101,6 +103,14 @@ class StatusBar(QWidget):
|
|||||||
{{ color['statusbar.bg.insert'] }}
|
{{ color['statusbar.bg.insert'] }}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget#StatusBar[caret_active="true"] {
|
||||||
|
{{ color['statusbar.bg.caret'] }}
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget#StatusBar[visual_active="true"] {
|
||||||
|
{{ color['statusbar.bg.visual'] }}
|
||||||
|
}
|
||||||
|
|
||||||
QWidget#StatusBar[prompt_active="true"] {
|
QWidget#StatusBar[prompt_active="true"] {
|
||||||
{{ color['statusbar.bg.prompt'] }}
|
{{ color['statusbar.bg.prompt'] }}
|
||||||
}
|
}
|
||||||
@ -253,14 +263,31 @@ class StatusBar(QWidget):
|
|||||||
"""Getter for self.insert_active, so it can be used as Qt property."""
|
"""Getter for self.insert_active, so it can be used as Qt property."""
|
||||||
return self._insert_active
|
return self._insert_active
|
||||||
|
|
||||||
def _set_insert_active(self, val):
|
@pyqtProperty(bool)
|
||||||
"""Setter for self.insert_active.
|
def caret_active(self):
|
||||||
|
"""Getter for self.caret_active, so it can be used as Qt property."""
|
||||||
|
return self._caret_active
|
||||||
|
|
||||||
|
@pyqtProperty(bool)
|
||||||
|
def visual_active(self):
|
||||||
|
"""Getter for self.visual_active, so it can be used as Qt property."""
|
||||||
|
return self._visual_active
|
||||||
|
|
||||||
|
def _set_mode_active(self, mode, val):
|
||||||
|
"""Setter for self.insert_active, self.caret_active or self.visual_active.
|
||||||
|
|
||||||
Re-set the stylesheet after setting the value, so everything gets
|
Re-set the stylesheet after setting the value, so everything gets
|
||||||
updated by Qt properly.
|
updated by Qt properly.
|
||||||
"""
|
"""
|
||||||
log.statusbar.debug("Setting insert_active to {}".format(val))
|
if mode == usertypes.KeyMode.insert:
|
||||||
self._insert_active = val
|
log.statusbar.debug("Setting insert_active to {}".format(val))
|
||||||
|
self._insert_active = val
|
||||||
|
elif mode == usertypes.KeyMode.caret:
|
||||||
|
log.statusbar.debug("Setting caret_active to {}".format(val))
|
||||||
|
self._caret_active = val
|
||||||
|
elif mode == usertypes.KeyMode.visual:
|
||||||
|
log.statusbar.debug("Setting visual_active to {}".format(val))
|
||||||
|
self._visual_active = val
|
||||||
self.setStyleSheet(style.get_stylesheet(self.STYLESHEET))
|
self.setStyleSheet(style.get_stylesheet(self.STYLESHEET))
|
||||||
|
|
||||||
def _set_mode_text(self, mode):
|
def _set_mode_text(self, mode):
|
||||||
@ -438,8 +465,9 @@ class StatusBar(QWidget):
|
|||||||
window=self._win_id)
|
window=self._win_id)
|
||||||
if mode in mode_manager.passthrough:
|
if mode in mode_manager.passthrough:
|
||||||
self._set_mode_text(mode.name)
|
self._set_mode_text(mode.name)
|
||||||
if mode == usertypes.KeyMode.insert:
|
if mode in (usertypes.KeyMode.insert, usertypes.KeyMode.caret,
|
||||||
self._set_insert_active(True)
|
usertypes.KeyMode.visual):
|
||||||
|
self._set_mode_active(mode, True)
|
||||||
|
|
||||||
@pyqtSlot(usertypes.KeyMode, usertypes.KeyMode)
|
@pyqtSlot(usertypes.KeyMode, usertypes.KeyMode)
|
||||||
def on_mode_left(self, old_mode, new_mode):
|
def on_mode_left(self, old_mode, new_mode):
|
||||||
@ -451,8 +479,9 @@ class StatusBar(QWidget):
|
|||||||
self._set_mode_text(new_mode.name)
|
self._set_mode_text(new_mode.name)
|
||||||
else:
|
else:
|
||||||
self.txt.set_text(self.txt.Text.normal, '')
|
self.txt.set_text(self.txt.Text.normal, '')
|
||||||
if old_mode == usertypes.KeyMode.insert:
|
if old_mode in (usertypes.KeyMode.insert, usertypes.KeyMode.caret,
|
||||||
self._set_insert_active(False)
|
usertypes.KeyMode.visual):
|
||||||
|
self._set_mode_active(old_mode, False)
|
||||||
|
|
||||||
@config.change_filter('ui', 'message-timeout')
|
@config.change_filter('ui', 'message-timeout')
|
||||||
def set_pop_timer_interval(self):
|
def set_pop_timer_interval(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user