diff --git a/src/lib_cxx/utility/CompilationDatabase.cpp b/src/lib_cxx/utility/CompilationDatabase.cpp index 6bafe656..4aa2511e 100644 --- a/src/lib_cxx/utility/CompilationDatabase.cpp +++ b/src/lib_cxx/utility/CompilationDatabase.cpp @@ -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]; } diff --git a/src/lib_gui/CMakeLists.txt b/src/lib_gui/CMakeLists.txt index d64202e0..f834fca6 100644 --- a/src/lib_gui/CMakeLists.txt +++ b/src/lib_gui/CMakeLists.txt @@ -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 diff --git a/src/lib_gui/qt/element/QtHelpButton.cpp b/src/lib_gui/qt/element/QtHelpButton.cpp index 5a291e4e..dcc3cc8a 100644 --- a/src/lib_gui/qt/element/QtHelpButton.cpp +++ b/src/lib_gui/qt/element/QtHelpButton.cpp @@ -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); diff --git a/src/lib_gui/qt/window/QtPreferencesWindow.cpp b/src/lib_gui/qt/window/QtPreferencesWindow.cpp index bf1a0daf..26f70a47 100644 --- a/src/lib_gui/qt/window/QtPreferencesWindow.cpp +++ b/src/lib_gui/qt/window/QtPreferencesWindow.cpp @@ -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)); diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp index 33f4b4c6..76231652 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp @@ -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 func +QtProjectWizzardWindow* QtProjectWizzard::createWindowWithContentGroup( + std::function 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 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 settingsJavaGradle = std::dynamic_pointer_cast(group)) + else { - summary->addContent(new QtProjectWizzardContentPathSourceGradle(group, this)); - summary->addSpace(); - summary->addContent(new QtProjectWizzardContentPathDependenciesGradle(group, this)); - } - else if (std::shared_ptr settingsJavaMaven = std::dynamic_pointer_cast(group)) - { - summary->addContent(new QtProjectWizzardContentPathSourceMaven(group, this)); - summary->addSpace(); - summary->addContent(new QtProjectWizzardContentPathDependenciesMaven(group, this)); - } + if (std::shared_ptr settingsJavaGradle = std::dynamic_pointer_cast(group)) + { + summary->addContent(new QtProjectWizzardContentPathSourceGradle(group, this)); + summary->addSpace(); + summary->addContent(new QtProjectWizzardContentPathDependenciesGradle(group, this)); + } + else if (std::shared_ptr settingsJavaMaven = std::dynamic_pointer_cast(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 settingsCxx = std::dynamic_pointer_cast(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(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); diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h index b4f62445..6f096341 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h @@ -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 func); - QtProjectWizzardWindow* createWindowWithSummary( - std::function func); + QtProjectWizzardWindow* createWindowWithContentGroup( + std::function func); void updateSourceGroupList(); bool canExitContent(); @@ -96,6 +96,7 @@ private slots: void frameworkSearchPaths(); void sourcePathsJava(); + void dependenciesJava(); void sourcePathsJavaMaven(); void sourcePathsJavaGradle(); diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.cpp index 8ccd2aa5..e7c2a1e4 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.cpp @@ -5,18 +5,19 @@ #include "qt/element/QtDirectoryListBox.h" #include "settings/SourceGroupSettingsCxx.h" -QtProjectWizzardContentFlags::QtProjectWizzardContentFlags(std::shared_ptr settings, QtProjectWizzardWindow* window) +QtProjectWizzardContentFlags::QtProjectWizzardContentFlags(std::shared_ptr 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); diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.h b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.h index 37845344..a43ced3e 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.h +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentFlags.h @@ -12,7 +12,7 @@ class QtProjectWizzardContentFlags Q_OBJECT public: - QtProjectWizzardContentFlags(std::shared_ptr settings, QtProjectWizzardWindow* window); + QtProjectWizzardContentFlags(std::shared_ptr 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 m_settings; + const bool m_isCdb; QtDirectoryListBox* m_list; }; diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSummary.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentGroup.cpp similarity index 65% rename from src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSummary.cpp rename to src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentGroup.cpp index 79fd88d1..0e37918c 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSummary.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentGroup.cpp @@ -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; } diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSummary.h b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentGroup.h similarity index 72% rename from src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSummary.h rename to src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentGroup.h index 1848e698..44949ff3 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSummary.h +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentGroup.h @@ -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 diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp index 539e295f..1c7b1d97 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.cpp @@ -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.
" + "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.
" "
" "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.
" @@ -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.
" + "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.
" "
" - "Just enter the root path of your project if you want Sourcetrail to index all contained headers it encounters.
" + "Use this list to define which header files should be indexed by Sourcetrail. Provide a directory to recursively add all contained files.
" "
" - "You can make use of environment variables with ${ENV_VAR}." + "You can make use of environment variables with ${ENV_VAR}.
" + "
" + "Hint: Just enter the root path of your project if you want Sourcetrail to index all contained headers it encounters.
" ); } @@ -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.
" + "These paths define the files and directories that will be left out from indexing.
" "
" - "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 ? "Note: Use the Additional Include Paths to add paths that are missing in the CDB.

" : "") + std::string( + ((m_isCdb ? "Note: Use the Additional Include Paths to add paths that are missing in the Compilation Database.

" : "") + 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.
" "
" @@ -382,7 +385,7 @@ QtProjectWizzardContentPathsHeaderSearch::QtProjectWizzardContentPathsHeaderSear "specified relative to the project's root directory, please add that root directory here.
" "
" "If your project also includes files from external libraries (e.g. boost), please add these directories as well " - "(e.g. add '<boost_home>/include').
" + "(e.g. add 'path/to/boost_home/include').
" "
" "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.
" "
" "Use them to add system header paths (See " diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.h b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.h index ba492931..9a74db8c 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.h +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPaths.h @@ -125,7 +125,7 @@ private: void showValidationResult(const std::vector& unresolvedIncludes); QtThreadedFunctor> m_showValidationResultFunctor; - bool m_isCdb; + const bool m_isCdb; }; class QtProjectWizzardContentPathsHeaderSearchGlobal diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentProjectData.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentProjectData.cpp index 92a141c0..6afcc609 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentProjectData.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentProjectData.cpp @@ -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++; diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.cpp new file mode 100644 index 00000000..8faba99f --- /dev/null +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.cpp @@ -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( + "

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.

" + "

Hint: 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.

" + ); + infoLabel->setObjectName("info"); + infoLabel->setWordWrap(true); + layoutHorz->addWidget(infoLabel); + + layoutHorz->addSpacing(40); + + row++; +} \ No newline at end of file diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.h b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.h new file mode 100644 index 00000000..64463671 --- /dev/null +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentSourceGroupInfoText.h @@ -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