Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
templateoptionspage.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
// Qt-Security score:significant reason:default
4
5
#
include
"templateoptionspage.h"
6
#
include
"ui_templateoptionspage.h"
7
8
#
include
<
shared_settings_p
.
h
>
9
#
include
<
iconloader_p
.
h
>
10
11
#
include
<
QtDesigner
/
abstractformeditor
.
h
>
12
#
include
<
abstractdialoggui_p
.
h
>
13
14
QT_BEGIN_NAMESPACE
15
16
using
namespace
Qt::StringLiterals;
17
18
namespace
qdesigner_internal
{
19
20
// ----------------- TemplateOptionsWidget
21
TemplateOptionsWidget
::TemplateOptionsWidget(QDesignerFormEditorInterface *core,
QWidget
*parent) :
22
QWidget(parent),
23
m_core(core),
24
m_ui(
new
QT_PREPEND_NAMESPACE(qdesigner_internal)::Ui::TemplateOptionsWidget)
25
{
26
m_ui->setupUi(
this
);
27
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
));
32
33
connect(m_ui->m_templatePathListWidget, &QListWidget::itemSelectionChanged,
34
this
, &
TemplateOptionsWidget
::templatePathSelectionChanged);
35
connect(m_ui->m_addTemplatePathButton, &QAbstractButton::clicked,
36
this
, &TemplateOptionsWidget::addTemplatePath);
37
connect(m_ui->m_removeTemplatePathButton, &QAbstractButton::clicked,
38
this
, &
TemplateOptionsWidget
::removeTemplatePath);
39
}
40
41
TemplateOptionsWidget
::~
TemplateOptionsWidget
()
42
{
43
delete
m_ui;
44
}
45
46
QStringList
TemplateOptionsWidget
::
templatePaths
()
const
47
{
48
QStringList rc;
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();
52
}
53
return
rc;
54
}
55
56
void
TemplateOptionsWidget
::
setTemplatePaths
(
const
QStringList &l)
57
{
58
// add paths and select 0
59
m_ui->m_templatePathListWidget->clear();
60
if
(l.isEmpty()) {
61
// disable button
62
templatePathSelectionChanged();
63
}
else
{
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));
67
}
68
}
69
70
void
TemplateOptionsWidget
::addTemplatePath()
71
{
72
const
QString templatePath = chooseTemplatePath(m_core,
this
);
73
if
(templatePath.isEmpty())
74
return
;
75
76
const
auto
existing
77
= m_ui->m_templatePathListWidget->findItems(templatePath, Qt::MatchExactly);
78
if
(!existing.isEmpty())
79
return
;
80
81
QListWidgetItem *newItem =
new
QListWidgetItem(templatePath);
82
m_ui->m_templatePathListWidget->addItem(newItem);
83
m_ui->m_templatePathListWidget->setCurrentItem(newItem);
84
}
85
86
void
TemplateOptionsWidget
::removeTemplatePath()
87
{
88
const
auto
selectedPaths = m_ui->m_templatePathListWidget->selectedItems();
89
if
(selectedPaths.isEmpty())
90
return
;
91
delete
selectedPaths.constFirst();
92
}
93
94
void
TemplateOptionsWidget
::templatePathSelectionChanged()
95
{
96
const
auto
selectedPaths = m_ui->m_templatePathListWidget->selectedItems();
97
m_ui->m_removeTemplatePathButton->setEnabled(!selectedPaths.isEmpty());
98
}
99
100
QString
TemplateOptionsWidget
::chooseTemplatePath(QDesignerFormEditorInterface *core,
QWidget
*parent)
101
{
102
QString rc = core->dialogGui()->getExistingDirectory(parent,
103
tr(
"Pick a directory to save templates in"
));
104
if
(rc.isEmpty())
105
return
rc;
106
107
if
(rc.endsWith(QDir::separator()))
108
rc.remove(rc.size() - 1, 1);
109
return
rc;
110
}
111
112
// ----------------- TemplateOptionsPage
113
TemplateOptionsPage
::TemplateOptionsPage(QDesignerFormEditorInterface *core) :
114
m_core(core)
115
{
116
}
117
118
QString
TemplateOptionsPage
::
name
()
const
119
{
120
//: Tab in preferences dialog
121
return
QCoreApplication::translate(
"TemplateOptionsPage"
,
"Template Paths"
);
122
}
123
124
QWidget
*
TemplateOptionsPage
::createPage(
QWidget
*parent)
125
{
126
m_widget =
new
TemplateOptionsWidget(m_core, parent);
127
m_initialTemplatePaths = QDesignerSharedSettings(m_core).additionalFormTemplatePaths();
128
m_widget->setTemplatePaths(m_initialTemplatePaths);
129
return
m_widget;
130
}
131
132
void
TemplateOptionsPage
::
apply
()
133
{
134
if
(m_widget) {
135
const
QStringList newTemplatePaths = m_widget->templatePaths();
136
if
(newTemplatePaths != m_initialTemplatePaths) {
137
QDesignerSharedSettings
settings(m_core);
138
settings.setAdditionalFormTemplatePaths(newTemplatePaths);
139
m_initialTemplatePaths = newTemplatePaths;
140
}
141
}
142
}
143
144
void
TemplateOptionsPage
::
finish
()
145
{
146
}
147
}
148
QT_END_NAMESPACE
QPainter::QWidget
friend class QWidget
Definition
qpainter.h:432
qdesigner_internal::QDesignerSharedSettings
Definition
shared_settings_p.h:43
qdesigner_internal::TemplateOptionsPage
Definition
templateoptionspage.h:53
qdesigner_internal::TemplateOptionsPage::apply
void apply() override
Definition
templateoptionspage.cpp:132
qdesigner_internal::TemplateOptionsPage::name
QString name() const override
Definition
templateoptionspage.cpp:118
qdesigner_internal::TemplateOptionsPage::finish
void finish() override
Definition
templateoptionspage.cpp:144
qdesigner_internal::TemplateOptionsWidget
Definition
templateoptionspage.h:28
qdesigner_internal::TemplateOptionsWidget::~TemplateOptionsWidget
~TemplateOptionsWidget() override
Definition
templateoptionspage.cpp:41
qdesigner_internal::TemplateOptionsWidget::setTemplatePaths
void setTemplatePaths(const QStringList &l)
Definition
templateoptionspage.cpp:56
qdesigner_internal::TemplateOptionsWidget::templatePaths
QStringList templatePaths() const
Definition
templateoptionspage.cpp:46
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qdesigner_internal
Auxiliary methods to store/retrieve settings.
Definition
buddyeditor.cpp:67
qttools
src
designer
src
components
formeditor
templateoptionspage.cpp
Generated on
for Qt by
1.18.0