It's now possible to have tooltips popup only when the Shift key is down.
This has been requested quite a lot.
Task-number: QTCREATORBUG-5282
Change-Id: Ibc8568737fecbeff981ba97d9f155a70f6072413
Reviewed-on: http://codereview.qt.nokia.com/1881
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@nokia.com>
return d->m_behaviorSettings.m_scrollWheelZooming;
}
+void BaseTextEditorWidget::setConstrainTooltips(bool b)
+{
+ d->m_behaviorSettings.m_constrainTooltips = b;
+}
+
+bool BaseTextEditorWidget::constrainTooltips() const
+{
+ return d->m_behaviorSettings.m_constrainTooltips;
+}
+
void BaseTextEditorWidget::setRevisionsVisible(bool b)
{
d->m_revisionsVisible = b;
if (ce->reason() == QContextMenuEvent::Mouse && !textCursor().hasSelection())
setTextCursor(cursorForPosition(ce->pos()));
} else if (event->type() == QEvent::ToolTip) {
+ if (QApplication::keyboardModifiers() & Qt::ControlModifier
+ || (!(QApplication::keyboardModifiers() & Qt::ShiftModifier)
+ && d->m_behaviorSettings.m_constrainTooltips)) {
+ // Tooltips should be eaten when either control is pressed (so they don't get in the
+ // way of code navigation) or if they are in constrained mode and shift is not pressed.
+ return true;
+ }
const QHelpEvent *he = static_cast<QHelpEvent*>(event);
- if (QApplication::keyboardModifiers() & Qt::ControlModifier)
- return true; // eat tooltip event when control is pressed
const QPoint &pos = he->pos();
RefactorMarker refactorMarker = d->m_refactorOverlay->markerAt(pos);
void BaseTextEditorWidget::keyReleaseEvent(QKeyEvent *e)
{
- // Clear link emulation when Ctrl is released
- if (e->key() == Qt::Key_Control)
+ if (e->key() == Qt::Key_Control) {
clearLink();
+ } else if (e->key() == Qt::Key_Shift
+ && d->m_behaviorSettings.m_constrainTooltips
+ && ToolTip::instance()->isVisible()) {
+ ToolTip::instance()->hide();
+ }
QPlainTextEdit::keyReleaseEvent(e);
}
void BaseTextEditorWidget::setBehaviorSettings(const TextEditor::BehaviorSettings &bs)
{
- setMouseNavigationEnabled(bs.m_mouseNavigation);
- setScrollWheelZoomingEnabled(bs.m_scrollWheelZooming);
+ d->m_behaviorSettings = bs;
}
void BaseTextEditorWidget::setStorageSettings(const StorageSettings &storageSettings)
void setScrollWheelZoomingEnabled(bool b);
bool scrollWheelZoomingEnabled() const;
+ void setConstrainTooltips(bool b);
+ bool constrainTooltips() const;
+
void setRevisionsVisible(bool b);
bool revisionsVisible() const;
static const char mouseNavigationKey[] = "MouseNavigation";
static const char scrollWheelZoomingKey[] = "ScrollWheelZooming";
+static const char constrainTooltips[] = "ConstrainTooltips";
static const char groupPostfix[] = "BehaviorSettings";
namespace TextEditor {
BehaviorSettings::BehaviorSettings() :
m_mouseNavigation(true),
- m_scrollWheelZooming(true)
+ m_scrollWheelZooming(true),
+ m_constrainTooltips(false)
{
}
{
map->insert(prefix + QLatin1String(mouseNavigationKey), m_mouseNavigation);
map->insert(prefix + QLatin1String(scrollWheelZoomingKey), m_scrollWheelZooming);
+ map->insert(prefix + QLatin1String(constrainTooltips), m_constrainTooltips);
}
void BehaviorSettings::fromMap(const QString &prefix, const QVariantMap &map)
map.value(prefix + QLatin1String(mouseNavigationKey), m_mouseNavigation).toBool();
m_scrollWheelZooming =
map.value(prefix + QLatin1String(scrollWheelZoomingKey), m_scrollWheelZooming).toBool();
+ m_constrainTooltips =
+ map.value(prefix + QLatin1String(constrainTooltips), m_constrainTooltips).toBool();
}
bool BehaviorSettings::equals(const BehaviorSettings &ds) const
{
return m_mouseNavigation == ds.m_mouseNavigation
&& m_scrollWheelZooming == ds.m_scrollWheelZooming
+ && m_constrainTooltips == ds.m_constrainTooltips
;
}
bool m_mouseNavigation;
bool m_scrollWheelZooming;
+ bool m_constrainTooltips;
};
inline bool operator==(const BehaviorSettings &t1, const BehaviorSettings &t2) { return t1.equals(t2); }
this, SLOT(slotBehaviorSettingsChanged()));
connect(m_d->m_ui.scrollWheelZooming, SIGNAL(clicked(bool)),
this, SLOT(slotBehaviorSettingsChanged()));
+ connect(m_d->m_ui.constrainTooltips, SIGNAL(clicked()),
+ this, SLOT(slotBehaviorSettingsChanged()));
connect(m_d->m_ui.utf8BomBox, SIGNAL(currentIndexChanged(int)),
this, SLOT(slotExtraEncodingChanged()));
connect(m_d->m_ui.encodingBox, SIGNAL(currentIndexChanged(int)),
{
m_d->m_ui.mouseNavigation->setChecked(behaviorSettings.m_mouseNavigation);
m_d->m_ui.scrollWheelZooming->setChecked(behaviorSettings.m_scrollWheelZooming);
+ m_d->m_ui.constrainTooltips->setChecked(behaviorSettings.m_constrainTooltips);
}
void BehaviorSettingsWidget::assignedBehaviorSettings(BehaviorSettings *behaviorSettings) const
{
behaviorSettings->m_mouseNavigation = m_d->m_ui.mouseNavigation->isChecked();
behaviorSettings->m_scrollWheelZooming = m_d->m_ui.scrollWheelZooming->isChecked();
+ behaviorSettings->m_constrainTooltips = m_d->m_ui.constrainTooltips->isChecked();
}
void BehaviorSettingsWidget::setAssignedExtraEncodingSettings(
<< sep << m_d->m_ui.utf8BomLabel->text()
<< sep << m_d->m_ui.mouseNavigation->text()
<< sep << m_d->m_ui.scrollWheelZooming->text()
+ << sep << m_d->m_ui.constrainTooltips->text()
<< sep << m_d->m_ui.groupBoxStorageSettings->title()
<< sep << m_d->m_ui.groupBoxEncodings->title()
<< sep << m_d->m_ui.groupBoxMouse->title();
<property name="title">
<string>Mouse</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
+ <layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="mouseNavigation">
<property name="text">
</widget>
</item>
<item>
+ <widget class="QCheckBox" name="constrainTooltips">
+ <property name="text">
+ <string>Enable &tooltips only when Shift key is down</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>