From a2df8cb0b7fa83ff530306aae2ddac5a56da1b14 Mon Sep 17 00:00:00 2001 From: Eike Ziller <eike.ziller@digia.com> Date: Thu, 28 Mar 2013 11:05:35 +0100 Subject: [PATCH] Make adding variable support to textcontrol easier. Add convenience method in variable chooser and move magic constant to the place where it's used. Change-Id: Ie93acb98e13efcacb77d1a478df927a11b16926b Reviewed-by: Daniel Teske <daniel.teske@digia.com> --- src/plugins/coreplugin/coreconstants.h | 2 -- src/plugins/coreplugin/dialogs/externaltoolconfig.cpp | 8 ++++---- src/plugins/coreplugin/variablechooser.cpp | 11 ++++++++++- src/plugins/coreplugin/variablechooser.h | 3 +++ .../projectexplorer/projectexplorersettingspage.cpp | 3 +-- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h index c2e3e134dde..ab257ca744d 100644 --- a/src/plugins/coreplugin/coreconstants.h +++ b/src/plugins/coreplugin/coreconstants.h @@ -221,8 +221,6 @@ const char SETTINGS_DEFAULTTEXTENCODING[] = "General/DefaultFileEncoding"; const char ALL_FILES_FILTER[] = QT_TRANSLATE_NOOP("Core", "All Files (*)"); -const char VARIABLE_SUPPORT_PROPERTY[] = "QtCreator.VariableSupport"; - const char TR_CLEAR_MENU[] = QT_TRANSLATE_NOOP("Core", "Clear Menu"); const char DEFAULT_BUILD_DIRECTORY[] = "../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}"; diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp index 8a0f80f206c..4578a92cab4 100644 --- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp +++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp @@ -409,10 +409,10 @@ ExternalToolConfig::ExternalToolConfig(QWidget *parent) : connect(ui->toolTree->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(handleCurrentChanged(QModelIndex,QModelIndex))); - ui->executable->lineEdit()->setProperty(Constants::VARIABLE_SUPPORT_PROPERTY, true); - ui->arguments->setProperty(Constants::VARIABLE_SUPPORT_PROPERTY, true); - ui->workingDirectory->lineEdit()->setProperty(Constants::VARIABLE_SUPPORT_PROPERTY, true); - ui->inputText->setProperty(Constants::VARIABLE_SUPPORT_PROPERTY, true); + Core::VariableChooser::addVariableSupport(ui->executable->lineEdit()); + Core::VariableChooser::addVariableSupport(ui->arguments); + Core::VariableChooser::addVariableSupport(ui->workingDirectory->lineEdit()); + Core::VariableChooser::addVariableSupport(ui->inputText); connect(ui->description, SIGNAL(editingFinished()), this, SLOT(updateCurrentItem())); connect(ui->executable, SIGNAL(editingFinished()), this, SLOT(updateCurrentItem())); diff --git a/src/plugins/coreplugin/variablechooser.cpp b/src/plugins/coreplugin/variablechooser.cpp index 7a1404278be..a92a5cba2d9 100644 --- a/src/plugins/coreplugin/variablechooser.cpp +++ b/src/plugins/coreplugin/variablechooser.cpp @@ -33,6 +33,7 @@ #include "coreconstants.h" #include <utils/fancylineedit.h> // IconButton +#include <utils/qtcassert.h> #include <QTimer> #include <QLineEdit> @@ -42,6 +43,8 @@ using namespace Core; +const char VariableChooser::kVariableSupportProperty[] = "QtCreator.VariableSupport"; + VariableChooser::VariableChooser(QWidget *parent) : QWidget(parent), ui(new Internal::Ui::VariableChooser), @@ -76,6 +79,12 @@ VariableChooser::~VariableChooser() delete ui; } +void VariableChooser::addVariableSupport(QWidget *textcontrol) +{ + QTC_ASSERT(textcontrol, return); + textcontrol->setProperty(kVariableSupportProperty, true); +} + void VariableChooser::updateDescription(const QString &variable) { if (variable.isNull()) @@ -109,7 +118,7 @@ void VariableChooser::updateCurrentEditor(QWidget *old, QWidget *widget) m_lineEdit = 0; m_textEdit = 0; m_plainTextEdit = 0; - QVariant variablesSupportProperty = widget->property(Constants::VARIABLE_SUPPORT_PROPERTY); + QVariant variablesSupportProperty = widget->property(kVariableSupportProperty); bool supportsVariables = (variablesSupportProperty.isValid() ? variablesSupportProperty.toBool() : false); if (QLineEdit *lineEdit = qobject_cast<QLineEdit *>(widget)) diff --git a/src/plugins/coreplugin/variablechooser.h b/src/plugins/coreplugin/variablechooser.h index 5fc1d9ac653..daf31863fad 100644 --- a/src/plugins/coreplugin/variablechooser.h +++ b/src/plugins/coreplugin/variablechooser.h @@ -56,6 +56,9 @@ public: explicit VariableChooser(QWidget *parent = 0); ~VariableChooser(); + static const char kVariableSupportProperty[]; + static void addVariableSupport(QWidget *textcontrol); + protected: void keyPressEvent(QKeyEvent *ke); bool eventFilter(QObject *, QEvent *event); diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp index 1482aa86f33..06bc43c44fd 100644 --- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp +++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp @@ -47,12 +47,11 @@ ProjectExplorerSettingsWidget::ProjectExplorerSettingsWidget(QWidget *parent) : QWidget(parent) { m_ui.setupUi(this); - m_ui.buildDirectoryEdit->setProperty(Core::Constants::VARIABLE_SUPPORT_PROPERTY, true); new Core::VariableChooser(this); + Core::VariableChooser::addVariableSupport(m_ui.buildDirectoryEdit); setJomVisible(Utils::HostOsInfo::isWindowsHost()); m_ui.directoryButtonGroup->setId(m_ui.currentDirectoryRadioButton, UseCurrentDirectory); m_ui.directoryButtonGroup->setId(m_ui.directoryRadioButton, UseProjectDirectory); - m_ui.buildDirectoryEdit->setProperty(Core::Constants::VARIABLE_SUPPORT_PROPERTY, true); connect(m_ui.directoryButtonGroup, SIGNAL(buttonClicked(int)), this, SLOT(slotDirectoryButtonGroupChanged())); -- GitLab