ui: Added Java project setup UI
This commit is contained in:
@@ -315,8 +315,6 @@ add_files(
|
||||
utility/solution/ISolutionParser.h
|
||||
utility/solution/SolutionParserCodeBlocks.cpp
|
||||
utility/solution/SolutionParserCodeBlocks.h
|
||||
utility/solution/SolutionParserEclipse.cpp
|
||||
utility/solution/SolutionParserEclipse.h
|
||||
utility/solution/SolutionParserManager.cpp
|
||||
utility/solution/SolutionParserManager.h
|
||||
utility/solution/SolutionParserUtility.cpp
|
||||
|
||||
+2
-2
@@ -64,7 +64,7 @@ void Project::refresh()
|
||||
{
|
||||
if (allowsRefresh())
|
||||
{
|
||||
bool loadedSettings = getProjectSettings()->load();
|
||||
bool loadedSettings = getProjectSettings()->reload();
|
||||
|
||||
updateFileManager(m_fileManager);
|
||||
|
||||
@@ -112,7 +112,7 @@ Project::Project(StorageAccessProxy* storageAccessProxy)
|
||||
void Project::load()
|
||||
{
|
||||
const std::shared_ptr<ProjectSettings> projectSettings = getProjectSettings();
|
||||
bool loadedSettings = projectSettings->load();
|
||||
bool loadedSettings = projectSettings->reload();
|
||||
if (loadedSettings)
|
||||
{
|
||||
const FilePath projectSettingsPath = projectSettings->getFilePath();
|
||||
|
||||
@@ -47,7 +47,11 @@ void CodeController::handleMessage(MessageActivateAll* message)
|
||||
statsSnippet.locationFile = std::make_shared<TokenLocationFile>(FilePath());
|
||||
statsSnippet.locationFile->isWholeCopy = true;
|
||||
|
||||
statsSnippet.title = Application::getInstance()->getCurrentProject()->getProjectSettingsFilePath().withoutExtension().fileName();
|
||||
Project* currentProject = Application::getInstance()->getCurrentProject().get();
|
||||
if (currentProject)
|
||||
{
|
||||
statsSnippet.title = currentProject->getProjectSettingsFilePath().withoutExtension().fileName();
|
||||
}
|
||||
|
||||
std::vector<std::string> description = getProjectDescription(statsSnippet.locationFile.get());
|
||||
|
||||
@@ -662,8 +666,13 @@ std::shared_ptr<TokenLocationFile> CodeController::getTokenLocationOfParentScope
|
||||
|
||||
std::vector<std::string> CodeController::getProjectDescription(TokenLocationFile* locationFile) const
|
||||
{
|
||||
std::string description = Application::getInstance()->getCurrentProject()->getDescription();
|
||||
Project* currentProject = Application::getInstance()->getCurrentProject().get();
|
||||
if (!currentProject)
|
||||
{
|
||||
return std::vector<std::string>();
|
||||
}
|
||||
|
||||
std::string description = currentProject->getDescription();
|
||||
if (!description.size())
|
||||
{
|
||||
return std::vector<std::string>();
|
||||
|
||||
@@ -36,6 +36,38 @@ bool CxxProjectSettings::equalsExceptNameAndLocation(const ProjectSettings& othe
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<std::string> CxxProjectSettings::getLanguageStandards() const
|
||||
{
|
||||
std::vector<std::string> standards;
|
||||
|
||||
switch (getLanguage())
|
||||
{
|
||||
case LANGUAGE_CPP:
|
||||
standards.push_back("1z");
|
||||
standards.push_back("14");
|
||||
standards.push_back("1y");
|
||||
standards.push_back("11");
|
||||
standards.push_back("0x");
|
||||
standards.push_back("03");
|
||||
standards.push_back("98");
|
||||
break;
|
||||
|
||||
case LANGUAGE_C:
|
||||
standards.push_back("1x");
|
||||
standards.push_back("11");
|
||||
standards.push_back("9x");
|
||||
standards.push_back("99");
|
||||
standards.push_back("90");
|
||||
standards.push_back("89");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return standards;
|
||||
}
|
||||
|
||||
std::vector<FilePath> CxxProjectSettings::getHeaderSearchPaths() const
|
||||
{
|
||||
return getPathValues("source/header_search_paths/header_search_path");
|
||||
@@ -122,3 +154,8 @@ std::vector<std::string> CxxProjectSettings::getDefaultSourceExtensions() const
|
||||
defaultValues.push_back(".cc");
|
||||
return defaultValues;
|
||||
}
|
||||
|
||||
std::string CxxProjectSettings::getDefaultStandard() const
|
||||
{
|
||||
return "1z";
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ public:
|
||||
|
||||
virtual bool equalsExceptNameAndLocation(const ProjectSettings& other) const;
|
||||
|
||||
virtual std::vector<std::string> getLanguageStandards() const;
|
||||
|
||||
std::vector<FilePath> getHeaderSearchPaths() const;
|
||||
std::vector<FilePath> getAbsoluteHeaderSearchPaths() const;
|
||||
bool setHeaderSearchPaths(const std::vector<FilePath>& headerSearchPaths);
|
||||
@@ -35,6 +37,7 @@ public:
|
||||
|
||||
private:
|
||||
virtual std::vector<std::string> getDefaultSourceExtensions() const;
|
||||
virtual std::string getDefaultStandard() const;
|
||||
};
|
||||
|
||||
#endif // CXX_PROJECT_SETTINGS_H
|
||||
|
||||
@@ -36,6 +36,11 @@ bool JavaProjectSettings::equalsExceptNameAndLocation(const ProjectSettings& oth
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<std::string> JavaProjectSettings::getLanguageStandards() const
|
||||
{
|
||||
return std::vector<std::string>(1, "8");
|
||||
}
|
||||
|
||||
std::vector<FilePath> JavaProjectSettings::getClasspaths() const
|
||||
{
|
||||
return getPathValues("source/class_paths/class_path");
|
||||
@@ -60,3 +65,8 @@ std::vector<std::string> JavaProjectSettings::getDefaultSourceExtensions() const
|
||||
defaultValues.push_back(".java");
|
||||
return defaultValues;
|
||||
}
|
||||
|
||||
std::string JavaProjectSettings::getDefaultStandard() const
|
||||
{
|
||||
return "8";
|
||||
}
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
|
||||
#include "settings/ProjectSettings.h"
|
||||
|
||||
class JavaProjectSettings: public ProjectSettings
|
||||
class JavaProjectSettings
|
||||
: public ProjectSettings
|
||||
{
|
||||
public:
|
||||
JavaProjectSettings();
|
||||
@@ -13,12 +14,15 @@ public:
|
||||
|
||||
virtual bool equalsExceptNameAndLocation(const ProjectSettings& other) const;
|
||||
|
||||
virtual std::vector<std::string> getLanguageStandards() const;
|
||||
|
||||
std::vector<FilePath> getClasspaths() const;
|
||||
std::vector<FilePath> getAbsoluteClasspaths() const;
|
||||
bool setClasspaths(const std::vector<FilePath>& headerSearchPaths);
|
||||
|
||||
private:
|
||||
virtual std::vector<std::string> getDefaultSourceExtensions() const;
|
||||
virtual std::string getDefaultStandard() const;
|
||||
};
|
||||
|
||||
#endif // JAVA_PROJECT_SETTINGS_H
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
LanguageType ProjectSettings::getLanguageOfProject(FilePath projectFilePath)
|
||||
{
|
||||
ProjectSettings tempSettings(projectFilePath);
|
||||
tempSettings.load();
|
||||
ProjectSettings tempSettings;
|
||||
tempSettings.load(projectFilePath);
|
||||
return tempSettings.getLanguage();
|
||||
}
|
||||
|
||||
@@ -40,7 +40,12 @@ bool ProjectSettings::equalsExceptNameAndLocation(const ProjectSettings& other)
|
||||
);
|
||||
}
|
||||
|
||||
bool ProjectSettings::load()
|
||||
std::vector<std::string> ProjectSettings::getLanguageStandards() const
|
||||
{
|
||||
return std::vector<std::string>();
|
||||
}
|
||||
|
||||
bool ProjectSettings::reload()
|
||||
{
|
||||
return Settings::load(getFilePath());
|
||||
}
|
||||
@@ -82,7 +87,7 @@ bool ProjectSettings::setLanguage(LanguageType language)
|
||||
|
||||
std::string ProjectSettings::getStandard() const
|
||||
{
|
||||
return getValue<std::string>("language_settings/standard", "1z");
|
||||
return getValue<std::string>("language_settings/standard", getDefaultStandard());
|
||||
}
|
||||
|
||||
bool ProjectSettings::setStandard(const std::string& standard)
|
||||
@@ -152,3 +157,9 @@ std::vector<std::string> ProjectSettings::getDefaultSourceExtensions() const
|
||||
{
|
||||
return std::vector<std::string>();
|
||||
}
|
||||
|
||||
std::string ProjectSettings::getDefaultStandard() const
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@ public:
|
||||
|
||||
virtual bool equalsExceptNameAndLocation(const ProjectSettings& other) const;
|
||||
|
||||
virtual bool load();
|
||||
virtual std::vector<std::string> getLanguageStandards() const;
|
||||
|
||||
bool reload();
|
||||
|
||||
std::string getProjectName() const;
|
||||
void setProjectName(const std::string& name);
|
||||
@@ -52,6 +54,7 @@ protected:
|
||||
|
||||
private:
|
||||
virtual std::vector<std::string> getDefaultSourceExtensions() const;
|
||||
virtual std::string getDefaultStandard() const;
|
||||
};
|
||||
|
||||
#endif // PROJECT_SETTINGS_H
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#ifndef SOLUTION_PARSER_ECLIPSE_H
|
||||
#define SOLUTION_PARSER_ECLIPSE_H
|
||||
|
||||
#include "ISolutionParser.h"
|
||||
|
||||
class SolutionParserEclipse
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
#endif // SOLUTION_PARSER_ECLIPSE_H
|
||||
@@ -419,8 +419,13 @@ void QtMainWindow::openProject(const QString &path)
|
||||
|
||||
void QtMainWindow::editProject()
|
||||
{
|
||||
QtProjectWizzard* wizzard = createWindow<QtProjectWizzard>();
|
||||
wizzard->editProject(Application::getInstance()->getCurrentProject()->getProjectSettingsFilePath());
|
||||
Project* currentProject = Application::getInstance()->getCurrentProject().get();
|
||||
if (currentProject)
|
||||
{
|
||||
QtProjectWizzard* wizzard = createWindow<QtProjectWizzard>();
|
||||
|
||||
wizzard->editProject(currentProject->getProjectSettingsFilePath());
|
||||
}
|
||||
}
|
||||
|
||||
void QtMainWindow::find()
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
#include "qt/window/project_wizzard/QtProjectWizzard.h"
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
#include <QSysInfo>
|
||||
@@ -21,16 +19,13 @@
|
||||
#include "settings/CxxProjectSettings.h"
|
||||
#include "settings/JavaProjectSettings.h"
|
||||
#include "utility/file/FileSystem.h"
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/messaging/type/MessageDispatchWhenLicenseValid.h"
|
||||
#include "utility/messaging/type/MessageLoadProject.h"
|
||||
#include "utility/messaging/type/MessageRefresh.h"
|
||||
|
||||
#include "utility/solution/SolutionParserVisualStudio.h"
|
||||
// #include "utility/solution/SolutionParserCodeBlocks.h"
|
||||
|
||||
#include "utility/messaging/type/MessageStatus.h"
|
||||
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/solution/SolutionParserVisualStudio.h"
|
||||
#include "utility/utilityString.h"
|
||||
|
||||
#include "Application.h"
|
||||
|
||||
@@ -101,11 +96,9 @@ void QtProjectWizzard::newProjectFromSolution(const std::string& ideId, const st
|
||||
QtProjectWizzardWindow* window = dynamic_cast<QtProjectWizzardWindow*>(widget);
|
||||
|
||||
std::string title = "NEW PROJECT FROM ";
|
||||
title += ideId;
|
||||
title += utility::toUpperCase(ideId);
|
||||
title += " SOLUTION";
|
||||
|
||||
boost::algorithm::to_upper(title);
|
||||
|
||||
window->updateTitle(QString(title.c_str()));
|
||||
window->updateNextButton("Create");
|
||||
window->setPreviousVisible(m_windowStack.getWindowCount() > 0);
|
||||
@@ -162,11 +155,13 @@ void QtProjectWizzard::editProject(const FilePath& settingsPath)
|
||||
case LANGUAGE_JAVA:
|
||||
settings = std::make_shared<JavaProjectSettings>(settingsPath);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
if (settings)
|
||||
{
|
||||
settings->load();
|
||||
settings->reload();
|
||||
editProject(settings);
|
||||
}
|
||||
}
|
||||
@@ -176,7 +171,20 @@ void QtProjectWizzard::editProject(std::shared_ptr<ProjectSettings> settings)
|
||||
m_settings = settings;
|
||||
m_editing = true;
|
||||
|
||||
showSummary();
|
||||
switch (m_settings->getLanguage())
|
||||
{
|
||||
case LANGUAGE_JAVA:
|
||||
showSummaryJava();
|
||||
break;
|
||||
|
||||
case LANGUAGE_C:
|
||||
case LANGUAGE_CPP:
|
||||
showSummary();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
QtProjectWizzardWindow* window = dynamic_cast<QtProjectWizzardWindow*>(m_windowStack.getTopWindow());
|
||||
if (!window)
|
||||
@@ -334,7 +342,14 @@ void QtProjectWizzard::selectedProjectType(LanguageType languageType, QtProjectW
|
||||
switch (type)
|
||||
{
|
||||
case QtProjectWizzardContentSelect::PROJECT_EMPTY:
|
||||
m_settings = std::make_shared<CxxProjectSettings>();
|
||||
if (languageType == LANGUAGE_JAVA)
|
||||
{
|
||||
m_settings = std::make_shared<JavaProjectSettings>();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_settings = std::make_shared<CxxProjectSettings>();
|
||||
}
|
||||
m_settings->setLanguage(languageType);
|
||||
emptyProject();
|
||||
break;
|
||||
@@ -376,7 +391,15 @@ void QtProjectWizzard::selectedProjectType(LanguageType languageType, QtProjectW
|
||||
void QtProjectWizzard::emptyProject()
|
||||
{
|
||||
QtProjectWizzardWindow* window = createWindowWithContent<QtProjectWizzardContentData>();
|
||||
connect(window, SIGNAL(next()), this, SLOT(sourcePaths()));
|
||||
|
||||
if (m_settings->getLanguage() == LANGUAGE_JAVA)
|
||||
{
|
||||
connect(window, SIGNAL(next()), this, SLOT(sourcePathsJava()));
|
||||
}
|
||||
else
|
||||
{
|
||||
connect(window, SIGNAL(next()), this, SLOT(sourcePaths()));
|
||||
}
|
||||
}
|
||||
|
||||
void QtProjectWizzard::sourcePaths()
|
||||
@@ -487,6 +510,25 @@ void QtProjectWizzard::headerPathsCDBDone()
|
||||
}
|
||||
}
|
||||
|
||||
void QtProjectWizzard::sourcePathsJava()
|
||||
{
|
||||
QtProjectWizzardWindow* window = createWindowWithSummary(
|
||||
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
|
||||
{
|
||||
|
||||
QtProjectWizzardContent* source = new QtProjectWizzardContentPathsSourceJava(m_settings, window);
|
||||
summary->addContent(source, false, false);
|
||||
connectShowFiles(source);
|
||||
|
||||
summary->addContent(new QtProjectWizzardContentPathsClassJava(m_settings, window), false, false);
|
||||
|
||||
window->setup();
|
||||
}
|
||||
);
|
||||
|
||||
connect(window, SIGNAL(next()), this, SLOT(showSummaryJava()));
|
||||
}
|
||||
|
||||
void QtProjectWizzard::showFiles(QtProjectWizzardContent* content)
|
||||
{
|
||||
QWidget* widget = m_windowStack.getTopWindow();
|
||||
@@ -566,17 +608,51 @@ void QtProjectWizzard::showSummary()
|
||||
connect(window, SIGNAL(next()), this, SLOT(createProject()));
|
||||
}
|
||||
|
||||
void QtProjectWizzard::showSummaryJava()
|
||||
{
|
||||
QtProjectWizzardWindow* window = createWindowWithSummary(
|
||||
[this](QtProjectWizzardWindow* window, QtProjectWizzardContentSummary* summary)
|
||||
{
|
||||
summary->setIsForm(true);
|
||||
|
||||
summary->addContent(new QtProjectWizzardContentData(m_settings, window), false, false);
|
||||
|
||||
QtProjectWizzardContentPathsSourceJava* source = new QtProjectWizzardContentPathsSourceJava(m_settings, window);
|
||||
summary->addContent(source, false, true);
|
||||
connectShowFiles(source);
|
||||
|
||||
summary->addContent(new QtProjectWizzardContentPathsClassJava(m_settings, window), false, true);
|
||||
|
||||
summary->addContent(new QtProjectWizzardContentExtensions(m_settings, window), true, false);
|
||||
summary->addContent(new QtProjectWizzardContentPathsExclude(m_settings, window), true, true);
|
||||
|
||||
window->setup();
|
||||
|
||||
window->updateTitle("NEW PROJECT - SUMMARY");
|
||||
window->updateNextButton("Create");
|
||||
}
|
||||
);
|
||||
|
||||
connect(window, SIGNAL(next()), this, SLOT(createProject()));
|
||||
}
|
||||
|
||||
void QtProjectWizzard::createProject()
|
||||
{
|
||||
FilePath path = m_settings->getFilePath();
|
||||
|
||||
m_settings->save(path);
|
||||
|
||||
bool foreceRefreshProject = false;
|
||||
bool forceRefreshProject = false;
|
||||
if (m_editing)
|
||||
{
|
||||
std::shared_ptr<Application> application = Application::getInstance();
|
||||
FilePath oldPath = application->getCurrentProject()->getProjectSettingsFilePath();
|
||||
FilePath oldPath;
|
||||
|
||||
Project* currentProject = application->getCurrentProject().get();
|
||||
if (currentProject)
|
||||
{
|
||||
oldPath = currentProject->getProjectSettingsFilePath();
|
||||
}
|
||||
|
||||
if (oldPath.exists() && oldPath != path)
|
||||
{
|
||||
@@ -608,12 +684,12 @@ void QtProjectWizzard::createProject()
|
||||
|
||||
if (settingsChanged || appSettingsChanged)
|
||||
{
|
||||
foreceRefreshProject = true;
|
||||
forceRefreshProject = true;
|
||||
}
|
||||
}
|
||||
|
||||
MessageDispatchWhenLicenseValid(
|
||||
std::make_shared<MessageLoadProject>(path, foreceRefreshProject)
|
||||
std::make_shared<MessageLoadProject>(path, forceRefreshProject)
|
||||
).dispatch();
|
||||
|
||||
finishWizzard();
|
||||
@@ -625,11 +701,15 @@ void QtProjectWizzard::savePreferences()
|
||||
|
||||
if (appSettingsChanged)
|
||||
{
|
||||
MessageDispatchWhenLicenseValid(
|
||||
std::make_shared<MessageLoadProject>(
|
||||
Application::getInstance()->getCurrentProject()->getProjectSettingsFilePath(), true
|
||||
)
|
||||
).dispatch();
|
||||
Project* currentProject = Application::getInstance()->getCurrentProject().get();
|
||||
if (currentProject)
|
||||
{
|
||||
MessageDispatchWhenLicenseValid(
|
||||
std::make_shared<MessageLoadProject>(
|
||||
currentProject->getProjectSettingsFilePath(), true
|
||||
)
|
||||
).dispatch();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -82,9 +82,12 @@ private slots:
|
||||
void headerPathsCDB();
|
||||
void headerPathsCDBDone();
|
||||
|
||||
void sourcePathsJava();
|
||||
|
||||
void showFiles(QtProjectWizzardContent* content);
|
||||
|
||||
void showSummary();
|
||||
void showSummaryJava();
|
||||
|
||||
void createProject();
|
||||
void savePreferences();
|
||||
|
||||
@@ -35,10 +35,6 @@ void QtProjectWizzardContent::populateWindow(QWidget* widget)
|
||||
{
|
||||
}
|
||||
|
||||
void QtProjectWizzardContent::populateWindow(QGridLayout* layout)
|
||||
{
|
||||
}
|
||||
|
||||
void QtProjectWizzardContent::populateWindow(QGridLayout* layout, int& row)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ public:
|
||||
QtProjectWizzardContent(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window);
|
||||
|
||||
virtual void populateWindow(QWidget* widget);
|
||||
virtual void populateWindow(QGridLayout* layout);
|
||||
virtual void populateWindow(QGridLayout* layout, int& row);
|
||||
virtual void populateForm(QGridLayout* layout, int& row);
|
||||
virtual void windowReady();
|
||||
|
||||
@@ -5,20 +5,20 @@
|
||||
|
||||
#include "settings/CxxProjectSettings.h"
|
||||
|
||||
#include "utility/logging/logging.h"
|
||||
|
||||
QtProjectWizzardContentData::QtProjectWizzardContentData(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window)
|
||||
: QtProjectWizzardContent(settings, window)
|
||||
, m_projectName(nullptr)
|
||||
, m_projectFileLocation(nullptr)
|
||||
, m_language(nullptr)
|
||||
, m_cppStandard(nullptr)
|
||||
, m_cStandard(nullptr)
|
||||
, m_standard(nullptr)
|
||||
, m_buildFilePicker(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentData::populateWindow(QGridLayout* layout)
|
||||
void QtProjectWizzardContentData::populateWindow(QGridLayout* layout, int& row)
|
||||
{
|
||||
int row = 0;
|
||||
layout->setRowMinimumHeight(0, 15);
|
||||
row++;
|
||||
|
||||
@@ -47,24 +47,24 @@ void QtProjectWizzardContentData::load()
|
||||
|
||||
if (m_language)
|
||||
{
|
||||
if (m_settings->getLanguage() != LANGUAGE_UNKNOWN)
|
||||
LanguageType type = m_settings->getLanguage();
|
||||
|
||||
if (type == LANGUAGE_UNKNOWN)
|
||||
{
|
||||
m_language->setCurrentText(QString::fromStdString(languageTypeToString(m_settings->getLanguage())));
|
||||
LOG_ERROR("No language type defined");
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_settings->getStandard().length() > 0)
|
||||
{
|
||||
if (m_language->currentIndex() == 0) // c++
|
||||
{
|
||||
m_cppStandard->setCurrentText(QString::fromStdString(m_settings->getStandard()));
|
||||
}
|
||||
else if (m_language->currentIndex() == 1) // c
|
||||
{
|
||||
m_cStandard->setCurrentText(QString::fromStdString(m_settings->getStandard()));
|
||||
}
|
||||
m_language->setText(languageTypeToString(type).c_str());
|
||||
|
||||
handleSelectionChanged(m_language->currentIndex());
|
||||
m_standard->clear();
|
||||
std::vector<std::string> standards = m_settings->getLanguageStandards();
|
||||
for (size_t i = 0; i < standards.size(); i++)
|
||||
{
|
||||
m_standard->insertItem(i, standards[i].c_str());
|
||||
}
|
||||
|
||||
m_standard->setCurrentText(QString::fromStdString(m_settings->getStandard()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,18 +76,9 @@ void QtProjectWizzardContentData::save()
|
||||
m_settings->setProjectFileLocation(m_projectFileLocation->getText().toStdString());
|
||||
}
|
||||
|
||||
if (m_language)
|
||||
if (m_standard)
|
||||
{
|
||||
m_settings->setLanguage(stringToLanguageType(m_language->currentText().toStdString()));
|
||||
|
||||
if (m_cppStandard->isVisible())
|
||||
{
|
||||
m_settings->setStandard(m_cppStandard->currentText().toStdString());
|
||||
}
|
||||
else if (m_cStandard->isVisible())
|
||||
{
|
||||
m_settings->setStandard(m_cStandard->currentText().toStdString());
|
||||
}
|
||||
m_settings->setStandard(m_standard->currentText().toStdString());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,10 +146,7 @@ void QtProjectWizzardContentData::addLanguageAndStandard(QGridLayout* layout, in
|
||||
{
|
||||
QLabel* languageLabel = new QLabel("Language");
|
||||
languageLabel->setObjectName("label");
|
||||
m_language = new QComboBox();
|
||||
m_language->insertItem(0, "C++");
|
||||
m_language->insertItem(1, "C");
|
||||
connect(m_language, SIGNAL(currentIndexChanged(int)), this, SLOT(handleSelectionChanged(int)));
|
||||
m_language = new QLabel();
|
||||
|
||||
layout->addWidget(languageLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
|
||||
layout->addWidget(m_language, row, QtProjectWizzardWindow::BACK_COL, Qt::AlignLeft);
|
||||
@@ -166,27 +154,11 @@ void QtProjectWizzardContentData::addLanguageAndStandard(QGridLayout* layout, in
|
||||
|
||||
|
||||
QLabel* standardLabel = createFormLabel("Standard");
|
||||
|
||||
m_cppStandard = new QComboBox();
|
||||
m_cppStandard->insertItem(0, "1z");
|
||||
m_cppStandard->insertItem(1, "14");
|
||||
m_cppStandard->insertItem(2, "1y");
|
||||
m_cppStandard->insertItem(3, "11");
|
||||
m_cppStandard->insertItem(4, "0x");
|
||||
m_cppStandard->insertItem(5, "03");
|
||||
m_cppStandard->insertItem(6, "98");
|
||||
|
||||
m_cStandard = new QComboBox();
|
||||
m_cStandard->insertItem(0, "1x");
|
||||
m_cStandard->insertItem(1, "11");
|
||||
m_cStandard->insertItem(2, "9x");
|
||||
m_cStandard->insertItem(3, "99");
|
||||
m_cStandard->insertItem(4, "90");
|
||||
m_cStandard->insertItem(5, "89");
|
||||
m_standard = new QComboBox();
|
||||
|
||||
layout->addWidget(standardLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
|
||||
layout->addWidget(m_cppStandard, row, QtProjectWizzardWindow::BACK_COL, Qt::AlignLeft);
|
||||
layout->addWidget(m_cStandard, row, QtProjectWizzardWindow::BACK_COL, Qt::AlignLeft);
|
||||
layout->addWidget(m_standard, row, QtProjectWizzardWindow::BACK_COL, Qt::AlignLeft);
|
||||
|
||||
row++;
|
||||
}
|
||||
|
||||
@@ -199,14 +171,6 @@ void QtProjectWizzardContentData::addBuildFilePicker(
|
||||
m_buildFilePicker = new QtLocationPicker(this);
|
||||
m_buildFilePicker->setFileFilter(filter);
|
||||
|
||||
// QPushButton* button = new QPushButton("", this);
|
||||
// button->setObjectName("refreshButton");
|
||||
// button->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac
|
||||
// button->setToolTip("refresh paths");
|
||||
// connect(button, SIGNAL(clicked()), this, SLOT(refreshClicked()));
|
||||
|
||||
// m_buildFilePicker->layout()->addWidget(button);
|
||||
|
||||
layout->addWidget(m_buildFilePicker, row, QtProjectWizzardWindow::BACK_COL);
|
||||
|
||||
row++;
|
||||
@@ -220,25 +184,6 @@ void QtProjectWizzardContentData::addBuildFilePicker(
|
||||
row++;
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentData::handleSelectionChanged(int index)
|
||||
{
|
||||
if (!m_language)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (index != 0)
|
||||
{
|
||||
m_cStandard->show();
|
||||
m_cppStandard->hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_cppStandard->show();
|
||||
m_cStandard->hide();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QtProjectWizzardContentDataCDB::QtProjectWizzardContentDataCDB(
|
||||
std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window)
|
||||
|
||||
@@ -16,7 +16,7 @@ public:
|
||||
QtProjectWizzardContentData(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window);
|
||||
|
||||
// QtProjectWizzardContent implementation
|
||||
virtual void populateWindow(QGridLayout* layout) override;
|
||||
virtual void populateWindow(QGridLayout* layout, int& row) override;
|
||||
virtual void populateForm(QGridLayout* layout, int& row) override;
|
||||
|
||||
virtual void load() override;
|
||||
@@ -33,14 +33,10 @@ protected:
|
||||
QLineEdit* m_projectName;
|
||||
QtLocationPicker* m_projectFileLocation;
|
||||
|
||||
QComboBox* m_language;
|
||||
QComboBox* m_cppStandard;
|
||||
QComboBox* m_cStandard;
|
||||
QLabel* m_language;
|
||||
QComboBox* m_standard;
|
||||
|
||||
QtLocationPicker* m_buildFilePicker;
|
||||
|
||||
private slots:
|
||||
void handleSelectionChanged(int index);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
#include <QVBoxLayout>
|
||||
|
||||
#include "qt/element/QtDirectoryListBox.h"
|
||||
#include "settings/CxxProjectSettings.h"
|
||||
#include "settings/ApplicationSettings.h"
|
||||
#include "settings/CxxProjectSettings.h"
|
||||
#include "settings/JavaProjectSettings.h"
|
||||
#include "utility/file/FileManager.h"
|
||||
#include "utility/file/FileSystem.h"
|
||||
#include "utility/headerSearch/StandardHeaderDetection.h"
|
||||
@@ -17,12 +18,6 @@ QtProjectWizzardContentPaths::QtProjectWizzardContentPaths(std::shared_ptr<Proje
|
||||
{
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentPaths::populateWindow(QGridLayout* layout)
|
||||
{
|
||||
int row = 0;
|
||||
populateWindow(layout, row);
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentPaths::populateWindow(QGridLayout* layout, int& row)
|
||||
{
|
||||
layout->setRowMinimumHeight(row++, 10);
|
||||
@@ -278,6 +273,20 @@ QString QtProjectWizzardContentPathsSource::getFileNamesDescription() const
|
||||
return "files will be indexed.";
|
||||
}
|
||||
|
||||
QtProjectWizzardContentPathsSourceJava::QtProjectWizzardContentPathsSourceJava(
|
||||
std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window
|
||||
)
|
||||
: QtProjectWizzardContentPathsSource(settings, window)
|
||||
{
|
||||
setInfo(
|
||||
"Source Paths",
|
||||
"Add all directories or files you want to index. Usually these are all source files of "
|
||||
"your project or a subset of them.",
|
||||
"Source Paths define the files and directories that will be indexed by Coati. Usually these are the "
|
||||
"source files of your project or a subset of them."
|
||||
);
|
||||
}
|
||||
|
||||
QtProjectWizzardContentPathsCDBHeader::QtProjectWizzardContentPathsCDBHeader(
|
||||
std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window
|
||||
)
|
||||
@@ -452,3 +461,34 @@ void QtProjectWizzardContentPathsFrameworkSearchGlobal::save()
|
||||
ApplicationSettings::getInstance()->setFrameworkSearchPaths(m_list->getList());
|
||||
ApplicationSettings::getInstance()->save();
|
||||
}
|
||||
|
||||
|
||||
QtProjectWizzardContentPathsClassJava::QtProjectWizzardContentPathsClassJava(
|
||||
std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window
|
||||
)
|
||||
: QtProjectWizzardContentPaths(settings, window)
|
||||
{
|
||||
setInfo(
|
||||
"Class Path",
|
||||
"Paths to .jar files and root directories of .class files your project depends on.",
|
||||
"Enter the paths to .jar files and root directories of .class files your project depends on."
|
||||
);
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentPathsClassJava::load()
|
||||
{
|
||||
std::shared_ptr<JavaProjectSettings> javaSettings = std::dynamic_pointer_cast<JavaProjectSettings>(m_settings);
|
||||
if (javaSettings)
|
||||
{
|
||||
m_list->setList(javaSettings->getClasspaths());
|
||||
}
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentPathsClassJava::save()
|
||||
{
|
||||
std::shared_ptr<JavaProjectSettings> javaSettings = std::dynamic_pointer_cast<JavaProjectSettings>(m_settings);
|
||||
if (javaSettings)
|
||||
{
|
||||
javaSettings->setClasspaths(m_list->getList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ public:
|
||||
QtProjectWizzardContentPaths(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window);
|
||||
|
||||
// QtSettingsWindow implementation
|
||||
virtual void populateWindow(QGridLayout* layout) override;
|
||||
virtual void populateWindow(QGridLayout* layout, int& row) override;
|
||||
virtual void populateForm(QGridLayout* layout, int& row) override;
|
||||
|
||||
@@ -70,6 +69,13 @@ public:
|
||||
virtual QString getFileNamesDescription() const override;
|
||||
};
|
||||
|
||||
class QtProjectWizzardContentPathsSourceJava
|
||||
: public QtProjectWizzardContentPathsSource
|
||||
{
|
||||
public:
|
||||
QtProjectWizzardContentPathsSourceJava(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window);
|
||||
};
|
||||
|
||||
class QtProjectWizzardContentPathsCDBHeader
|
||||
: public QtProjectWizzardContentPathsSource
|
||||
{
|
||||
@@ -138,4 +144,16 @@ public:
|
||||
virtual void save() override;
|
||||
};
|
||||
|
||||
|
||||
class QtProjectWizzardContentPathsClassJava
|
||||
: public QtProjectWizzardContentPaths
|
||||
{
|
||||
public:
|
||||
QtProjectWizzardContentPathsClassJava(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window);
|
||||
|
||||
// QtProjectWizzardContent implementation
|
||||
virtual void load() override;
|
||||
virtual void save() override;
|
||||
};
|
||||
|
||||
#endif // QT_PROJECT_WIZZARD_CONTENT_PATHS_H
|
||||
|
||||
@@ -27,9 +27,8 @@ QtProjectWizzardContentPreferences::~QtProjectWizzardContentPreferences()
|
||||
}
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentPreferences::populateWindow(QGridLayout* layout)
|
||||
void QtProjectWizzardContentPreferences::populateWindow(QGridLayout* layout, int& row)
|
||||
{
|
||||
int row = 0;
|
||||
populateForm(layout, row);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ public:
|
||||
~QtProjectWizzardContentPreferences();
|
||||
|
||||
// QtProjectWizzardContent implementation
|
||||
virtual void populateWindow(QGridLayout* layout) override;
|
||||
virtual void populateWindow(QGridLayout* layout, int& row) override;
|
||||
virtual void populateForm(QGridLayout* layout, int& row) override;
|
||||
|
||||
virtual void load() override;
|
||||
|
||||
@@ -10,39 +10,55 @@
|
||||
|
||||
#include "utility/solution/SolutionParserManager.h"
|
||||
|
||||
QtProjectWizzardContentSelect::QtProjectWizzardContentSelect(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window, std::weak_ptr<SolutionParserManager> solutionParserManager)
|
||||
QtProjectWizzardContentSelect::QtProjectWizzardContentSelect(
|
||||
std::shared_ptr<ProjectSettings> settings,
|
||||
QtProjectWizzardWindow* window,
|
||||
std::weak_ptr<SolutionParserManager> solutionParserManager
|
||||
)
|
||||
: QtProjectWizzardContent(settings, window)
|
||||
, m_solutionParserManager(solutionParserManager)
|
||||
{
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentSelect::populateWindow(QGridLayout* layout)
|
||||
void QtProjectWizzardContentSelect::populateWindow(QGridLayout* layout, int& row)
|
||||
{
|
||||
QPushButton* d = new QPushButton("C++");
|
||||
QPushButton* e = new QPushButton("C");
|
||||
QPushButton* d = new QPushButton(languageTypeToString(LANGUAGE_CPP).c_str(), this);
|
||||
QPushButton* e = new QPushButton(languageTypeToString(LANGUAGE_C).c_str(), this);
|
||||
QPushButton* f = new QPushButton(languageTypeToString(LANGUAGE_JAVA).c_str(), this);
|
||||
|
||||
d->setObjectName("menuButton");
|
||||
e->setObjectName("menuButton");
|
||||
f->setObjectName("menuButton");
|
||||
|
||||
d->setCheckable(true);
|
||||
e->setCheckable(true);
|
||||
f->setCheckable(true);
|
||||
|
||||
d->setChecked(true);
|
||||
|
||||
m_languages = new QButtonGroup();
|
||||
m_languages->addButton(d);
|
||||
m_languages->addButton(e);
|
||||
m_languages->addButton(f);
|
||||
|
||||
m_languages->setId(d, 0);
|
||||
m_languages->setId(e, 1);
|
||||
m_languages->setId(f, 2);
|
||||
|
||||
connect(m_languages, static_cast<void(QButtonGroup::*)(int)>(&QButtonGroup::buttonClicked),
|
||||
[this](int id)
|
||||
{
|
||||
bool isJava = stringToLanguageType(m_languages->checkedButton()->text().toStdString()) == LANGUAGE_JAVA;
|
||||
|
||||
m_buttons->setExclusive(false);
|
||||
for (int i = 0; i < m_buttons->buttons().size(); i++)
|
||||
{
|
||||
m_buttons->button(i)->setChecked(false);
|
||||
|
||||
if (i != 0)
|
||||
{
|
||||
m_buttons->button(i)->setVisible(!isJava);
|
||||
}
|
||||
}
|
||||
m_buttons->setExclusive(true);
|
||||
|
||||
@@ -57,6 +73,7 @@ void QtProjectWizzardContentSelect::populateWindow(QGridLayout* layout)
|
||||
|
||||
vlayout->addWidget(d);
|
||||
vlayout->addWidget(e);
|
||||
vlayout->addWidget(f);
|
||||
|
||||
vlayout->addStretch();
|
||||
|
||||
|
||||
@@ -19,10 +19,11 @@ public:
|
||||
PROJECT_MANAGED = 2 // use this type for all standard parser (parsers that are handled by the parser manager)
|
||||
};
|
||||
|
||||
QtProjectWizzardContentSelect(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window, std::weak_ptr<SolutionParserManager> solutionParserManager);
|
||||
QtProjectWizzardContentSelect(
|
||||
std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window, std::weak_ptr<SolutionParserManager> solutionParserManager);
|
||||
|
||||
// QtProjectWizzardContent implementation
|
||||
virtual void populateWindow(QGridLayout* layout) override;
|
||||
virtual void populateWindow(QGridLayout* layout, int& row) override;
|
||||
|
||||
virtual void save() override;
|
||||
virtual bool check() override;
|
||||
@@ -32,8 +33,6 @@ public:
|
||||
signals:
|
||||
void selected(LanguageType, QtProjectWizzardContentSelect::ProjectType);
|
||||
|
||||
// void selected(unsigned int type);
|
||||
|
||||
private:
|
||||
QButtonGroup* m_languages;
|
||||
QButtonGroup* m_buttons;
|
||||
|
||||
@@ -11,12 +11,6 @@ QtProjectWizzardContentSimple::QtProjectWizzardContentSimple(std::shared_ptr<Pro
|
||||
{
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentSimple::populateWindow(QGridLayout* layout)
|
||||
{
|
||||
int row = 0;
|
||||
populateWindow(layout, row);
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentSimple::populateWindow(QGridLayout* layout, int& row)
|
||||
{
|
||||
QLabel* title = new QLabel("Lazy Include Search");
|
||||
|
||||
@@ -15,7 +15,6 @@ public:
|
||||
QtProjectWizzardContentSimple(std::shared_ptr<ProjectSettings> settings, QtProjectWizzardWindow* window);
|
||||
|
||||
// QtProjectWizzardContent implementation
|
||||
virtual void populateWindow(QGridLayout* layout) override;
|
||||
virtual void populateWindow(QGridLayout* layout, int& row) override;
|
||||
virtual void populateForm(QGridLayout* layout, int& row) override;
|
||||
|
||||
|
||||
@@ -27,10 +27,8 @@ void QtProjectWizzardContentSummary::setIsForm(bool isForm)
|
||||
m_isForm = isForm;
|
||||
}
|
||||
|
||||
void QtProjectWizzardContentSummary::populateWindow(QGridLayout* layout)
|
||||
void QtProjectWizzardContentSummary::populateWindow(QGridLayout* layout, int& row)
|
||||
{
|
||||
int row = 0;
|
||||
|
||||
if (m_isForm)
|
||||
{
|
||||
populateForm(layout, row);
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
|
||||
protected:
|
||||
// QtProjectWizzardContent implementation
|
||||
virtual void populateWindow(QGridLayout* layout) override;
|
||||
virtual void populateWindow(QGridLayout* layout, int& row) override;
|
||||
virtual void populateForm(QGridLayout* layout, int& row) override;
|
||||
|
||||
virtual void load() override;
|
||||
|
||||
@@ -40,7 +40,8 @@ void QtProjectWizzardWindow::populateWindow(QWidget* widget)
|
||||
QGridLayout* layout = new QGridLayout();
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
m_content->populateWindow(layout);
|
||||
int row = 0;
|
||||
m_content->populateWindow(layout, row);
|
||||
|
||||
if (layout->columnCount() < 2)
|
||||
{
|
||||
|
||||
@@ -109,14 +109,14 @@ public:
|
||||
|
||||
void test_load_project_settings_from_file()
|
||||
{
|
||||
ProjectSettings settings(FilePath("data/SettingsTestSuite/settings.xml"));
|
||||
TS_ASSERT(settings.load());
|
||||
ProjectSettings settings;
|
||||
TS_ASSERT(settings.load(FilePath("data/SettingsTestSuite/settings.xml")));
|
||||
}
|
||||
|
||||
void test_load_source_path_from_file()
|
||||
{
|
||||
ProjectSettings settings(FilePath("data/SettingsTestSuite/settings.xml"));
|
||||
settings.load();
|
||||
ProjectSettings settings;
|
||||
settings.load(FilePath("data/SettingsTestSuite/settings.xml"));
|
||||
std::vector<FilePath> paths = settings.getSourcePaths();
|
||||
|
||||
TS_ASSERT_EQUALS(paths.size(), 1);
|
||||
@@ -125,8 +125,8 @@ public:
|
||||
|
||||
void test_load_header_search_paths_from_file()
|
||||
{
|
||||
CxxProjectSettings settings(FilePath("data/SettingsTestSuite/settings.xml"));
|
||||
settings.load();
|
||||
CxxProjectSettings settings;
|
||||
settings.load(FilePath("data/SettingsTestSuite/settings.xml"));
|
||||
std::vector<FilePath> paths = settings.getHeaderSearchPaths();
|
||||
|
||||
TS_ASSERT_EQUALS(paths.size(), 2);
|
||||
|
||||
Reference in New Issue
Block a user