VCS: Abstract multi-choice settings in editor config

Change-Id: Iafc089f5ad3796348ab9521b71b31cb645238292
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Orgad Shaneh
2019-11-23 22:57:03 +02:00
committed by Orgad Shaneh
parent 9c96a1c4de
commit f2cd459ec5
4 changed files with 25 additions and 20 deletions

View File

@@ -106,7 +106,7 @@ public:
that should trigger the rerun of the VCS operation.
*/
VcsBaseEditorConfig::ComboBoxItem::ComboBoxItem(const QString &text, const QVariant &val) :
VcsBaseEditorConfig::ChoiceItem::ChoiceItem(const QString &text, const QVariant &val) :
displayText(text),
value(val)
{
@@ -171,11 +171,13 @@ QAction *VcsBaseEditorConfig::addToggleButton(const QStringList &options,
return action;
}
QComboBox *VcsBaseEditorConfig::addComboBox(const QStringList &options,
const QList<ComboBoxItem> &items)
QComboBox *VcsBaseEditorConfig::addChoices(const QString &title,
const QStringList &options,
const QList<ChoiceItem> &items)
{
auto cb = new QComboBox;
foreach (const ComboBoxItem &item, items)
cb->setToolTip(title);
for (const ChoiceItem &item : items)
cb->addItem(item.displayText, item.value);
connect(cb, QOverload<int>::of(&QComboBox::currentIndexChanged),
this, &VcsBaseEditorConfig::argumentsChanged);

View File

@@ -51,11 +51,11 @@ public:
explicit VcsBaseEditorConfig(QToolBar *toolBar);
~VcsBaseEditorConfig() override;
class VCSBASE_EXPORT ComboBoxItem
class VCSBASE_EXPORT ChoiceItem
{
public:
ComboBoxItem() = default;
ComboBoxItem(const QString &text, const QVariant &val);
ChoiceItem() = default;
ChoiceItem(const QString &text, const QVariant &val);
QString displayText;
QVariant value;
};
@@ -68,7 +68,9 @@ public:
const QString &tooltip = QString());
QAction *addToggleButton(const QStringList &options, const QString &label,
const QString &tooltip = QString());
QComboBox *addComboBox(const QStringList &options, const QList<ComboBoxItem> &items);
QComboBox *addChoices(const QString &title,
const QStringList &options,
const QList<ChoiceItem> &items);
void mapSetting(QAction *button, bool *setting);
void mapSetting(QComboBox *comboBox, QString *setting);