Skip to content

Commit 2828742

Browse files
committed
GUI: Moved 'import project' to 'Paths and Defines' tab
1 parent 22abfb8 commit 2828742

3 files changed

Lines changed: 95 additions & 35 deletions

File tree

gui/projectfiledialog.cpp

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ ProjectFileDialog::ProjectFileDialog(const QString &path, QWidget *parent)
9292

9393
connect(mUI.mButtons, SIGNAL(accepted()), this, SLOT(accept()));
9494
connect(mUI.mBtnBrowseBuildDir, SIGNAL(clicked()), this, SLOT(browseBuildDir()));
95+
connect(mUI.mBtnClearImportProject, SIGNAL(clicked(bool)), this, SLOT(clearImportProject()));
9596
connect(mUI.mBtnBrowseImportProject, SIGNAL(clicked()), this, SLOT(browseImportProject()));
9697
connect(mUI.mBtnAddCheckPath, SIGNAL(clicked()), this, SLOT(addCheckPath()));
9798
connect(mUI.mBtnEditCheckPath, SIGNAL(clicked()), this, SLOT(editCheckPath()));
@@ -138,6 +139,7 @@ void ProjectFileDialog::loadFromProjectFile(const ProjectFile *projectFile)
138139
setExcludedPaths(projectFile->getExcludedPaths());
139140
setLibraries(projectFile->getLibraries());
140141
setSuppressions(projectFile->getSuppressions());
142+
updatePathsAndDefines();
141143
}
142144

143145
void ProjectFileDialog::saveToProjectFile(ProjectFile *projectFile) const
@@ -185,15 +187,42 @@ void ProjectFileDialog::browseBuildDir()
185187
mUI.mEditBuildDir->setText(dir);
186188
}
187189

190+
void ProjectFileDialog::updatePathsAndDefines() {
191+
bool importProject = !mUI.mEditImportProject->text().isEmpty();
192+
mUI.mBtnClearImportProject->setEnabled(importProject);
193+
mUI.mListCheckPaths->setEnabled(!importProject);
194+
mUI.mBtnAddCheckPath->setEnabled(!importProject);
195+
mUI.mBtnEditCheckPath->setEnabled(!importProject);
196+
mUI.mBtnRemoveCheckPath->setEnabled(!importProject);
197+
mUI.mEditDefines->setEnabled(!importProject);
198+
mUI.mBtnAddInclude->setEnabled(!importProject);
199+
mUI.mBtnEditInclude->setEnabled(!importProject);
200+
mUI.mBtnRemoveInclude->setEnabled(!importProject);
201+
mUI.mBtnIncludeUp->setEnabled(!importProject);
202+
mUI.mBtnIncludeDown->setEnabled(!importProject);
203+
}
204+
205+
void ProjectFileDialog::clearImportProject() {
206+
mUI.mEditImportProject->clear();
207+
updatePathsAndDefines();
208+
}
209+
188210
void ProjectFileDialog::browseImportProject()
189211
{
190212
const QFileInfo inf(mFilePath);
191213
const QDir &dir = inf.absoluteDir();
192214
QString fileName = QFileDialog::getOpenFileName(this, tr("Import Project"),
193215
dir.canonicalPath(),
194216
tr("Visual Studio (*.sln *.vcxproj);;Compile database (compile_database.json)"));
195-
if (!fileName.isEmpty())
217+
if (!fileName.isEmpty()) {
196218
mUI.mEditImportProject->setText(dir.relativeFilePath(fileName));
219+
updatePathsAndDefines();
220+
}
221+
}
222+
223+
QString ProjectFileDialog::getImportProject() const
224+
{
225+
return mUI.mEditImportProject->text();
197226
}
198227

199228
void ProjectFileDialog::addIncludeDir(const QString &dir)
@@ -242,10 +271,6 @@ QString ProjectFileDialog::getBuildDir() const
242271
return mUI.mEditBuildDir->text();
243272
}
244273

245-
QString ProjectFileDialog::getImportProject() const
246-
{
247-
return mUI.mEditImportProject->text();
248-
}
249274

250275
QStringList ProjectFileDialog::getIncludePaths() const
251276
{

gui/projectfiledialog.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ class ProjectFileDialog : public QDialog {
4646
void loadFromProjectFile(const ProjectFile *projectFile);
4747
void saveToProjectFile(ProjectFile *projectFile) const;
4848

49+
private:
50+
/** Enable and disable widgets in the 'Paths and Defines' tab */
51+
void updatePathsAndDefines();
52+
4953
/**
5054
* @brief Return project root path from the dialog control.
5155
* @return Project root path.
@@ -147,6 +151,11 @@ protected slots:
147151
*/
148152
void browseBuildDir();
149153

154+
/**
155+
* @brief Clear 'import project'.
156+
*/
157+
void clearImportProject();
158+
150159
/**
151160
* @brief Browse for solution / project / compile database.
152161
*/

gui/projectfiledialog.ui

Lines changed: 56 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>642</width>
10-
<height>434</height>
10+
<height>498</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -69,34 +69,6 @@
6969
</item>
7070
</layout>
7171
</item>
72-
<item>
73-
<layout class="QVBoxLayout" name="verticalLayout_3">
74-
<item>
75-
<widget class="QLabel" name="mLabelImport">
76-
<property name="toolTip">
77-
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Cppcheck can import Visual studio solutions (*.sln), Visual studio projects (*.vcxproj) or compile databases.&lt;/p&gt;&lt;p&gt;Files to check, include paths, configurations, defines, platform settings are imported.\n\nLibrary settings are not imported.\n\n&lt;/p&gt;&lt;p&gt;A compile database can be generated from a cmake project using cmake, or from a Makefile project using bear (build ear).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
78-
</property>
79-
<property name="text">
80-
<string>Import Project (Visual studio / compile database)</string>
81-
</property>
82-
</widget>
83-
</item>
84-
<item>
85-
<layout class="QHBoxLayout" name="horizontalLayout">
86-
<item>
87-
<widget class="QLineEdit" name="mEditImportProject"/>
88-
</item>
89-
<item>
90-
<widget class="QPushButton" name="mBtnBrowseImportProject">
91-
<property name="text">
92-
<string>...</string>
93-
</property>
94-
</widget>
95-
</item>
96-
</layout>
97-
</item>
98-
</layout>
99-
</item>
10072
<item>
10173
<layout class="QHBoxLayout" name="mLayoutLibraries">
10274
<item>
@@ -137,7 +109,61 @@
137109
<attribute name="title">
138110
<string>Paths and Defines</string>
139111
</attribute>
140-
<layout class="QVBoxLayout" name="verticalLayout_10">
112+
<layout class="QVBoxLayout" name="verticalLayout_8">
113+
<item>
114+
<layout class="QVBoxLayout" name="verticalLayout_3">
115+
<item>
116+
<widget class="QLabel" name="mLabelImport">
117+
<property name="toolTip">
118+
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Cppcheck can import Visual studio solutions (*.sln), Visual studio projects (*.vcxproj) or compile databases.&lt;/p&gt;&lt;p&gt;Files to check, defines, include paths are imported.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
119+
</property>
120+
<property name="text">
121+
<string>Import Project (Visual studio / compile database)</string>
122+
</property>
123+
</widget>
124+
</item>
125+
<item>
126+
<layout class="QHBoxLayout" name="horizontalLayout">
127+
<item>
128+
<widget class="QLineEdit" name="mEditImportProject">
129+
<property name="readOnly">
130+
<bool>true</bool>
131+
</property>
132+
</widget>
133+
</item>
134+
<item>
135+
<widget class="QPushButton" name="mBtnClearImportProject">
136+
<property name="enabled">
137+
<bool>false</bool>
138+
</property>
139+
<property name="text">
140+
<string/>
141+
</property>
142+
<property name="icon">
143+
<iconset>
144+
<activeon>:/images/edit-clear.png</activeon>
145+
</iconset>
146+
</property>
147+
</widget>
148+
</item>
149+
<item>
150+
<widget class="QPushButton" name="mBtnBrowseImportProject">
151+
<property name="text">
152+
<string>...</string>
153+
</property>
154+
</widget>
155+
</item>
156+
</layout>
157+
</item>
158+
</layout>
159+
</item>
160+
<item>
161+
<widget class="Line" name="line">
162+
<property name="orientation">
163+
<enum>Qt::Horizontal</enum>
164+
</property>
165+
</widget>
166+
</item>
141167
<item>
142168
<layout class="QHBoxLayout" name="mLayoutCheckPaths">
143169
<item>

0 commit comments

Comments
 (0)