1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0
#include "formclasswizardpage.h"
#include "formclasswizardparameters.h"
#include "newclasswidget.h"
#include "../designertr.h"
#include <coreplugin/icore.h>
#include <cppeditor/cppeditorconstants.h>
#include <utils/mimeutils.h>
#include <utils/wizard.h>
#include <QGridLayout>
#include <QGroupBox>
#include <QMessageBox>
#include <QVBoxLayout>
#include <QVariant>
namespace Designer {
namespace Internal {
FormClassWizardPage::FormClassWizardPage()
{
setTitle(Tr::tr("Choose a Class Name"));
auto classGroupBox = new QGroupBox(this);
classGroupBox->setTitle(Tr::tr("Class"));
m_newClassWidget = new NewClassWidget(classGroupBox);
m_newClassWidget->setHeaderExtension(
Utils::mimeTypeForName(CppEditor::Constants::CPP_HEADER_MIMETYPE).preferredSuffix());
m_newClassWidget->setSourceExtension(
Utils::mimeTypeForName(CppEditor::Constants::CPP_SOURCE_MIMETYPE).preferredSuffix());
m_newClassWidget->setLowerCaseFiles(lowercaseHeaderFiles());
connect(m_newClassWidget, &NewClassWidget::validChanged,
this, &FormClassWizardPage::slotValidChanged);
setProperty(Utils::SHORT_TITLE_PROPERTY, Tr::tr("Class Details"));
auto verticalLayout = new QVBoxLayout(classGroupBox);
verticalLayout->addWidget(m_newClassWidget);
auto gridLayout = new QGridLayout(this);
gridLayout->addWidget(classGroupBox, 0, 0, 1, 1);
}
FormClassWizardPage::~FormClassWizardPage() = default;
// Retrieve settings of CppEditor plugin.
bool FormClassWizardPage::lowercaseHeaderFiles()
{
QString lowerCaseSettingsKey = CppEditor::Constants::CPPEDITOR_SETTINGSGROUP;
lowerCaseSettingsKey += '/';
lowerCaseSettingsKey += CppEditor::Constants::LOWERCASE_CPPFILES_KEY;
const bool lowerCaseDefault = CppEditor::Constants::LOWERCASE_CPPFILES_DEFAULT;
return Core::ICore::settings()->value(lowerCaseSettingsKey, QVariant(lowerCaseDefault)).toBool();
}
void FormClassWizardPage::setClassName(const QString &suggestedClassName)
{
// Is it valid, now?
m_newClassWidget->setClassName(suggestedClassName);
slotValidChanged();
}
Utils::FilePath FormClassWizardPage::filePath() const
{
return m_newClassWidget->filePath();
}
void FormClassWizardPage::setFilePath(const Utils::FilePath &p)
{
m_newClassWidget->setFilePath(p);
}
void FormClassWizardPage::getParameters(FormClassWizardParameters *p) const
{
p->className = m_newClassWidget->className();
p->path = filePath();
p->sourceFile = m_newClassWidget->sourceFileName();
p->headerFile = m_newClassWidget->headerFileName();
p->uiFile = m_newClassWidget-> formFileName();
}
void FormClassWizardPage::slotValidChanged()
{
const bool validNow = m_newClassWidget->isValid();
if (m_isValid != validNow) {
m_isValid = validNow;
emit completeChanged();
}
}
bool FormClassWizardPage::isComplete() const
{
return m_isValid;
}
bool FormClassWizardPage::validatePage()
{
QString errorMessage;
const bool rc = m_newClassWidget->isValid(&errorMessage);
if (!rc)
QMessageBox::warning(this, Tr::tr("%1 - Error").arg(title()), errorMessage);
return rc;
}
} // namespace Internal
} // namespace Designer
|