ui: revised project setup wizard

* adjusted some help texts
* moved exclude paths and source file extensions contents to indexed paths selection in project setup wizard
* removed compiler flags from CDB project setup wizard
* added wizard content that shows some info text regarding the purpose of source groups
* renamed ContentSummary to ContentGroup
* fixed issue with CompilationDatabase include path extraction
This commit is contained in:
mlangkabel
2017-10-23 16:10:54 +02:00
parent d57dd6dd9c
commit d1536031c9
15 changed files with 236 additions and 137 deletions
+1 -1
View File
@@ -59,7 +59,7 @@ void utility::CompilationDatabase::init()
for (size_t i = 0; i < command.CommandLine.size(); i++)
{
std::string argument = command.CommandLine[i];
if (!utility::isPrefix("-", command.CommandLine[i + 1]))
if (i + 1 < command.CommandLine.size() && !utility::isPrefix("-", command.CommandLine[i + 1]))
{
argument += command.CommandLine[++i];
}
+4 -2
View File
@@ -178,6 +178,8 @@ add_files(
qt/window/project_wizzard/QtProjectWizzardContentExtensions.h
qt/window/project_wizzard/QtProjectWizzardContentFlags.cpp
qt/window/project_wizzard/QtProjectWizzardContentFlags.h
qt/window/project_wizzard/QtProjectWizzardContentGroup.cpp
qt/window/project_wizzard/QtProjectWizzardContentGroup.h
qt/window/project_wizzard/QtProjectWizzardContentLanguageAndStandard.cpp
qt/window/project_wizzard/QtProjectWizzardContentLanguageAndStandard.h
qt/window/project_wizzard/QtProjectWizzardContentPath.cpp
@@ -192,8 +194,8 @@ add_files(
qt/window/project_wizzard/QtProjectWizzardContentSelect.h
qt/window/project_wizzard/QtProjectWizzardContentSourceGroupData.cpp
qt/window/project_wizzard/QtProjectWizzardContentSourceGroupData.h
qt/window/project_wizzard/QtProjectWizzardContentSummary.cpp
qt/window/project_wizzard/QtProjectWizzardContentSummary.h
qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.cpp
qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.h
qt/window/project_wizzard/QtProjectWizzardContentVS.cpp
qt/window/project_wizzard/QtProjectWizzardContentVS.h
qt/window/project_wizzard/QtProjectWizzardWindow.cpp
+3 -1
View File
@@ -25,7 +25,9 @@ QtHelpButton::QtHelpButton(const QString& helpText, QWidget* parent)
void QtHelpButton::handleHelpPress()
{
QMessageBox msgBox;
msgBox.setText("Help");
msgBox.setWindowTitle("Sourcetrail");
msgBox.setIcon(QMessageBox::Information);
msgBox.setText("Sourcetrail Help");
msgBox.setInformativeText(m_helpText);
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.setDefaultButton(QMessageBox::Ok);
@@ -8,7 +8,7 @@
#include "Application.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentPaths.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentPreferences.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentSummary.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentGroup.h"
#include "utility/utilityApp.h"
QtPreferencesWindow::QtPreferencesWindow(QWidget* parent)
@@ -23,7 +23,7 @@ QtPreferencesWindow::QtPreferencesWindow(QWidget* parent)
m_appSettings.setPluginPort(appSettings->getPluginPort());
QtProjectWizzardContentSummary* summary = new QtProjectWizzardContentSummary(this);
QtProjectWizzardContentGroup* summary = new QtProjectWizzardContentGroup(this);
summary->setIsForm(true);
summary->addContent(new QtProjectWizzardContentPreferences(this));
@@ -17,7 +17,8 @@
#include "qt/window/project_wizzard/QtProjectWizzardContentProjectData.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentSelect.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentSourceGroupData.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentSummary.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentGroup.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentVS.h"
#include "settings/SourceGroupSettingsCxxEmpty.h"
#include "settings/SourceGroupSettingsCxxCdb.h"
@@ -296,20 +297,20 @@ QtProjectWizzardWindow* QtProjectWizzard::createWindowWithContent(
return window;
}
QtProjectWizzardWindow* QtProjectWizzard::createWindowWithSummary(
std::function<void(QtProjectWizzardWindow*, QtProjectWizzardContentSummary*)> func
QtProjectWizzardWindow* QtProjectWizzard::createWindowWithContentGroup(
std::function<void(QtProjectWizzardWindow*, QtProjectWizzardContentGroup*)> func
){
QtProjectWizzardWindow* window = new QtProjectWizzardWindow(parentWidget());
connect(window, &QtProjectWizzardWindow::previous, &m_windowStack, &QtWindowStack::popWindow);
connect(window, &QtProjectWizzardWindow::canceled, this, &QtProjectWizzard::cancelSourceGroup);
QtProjectWizzardContentSummary* summary = new QtProjectWizzardContentSummary(window);
QtProjectWizzardContentGroup* contentGroup = new QtProjectWizzardContentGroup(window);
window->setPreferredSize(QSize(750, 500));
window->setContent(summary);
window->setPreferredSize(QSize(750, 600));
window->setContent(contentGroup);
window->setScrollAble(window->content()->isScrollAble());
func(window, summary);
func(window, contentGroup);
window->setup();
m_windowStack.pushWindow(window);
@@ -351,7 +352,16 @@ void QtProjectWizzard::generalButtonClicked()
return;
}
setContent(new QtProjectWizzardContentProjectData(m_projectSettings, this, m_editing));
QtProjectWizzardContentGroup* contentGroup = new QtProjectWizzardContentGroup(this);
contentGroup->addContent(new QtProjectWizzardContentProjectData(m_projectSettings, this, m_editing));
if (m_allSourceGroupSettings.empty())
{
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentSourceGroupInfoText(this));
}
setContent(contentGroup);
qDeleteAll(m_contentWidget->children());
QtProjectWizzardWindow::populateWindow(m_contentWidget);
@@ -382,7 +392,7 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index)
std::shared_ptr<SourceGroupSettings> group = m_allSourceGroupSettings[index];
QtProjectWizzardContentSummary* summary = new QtProjectWizzardContentSummary(this);
QtProjectWizzardContentGroup* summary = new QtProjectWizzardContentGroup(this);
summary->setIsForm(true);
QtProjectWizzardContentSourceGroupData* content = new QtProjectWizzardContentSourceGroupData(group, this);
@@ -399,25 +409,32 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index)
{
summary->addContent(new QtProjectWizzardContentPathsSource(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsExclude(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentExtensions(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsClassJava(group, this));
}
else if (std::shared_ptr<SourceGroupSettingsJavaGradle> settingsJavaGradle = std::dynamic_pointer_cast<SourceGroupSettingsJavaGradle>(group))
else
{
summary->addContent(new QtProjectWizzardContentPathSourceGradle(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathDependenciesGradle(group, this));
}
else if (std::shared_ptr<SourceGroupSettingsJavaMaven> settingsJavaMaven = std::dynamic_pointer_cast<SourceGroupSettingsJavaMaven>(group))
{
summary->addContent(new QtProjectWizzardContentPathSourceMaven(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathDependenciesMaven(group, this));
}
if (std::shared_ptr<SourceGroupSettingsJavaGradle> settingsJavaGradle = std::dynamic_pointer_cast<SourceGroupSettingsJavaGradle>(group))
{
summary->addContent(new QtProjectWizzardContentPathSourceGradle(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathDependenciesGradle(group, this));
}
else if (std::shared_ptr<SourceGroupSettingsJavaMaven> settingsJavaMaven = std::dynamic_pointer_cast<SourceGroupSettingsJavaMaven>(group))
{
summary->addContent(new QtProjectWizzardContentPathSourceMaven(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathDependenciesMaven(group, this));
}
summary->addSpace();
summary->addContent(new QtProjectWizzardContentExtensions(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsExclude(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsExclude(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentExtensions(group, this));
}
}
else if (std::shared_ptr<SourceGroupSettingsCxx> settingsCxx = std::dynamic_pointer_cast<SourceGroupSettingsCxx>(group))
{
@@ -430,6 +447,7 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index)
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsSource(group, this));
summary->addContent(new QtProjectWizzardContentPathsExclude(group, this));
summary->addContent(new QtProjectWizzardContentExtensions(group, this));
summary->addSpace();
}
@@ -442,6 +460,7 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index)
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsCDBHeader(group, this));
summary->addContent(new QtProjectWizzardContentPathsExclude(group, this));
summary->addSpace();
}
@@ -457,9 +476,7 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index)
summary->addSpace();
}
summary->addContent(new QtProjectWizzardContentFlags(group, this));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsExclude(group, this));
summary->addContent(new QtProjectWizzardContentFlags(group, this, isCDB));
}
setContent(summary);
@@ -658,14 +675,14 @@ void QtProjectWizzard::selectedProjectType(SourceGroupType sourceGroupType)
void QtProjectWizzard::emptySourceGroup()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentLanguageAndStandard(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentLanguageAndStandard(m_newSourceGroupSettings, window));
if (m_newSourceGroupSettings->getType() == SOURCE_GROUP_C_EMPTY||
m_newSourceGroupSettings->getType() == SOURCE_GROUP_CPP_EMPTY)
{
summary->addContent(new QtProjectWizzardContentCrossCompilationOptions(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentCrossCompilationOptions(m_newSourceGroupSettings, window));
window->setPreferredSize(QSize(470, 460));
}
else
@@ -689,47 +706,53 @@ void QtProjectWizzard::emptySourceGroup()
void QtProjectWizzard::emptySourceGroupCDBVS()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentVS(window));
summary->addContent(new QtProjectWizzardContentPathCDB(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentCDBSource(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsCDBHeader(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentVS(window));
contentGroup->addContent(new QtProjectWizzardContentPathCDB(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentCDBSource(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsCDBHeader(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsExclude(m_newSourceGroupSettings, window));
}
);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::advancedSettingsCxx);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::createSourceGroup);
window->updateSubTitle("VS Solution");
}
void QtProjectWizzard::emptySourceGroupCDB()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentPathCDB(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentCDBSource(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsCDBHeader(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentPathCDB(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentCDBSource(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsCDBHeader(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsExclude(m_newSourceGroupSettings, window));
}
);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::advancedSettingsCxx);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::createSourceGroup);
window->updateSubTitle("CDB Path");
}
void QtProjectWizzard::sourcePaths()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentPathsSource(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentExtensions(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentPathsSource(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsExclude(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentExtensions(m_newSourceGroupSettings, window));
}
);
@@ -739,12 +762,12 @@ void QtProjectWizzard::sourcePaths()
void QtProjectWizzard::headerSearchPaths()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentPathsHeaderSearch(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsHeaderSearchGlobal(window));
contentGroup->addContent(new QtProjectWizzardContentPathsHeaderSearch(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsHeaderSearchGlobal(window));
}
);
@@ -766,12 +789,12 @@ void QtProjectWizzard::headerSearchPathsDone()
void QtProjectWizzard::frameworkSearchPaths()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentPathsFrameworkSearch(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsFrameworkSearchGlobal(window));
contentGroup->addContent(new QtProjectWizzardContentPathsFrameworkSearch(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsFrameworkSearchGlobal(window));
}
);
@@ -781,31 +804,46 @@ void QtProjectWizzard::frameworkSearchPaths()
void QtProjectWizzard::sourcePathsJava()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentPathsSource(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsClassJava(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentPathsSource(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathsExclude(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentExtensions(m_newSourceGroupSettings, window));
}
);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::advancedSettingsJava);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::dependenciesJava);
window->updateSubTitle("Indexed Paths");
}
void QtProjectWizzard::dependenciesJava()
{
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
contentGroup->addContent(new QtProjectWizzardContentPathsClassJava(m_newSourceGroupSettings, window));
}
);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::createSourceGroup);
window->updateSubTitle("Dependencies");
}
void QtProjectWizzard::sourcePathsJavaMaven()
{
std::dynamic_pointer_cast<SourceGroupSettingsJavaMaven>(m_newSourceGroupSettings)->setMavenDependenciesDirectory(
FilePath("./sourcetrail_dependencies/" + utility::replace(m_projectSettings->getProjectName(), " ", "_") + "/" + m_newSourceGroupSettings->getId() + "/maven")
);
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentPathSourceMaven(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathDependenciesMaven(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentPathSourceMaven(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathDependenciesMaven(m_newSourceGroupSettings, window));
}
);
@@ -819,12 +857,12 @@ void QtProjectWizzard::sourcePathsJavaGradle()
FilePath("./sourcetrail_dependencies/" + utility::replace(m_projectSettings->getProjectName(), " ", "_") + "/" + m_newSourceGroupSettings->getId() + "/gradle")
);
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentPathSourceGradle(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathDependenciesGradle(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentPathSourceGradle(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentPathDependenciesGradle(m_newSourceGroupSettings, window));
}
);
@@ -834,12 +872,10 @@ void QtProjectWizzard::sourcePathsJavaGradle()
void QtProjectWizzard::advancedSettingsCxx()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentFlags(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsExclude(m_newSourceGroupSettings, window));
contentGroup->addContent(new QtProjectWizzardContentFlags(m_newSourceGroupSettings, window));
}
);
@@ -849,13 +885,13 @@ void QtProjectWizzard::advancedSettingsCxx()
void QtProjectWizzard::advancedSettingsJava()
{
QtProjectWizzardWindow* window = createWindowWithSummary(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
QtProjectWizzardWindow* window = createWindowWithContentGroup(
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentGroup* contentGroup)
{
summary->addContent(new QtProjectWizzardContentExtensions(m_newSourceGroupSettings, window));
summary->addSpace();
summary->addContent(new QtProjectWizzardContentPathsExclude(m_newSourceGroupSettings, window));
}
contentGroup->addContent(new QtProjectWizzardContentPathsExclude(m_newSourceGroupSettings, window));
contentGroup->addSpace();
contentGroup->addContent(new QtProjectWizzardContentExtensions(m_newSourceGroupSettings, window));
}
);
connect(window, &QtProjectWizzardWindow::next, this, &QtProjectWizzard::createSourceGroup);
@@ -14,7 +14,7 @@
class QListWidget;
class QPushButton;
class QtProjectWizzardContent;
class QtProjectWizzardContentSummary;
class QtProjectWizzardContentGroup;
class QtProjectWizzardWindow;
class QtProjectWizzard
@@ -47,8 +47,8 @@ private:
QtProjectWizzardWindow* createWindowWithContent(
std::function<QtProjectWizzardContent*(QtProjectWizzardWindow*)> func);
QtProjectWizzardWindow* createWindowWithSummary(
std::function<void(QtProjectWizzardWindow*, QtProjectWizzardContentSummary*)> func);
QtProjectWizzardWindow* createWindowWithContentGroup(
std::function<void(QtProjectWizzardWindow*, QtProjectWizzardContentGroup*)> func);
void updateSourceGroupList();
bool canExitContent();
@@ -96,6 +96,7 @@ private slots:
void frameworkSearchPaths();
void sourcePathsJava();
void dependenciesJava();
void sourcePathsJavaMaven();
void sourcePathsJavaGradle();
@@ -5,18 +5,19 @@
#include "qt/element/QtDirectoryListBox.h"
#include "settings/SourceGroupSettingsCxx.h"
QtProjectWizzardContentFlags::QtProjectWizzardContentFlags(std::shared_ptr<SourceGroupSettings> settings, QtProjectWizzardWindow* window)
QtProjectWizzardContentFlags::QtProjectWizzardContentFlags(std::shared_ptr<SourceGroupSettings> settings, QtProjectWizzardWindow* window, bool isCDB)
: QtProjectWizzardContent(window)
, m_settings(settings)
, m_isCdb(isCDB)
{
}
void QtProjectWizzardContentFlags::populate(QGridLayout* layout, int& row)
{
QLabel* label = createFormLabel("Compiler Flags");
QLabel* label = createFormLabel((std::string(m_isCdb ? "Additional " : "") + "Compiler Flags").c_str());
layout->addWidget(label, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignTop);
addHelpButton("Define compiler flags used during indexing including the dash (e.g. use \"-D RELEASE\" to add a #define for \"RELEASE\").", layout, row);
addHelpButton("Define additional Clang compiler flags used during indexing including the dash (e.g. use \"-D RELEASE\" to add a #define for \"RELEASE\").", layout, row);
m_list = new QtDirectoryListBox(this, label->text(), true);
layout->addWidget(m_list, row, QtProjectWizzardWindow::BACK_COL);
@@ -12,7 +12,7 @@ class QtProjectWizzardContentFlags
Q_OBJECT
public:
QtProjectWizzardContentFlags(std::shared_ptr<SourceGroupSettings> settings, QtProjectWizzardWindow* window);
QtProjectWizzardContentFlags(std::shared_ptr<SourceGroupSettings> settings, QtProjectWizzardWindow* window, bool isCDB = false);
// QtProjectWizzardContent implementation
virtual void populate(QGridLayout* layout, int& row) override;
@@ -22,6 +22,7 @@ public:
private:
std::shared_ptr<SourceGroupSettings> m_settings;
const bool m_isCdb;
QtDirectoryListBox* m_list;
};
@@ -1,6 +1,6 @@
#include "qt/window/project_wizzard/QtProjectWizzardContentSummary.h"
#include "qt/window/project_wizzard/QtProjectWizzardContentGroup.h"
QtProjectWizzardContentSummary::QtProjectWizzardContentSummary(
QtProjectWizzardContentGroup::QtProjectWizzardContentGroup(
QtProjectWizzardWindow* window
)
: QtProjectWizzardContent(window)
@@ -8,7 +8,7 @@ QtProjectWizzardContentSummary::QtProjectWizzardContentSummary(
{
}
void QtProjectWizzardContentSummary::addContent(QtProjectWizzardContent* content)
void QtProjectWizzardContentGroup::addContent(QtProjectWizzardContent* content)
{
m_contents.push_back(content);
@@ -18,17 +18,17 @@ void QtProjectWizzardContentSummary::addContent(QtProjectWizzardContent* content
}
}
void QtProjectWizzardContentSummary::addSpace()
void QtProjectWizzardContentGroup::addSpace()
{
m_contents.push_back(nullptr);
}
void QtProjectWizzardContentSummary::setIsForm(bool isForm)
void QtProjectWizzardContentGroup::setIsForm(bool isForm)
{
m_isForm = isForm;
}
void QtProjectWizzardContentSummary::populate(QGridLayout* layout, int& row)
void QtProjectWizzardContentGroup::populate(QGridLayout* layout, int& row)
{
if (m_isForm)
{
@@ -54,7 +54,7 @@ void QtProjectWizzardContentSummary::populate(QGridLayout* layout, int& row)
layout->setRowStretch(row, 1);
}
void QtProjectWizzardContentSummary::populateForm(QGridLayout* layout, int& row)
void QtProjectWizzardContentGroup::populateForm(QGridLayout* layout, int& row)
{
layout->setRowMinimumHeight(row++, 10);
@@ -74,7 +74,7 @@ void QtProjectWizzardContentSummary::populateForm(QGridLayout* layout, int& row)
layout->setRowStretch(row, 1);
}
void QtProjectWizzardContentSummary::load()
void QtProjectWizzardContentGroup::load()
{
for (QtProjectWizzardContent* content : m_contents)
{
@@ -85,7 +85,7 @@ void QtProjectWizzardContentSummary::load()
}
}
void QtProjectWizzardContentSummary::save()
void QtProjectWizzardContentGroup::save()
{
for (QtProjectWizzardContent* content : m_contents)
{
@@ -96,7 +96,7 @@ void QtProjectWizzardContentSummary::save()
}
}
bool QtProjectWizzardContentSummary::check()
bool QtProjectWizzardContentGroup::check()
{
for (QtProjectWizzardContent* content : m_contents)
{
@@ -109,7 +109,7 @@ bool QtProjectWizzardContentSummary::check()
return true;
}
bool QtProjectWizzardContentSummary::isScrollAble() const
bool QtProjectWizzardContentGroup::isScrollAble() const
{
return true;
}
@@ -1,17 +1,17 @@
#ifndef QT_PROJECT_WIZZARD_CONTENT_SUMMARY_H
#define QT_PROJECT_WIZZARD_CONTENT_SUMMARY_H
#ifndef QT_PROJECT_WIZZARD_CONTENT_GROUP_H
#define QT_PROJECT_WIZZARD_CONTENT_GROUP_H
#include "qt/window/project_wizzard/QtProjectWizzardContent.h"
class QCheckBox;
class QtProjectWizzardContentSummary
class QtProjectWizzardContentGroup
: public QtProjectWizzardContent
{
Q_OBJECT
public:
QtProjectWizzardContentSummary(QtProjectWizzardWindow* window);
QtProjectWizzardContentGroup(QtProjectWizzardWindow* window);
void addContent(QtProjectWizzardContent* content);
void addSpace();
@@ -34,4 +34,4 @@ private:
bool m_isForm;
};
#endif // QT_PROJECT_WIZZARD_CONTENT_SUMMARY_H
#endif // QT_PROJECT_WIZZARD_CONTENT_GROUP_H
@@ -153,10 +153,10 @@ QtProjectWizzardContentPathsSource::QtProjectWizzardContentPathsSource(
{
m_showFilesString = "show files";
setTitleString("Indexed Paths");
setTitleString("Files & Directories to Index");
setHelpString(
"Indexed Paths define the files and directories that will be indexed by Sourcetrail. Provide a directory to recursively "
"add all contained files.<br />"
"These paths define the files and directories that will be indexed by Sourcetrail. Provide a directory to recursively "
"add all contained source and header files.<br />"
"<br />"
"If your project's source code resides in one location, but generated source files are kept at a different location, "
"you will also need to add that directory.<br />"
@@ -235,15 +235,17 @@ QtProjectWizzardContentPathsCDBHeader::QtProjectWizzardContentPathsCDBHeader(
{
m_showFilesString = "";
setTitleString("Indexed Header Paths");
setTitleString("Header Files & Directories to Index");
setHelpString(
"Define which header files should be indexed by Sourcetrail. Provide a directory to recursively add all contained files. "
"Every time an included header is encountered, Sourcetrail will check if the file is part of the indexed headers to "
"decide whether or not to index it.<br />"
"Your Compilation Database already specifies which source files are part of your project. But Sourcetrail still needs to know which "
"header files to index as part of your project and which to skip. Skipping to index your system headers or external frameworks will "
"significantly improve the overall indexing performance.<br />"
"<br />"
"Just enter the root path of your project if you want Sourcetrail to index all contained headers it encounters.<br />"
"Use this list to define which header files should be indexed by Sourcetrail. Provide a directory to recursively add all contained files.<br />"
"<br />"
"You can make use of environment variables with ${ENV_VAR}."
"You can make use of environment variables with ${ENV_VAR}.<br />"
"<br />"
"<b>Hint</b>: Just enter the root path of your project if you want Sourcetrail to index all contained headers it encounters.<br />"
);
}
@@ -347,11 +349,12 @@ QtProjectWizzardContentPathsExclude::QtProjectWizzardContentPathsExclude(
)
: QtProjectWizzardContentPaths(settings, window)
{
setTitleString("Exclude Paths");
setTitleString("Excluded Files & Directories");
setHelpString(
"Exclude Paths define the files and directories that will be left out from indexing.<br />"
"These paths define the files and directories that will be left out from indexing.<br />"
"<br />"
"You can make use of environment variables with ${ENV_VAR}.");
"You can make use of environment variables with ${ENV_VAR}."
);
}
void QtProjectWizzardContentPathsExclude::load()
@@ -372,9 +375,9 @@ QtProjectWizzardContentPathsHeaderSearch::QtProjectWizzardContentPathsHeaderSear
, m_showValidationResultFunctor(std::bind(&QtProjectWizzardContentPathsHeaderSearch::showValidationResult, this, std::placeholders::_1))
, m_isCdb(isCDB)
{
setTitleString(isCDB ? "Additional Include Paths" : "Include Paths");
setTitleString(m_isCdb ? "Additional Include Paths" : "Include Paths");
setHelpString(
((isCDB ? "<b>Note</b>: Use the Additional Include Paths to add paths that are missing in the CDB.<br /><br />" : "") + std::string(
((m_isCdb ? "<b>Note</b>: Use the Additional Include Paths to add paths that are missing in the Compilation Database.<br /><br />" : "") + std::string(
"Include Paths are used for resolving #include directives in the indexed source and header files. These paths are "
"usually passed to the compiler with the '-I' or '-iquote' flags.<br />"
"<br />"
@@ -382,7 +385,7 @@ QtProjectWizzardContentPathsHeaderSearch::QtProjectWizzardContentPathsHeaderSear
"specified relative to the project's root directory, please add that root directory here.<br />"
"<br />"
"If your project also includes files from external libraries (e.g. boost), please add these directories as well "
"(e.g. add '&lt;boost_home&gt;/include').<br />"
"(e.g. add 'path/to/boost_home/include').<br />"
"<br />"
"You can make use of environment variables with ${ENV_VAR}.")).c_str()
);
@@ -529,7 +532,7 @@ QtProjectWizzardContentPathsHeaderSearchGlobal::QtProjectWizzardContentPathsHead
{
setTitleString("Global Include Paths");
setHelpString(
"The Global Include Paths will be used in all your projects - in addition to the project specific Include Paths. "
"The Global Include Paths will be used in all your projects in addition to the project specific Include Paths. "
"These paths are usually passed to the compiler with the '-isystem' flag.<br />"
"<br />"
"Use them to add system header paths (See <a href=\"https://sourcetrail.com/documentation/#FindingSystemHeaderLocations\">"
@@ -125,7 +125,7 @@ private:
void showValidationResult(const std::vector<IncludeDirective>& unresolvedIncludes);
QtThreadedFunctor<std::vector<IncludeDirective>> m_showValidationResultFunctor;
bool m_isCdb;
const bool m_isCdb;
};
class QtProjectWizzardContentPathsHeaderSearchGlobal
@@ -43,7 +43,7 @@ void QtProjectWizzardContentProjectData::populate(QGridLayout* layout, int& row)
layout->addWidget(locationLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
layout->addWidget(m_projectFileLocation, row, QtProjectWizzardWindow::BACK_COL, Qt::AlignTop);
addHelpButton("The directory where Sourcetrail project files will be saved to.", layout, row);
addHelpButton("The directory the Sourcetrail project file (.srctrlprj) will be saved to.", layout, row);
layout->setRowMinimumHeight(row, 30);
row++;
@@ -0,0 +1,35 @@
#include "qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.h"
QtProjectWizzardContentSourceGroupInfoText::QtProjectWizzardContentSourceGroupInfoText(QtProjectWizzardWindow* window)
: QtProjectWizzardContent(window)
{
}
void QtProjectWizzardContentSourceGroupInfoText::populate(QGridLayout* layout, int& row)
{
QHBoxLayout* layoutHorz = new QHBoxLayout();
layout->addLayout(
layoutHorz,
row, QtProjectWizzardWindow::FRONT_COL,
1, 1 + QtProjectWizzardWindow::BACK_COL - QtProjectWizzardWindow::FRONT_COL,
Qt::AlignTop
);
layoutHorz->addSpacing(60);
QLabel* infoLabel = new QLabel(
"<p>Please add at least one source group to your project. A source group specifies which source files should be "
"analyzed by Sourcetrail and includes all parameters required to analyze those source files. A Sourcetrail project "
"may contain multiple source groups, which may be necessary if you want to analyze source files from different "
"projects that do not share the same parameters.</p>"
"<p><b>Hint</b>: If your project contains source code for multiple build targets, you can add all of those source "
"files with one single source group as long as they all share the same parameters.</p>"
);
infoLabel->setObjectName("info");
infoLabel->setWordWrap(true);
layoutHorz->addWidget(infoLabel);
layoutHorz->addSpacing(40);
row++;
}
@@ -0,0 +1,18 @@
#ifndef QT_PROJECT_WIZZARD_CONTENT_SOURCE_GROUP_INFO_TEXT_H
#define QT_PROJECT_WIZZARD_CONTENT_SOURCE_GROUP_INFO_TEXT_H
#include "qt/window/project_wizzard/QtProjectWizzardContent.h"
class QtProjectWizzardContentSourceGroupInfoText
: public QtProjectWizzardContent
{
Q_OBJECT
public:
QtProjectWizzardContentSourceGroupInfoText(QtProjectWizzardWindow* window);
// QtProjectWizzardContent implementation
virtual void populate(QGridLayout* layout, int& row) override;
};
#endif // QT_PROJECT_WIZZARD_CONTENT_SOURCE_GROUP_INFO_TEXT_H