summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-04-23 21:18:27 +0300
committerOrgad Shaneh <orgads@gmail.com>2013-04-29 11:00:19 +0200
commit48b9747550d555e5cde18146c55ed499a6744e36 (patch)
tree5297f997c370a0fcc280b5a11d87d6d3e7372aa7 /src/plugins
parent0b0f84c63978f04d91a09c7b1861fff14b4adc29 (diff)
downloadqt-creator-48b9747550d555e5cde18146c55ed499a6744e36.tar.gz
Vcs: Allow multiple flags in parameter widgets
Refactor combobox values to use %1 as a placeholder for values Change-Id: I9a9bb6b9ba5c21bcaad4a3047d322856225892bc Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/bazaar/bazaarclient.cpp2
-rw-r--r--src/plugins/git/gitclient.cpp2
-rw-r--r--src/plugins/vcsbase/vcsbaseeditorparameterwidget.cpp70
-rw-r--r--src/plugins/vcsbase/vcsbaseeditorparameterwidget.h12
4 files changed, 33 insertions, 53 deletions
diff --git a/src/plugins/bazaar/bazaarclient.cpp b/src/plugins/bazaar/bazaarclient.cpp
index b95fc3698c..18d5415f83 100644
--- a/src/plugins/bazaar/bazaarclient.cpp
+++ b/src/plugins/bazaar/bazaarclient.cpp
@@ -278,7 +278,7 @@ public:
<< ComboBoxItem(tr("Moderately short"), QLatin1String("short"))
<< ComboBoxItem(tr("One line"), QLatin1String("line"))
<< ComboBoxItem(tr("GNU ChangeLog"), QLatin1String("gnu-changelog"));
- mapSetting(addComboBox(QLatin1String("--log-format"), logChoices),
+ mapSetting(addComboBox(QStringList(QLatin1String("--log-format=%1")), logChoices),
m_client->settings()->stringPointer(BazaarSettings::logFormatKey));
}
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index b89fcfb9df..684a9d452d 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -187,7 +187,7 @@ public:
<< ComboBoxItem(tr("fuller"), QLatin1String("fuller"))
<< ComboBoxItem(tr("email"), QLatin1String("email"))
<< ComboBoxItem(tr("raw"), QLatin1String("raw"));
- mapSetting(addComboBox(QLatin1String("--pretty"), prettyChoices),
+ mapSetting(addComboBox(QStringList(QLatin1String("--pretty=%1")), prettyChoices),
m_client->settings()->intPointer(GitSettings::showPrettyFormatKey));
}
diff --git a/src/plugins/vcsbase/vcsbaseeditorparameterwidget.cpp b/src/plugins/vcsbase/vcsbaseeditorparameterwidget.cpp
index 8eec2807a1..f5acd7bb63 100644
--- a/src/plugins/vcsbase/vcsbaseeditorparameterwidget.cpp
+++ b/src/plugins/vcsbase/vcsbaseeditorparameterwidget.cpp
@@ -82,14 +82,13 @@ class VcsBaseEditorParameterWidgetPrivate
{
public:
VcsBaseEditorParameterWidgetPrivate() :
- m_layout(0), m_comboBoxOptionTemplate(QLatin1String("%{option}=%{value}"))
+ m_layout(0)
{ }
QStringList m_baseArguments;
QHBoxLayout *m_layout;
QList<VcsBaseEditorParameterWidget::OptionMapping> m_optionMappings;
QHash<QWidget*, SettingMappingData> m_settingMapping;
- QStringList m_comboBoxOptionTemplate;
};
} // namespace Internal
@@ -147,19 +146,24 @@ QStringList VcsBaseEditorParameterWidget::arguments() const
QToolButton *VcsBaseEditorParameterWidget::addToggleButton(const QString &option,
const QString &label,
- const QString &toolTip)
+ const QString &tooltip)
+{
+ return addToggleButton(QStringList(option), label, tooltip);
+}
+
+QToolButton *VcsBaseEditorParameterWidget::addToggleButton(const QStringList &options, const QString &label, const QString &tooltip)
{
QToolButton *tb = new QToolButton;
tb->setText(label);
- tb->setToolTip(toolTip);
+ tb->setToolTip(tooltip);
tb->setCheckable(true);
connect(tb, SIGNAL(toggled(bool)), this, SIGNAL(argumentsChanged()));
d->m_layout->addWidget(tb);
- d->m_optionMappings.append(OptionMapping(option, tb));
+ d->m_optionMappings.append(OptionMapping(options, tb));
return tb;
}
-QComboBox *VcsBaseEditorParameterWidget::addComboBox(const QString &option,
+QComboBox *VcsBaseEditorParameterWidget::addComboBox(const QStringList &options,
const QList<ComboBoxItem> &items)
{
QComboBox *cb = new QComboBox;
@@ -167,7 +171,7 @@ QComboBox *VcsBaseEditorParameterWidget::addComboBox(const QString &option,
cb->addItem(item.displayText, item.value);
connect(cb, SIGNAL(currentIndexChanged(int)), this, SIGNAL(argumentsChanged()));
d->m_layout->addWidget(cb);
- d->m_optionMappings.append(OptionMapping(option, cb));
+ d->m_optionMappings.append(OptionMapping(options, cb));
return cb;
}
@@ -212,30 +216,6 @@ void VcsBaseEditorParameterWidget::mapSetting(QComboBox *comboBox, int *setting)
comboBox->blockSignals(false);
}
-/*!
- \brief This property holds the format (template) of assignable command line
- options (like --file=<file> for example)
-
- The option's name and its actual value are specified with place markers
- within the template :
- \li %{option} for the option
- \li %{value} for the actual value
-
- \code
- QStringList("%{option}=%{value}"); // eg --file=a.out
- QStringList() << "%{option}" << "%{value}"; // eg --file a.out (two distinct arguments)
- \endcode
-*/
-QStringList VcsBaseEditorParameterWidget::comboBoxOptionTemplate() const
-{
- return d->m_comboBoxOptionTemplate;
-}
-
-void VcsBaseEditorParameterWidget::setComboBoxOptionTemplate(const QStringList &optTemplate) const
-{
- d->m_comboBoxOptionTemplate = optTemplate;
-}
-
void VcsBaseEditorParameterWidget::executeCommand()
{
}
@@ -251,8 +231,16 @@ VcsBaseEditorParameterWidget::OptionMapping::OptionMapping() :
{
}
-VcsBaseEditorParameterWidget::OptionMapping::OptionMapping(const QString &optName, QWidget *w) :
- optionName(optName), widget(w)
+VcsBaseEditorParameterWidget::OptionMapping::OptionMapping(const QString &option, QWidget *w) :
+ widget(w)
+{
+ if (!option.isEmpty())
+ options << option;
+}
+
+VcsBaseEditorParameterWidget::OptionMapping::OptionMapping(const QStringList &optionList, QWidget *w) :
+ options(optionList),
+ widget(w)
{
}
@@ -264,23 +252,15 @@ const QList<VcsBaseEditorParameterWidget::OptionMapping> &VcsBaseEditorParameter
QStringList VcsBaseEditorParameterWidget::argumentsForOption(const OptionMapping &mapping) const
{
const QToolButton *tb = qobject_cast<const QToolButton *>(mapping.widget);
- if (tb && tb->isChecked()) {
- if (!mapping.optionName.isEmpty())
- return QStringList(mapping.optionName);
- else
- return QStringList();
- }
+ if (tb && tb->isChecked())
+ return mapping.options;
const QComboBox *cb = qobject_cast<const QComboBox *>(mapping.widget);
if (cb) {
const QString value = cb->itemData(cb->currentIndex()).toString();
QStringList args;
- foreach (const QString &t, d->m_comboBoxOptionTemplate) {
- QString a = t;
- a.replace(QLatin1String("%{option}"), mapping.optionName);
- a.replace(QLatin1String("%{value}"), value);
- args += a;
- }
+ foreach (const QString &option, mapping.options)
+ args << option.arg(value);
return args;
}
diff --git a/src/plugins/vcsbase/vcsbaseeditorparameterwidget.h b/src/plugins/vcsbase/vcsbaseeditorparameterwidget.h
index 79f2f862e1..f81291012a 100644
--- a/src/plugins/vcsbase/vcsbaseeditorparameterwidget.h
+++ b/src/plugins/vcsbase/vcsbaseeditorparameterwidget.h
@@ -67,15 +67,14 @@ public:
QToolButton *addToggleButton(const QString &option, const QString &label,
const QString &tooltip = QString());
- QComboBox *addComboBox(const QString &option, const QList<ComboBoxItem> &items);
+ QToolButton *addToggleButton(const QStringList &options, const QString &label,
+ const QString &tooltip = QString());
+ QComboBox *addComboBox(const QStringList &options, const QList<ComboBoxItem> &items);
void mapSetting(QToolButton *button, bool *setting);
void mapSetting(QComboBox *comboBox, QString *setting);
void mapSetting(QComboBox *comboBox, int *setting);
- QStringList comboBoxOptionTemplate() const;
- void setComboBoxOptionTemplate(const QStringList &optTemplate) const;
-
// Return the effective arguments according to setting.
virtual QStringList arguments() const;
@@ -91,8 +90,9 @@ protected:
struct OptionMapping
{
OptionMapping();
- OptionMapping(const QString &optName, QWidget *w);
- QString optionName;
+ OptionMapping(const QString &option, QWidget *w);
+ OptionMapping(const QStringList &optionList, QWidget *w);
+ QStringList options;
QWidget *widget;
};