summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2014-06-05 08:27:17 +0200
committerEike Ziller <eike.ziller@digia.com>2014-06-06 10:37:10 +0200
commit8cb25f9e3e1afcc1ccfa17966cdcc31a95c02289 (patch)
tree13e5fb1367b98fa81497d29187b339f94b936563
parentb35ddc57edcbec0a8c9ba21e6394f1fedd3fc914 (diff)
downloadqt-creator-8cb25f9e3e1afcc1ccfa17966cdcc31a95c02289.tar.gz
VariableChooser: Add support for (plain) text edits
Task-number: QTCREATORBUG-4309 Change-Id: I3d81244fe380bdf79e108f41c2c06df88b116137 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
-rw-r--r--src/plugins/coreplugin/variablechooser.cpp29
-rw-r--r--src/plugins/coreplugin/variablechooser.h1
2 files changed, 24 insertions, 6 deletions
diff --git a/src/plugins/coreplugin/variablechooser.cpp b/src/plugins/coreplugin/variablechooser.cpp
index 75326df5a7..fc49594093 100644
--- a/src/plugins/coreplugin/variablechooser.cpp
+++ b/src/plugins/coreplugin/variablechooser.cpp
@@ -173,6 +173,7 @@ void VariableChooser::updateCurrentEditor(QWidget *old, QWidget *widget)
return;
widget->installEventFilter(this); // for intercepting escape key presses
QLineEdit *previousLineEdit = m_lineEdit;
+ QWidget *previousWidget = currentWidget();
m_lineEdit = 0;
m_textEdit = 0;
m_plainTextEdit = 0;
@@ -187,23 +188,27 @@ void VariableChooser::updateCurrentEditor(QWidget *old, QWidget *widget)
m_plainTextEdit = (supportsVariables ? plainTextEdit : 0);
if (!(m_lineEdit || m_textEdit || m_plainTextEdit))
hide();
- if (m_lineEdit != previousLineEdit) {
+
+ QWidget *current = currentWidget();
+ if (current != previousWidget) {
if (previousLineEdit)
previousLineEdit->setTextMargins(0, 0, 0, 0);
if (m_iconButton) {
m_iconButton->hide();
m_iconButton->setParent(0);
}
- if (m_lineEdit) {
+ if (current) {
if (!m_iconButton)
createIconButton();
int margin = m_iconButton->pixmap().width() + 8;
if (style()->inherits("OxygenStyle"))
margin = qMax(24, margin);
- m_lineEdit->setTextMargins(0, 0, margin, 0);
- m_iconButton->setParent(m_lineEdit);
- m_iconButton->setGeometry(m_lineEdit->rect().adjusted(
- m_lineEdit->width() - (margin + 4), 0, 0, 0));
+ if (m_lineEdit)
+ m_lineEdit->setTextMargins(0, 0, margin, 0);
+ m_iconButton->setParent(current);
+ m_iconButton->setGeometry(current->rect().adjusted(
+ current->width() - (margin + 4), 0,
+ 0, -qMax(0, current->height() - (margin + 4))));
m_iconButton->show();
}
}
@@ -238,6 +243,18 @@ void VariableChooser::updatePositionAndShow()
/*!
* \internal
*/
+QWidget *VariableChooser::currentWidget()
+{
+ if (m_lineEdit)
+ return m_lineEdit;
+ if (m_textEdit)
+ return m_textEdit;
+ return m_plainTextEdit;
+}
+
+/*!
+ * \internal
+ */
void VariableChooser::handleItemActivated(QListWidgetItem *item)
{
if (item)
diff --git a/src/plugins/coreplugin/variablechooser.h b/src/plugins/coreplugin/variablechooser.h
index e314b19f53..d8f76d8a14 100644
--- a/src/plugins/coreplugin/variablechooser.h
+++ b/src/plugins/coreplugin/variablechooser.h
@@ -71,6 +71,7 @@ private slots:
void updatePositionAndShow();
private:
+ QWidget *currentWidget();
void createIconButton();
Internal::Ui::VariableChooser *ui;