28const std::string DATASEARCH_DIRS{
"datasearch.directories"};
29const std::string PYTHONSCRIPTS_DIRS{
"pythonscripts.directories"};
30const std::string USERPYTHONPLUGINS_DIRS{
"user.python.plugins.directories"};
31const std::string DATASEARCH_ARCHIVE{
"datasearch.searcharchive"};
32const std::string DEFAULT_FACILITY{
"default.facility"};
33const std::string DEFAULTSAVE_DIR{
"defaultsave.directory"};
95 connect(
m_uiForm.pbDataRemDir, SIGNAL(clicked()),
this, SLOT(
remDir()));
96 connect(
m_uiForm.pbScriptRemDir, SIGNAL(clicked()),
this, SLOT(
remDir()));
97 connect(
m_uiForm.pbExtRemoveDir, SIGNAL(clicked()),
this, SLOT(
remDir()));
99 connect(
m_uiForm.pbDataMoveUp, SIGNAL(clicked()),
this, SLOT(
moveUp()));
100 connect(
m_uiForm.pbScriptMoveUp, SIGNAL(clicked()),
this, SLOT(
moveUp()));
101 connect(
m_uiForm.pbExtMoveUp, SIGNAL(clicked()),
this, SLOT(
moveUp()));
102 connect(
m_uiForm.pbDataMoveDown, SIGNAL(clicked()),
this, SLOT(
moveDown()));
103 connect(
m_uiForm.pbScriptMoveDown, SIGNAL(clicked()),
this, SLOT(
moveDown()));
113 auto &config = ConfigService::Instance();
114 auto populateListWidget = [&config](QListWidget *widget,
const std::string &key) {
115 const auto directories = QString::fromStdString(config.getString(key)).trimmed();
116 const auto items = directories.split(
";", Qt::SkipEmptyParts);
118 widget->addItems(items);
121 populateListWidget(
m_uiForm.lwDataSearchDirs, ConfigKeys::DATASEARCH_DIRS);
122 populateListWidget(
m_uiForm.lwScriptSearchDirs, ConfigKeys::PYTHONSCRIPTS_DIRS);
123 populateListWidget(
m_uiForm.lwExtSearchDirs, ConfigKeys::USERPYTHONPLUGINS_DIRS);
126 const auto archive = QString::fromStdString(config.getString(ConfigKeys::DATASEARCH_ARCHIVE)).trimmed().toLower();
127 const auto defaultFacility =
128 QString::fromStdString(config.getString(ConfigKeys::DEFAULT_FACILITY)).trimmed().toUpper();
129 m_uiForm.cbSearchArchive->addItem(QString(
"default facility only - ") + defaultFacility);
130 m_uiForm.cbSearchArchive->addItem(
"all");
131 m_uiForm.cbSearchArchive->addItem(
"off");
132 if (archive ==
"on") {
133 m_uiForm.cbSearchArchive->setCurrentIndex(0);
134 }
else if (archive ==
"all") {
135 m_uiForm.cbSearchArchive->setCurrentIndex(1);
136 }
else if (archive ==
"off") {
137 m_uiForm.cbSearchArchive->setCurrentIndex(2);
139 m_uiForm.cbSearchArchive->addItem(
"custom - " + archive.toUpper());
140 m_uiForm.cbSearchArchive->setCurrentIndex(3);
144 const auto saveDir = QString::fromStdString(config.getString(ConfigKeys::DEFAULTSAVE_DIR)).trimmed();
145 m_uiForm.leDefaultSave->setText(saveDir);
152 auto &config = ConfigService::Instance();
154 QString newSearchArchive =
m_uiForm.cbSearchArchive->currentText().toLower();
155 if (newSearchArchive ==
"all" || newSearchArchive ==
"off") {
157 }
else if (newSearchArchive.startsWith(
"default facility only")) {
158 newSearchArchive =
"on";
163 QString::fromStdString(Mantid::Kernel::ConfigService::Instance().getString(
"datasearch.searcharchive"))
170 auto toConfigPath = [](QString path) {
173 auto unixStylePath = path.replace(
'\\',
'/');
174 if (!unixStylePath.endsWith(
'/'))
175 unixStylePath.append(
'/');
176 return unixStylePath;
178 auto toConfigString = [&toConfigPath](QListWidget *itemsWidget) {
180 for (
int i = 0; i < itemsWidget->count(); i++) {
181 const auto path = itemsWidget->item(i)->text().trimmed();
183 paths.append(toConfigPath(path));
185 return paths.join(
";").toStdString();
189 config.setString(ConfigKeys::DATASEARCH_ARCHIVE, newSearchArchive.toStdString());
190 config.setString(ConfigKeys::DATASEARCH_DIRS, toConfigString(
m_uiForm.lwDataSearchDirs));
191 config.setString(ConfigKeys::DEFAULTSAVE_DIR, toConfigPath(
m_uiForm.leDefaultSave->text().trimmed()).toStdString());
193 config.setString(ConfigKeys::PYTHONSCRIPTS_DIRS, toConfigString(
m_uiForm.lwScriptSearchDirs));
194 config.setString(ConfigKeys::USERPYTHONPLUGINS_DIRS, toConfigString(
m_uiForm.lwExtSearchDirs));
197 config.saveConfig(config.getUserFilename());
254 const auto lastDirectory = settings.value(QSettingsKeys::LastDirectory,
"").toString();
256 const auto newDir = QFileDialog::getExistingDirectory(
this, tr(
"Select New Data Directory"), lastDirectory,
257 QFileDialog::ShowDirsOnly);
259 if (!newDir.isEmpty()) {
260 settings.setValue(QSettingsKeys::LastDirectory, newDir);
306 auto lastDirectory =
m_uiForm.leDefaultSave->text().trimmed();
307 if (lastDirectory.isEmpty())
308 lastDirectory = settings.value(QSettingsKeys::LastDirectory,
"").toString();
310 const auto newDir = QFileDialog::getExistingDirectory(
this, tr(
"Select New Default Save Directory"), lastDirectory,
311 QFileDialog::ShowDirsOnly);
313 if (!newDir.isEmpty()) {
314 const auto path = newDir + QDir::separator();
315 settings.setValue(QSettingsKeys::LastDirectory, path);
316 m_uiForm.leDefaultSave->setText(path);