ui: Extended wizzard with simple setup and vs solution parsing

* removed blurry coati background
* added language selection to project type window
* search for headers in project paths option as part of simple setup
* show popup containing list of all analyzed symbols
* show build file path in summary and allow refreshing
* only force refresh after editing project and something changed
This commit is contained in:
Eberhard Graether
2016-02-17 13:32:21 +01:00
parent b7bb1349f2
commit a4c6cebce6
40 changed files with 1019 additions and 573 deletions
@@ -33,6 +33,7 @@ void QtHelpButton::handleHelpPress()
QtProjectWizzardContentPaths::QtProjectWizzardContentPaths(ProjectSettings* settings, QtProjectWizzardWindow* window)
: QtProjectWizzardContent(settings, window)
, m_subPaths(nullptr)
, m_addShowSourcesButton(false)
{
}
@@ -60,10 +61,18 @@ void QtProjectWizzardContentPaths::populateLayout(QVBoxLayout* layout)
QLabel* text = new QLabel(m_descriptionString);
text->setWordWrap(true);
text->setOpenExternalLinks(true);
layout->addWidget(text);
m_list = new QtDirectoryListBox(this);
layout->addWidget(m_list);
if (m_addShowSourcesButton)
{
QPushButton* button = new QPushButton("show files");
layout->addWidget(button);
connect(button, SIGNAL(clicked()), this, SLOT(showSourcesClicked()));
}
}
void QtProjectWizzardContentPaths::populateForm(QFormLayout* layout)
@@ -74,15 +83,20 @@ void QtProjectWizzardContentPaths::populateForm(QFormLayout* layout)
vlayout->setContentsMargins(0, 5, 0, 5);
vlayout->setSpacing(5);
QLabel* label = new QLabel(m_titleString);
label->setAlignment(Qt::AlignRight);
label->setObjectName("label");
label->setWordWrap(true);
QLabel* label = createFormLabel(m_titleString);
vlayout->addWidget(label);
QtHelpButton* button = new QtHelpButton(m_helpString);
vlayout->addWidget(button, 0, Qt::AlignRight);
if (m_addShowSourcesButton)
{
QPushButton* button = new QPushButton("files");
vlayout->addWidget(button);
connect(button, SIGNAL(clicked()), this, SLOT(showSourcesClicked()));
}
vlayout->addStretch();
widget->setLayout(vlayout);
@@ -148,17 +162,39 @@ void QtProjectWizzardContentPaths::setInfo(const QString& title, const QString&
m_helpString = help;
}
void QtProjectWizzardContentPaths::setTitleString(const QString& title)
{
m_titleString = title;
}
void QtProjectWizzardContentPaths::setDescriptionString(const QString& description)
{
m_descriptionString = description;
}
void QtProjectWizzardContentPaths::setHelpString(const QString& help)
{
m_helpString = help;
}
void QtProjectWizzardContentPaths::showSourcesClicked()
{
emit showSourceFiles(m_list->getList());
}
QtProjectWizzardContentPathsSource::QtProjectWizzardContentPathsSource(
ProjectSettings* settings, QtProjectWizzardWindow* window
)
: QtProjectWizzardContentPaths(settings, window)
{
m_addShowSourcesButton = true;
setInfo(
"Analyzed Paths",
"Analyzed Paths define the source files and directories that will be analysed by Coati. Usually these are the "
"source and header files of your project or a subset of them.",
"Analyzed Paths define the source files and directories that will be analysed by Coati. Usually these are the "
"Project Paths",
"Add all directories or files you want to analyse. Usually these are all source and header files of "
"your project or a subset of them.",
"Project Paths define the source files and directories that will be analyzed by Coati. Usually these are the "
"source and header files of your project or a subset of them."
);
}
@@ -178,7 +214,7 @@ bool QtProjectWizzardContentPathsSource::checkPaths()
if (m_list->getList().size() == 0)
{
QMessageBox msgBox;
msgBox.setText("Please set at least one source path for Coati to analyse.");
msgBox.setText("Please add at least one path.");
msgBox.exec();
return false;
}
@@ -186,6 +222,20 @@ bool QtProjectWizzardContentPathsSource::checkPaths()
return true;
}
QtProjectWizzardContentPathsSourceSimple::QtProjectWizzardContentPathsSourceSimple(
ProjectSettings* settings, QtProjectWizzardWindow* window
)
: QtProjectWizzardContentPathsSource(settings, window)
{
m_addShowSourcesButton = true;
setTitleString("Project Paths");
setDescriptionString(
"Add all directories or files you want to analyse with Coati. It is sufficient to just provide the top level "
"project directory."
);
}
QtProjectWizzardContentPathsHeaderSearch::QtProjectWizzardContentPathsHeaderSearch(
ProjectSettings* settings, QtProjectWizzardWindow* window
@@ -194,13 +244,10 @@ QtProjectWizzardContentPathsHeaderSearch::QtProjectWizzardContentPathsHeaderSear
{
setInfo(
"Header Search Paths",
"Add the header search paths for resolving #include directives in the analyzed source and header files.",
"Header Search Paths define where additional headers, that your project depends on, are found. Usually they are "
"header files of frameworks or libraries that your project uses. These files won't be analysed, but Coati needs "
"them for correct analysis.",
"Header Search Paths define where additional headers, that your project depends on, are found. Usually they are "
"header files of frameworks or libraries that your project uses. These files won't be analysed, but Coati needs "
"them for correct analysis.\n\n"
"Header Search Paths defined here will be used for all projects."
"header files of frameworks or libraries that your project uses. These files won't be analyzed, but Coati needs "
"them for correct analysis."
);
m_subPaths = new QtProjectWizzardContentPathsHeaderSearchGlobal(settings, window);
@@ -216,6 +263,18 @@ void QtProjectWizzardContentPathsHeaderSearch::savePaths()
m_settings->setHeaderSearchPaths(m_list->getList());
}
QtProjectWizzardContentPathsHeaderSearchSimple::QtProjectWizzardContentPathsHeaderSearchSimple(
ProjectSettings* settings, QtProjectWizzardWindow* window
)
: QtProjectWizzardContentPathsHeaderSearch(settings, window)
{
setTitleString("External Header Search Paths");
setDescriptionString(
"Add the header search paths to external dependencies used in your project. The header search paths are "
"needed to resolve #include directives within your source and header files."
);
}
QtProjectWizzardContentPathsHeaderSearchGlobal::QtProjectWizzardContentPathsHeaderSearchGlobal(
ProjectSettings* settings, QtProjectWizzardWindow* window
)
@@ -223,9 +282,11 @@ QtProjectWizzardContentPathsHeaderSearchGlobal::QtProjectWizzardContentPathsHead
{
setInfo(
"Global Header Search Paths",
"Header Search Paths for all projects.",
"These header search paths will be used in all your projects. Use it to add system header and Standard Library "
"header paths (See <a href=\"https://staging.coati.io/documentation/#FindingSystemHeaderLocations\">Finding "
"System Header Locations</a>).",
"Header Search Paths define where additional headers, that your project depends on, are found. Usually they are "
"header files of frameworks or libraries that your project uses. These files won't be analysed, but Coati needs "
"header files of frameworks or libraries that your project uses. These files won't be analyzed, but Coati needs "
"them for correct analysis.\n\n"
"Header Search Paths defined here will be used for all projects."
);
@@ -249,9 +310,8 @@ QtProjectWizzardContentPathsFrameworkSearch::QtProjectWizzardContentPathsFramewo
{
setInfo(
"Framework Search Paths",
"Framework Search Paths define where MacOS framework containers, that your project depends on, are found.",
"Framework Search Paths define where MacOS framework containers, that your project depends on, are found.\n\n"
"Framework Search Paths defined here will be used for all projects."
"Add search paths to Mac OS framework containers (.framework) that the project depends on.",
"Framework Search Paths define where MacOS framework containers (.framework), that your project depends on, are found."
);
m_subPaths = new QtProjectWizzardContentPathsFrameworkSearchGlobal(settings, window);
@@ -274,8 +334,10 @@ QtProjectWizzardContentPathsFrameworkSearchGlobal::QtProjectWizzardContentPathsF
{
setInfo(
"Global Framework Search Paths",
"Framework Search Paths for all projects",
"Framework Search Paths define where MacOS framework containers, that your project depends on, are found.\n\n"
"These framework search paths will be used in all your projects. Use it to add system frameworks "
"(See <a href=\"https://staging.coati.io/documentation/#FindingSystemHeaderLocations\">"
"Finding System Header Locations</a>).",
"Framework Search Paths define where MacOS framework containers (.framework), that your project depends on, are found.\n\n"
"Framework Search Paths defined here will be used for all projects."
);
}