6#include "ui_templateoptionspage.h"
8#include <shared_settings_p.h>
9#include <iconloader_p.h>
11#include <QtDesigner/abstractformeditor.h>
12#include <abstractdialoggui_p.h>
16using namespace Qt::StringLiterals;
24 m_ui(
new QT_PREPEND_NAMESPACE(qdesigner_internal)::Ui::TemplateOptionsWidget)
28 m_ui->m_addTemplatePathButton->setIcon(
29 qdesigner_internal::createIconSet(
"plus.png"_L1));
30 m_ui->m_removeTemplatePathButton->setIcon(
31 qdesigner_internal::createIconSet(
"minus.png"_L1));
33 connect(m_ui->m_templatePathListWidget, &QListWidget::itemSelectionChanged,
35 connect(m_ui->m_addTemplatePathButton, &QAbstractButton::clicked,
36 this, &TemplateOptionsWidget::addTemplatePath);
37 connect(m_ui->m_removeTemplatePathButton, &QAbstractButton::clicked,
49 const int count = m_ui->m_templatePathListWidget->count();
50 for (
int i = 0; i < count; i++) {
51 rc += m_ui->m_templatePathListWidget->item(i)->text();
59 m_ui->m_templatePathListWidget->clear();
62 templatePathSelectionChanged();
64 for (
const auto &s : l)
65 m_ui->m_templatePathListWidget->addItem(s);
66 m_ui->m_templatePathListWidget->setCurrentItem(m_ui->m_templatePathListWidget->item(0));
72 const QString templatePath = chooseTemplatePath(m_core,
this);
73 if (templatePath.isEmpty())
77 = m_ui->m_templatePathListWidget->findItems(templatePath, Qt::MatchExactly);
78 if (!existing.isEmpty())
81 QListWidgetItem *newItem =
new QListWidgetItem(templatePath);
82 m_ui->m_templatePathListWidget->addItem(newItem);
83 m_ui->m_templatePathListWidget->setCurrentItem(newItem);
88 const auto selectedPaths = m_ui->m_templatePathListWidget->selectedItems();
89 if (selectedPaths.isEmpty())
91 delete selectedPaths.constFirst();
96 const auto selectedPaths = m_ui->m_templatePathListWidget->selectedItems();
97 m_ui->m_removeTemplatePathButton->setEnabled(!selectedPaths.isEmpty());
102 QString rc = core->dialogGui()->getExistingDirectory(parent,
103 tr(
"Pick a directory to save templates in"));
107 if (rc.endsWith(QDir::separator()))
108 rc.remove(rc.size() - 1, 1);
121 return QCoreApplication::translate(
"TemplateOptionsPage",
"Template Paths");
126 m_widget =
new TemplateOptionsWidget(m_core, parent);
127 m_initialTemplatePaths = QDesignerSharedSettings(m_core).additionalFormTemplatePaths();
128 m_widget->setTemplatePaths(m_initialTemplatePaths);
135 const QStringList newTemplatePaths = m_widget->templatePaths();
136 if (newTemplatePaths != m_initialTemplatePaths) {
138 settings.setAdditionalFormTemplatePaths(newTemplatePaths);
139 m_initialTemplatePaths = newTemplatePaths;
QString name() const override
Combined button and popup list for selecting options.
Auxiliary methods to store/retrieve settings.