Files
Sourcetrail/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h
T
mlangkabel 7b735cfd17 logic: added project setup support for Sonargraph projects (Java and CMake-JSON modules supported)
* added classes for loading a Sonargraph project
* added Sonargraph options to project setup wizard
* added test for generating indexer commands from Sonargraph modules
* fixed sqlite storage crashing in constructor when parent directory of provided path does not exist
* removed unused FileRegister from Java indexing
* removed unused info from IndexerCommandJava
* refactored loading and saving of SourceGroupSettings
* extracted sourcepaths settings to own class that can be re-used
* merged CDB wizard contentents for source file and indexed paths
* unified wizard content for sonargraph project path
* removed include filters from default source groups
* extracted generation of RefreshInfo from Project to RefreshInfoGenerator
* added tests for RefreshInfoGenerator
* added language and standard selection to sonargraph project setup
* added auto-detection for indexed header paths of sonargraph cmake json modules
* Sonargraph::Project can enable/disable support for specific modules
* warn if sonargraph project contains no matching modules
* indexed headers can be detected from sonargraph project
2018-05-18 16:07:57 +02:00

112 lines
2.6 KiB
C++

#ifndef QT_PROJECT_WIZZARD_H
#define QT_PROJECT_WIZZARD_H
#include <functional>
#include <QWidget>
#include "qt/window/project_wizzard/QtProjectWizzardWindow.h"
#include "qt/window/QtWindow.h"
#include "settings/ApplicationSettings.h"
#include "settings/ProjectSettings.h"
class QListWidget;
class QPushButton;
class QtProjectWizzardContent;
class QtProjectWizzardContentGroup;
class QtProjectWizzardWindow;
class QtProjectWizzard
: public QtProjectWizzardWindow
{
Q_OBJECT
public:
QtProjectWizzard(QWidget* parent = nullptr);
virtual QSize sizeHint() const override;
public slots:
void newProject();
void newProjectFromCDB(const FilePath& filePath);
void editProject(const FilePath& settingsPath);
void editProject(std::shared_ptr<ProjectSettings> settings);
protected:
virtual void populateWindow(QWidget* widget) override;
virtual void windowReady() override;
virtual void handlePrevious() override;
private:
static bool applicationSettingsContainVisualStudioHeaderSearchPaths();
QtProjectWizzardWindow* createWindowWithContent(
std::function<QtProjectWizzardContent*(QtProjectWizzardWindow*)> func);
QtProjectWizzardWindow* createWindowWithContentGroup(
std::function<void(QtProjectWizzardWindow*, QtProjectWizzardContentGroup*)> func);
void updateSourceGroupList();
bool canExitContent();
QtWindowStack m_windowStack;
std::shared_ptr<ProjectSettings> m_projectSettings;
std::vector<std::shared_ptr<SourceGroupSettings>> m_allSourceGroupSettings;
std::shared_ptr<SourceGroupSettings> m_newSourceGroupSettings;
ApplicationSettings m_appSettings;
bool m_editing;
QPushButton* m_generalButton;
QPushButton* m_removeButton;
QPushButton* m_duplicateButton;
QListWidget* m_sourceGroupList;
QWidget* m_contentWidget;
private slots:
void generalButtonClicked();
void selectedSourceGroupChanged(int index);
void selectedSourceGroupNameChanged(QString name);
void removeSelectedSourceGroup();
void duplicateSelectedSourceGroup();
void cancelSourceGroup();
void cancelWizzard();
void finishWizzard();
void windowStackChanged();
void newSourceGroup();
void selectedProjectType(SourceGroupType sourceGroupType);
void emptySourceGroup();
void emptySourceGroupCDBVS();
void emptySourceGroupCDB();
void emptySourceGroupCxxSonargraph();
void emptySourceGroupJavaSonargraph();
void sourcePaths();
void headerSearchPaths();
void headerSearchPathsDone();
void frameworkSearchPaths();
void sourcePathsJava();
void dependenciesJava();
void sourcePathsJavaMaven();
void sourcePathsJavaGradle();
void advancedSettingsCxx();
void advancedSettingsJava();
void createSourceGroup();
void createProject();
};
#endif // QT_PROJECT_WIZZARD_H