diff options
author | hjk <hjk@qt.io> | 2018-12-04 08:35:54 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-12-04 08:08:10 +0000 |
commit | d9531340ae40bd0e9fd3c08b838f1fdb53ed12d0 (patch) | |
tree | ccadee2059dac9a44f1360cbce7a5dec733c19cb /src/plugins/fakevim | |
parent | 273157c2a1d35f36063839d1fec4feabdc283332 (diff) |
FakeVim: Disable cursor blinking by default
Add an option to enable
Task-number: QTCREATORBUG-21613
Change-Id: Ia0553f0b89b22c1d5b47487cd6e5b3c3a523cd6d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r-- | src/plugins/fakevim/fakevimactions.cpp | 1 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimactions.h | 4 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimoptions.ui | 7 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimplugin.cpp | 20 |
4 files changed, 31 insertions, 1 deletions
diff --git a/src/plugins/fakevim/fakevimactions.cpp b/src/plugins/fakevim/fakevimactions.cpp index 0c6dcc01ec4..fbb7556eef8 100644 --- a/src/plugins/fakevim/fakevimactions.cpp +++ b/src/plugins/fakevim/fakevimactions.cpp @@ -108,6 +108,7 @@ FakeVimSettings::FakeVimSettings() createAction(ConfigTildeOp, false, "TildeOp", "top"); createAction(ConfigShowCmd, true, "ShowCmd", "sc"); createAction(ConfigRelativeNumber, false, "RelativeNumber", "rnu"); + createAction(ConfigBlinkingCursor, false, "BlinkingCursor", "cb"); createAction(ConfigScrollOff, 0, "ScrollOff", "so"); createAction(ConfigBackspace, QString("indent,eol,start"), "ConfigBackspace", "bs"); createAction(ConfigIsKeyword, QString("@,48-57,_,192-255,a-z,A-Z"), "IsKeyword", "isk"); diff --git a/src/plugins/fakevim/fakevimactions.h b/src/plugins/fakevim/fakevimactions.h index f0607f33d84..47d026b5f62 100644 --- a/src/plugins/fakevim/fakevimactions.h +++ b/src/plugins/fakevim/fakevimactions.h @@ -106,7 +106,9 @@ enum FakeVimSettingsCode ConfigClipboard, ConfigShowCmd, ConfigScrollOff, - ConfigRelativeNumber + ConfigRelativeNumber, + + ConfigBlinkingCursor }; class FakeVimSettings diff --git a/src/plugins/fakevim/fakevimoptions.ui b/src/plugins/fakevim/fakevimoptions.ui index db3cb7df450..82e72a1e074 100644 --- a/src/plugins/fakevim/fakevimoptions.ui +++ b/src/plugins/fakevim/fakevimoptions.ui @@ -130,6 +130,13 @@ </property> </widget> </item> + <item row="8" column="0"> + <widget class="QCheckBox" name="checkBoxBlinkingCursor"> + <property name="text"> + <string>Blinking cursor</string> + </property> + </widget> + </item> <item row="5" column="1"> <widget class="QCheckBox" name="checkBoxShowMarks"> <property name="text"> diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 0cf23112690..7fabc33771a 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -83,6 +83,7 @@ #include <QAbstractTableModel> #include <QDebug> #include <QFile> +#include <QGuiApplication> #include <QItemDelegate> #include <QPainter> #include <QPlainTextEdit> @@ -91,6 +92,7 @@ #include <QSettings> #include <QStackedWidget> #include <QStandardPaths> +#include <QStyleHints> #include <QTextBlock> #include <QTextCursor> #include <QTextEdit> @@ -426,6 +428,7 @@ QWidget *FakeVimOptionPage::widget() m_group.insert(theFakeVimSetting(ConfigShowCmd), m_ui.checkBoxShowCmd); m_group.insert(theFakeVimSetting(ConfigRelativeNumber), m_ui.checkBoxRelativeNumber); + m_group.insert(theFakeVimSetting(ConfigBlinkingCursor), m_ui.checkBoxBlinkingCursor); connect(m_ui.pushButtonCopyTextEditorSettings, &QAbstractButton::clicked, this, &FakeVimOptionPage::copyTextEditorSettings); @@ -529,6 +532,7 @@ public: void fold(FakeVimHandler *handler, int depth, bool fold); void maybeReadVimRc(); void setShowRelativeLineNumbers(const QVariant &value); + void updateCursorBlinking(const QVariant &value); void resetCommandBuffer(); void showCommandBuffer(FakeVimHandler *handler, const QString &contents, @@ -569,6 +573,8 @@ public: MiniBuffer *m_miniBuffer = nullptr; FakeVimPluginRunData *runData = nullptr; + + int m_savedCursorFlashTime = 0; }; /////////////////////////////////////////////////////////////////////// @@ -1223,6 +1229,8 @@ bool FakeVimPluginPrivate::initialize() this, &FakeVimPluginPrivate::maybeReadVimRc); connect(theFakeVimSetting(ConfigRelativeNumber), &SavedAction::valueChanged, this, &FakeVimPluginPrivate::setShowRelativeLineNumbers); + connect(theFakeVimSetting(ConfigBlinkingCursor), &SavedAction::valueChanged, + this, &FakeVimPluginPrivate::updateCursorBlinking); // Delayed operations. connect(this, &FakeVimPluginPrivate::delayedQuitRequested, @@ -1235,6 +1243,8 @@ bool FakeVimPluginPrivate::initialize() maybeReadVimRc(); // << "MODE: " << theFakeVimSetting(ConfigUseFakeVim)->value(); + updateCursorBlinking(theFakeVimSetting(ConfigBlinkingCursor)->value()); + return true; } @@ -1854,6 +1864,7 @@ void FakeVimPluginPrivate::setUseFakeVim(const QVariant &value) Find::setUseFakeVim(on); setUseFakeVimInternal(on); setShowRelativeLineNumbers(theFakeVimSetting(ConfigRelativeNumber)->value()); + updateCursorBlinking(theFakeVimSetting(ConfigBlinkingCursor)->value()); } void FakeVimPluginPrivate::setUseFakeVimInternal(bool on) @@ -1884,6 +1895,15 @@ void FakeVimPluginPrivate::setShowRelativeLineNumbers(const QVariant &value) } } +void FakeVimPluginPrivate::updateCursorBlinking(const QVariant &value) +{ + if (m_savedCursorFlashTime == 0) + m_savedCursorFlashTime = QGuiApplication::styleHints()->cursorFlashTime(); + + bool blink = value.toBool() || !theFakeVimSetting(ConfigUseFakeVim)->value().toBool(); + QGuiApplication::styleHints()->setCursorFlashTime(blink ? m_savedCursorFlashTime : 0); +} + void FakeVimPluginPrivate::handleExCommand(FakeVimHandler *handler, bool *handled, const ExCommand &cmd) { QTC_ASSERT(handler, return); |