ui: Rewrote project setup to wizzard

* QtProjectWizzard handles window managment logic of project setup
* QtProjectWizzardWindow is used in every step and displays QtProjectWizzardContent
* QtProjectWizzardContent is the base class for all differnt content types
* Removed Singleton from ProjectSettings
* ProjectSettings are created by wizzard and QtProjectWizzardContent can access and load
* added project type selection at start of wizzard
* added summary at end of wizzard
* show global search paths in setup and summary
* fixed layout problems after font switch
* fixed scrolling and resizing of QtDirectoryListBox
* separated QtLocationPicker to own class
This commit is contained in:
Eberhard Graether
2016-02-14 15:42:30 +01:00
parent 50a94bf108
commit 2d48f0a663
38 changed files with 1784 additions and 716 deletions
@@ -0,0 +1,44 @@
#ifndef QT_PROJECT_WIZZARD_WINDOW_H
#define QT_PROJECT_WIZZARD_WINDOW_H
#include "qt/window/QtSettingsWindow.h"
#include "settings/ProjectSettings.h"
class QPushButton;
class QtProjectWizzardContent;
class QtProjectWizzardWindow
: public QtSettingsWindow
{
Q_OBJECT
signals:
void next();
void previous();
public:
QtProjectWizzardWindow(QWidget *parent);
QtProjectWizzardContent* content() const;
void setContent(QtProjectWizzardContent* content);
// QtSettingsWindow implementation
virtual void setup() override;
virtual void populateWindow(QWidget* widget) override;
void enableNext();
void disableNext();
void disablePrevious();
void hidePrevious();
private:
QtProjectWizzardContent* m_content;
QPushButton* m_previousButton;
private slots:
void handleCancelButtonPress();
void handleUpdateButtonPress();
void handlePreviousButtonPress();
};
#endif // QT_PROJECT_WIZZARD_WINDOW_H