aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/fakevim
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-12-04 08:35:54 +0100
committerhjk <hjk@qt.io>2018-12-04 08:08:10 +0000
commitd9531340ae40bd0e9fd3c08b838f1fdb53ed12d0 (patch)
treeccadee2059dac9a44f1360cbce7a5dec733c19cb /src/plugins/fakevim
parent273157c2a1d35f36063839d1fec4feabdc283332 (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.cpp1
-rw-r--r--src/plugins/fakevim/fakevimactions.h4
-rw-r--r--src/plugins/fakevim/fakevimoptions.ui7
-rw-r--r--src/plugins/fakevim/fakevimplugin.cpp20
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);