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,78 @@
#include "qt/window/project_wizzard/QtProjectWizzardContentSummary.h"
#include <QFormLayout>
#include <QSysInfo>
QtProjectWizzardContentSummary::QtProjectWizzardContentSummary(ProjectSettings* settings, QtProjectWizzardWindow* window)
: QtProjectWizzardContent(settings, window)
, m_data(nullptr)
, m_source(nullptr)
, m_headerSearch(nullptr)
, m_frameworkSearch(nullptr)
{
m_data = new QtProjectWizzardContentData(settings, window);
m_source = new QtProjectWizzardContentPathsSource(settings, window);
m_headerSearch = new QtProjectWizzardContentPathsHeaderSearch(settings, window);
if (QSysInfo::macVersion() != QSysInfo::MV_None)
{
m_frameworkSearch = new QtProjectWizzardContentPathsFrameworkSearch(settings, window);
}
}
void QtProjectWizzardContentSummary::populateWindow(QWidget* widget)
{
QFormLayout* layout = new QFormLayout();
layout->setContentsMargins(10, 10, 10, 10);
layout->setHorizontalSpacing(20);
m_data->populateForm(layout);
m_source->populateForm(layout);
m_headerSearch->populateForm(layout);
if (m_frameworkSearch)
{
m_frameworkSearch->populateForm(layout);
}
widget->setLayout(layout);
}
void QtProjectWizzardContentSummary::windowReady()
{
m_window->updateTitle("NEW PROJECT WIZZARD - SUMMARY");
m_window->updateDoneButton("Create");
}
void QtProjectWizzardContentSummary::load()
{
m_data->load();
m_source->load();
m_headerSearch->load();
if (m_frameworkSearch)
{
m_frameworkSearch->load();
}
}
void QtProjectWizzardContentSummary::save()
{
m_data->save();
m_source->save();
m_headerSearch->save();
if (m_frameworkSearch)
{
m_frameworkSearch->save();
}
}
bool QtProjectWizzardContentSummary::check()
{
return
m_data->check() &&
m_source->check() &&
m_headerSearch->check() &&
(!m_frameworkSearch || m_frameworkSearch->check());
}