Mercurial > hg > svgui
diff widgets/PluginPathConfigurator.cpp @ 1291:b5c71304286e plugin-path-config
Add "Add"
author | Chris Cannam |
---|---|
date | Wed, 23 May 2018 16:24:35 +0100 |
parents | 050eca637c19 |
children | 41824255ddf2 |
line wrap: on
line diff
--- a/widgets/PluginPathConfigurator.cpp Wed May 23 11:52:19 2018 +0100 +++ b/widgets/PluginPathConfigurator.cpp Wed May 23 16:24:35 2018 +0100 @@ -20,6 +20,7 @@ #include <QComboBox> #include <QLabel> #include <QCheckBox> +#include <QFileDialog> #include "IconLoader.h" #include "WidgetScale.h" @@ -29,6 +30,38 @@ { m_layout = new QGridLayout; setLayout(m_layout); + + QHBoxLayout *buttons = new QHBoxLayout; + + m_down = new QPushButton; + m_down->setIcon(IconLoader().load("down")); + m_down->setToolTip(tr("Move the selected location later in the list")); + connect(m_down, SIGNAL(clicked()), this, SLOT(downClicked())); + buttons->addWidget(m_down); + + m_up = new QPushButton; + m_up->setIcon(IconLoader().load("up")); + m_up->setToolTip(tr("Move the selected location earlier in the list")); + connect(m_up, SIGNAL(clicked()), this, SLOT(upClicked())); + buttons->addWidget(m_up); + + m_add = new QPushButton; + m_add->setIcon(IconLoader().load("plus")); + m_add->setToolTip(tr("Move the selected location earlier in the list")); + connect(m_add, SIGNAL(clicked()), this, SLOT(addClicked())); + buttons->addWidget(m_add); + + m_delete = new QPushButton; + m_delete->setIcon(IconLoader().load("datadelete")); + m_delete->setToolTip(tr("Remove the selected location from the list")); + connect(m_delete, SIGNAL(clicked()), this, SLOT(deleteClicked())); + buttons->addWidget(m_delete); + + m_reset = new QPushButton; + m_reset->setText(tr("Reset")); + m_reset->setToolTip(tr("Reset the list for this plugin type to its default")); + connect(m_reset, SIGNAL(clicked()), this, SLOT(resetClicked())); + buttons->addWidget(m_reset); int row = 0; @@ -42,7 +75,6 @@ this, SLOT(currentTypeChanged(QString))); m_layout->setColumnStretch(1, 10); - ++row; m_list = new QListWidget; @@ -51,40 +83,15 @@ connect(m_list, SIGNAL(currentRowChanged(int)), this, SLOT(currentLocationChanged(int))); ++row; - - QHBoxLayout *buttons = new QHBoxLayout; - - m_down = new QPushButton; - m_down->setIcon(IconLoader().load("down")); - m_down->setToolTip(tr("Move the selected location later in the list")); - connect(m_down, SIGNAL(clicked()), this, SLOT(downClicked())); - buttons->addWidget(m_down); - - m_up = new QPushButton; - m_up->setIcon(IconLoader().load("up")); - m_up->setToolTip(tr("Move the selected location earlier in the list")); - connect(m_up, SIGNAL(clicked()), this, SLOT(upClicked())); - buttons->addWidget(m_up); - - m_delete = new QPushButton; - m_delete->setIcon(IconLoader().load("datadelete")); - m_delete->setToolTip(tr("Remove the selected location from the list")); - connect(m_delete, SIGNAL(clicked()), this, SLOT(deleteClicked())); - buttons->addWidget(m_delete); - - m_reset = new QPushButton; - m_reset->setText(tr("Reset")); - m_reset->setToolTip(tr("Reset the list for this plugin type to its default")); - connect(m_reset, SIGNAL(clicked()), this, SLOT(resetClicked())); - buttons->addWidget(m_reset); m_layout->addLayout(buttons, row, 2); ++row; - + m_envOverride = new QCheckBox; connect(m_envOverride, SIGNAL(stateChanged(int)), this, SLOT(envOverrideChanged(int))); m_layout->addWidget(m_envOverride, row, 0, 1, 3); + ++row; } PluginPathConfigurator::~PluginPathConfigurator() @@ -123,7 +130,7 @@ QString envVariable = m_paths.at(type).envVariable; bool useEnvVariable = m_paths.at(type).useEnvVariable; m_envOverride->setText - (tr("Allow the %1 environment variable to override this") + (tr("Allow the %1 environment variable to take priority over this") .arg(envVariable)); m_envOverride->setCheckState(useEnvVariable ? Qt::Checked : Qt::Unchecked); @@ -225,6 +232,23 @@ } void +PluginPathConfigurator::addClicked() +{ + QString type = m_pluginTypeSelector->currentText(); + + QString newDir = QFileDialog::getExistingDirectory + (this, tr("Choose directory to add")); + + if (newDir == QString()) return; + + auto newEntry = m_paths.at(type); + newEntry.directories.push_back(newDir); + m_paths[type] = newEntry; + + populateFor(type, newEntry.directories.size() - 1); +} + +void PluginPathConfigurator::deleteClicked() { QString type = m_pluginTypeSelector->currentText();