Editors: Add option to not hide the mouse cursor when typing

Task-number: QTCREATORBUG-3584

Change-Id: Iae5551d36b72c5712f3276b15dfa85982a776dcf
Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
Eike Ziller
2014-02-10 13:23:59 +01:00
parent def888d13a
commit f335da7a75
6 changed files with 35 additions and 4 deletions

View File

@@ -1508,7 +1508,7 @@ static inline bool isModifier(QKeyEvent *e)
void BaseTextEditorWidget::keyPressEvent(QKeyEvent *e) void BaseTextEditorWidget::keyPressEvent(QKeyEvent *e)
{ {
if (!isModifier(e)) if (!isModifier(e) && mouseHidingEnabled())
viewport()->setCursor(Qt::BlankCursor); viewport()->setCursor(Qt::BlankCursor);
ToolTip::hide(); ToolTip::hide();
@@ -2268,6 +2268,16 @@ bool BaseTextEditorWidget::mouseNavigationEnabled() const
return d->m_behaviorSettings.m_mouseNavigation; return d->m_behaviorSettings.m_mouseNavigation;
} }
void BaseTextEditorWidget::setMouseHidingEnabled(bool b)
{
d->m_behaviorSettings.m_mouseHiding = b;
}
bool BaseTextEditorWidget::mouseHidingEnabled() const
{
return d->m_behaviorSettings.m_mouseHiding;
}
void BaseTextEditorWidget::setScrollWheelZoomingEnabled(bool b) void BaseTextEditorWidget::setScrollWheelZoomingEnabled(bool b)
{ {
d->m_behaviorSettings.m_scrollWheelZooming = b; d->m_behaviorSettings.m_scrollWheelZooming = b;

View File

@@ -184,6 +184,9 @@ public:
void setMouseNavigationEnabled(bool b); void setMouseNavigationEnabled(bool b);
bool mouseNavigationEnabled() const; bool mouseNavigationEnabled() const;
void setMouseHidingEnabled(bool b);
bool mouseHidingEnabled() const;
void setScrollWheelZoomingEnabled(bool b); void setScrollWheelZoomingEnabled(bool b);
bool scrollWheelZoomingEnabled() const; bool scrollWheelZoomingEnabled() const;

View File

@@ -34,6 +34,7 @@
#include <QSettings> #include <QSettings>
#include <QString> #include <QString>
static const char mouseHidingKey[] = "MouseHiding";
static const char mouseNavigationKey[] = "MouseNavigation"; static const char mouseNavigationKey[] = "MouseNavigation";
static const char scrollWheelZoomingKey[] = "ScrollWheelZooming"; static const char scrollWheelZoomingKey[] = "ScrollWheelZooming";
static const char constrainTooltips[] = "ConstrainTooltips"; static const char constrainTooltips[] = "ConstrainTooltips";
@@ -44,6 +45,7 @@ static const char groupPostfix[] = "BehaviorSettings";
namespace TextEditor { namespace TextEditor {
BehaviorSettings::BehaviorSettings() : BehaviorSettings::BehaviorSettings() :
m_mouseHiding(true),
m_mouseNavigation(true), m_mouseNavigation(true),
m_scrollWheelZooming(true), m_scrollWheelZooming(true),
m_constrainHoverTooltips(false), m_constrainHoverTooltips(false),
@@ -65,6 +67,7 @@ void BehaviorSettings::fromSettings(const QString &category, const QSettings *s)
void BehaviorSettings::toMap(const QString &prefix, QVariantMap *map) const void BehaviorSettings::toMap(const QString &prefix, QVariantMap *map) const
{ {
map->insert(prefix + QLatin1String(mouseHidingKey), m_mouseHiding);
map->insert(prefix + QLatin1String(mouseNavigationKey), m_mouseNavigation); map->insert(prefix + QLatin1String(mouseNavigationKey), m_mouseNavigation);
map->insert(prefix + QLatin1String(scrollWheelZoomingKey), m_scrollWheelZooming); map->insert(prefix + QLatin1String(scrollWheelZoomingKey), m_scrollWheelZooming);
map->insert(prefix + QLatin1String(constrainTooltips), m_constrainHoverTooltips); map->insert(prefix + QLatin1String(constrainTooltips), m_constrainHoverTooltips);
@@ -74,6 +77,8 @@ void BehaviorSettings::toMap(const QString &prefix, QVariantMap *map) const
void BehaviorSettings::fromMap(const QString &prefix, const QVariantMap &map) void BehaviorSettings::fromMap(const QString &prefix, const QVariantMap &map)
{ {
m_mouseHiding =
map.value(prefix + QLatin1String(mouseHidingKey), m_mouseHiding).toBool();
m_mouseNavigation = m_mouseNavigation =
map.value(prefix + QLatin1String(mouseNavigationKey), m_mouseNavigation).toBool(); map.value(prefix + QLatin1String(mouseNavigationKey), m_mouseNavigation).toBool();
m_scrollWheelZooming = m_scrollWheelZooming =
@@ -88,7 +93,8 @@ void BehaviorSettings::fromMap(const QString &prefix, const QVariantMap &map)
bool BehaviorSettings::equals(const BehaviorSettings &ds) const bool BehaviorSettings::equals(const BehaviorSettings &ds) const
{ {
return m_mouseNavigation == ds.m_mouseNavigation return m_mouseHiding == ds.m_mouseHiding
&& m_mouseNavigation == ds.m_mouseNavigation
&& m_scrollWheelZooming == ds.m_scrollWheelZooming && m_scrollWheelZooming == ds.m_scrollWheelZooming
&& m_constrainHoverTooltips == ds.m_constrainHoverTooltips && m_constrainHoverTooltips == ds.m_constrainHoverTooltips
&& m_camelCaseNavigation == ds.m_camelCaseNavigation && m_camelCaseNavigation == ds.m_camelCaseNavigation

View File

@@ -57,6 +57,7 @@ public:
bool equals(const BehaviorSettings &bs) const; bool equals(const BehaviorSettings &bs) const;
bool m_mouseHiding;
bool m_mouseNavigation; bool m_mouseNavigation;
bool m_scrollWheelZooming; bool m_scrollWheelZooming;
bool m_constrainHoverTooltips; bool m_constrainHoverTooltips;

View File

@@ -98,6 +98,8 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent)
this, SLOT(slotStorageSettingsChanged())); this, SLOT(slotStorageSettingsChanged()));
connect(d->m_ui.cleanIndentation, SIGNAL(clicked(bool)), connect(d->m_ui.cleanIndentation, SIGNAL(clicked(bool)),
this, SLOT(slotStorageSettingsChanged())); this, SLOT(slotStorageSettingsChanged()));
connect(d->m_ui.mouseHiding, SIGNAL(clicked()),
this, SLOT(slotBehaviorSettingsChanged()));
connect(d->m_ui.mouseNavigation, SIGNAL(clicked()), connect(d->m_ui.mouseNavigation, SIGNAL(clicked()),
this, SLOT(slotBehaviorSettingsChanged())); this, SLOT(slotBehaviorSettingsChanged()));
connect(d->m_ui.scrollWheelZooming, SIGNAL(clicked(bool)), connect(d->m_ui.scrollWheelZooming, SIGNAL(clicked(bool)),
@@ -193,6 +195,7 @@ void BehaviorSettingsWidget::updateConstrainTooltipsBoxTooltip() const
void BehaviorSettingsWidget::setAssignedBehaviorSettings(const BehaviorSettings &behaviorSettings) void BehaviorSettingsWidget::setAssignedBehaviorSettings(const BehaviorSettings &behaviorSettings)
{ {
d->m_ui.mouseHiding->setChecked(behaviorSettings.m_mouseHiding);
d->m_ui.mouseNavigation->setChecked(behaviorSettings.m_mouseNavigation); d->m_ui.mouseNavigation->setChecked(behaviorSettings.m_mouseNavigation);
d->m_ui.scrollWheelZooming->setChecked(behaviorSettings.m_scrollWheelZooming); d->m_ui.scrollWheelZooming->setChecked(behaviorSettings.m_scrollWheelZooming);
d->m_ui.constrainTooltipsBox->setCurrentIndex(behaviorSettings.m_constrainHoverTooltips ? 1 : 0); d->m_ui.constrainTooltipsBox->setCurrentIndex(behaviorSettings.m_constrainHoverTooltips ? 1 : 0);
@@ -203,6 +206,7 @@ void BehaviorSettingsWidget::setAssignedBehaviorSettings(const BehaviorSettings
void BehaviorSettingsWidget::assignedBehaviorSettings(BehaviorSettings *behaviorSettings) const void BehaviorSettingsWidget::assignedBehaviorSettings(BehaviorSettings *behaviorSettings) const
{ {
behaviorSettings->m_mouseHiding = d->m_ui.mouseHiding->isChecked();
behaviorSettings->m_mouseNavigation = d->m_ui.mouseNavigation->isChecked(); behaviorSettings->m_mouseNavigation = d->m_ui.mouseNavigation->isChecked();
behaviorSettings->m_scrollWheelZooming = d->m_ui.scrollWheelZooming->isChecked(); behaviorSettings->m_scrollWheelZooming = d->m_ui.scrollWheelZooming->isChecked();
behaviorSettings->m_constrainHoverTooltips = (d->m_ui.constrainTooltipsBox->currentIndex() == 1); behaviorSettings->m_constrainHoverTooltips = (d->m_ui.constrainTooltipsBox->currentIndex() == 1);

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>802</width> <width>801</width>
<height>441</height> <height>459</height>
</rect> </rect>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
@@ -329,6 +329,13 @@ Specifies how backspace interacts with indentation.
<string>Mouse and Keyboard</string> <string>Mouse and Keyboard</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="mouseHiding">
<property name="text">
<string>Hide mouse cursor while typing</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QCheckBox" name="mouseNavigation"> <widget class="QCheckBox" name="mouseNavigation">
<property name="text"> <property name="text">