Files
Sourcetrail/src/lib_gui/qt/project_wizard/QtProjectWizard.h
T
Eberhard GrätherandGitHub 260f1227bc Removed multiple dialog steps in Source Group setup (issue #723) (#913)
* removed QtSourceGroupWizard, QtSourceGroupWizardPage and context types
* removed isInForm flag of QtProjectWizardContent
* added check of empty source paths
* set project window as parent for message boxes, so they don't get hidden behind main window
* fixed issues when removing and duplicating source groups
* updated project setup tests to no steps
2020-02-10 20:00:36 +01:00

85 lines
1.9 KiB
C++

#ifndef QT_PROJECT_WIZARD_H
#define QT_PROJECT_WIZARD_H
#include <functional>
#include <QWidget>
#include "ApplicationSettings.h"
#include "ProjectSettings.h"
#include "QtProjectWizardWindow.h"
#include "QtWindow.h"
class QListWidget;
class QPushButton;
class QtProjectWizardContent;
class QtProjectWizardContentGroup;
class QtProjectWizardWindow;
class QtProjectWizard: public QtProjectWizardWindow
{
Q_OBJECT
public:
QtProjectWizard(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:
QtProjectWizardWindow* createWindowWithContent(
std::function<QtProjectWizardContent*(QtProjectWizardWindow*)> func);
void updateSourceGroupList();
bool canExitContent();
QtWindowStack m_windowStack;
std::shared_ptr<ProjectSettings> m_projectSettings;
std::vector<std::shared_ptr<SourceGroupSettings>> m_allSourceGroupSettings;
ApplicationSettings m_appSettings;
bool m_editing;
int m_previouslySelectedIndex;
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 cancelWizard();
void finishWizard();
void windowStackChanged();
void newSourceGroup();
void selectedProjectType(SourceGroupType sourceGroupType);
void createSourceGroup(std::shared_ptr<SourceGroupSettings> settings);
void createProject();
};
#endif // QT_PROJECT_WIZARD_H