build: renaming to sourcetrail

This commit is contained in:
Andreas Stallinger
2017-04-07 13:19:09 +02:00
parent 8391a6da57
commit 045a259b2e
224 changed files with 885 additions and 4271 deletions
+7 -7
View File
@@ -129,7 +129,7 @@ void prefillCxxFrameworkPaths()
int main(int argc, char *argv[])
{
QApplication::setApplicationName("Coati");
QApplication::setApplicationName("Sourcetrail");
if (QSysInfo::windowsVersion() != QSysInfo::WV_None)
{
@@ -139,7 +139,7 @@ int main(int argc, char *argv[])
Version version = Version::fromString(GIT_VERSION_NUMBER);
QApplication::setApplicationVersion(version.toDisplayString().c_str());
MessageStatus("Starting Coati " + version.toDisplayString()).dispatch();
MessageStatus("Starting Sourcetrail " + version.toDisplayString()).dispatch();
CommandLineParser commandLineParser(argc, argv, version.toString());
if (commandLineParser.exitApplication())
@@ -151,7 +151,7 @@ int main(int argc, char *argv[])
{
setupPlatform(argc, argv);
// headless Coati
// headless Sourcetrail
QtCoreApplication qtApp(argc, argv);
setupApp(argc, argv);
@@ -187,7 +187,7 @@ int main(int argc, char *argv[])
if (!checker->isCurrentLicenseValid()) // this works because the user cannot enter a license string while running the app in headless more.
{
std::cout << "No or invalide License" << std::endl;
LOG_WARNING("Your current Coati license seems to be invalid. Please update your license info.");
LOG_WARNING("Your current Sourcetrail license seems to be invalid. Please update your license info.");
return 0;
}
else
@@ -264,7 +264,7 @@ int main(int argc, char *argv[])
fileStrings += "<li>" + filePath.str() + "</li>";
}
Application::getInstance()->handleDialog(
"<p>It seems that Coati shut down unexpectedly while indexing your project. We are sorry about that. "
"<p>It seems that Sourcetrail shut down unexpectedly while indexing your project. We are sorry about that. "
"But let's go on and find out what exactly went wrong. The crash occurred while indexing one of these files:</p>"
"<ul>" +
fileStrings +
@@ -277,14 +277,14 @@ int main(int argc, char *argv[])
else
{
Application::getInstance()->handleDialog(
"<p>It seems that Coati shut down unexpectedly while indexing your project. We are really sorry about that. "
"<p>It seems that Sourcetrail shut down unexpectedly while indexing your project. We are really sorry about that. "
"At least we know which of your source files caused the crash:</p>"
"<ul>"
"<li>" + storedIndexingFiles.front().str() + "</li>" +
"</ul>"
"<p>To find out which part of the file caused the crash, please make sure to remove everything except this source file from your Project Paths. "
"Enable the option \"Indexer Logging\" in your preferences (this really slows down indexing performance) and force-refresh the project.</p>"
"<p>After the expected crash reoccurred please open the respective log file which now contains the portion of the abstract syntax tree that Coati managed to index, "
"<p>After the expected crash reoccurred please open the respective log file which now contains the portion of the abstract syntax tree that Sourcetrail managed to index, "
"including the node where the crash occurred. We hope that this information helps you figure out what caused the crash and tell us what we can do to reproduce it.</p>"
);
}
+1 -1
View File
@@ -343,7 +343,7 @@ void Application::updateTitle()
{
if (m_hasGUI)
{
std::string title = m_isInTrial ? "Coati Trial" : "Coati";
std::string title = m_isInTrial ? "Sourcetrail Trial" : "Sourcetrail";
if (m_project)
{
@@ -275,7 +275,7 @@ std::string NetworkProtocolHelper::buildPingMessage()
messageStream << m_pingPrefix;
messageStream << m_divider;
messageStream << "coati";
messageStream << "sourcetrail";
messageStream << m_endOfMessageToken;
return messageStream.str();
+5 -4
View File
@@ -78,8 +78,8 @@ bool Project::refresh(bool forceRefresh)
case PROJECT_STATE_OUTVERSIONED:
question =
"This project was indexed with a different version of Coati. It needs to be fully reindexed to be used "
"with this version of Coati. Do you want to reindex the project?";
"This project was indexed with a different version of Sourcetrail. It needs to be fully reindexed to be used "
"with this version of Sourcetrail. Do you want to reindex the project?";
needsFullRefresh = true;
break;
@@ -92,7 +92,7 @@ bool Project::refresh(bool forceRefresh)
case PROJECT_STATE_NEEDS_MIGRATION:
question =
"This project was created with a different version of Coati. The project file needs to get updated and "
"This project was created with a different version of Sourcetrail. The project file needs to get updated and "
"the project fully reindexed. Do you want to update the project file and reindex the project?";
needsFullRefresh = true;
@@ -187,7 +187,8 @@ void Project::load()
}
const FilePath projectSettingsPath = m_settings->getFilePath();
const FilePath dbPath = FilePath(projectSettingsPath).replaceExtension("coatidb");
const std::string dbExtension = (projectSettingsPath.extension() == ".coatiproject" ? "coatidb" : "srctrldb");
const FilePath dbPath = FilePath(projectSettingsPath).replaceExtension(dbExtension);
m_storage = std::make_shared<PersistentStorage>(dbPath);
+9 -5
View File
@@ -7,7 +7,7 @@
#include "utility/utility.h"
#include "utility/UserPaths.h"
const size_t ApplicationSettings::VERSION = 1;
const size_t ApplicationSettings::VERSION = 2;
std::shared_ptr<ApplicationSettings> ApplicationSettings::s_instance;
@@ -51,6 +51,10 @@ bool ApplicationSettings::load(const FilePath& filePath)
"application/indexer_thread_count",
"indexing/indexer_thread_count"
));
migrator.addMigration(2, std::make_shared<MigrationMoveKey>(
"network/coati_port",
"network/sourcetrail_port"
));
bool migrated = migrator.migrate(this, ApplicationSettings::VERSION);
@@ -366,14 +370,14 @@ void ApplicationSettings::setPluginPort(const int pluginPort)
setValue<int>("network/plugin_port", pluginPort);
}
int ApplicationSettings::getCoatiPort() const
int ApplicationSettings::getSourcetrailPort() const
{
return getValue<int>("network/coati_port", 6667);
return getValue<int>("network/sourcetrail_port", 6667);
}
void ApplicationSettings::setCoatiPort(const int coatiPort)
void ApplicationSettings::setSourcetrailPort(const int sourcetrailPort)
{
setValue<int>("network/coati_port", coatiPort);
setValue<int>("network/sourcetrail_port", sourcetrailPort);
}
int ApplicationSettings::getControlsMouseBackButton() const
+2 -2
View File
@@ -108,8 +108,8 @@ public:
int getPluginPort() const;
void setPluginPort(const int pluginPort);
int getCoatiPort() const;
void setCoatiPort(const int coatiPort);
int getSourcetrailPort() const;
void setSourcetrailPort(const int sourcetrailPort);
// controls
int getControlsMouseBackButton() const;
+4 -3
View File
@@ -10,6 +10,7 @@
#include "utility/UUIDUtility.h"
const size_t ProjectSettings::VERSION = 4;
const std::string PROJECT_FILE_EXTENSION = ".srctrlprj";
LanguageType ProjectSettings::getLanguageOfProject(const FilePath& filePath)
{
@@ -46,7 +47,7 @@ ProjectSettings::ProjectSettings(const FilePath& projectFilePath)
ProjectSettings::ProjectSettings(std::string projectName, const FilePath& projectFileLocation)
{
setFilePath(FilePath(projectFileLocation.str() + "/" + projectName + ".coatiproject"));
setFilePath(FilePath(projectFileLocation.str() + "/" + projectName + PROJECT_FILE_EXTENSION));
}
ProjectSettings::~ProjectSettings()
@@ -112,7 +113,7 @@ std::string ProjectSettings::getProjectName() const
void ProjectSettings::setProjectName(const std::string& name)
{
setFilePath(FilePath(getProjectFileLocation().str() + "/" + name + ".coatiproject"));
setFilePath(FilePath(getProjectFileLocation().str() + "/" + name + PROJECT_FILE_EXTENSION));
}
FilePath ProjectSettings::getProjectFileLocation() const
@@ -122,7 +123,7 @@ FilePath ProjectSettings::getProjectFileLocation() const
void ProjectSettings::setProjectFileLocation(const FilePath& location)
{
setFilePath(FilePath(location.str() + "/" + getProjectName() + ".coatiproject"));
setFilePath(FilePath(location.str() + "/" + getProjectName() + PROJECT_FILE_EXTENSION));
}
std::string ProjectSettings::getDescription() const
@@ -23,23 +23,23 @@ CommandLineParser::CommandLineParser(int argc, char** argv, const std::string& v
std::string projectfile_db;
std::string licensefile;
std::string licensetext;
po::options_description desc("Coati");
po::options_description desc("Sourcetrail");
desc.add_options()
("help,h", "Print this help message")
("version,v", "Version of Coati")
("project,p", "Load Coati with a Coatiprojectfile")
("version,v", "Version of Sourcetrail")
("project,p", "Load Sourcetrail with a Sourcetrailprojectfile")
;
po::positional_options_description positionalOption;
positionalOption.add("project-file", 1);
po::options_description hidden_desc("hidden commandlineflags");
hidden_desc.add_options()
("force,f", "Force coati to parse if database exists")
("force,f", "Force sourcetrail to parse if database exists")
("licenseFile,z", po::value<std::string>(&licensefile), "Enter license via Licensefile")
("license,l", po::value<std::string>(&licensetext), "Enter licenes via commandline")
("hidden", "Print this help message with hidden arguments")
("database,d", "Start coati to parse a Coati projectfile to get a coatidatabase")
("project-file", po::value<std::string>(&projectfile), "Coati project file");
("database,d", "Start sourcetrail to parse a Sourcetrail projectfile to get a sourcetraildatabase")
("project-file", po::value<std::string>(&projectfile), "Sourcetrail project file");
;
po::options_description all("Allowed options");
all.add(desc).add(hidden_desc);
@@ -87,7 +87,7 @@ CommandLineParser::CommandLineParser(int argc, char** argv, const std::string& v
if (vm.count("version"))
{
std::cout << "Coati Version " << version << std::endl;
std::cout << "Sourcetrail Version " << version << std::endl;
m_quit = true;
}
@@ -159,7 +159,7 @@ void CommandLineParser::processProjectfile(const std::string& file)
return;
}
if (projectfile.extension() != ".coatiproject")
if (projectfile.extension() != ".srctrlprj" && projectfile.extension() != ".coatiproject")
{
m_errorString = errorstring + " has a wrong fileending";
return;
@@ -177,7 +177,8 @@ void CommandLineParser::processProjectfile(const std::string& file)
void CommandLineParser::projectLoad()
{
if (m_projectFile.exists() && m_projectFile.extension() == ".coatiproject")
if (m_projectFile.exists() &&
(m_projectFile.extension() == ".srctrlprj" || m_projectFile.extension() == ".coatiproject"))
{
MessageLoadProject(m_projectFile.str(), m_force).dispatch();
}
@@ -8,7 +8,7 @@
#include "InterprocessUtility.h"
#include "SharedQueue.h"
std::string InterprocessDataManager::m_sharedArgumentQueueName = "coati_parser_arguments";
std::string InterprocessDataManager::m_sharedArgumentQueueName = "sourcetrail_parser_arguments";
InterprocessDataManager::InterprocessDataManager(const bool isOwner)
: m_isOwner(isOwner)
@@ -35,9 +35,9 @@ protected:
std::string m_containerName;
};
const std::string SharedContainer::m_memoryNamePrefix("coati_memory_");
const std::string SharedContainer::m_memoryNamePrefix("sourcetrail_memory_");
const std::string SharedContainer::m_containerNamePrefix("coati_container_");
const std::string SharedContainer::m_containerNamePrefix("sourcetrail_container_");
std::string SharedContainer::getMemoryNamePrefix()
{
+1 -1
View File
@@ -31,7 +31,7 @@ void LogManager::setLoggingEnabled(bool enabled)
{
if (enabled)
{
LOG_INFO("Enabled logging for Coati " + Version::getApplicationVersion().toDisplayString());
LOG_INFO("Enabled logging for Sourcetrail " + Version::getApplicationVersion().toDisplayString());
MessageStatus("Enabled console and file logging.").dispatch();
}
else
+10 -2
View File
@@ -21,7 +21,8 @@ void setupApp(int argc, char *argv[])
}
std::string userdir(std::getenv("HOME"));
userdir.append("/.config/coati/");
QDir coatiDir((userdir + "/.config/coati").c_str());
userdir.append("/.config/sourcetrail/");
UserPaths::setUserDataPath(userdir);
@@ -29,7 +30,14 @@ void setupApp(int argc, char *argv[])
QDir dataDir(userdir.c_str());
if (!dataDir.exists())
{
dataDir.mkpath(userDataPath);
if (coatiDir.exists())
{
utility::copyNewFilesFromDirectory(coatiDir.absolutePath(), userDataPath);
}
else
{
dataDir.mkpath(userDataPath);
}
}
utility::copyNewFilesFromDirectory(QString::fromStdString(AppPath::getAppPath() + "/user/" ), userDataPath);
+14 -1
View File
@@ -55,14 +55,27 @@ void setupPlatform(int argc, char *argv[])
// ----------------------------------------------------------------------------
// Makes the mac bundle copy the user files to the Application Support folder
QString dataPath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
QString oldDataPath = QString::fromStdString(UserPaths::getUserDataPath() + "user/");
QDir dataDir(dataPath);
if (!dataDir.exists())
{
dataDir.mkpath(dataPath);
if (dataPath.endsWith("Sourcetrail"))
{
QString coatiDataPath = dataPath;
coatiDataPath.append("/../Coati");
QDir coatiDataDir(coatiDataPath);
if (coatiDataDir.exists())
{
oldDataPath = coatiDataPath;
}
}
}
utility::copyNewFilesFromDirectory(QString::fromStdString(UserPaths::getUserDataPath() + "user/"), dataPath);
utility::copyNewFilesFromDirectory(oldDataPath, dataPath);
UserPaths::setUserDataPath(dataPath.toStdString() + "/");
// ----------------------------------------------------------------------------
@@ -23,11 +23,11 @@ void setupApp(int argc, char *argv[])
path += "/../local/Coati Software/";
if (utility::getApplicationArchitectureType() == APPLICATION_ARCHITECTURE_X86_64)
{
path += "Coati 64-bit/";
path += "Sourcetrail 64-bit/";
}
else
{
path += "Coati/";
path += "Sourcetrail/";
}
UserPaths::setUserDataPath(path);
#else
@@ -36,7 +36,28 @@ void setupApp(int argc, char *argv[])
UserPaths::setUserDataPath(path);
#endif
// These method does nothing if the copy destination already exist
// This "copyFile" method does nothing if the copy destination already exist
#ifdef DEPLOY
// try to find files in Coati installation to migrate to Sourcetrail
FilePath coatiUserDataPath = UserPaths::getUserDataPath() + "../";
if (utility::getApplicationArchitectureType() == APPLICATION_ARCHITECTURE_X86_64)
{
coatiUserDataPath.concat("Coati 64-bit");
}
else
{
coatiUserDataPath = coatiUserDataPath.concat("Coati");
}
if (coatiUserDataPath.exists())
{
FileSystem::copyFile(coatiUserDataPath.concat("ApplicationSettings.xml"), UserPaths::getAppSettingsPath());
FileSystem::copyFile(coatiUserDataPath.concat("window_settings.ini"), UserPaths::getWindowSettingsPath());
}
#endif
// use files in fallback folder if Coati has not been installed and used before
FileSystem::copyFile("data/fallback/ApplicationSettings.xml", UserPaths::getAppSettingsPath());
FileSystem::copyFile("data/fallback/window_settings.ini", UserPaths::getWindowSettingsPath());
}
+1 -1
View File
@@ -33,7 +33,7 @@ bool QtApplication::event(QEvent *event)
FilePath path(fileEvent->file().toStdString());
if (path.exists() && path.extension() == ".coatiproject")
if (path.exists() && (path.extension() == ".srctrlprj" || path.extension() == ".coatiproject"))
{
MessageLoadProject(path.str(), false).dispatch();
return true;
@@ -18,7 +18,7 @@ void QtIDECommunicationController::startListening()
[=]()
{
ApplicationSettings* appSettings = ApplicationSettings::getInstance().get();
m_tcpWrapper.setServerPort(appSettings->getCoatiPort());
m_tcpWrapper.setServerPort(appSettings->getSourcetrailPort());
m_tcpWrapper.setClientPort(appSettings->getPluginPort());
m_tcpWrapper.startListening();
}
+16 -10
View File
@@ -45,13 +45,16 @@ void QtAbout::setupAbout()
QVBoxLayout* column = new QVBoxLayout();
row->addLayout(column);
QtDeviceScaledPixmap coatiLogo((ResourcePaths::getGuiPath() + "about/logo_coati.png").c_str());
coatiLogo.scaleToHeight(180);
QLabel* coatiLogoLabel = new QLabel(this);
coatiLogoLabel->setPixmap(coatiLogo.pixmap());
coatiLogoLabel->resize(coatiLogo.width(), coatiLogo.height());
column->addWidget(coatiLogoLabel);
QtDeviceScaledPixmap sourcetrailLogo((ResourcePaths::getGuiPath() + "about/logo_sourcetrail.png").c_str());
sourcetrailLogo.scaleToHeight(150);
QLabel* sourcetrailLogoLabel = new QLabel(this);
sourcetrailLogoLabel->setPixmap(sourcetrailLogo.pixmap());
sourcetrailLogoLabel->resize(sourcetrailLogo.width(), sourcetrailLogo.height());
column->addWidget(sourcetrailLogoLabel);
}
row->addSpacing(20);
{
QVBoxLayout* column = new QVBoxLayout();
row->addLayout(column);
@@ -83,6 +86,9 @@ void QtAbout::setupAbout()
column->addSpacing(-10);
}
}
windowLayout->addSpacing(10);
{
QHBoxLayout* row = new QHBoxLayout();
windowLayout->addLayout(row);
@@ -97,10 +103,10 @@ void QtAbout::setupAbout()
windowLayout->addWidget(acknowledgementsTitle);
QLabel* acknowledgementsLabel = new QLabel(
"Coati 0.1 was created in the context of education at<br />"
"Sourcetrail (aka Coati) 0.1 was created in the context of education at<br />"
"<a href=\"http://www.fh-salzburg.ac.at/en/\" style=\"color: white;\">Salzburg University of Applied Sciences</a>.<br />"
"Coati Software OG takes part in the <a href=\"http://www.startup-salzburg.at/\" style=\"color: white;\">Startup Salzburg</a> initiative.<br />"
"The development of Coati is funded by <a href=\"http://awsg.at\" style=\"color: white;\">aws</a>.",
"The development of Sourcetrail was funded by <a href=\"http://awsg.at\" style=\"color: white;\">aws</a>.",
this
);
acknowledgementsLabel->setOpenExternalLinks(true);
@@ -117,8 +123,8 @@ void QtAbout::setupAbout()
"Jakob-Haringer-Straße 1/127<br />"
"5020 Salzburg<br />"
"Austria<br />"
"<b>support@coati.io</b><br />"
"<b><a href=\"https://coati.io\" style=\"color: white;\">coati.io</a></b>",
"<b>support@sourcetrail.com</b><br />"
"<b><a href=\"https://sourcetrail.com\" style=\"color: white;\">sourcetrail.com</a></b>",
this);
companyLabel->setOpenExternalLinks(true);
row->addWidget(companyLabel);
+8 -4
View File
@@ -59,7 +59,7 @@ void QtLicense::setErrorMessage(const QString& errorMessage)
void QtLicense::populateWindow(QWidget* widget)
{
QVBoxLayout* subLayout = new QVBoxLayout();
subLayout->setContentsMargins(200, 0, 0, 0);
subLayout->setContentsMargins(270, 0, 0, 0);
QLabel* licenseName = new QLabel();
licenseName->setText(QString::fromLatin1("Enter Licence"));
@@ -69,7 +69,7 @@ void QtLicense::populateWindow(QWidget* widget)
subLayout->addSpacing(10);
QLabel* licenseIntro = new QLabel();
licenseIntro->setText(QString::fromLatin1("Please enter a licence key to activate Coati:"));
licenseIntro->setText(QString::fromLatin1("Please enter a licence key to activate Sourcetrail:"));
licenseIntro->setObjectName("licenseIntro");
subLayout->addWidget(licenseIntro);
@@ -80,7 +80,7 @@ void QtLicense::populateWindow(QWidget* widget)
"-----BEGIN LICENSE-----\n"
"Jane Doe\n"
"Single User License\n"
"Coati 0\n"
"Sourcetrail 0\n"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
@@ -102,8 +102,12 @@ void QtLicense::populateWindow(QWidget* widget)
QLabel* linkLabel = new QLabel(this);
linkLabel->setObjectName("linkLabel");
linkLabel->setText("<a href=\"https://coati.io/buy-license\" style=\"color: #007AC2;\">Don't have a license key yet?</a>");
linkLabel->setText(
"Don't have a license key yet? "
"Please <a href=\"http://sourcetrail.com/buy-license\" style=\"color: #007AC2;\">purchase a license</a>, "
"or get a temporary <a href=\"http://sourcetrail.com/test-license\" style=\"color: #007AC2;\">test license</a>.");
linkLabel->setOpenExternalLinks(true);
linkLabel->setWordWrap(true);
linkLabel->setGeometry(275, 300, 300, 50);
subLayout->addWidget(linkLabel);
+11 -12
View File
@@ -240,6 +240,7 @@ void QtMainWindow::forceEnterLicense(bool expired)
else
{
enterLicenseWindow->clear();
enterLicenseWindow->setErrorMessage("Please re-enter your license key.");
}
}
@@ -301,7 +302,7 @@ void QtMainWindow::openSettings()
void QtMainWindow::showDocumentation()
{
QDesktopServices::openUrl(QUrl("https://coati.io/documentation/"));
QDesktopServices::openUrl(QUrl("https://sourcetrail.com/documentation/"));
}
void QtMainWindow::showKeyboardShortcuts()
@@ -312,7 +313,7 @@ void QtMainWindow::showKeyboardShortcuts()
void QtMainWindow::showBugtracker()
{
QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/CoatiBugTracker/issues"));
QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/SourcetrailBugTracker/issues"));
}
void QtMainWindow::showLicenses()
@@ -378,14 +379,6 @@ void QtMainWindow::showStartScreen()
ApplicationSettings::getInstance()->setLicenseString("");
}
if (state != LicenseChecker::LICENSE_VALID && state != LicenseChecker::LICENSE_EMPTY)
{
forceEnterLicense(state == LicenseChecker::LICENSE_EXPIRED);
}
// MessageDisplayBookmarks(MessageDisplayBookmarks::BookmarkFilter::ALL, MessageDisplayBookmarks::BookmarkOrder::NONE).dispatch();
// return;
QtStartScreen* startScreen = createWindow<QtStartScreen>();
startScreen->setupStartScreen(licenseValid);
@@ -393,6 +386,12 @@ void QtMainWindow::showStartScreen()
connect(startScreen, SIGNAL(openOpenProjectDialog()), this, SLOT(openProject()));
connect(startScreen, SIGNAL(openNewProjectDialog()), this, SLOT(newProject()));
connect(startScreen, SIGNAL(openEnterLicenseDialog()), this, SLOT(enterLicense()));
if (state != LicenseChecker::LICENSE_VALID && state != LicenseChecker::LICENSE_EMPTY)
{
forceEnterLicense(state == LicenseChecker::LICENSE_EXPIRED);
}
}
void QtMainWindow::hideStartScreen()
@@ -427,7 +426,7 @@ void QtMainWindow::newProjectFromCDB(const std::string& filePath, const std::vec
void QtMainWindow::openProject()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", "Coati Project Files (*.coatiproject)");
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", "Sourcetrail Project Files (*.srctrlprj *.coatiproject)");
if (!fileName.isEmpty())
{
@@ -677,7 +676,7 @@ void QtMainWindow::setupHelpMenu()
menu->addSeparator();
menu->addAction(tr("3rd Party Licences"), this, SLOT(showLicenses()));
menu->addAction(tr("&About Coati"), this, SLOT(about()));
menu->addAction(tr("&About Sourcetrail"), this, SLOT(about()));
menu->addSeparator();
+1 -1
View File
@@ -90,7 +90,7 @@ void QtSplashScreen::drawContents(QPainter *painter)
QRect r = rect();
r.setRect(r.x() + 5, r.height() - 20, r.width() - 10, 20);
painter->drawText(r, Qt::AlignRight, QString("Coati v").append(m_version));
painter->drawText(r, Qt::AlignRight, QString("Sourcetrail v").append(m_version));
// Draw message at given position, limited to 43 chars
// If message is too long, string is truncated
+7 -7
View File
@@ -161,12 +161,12 @@ void QtStartScreen::setupStartScreen(bool unlocked)
col->addSpacing(4);
QLabel* welcomeLabel = new QLabel(
"Welcome to the <b>Coati Trial</b>!<br /><br />"
"Explore our preindexed projects to experience Coati's unique user interface. "
"More projects are available for download <a href=\"http://coati.io/downloads#extra\" style=\"color: #007AC2;\">here</a>.<br /><br />"
"If you want to use Coati on your own source code please "
"<a href=\"http://coati.io/buy-license\" style=\"color: #007AC2;\">purchase a license</a>, "
"or ask us for a temporary test license by writing to <b>support@coati.io</b>.", this);
"Welcome to the trial version of <b>Sourcetrail</b>!<br /><br />"
"Explore our preindexed projects to experience Sourcetrail's unique user interface. "
"More projects are available for download <a href=\"http://sourcetrail.com/downloads#extra\" style=\"color: #007AC2;\">here</a>.<br /><br />"
"If you want to use Sourcetrail on your own source code please "
"<a href=\"http://sourcetrail.com/buy-license\" style=\"color: #007AC2;\">purchase a license</a>, "
"or get a temporary <a href=\"http://sourcetrail.com/test-license\" style=\"color: #007AC2;\">test license</a>.", this);
welcomeLabel->setOpenExternalLinks(true);
welcomeLabel->setObjectName("welcomeLabel");
welcomeLabel->setWordWrap(true);
@@ -204,7 +204,7 @@ void QtStartScreen::setupStartScreen(bool unlocked)
col->addWidget(versionLabel);
QLabel* updateLabel = new QLabel(
"<a href=\"https://coati.io/downloads\" style=\"color: #007AC2;\">check for new version</a>", this);
"<a href=\"https://sourcetrail.com/downloads\" style=\"color: #007AC2;\">check for new version</a>", this);
updateLabel->setOpenExternalLinks(true);
updateLabel->setObjectName("updateLabel");
col->addWidget(updateLabel);
+8 -7
View File
@@ -426,14 +426,15 @@ void QtWindow::setupDone()
void QtWindow::addLogo()
{
QtDeviceScaledPixmap coatiLogo((ResourcePaths::getGuiPath() + "window/logo.png").c_str());
coatiLogo.scaleToWidth(150);
QtDeviceScaledPixmap sourcetrailLogo((ResourcePaths::getGuiPath() + "window/logo.png").c_str());
sourcetrailLogo.scaleToWidth(240);
QLabel* coatiLogoLabel = new QLabel(this);
coatiLogoLabel->setPixmap(coatiLogo.pixmap());
coatiLogoLabel->resize(coatiLogo.width(), coatiLogo.height());
coatiLogoLabel->move(30, 25);
coatiLogoLabel->show();
QLabel* sourcetrailLogoLabel = new QLabel(this);
sourcetrailLogoLabel->setPixmap(sourcetrailLogo.pixmap());
sourcetrailLogoLabel->resize(sourcetrailLogo.width(), sourcetrailLogo.height());
sourcetrailLogoLabel->move(30, 25);
sourcetrailLogoLabel->show();
m_hasLogo = true;
resize(sizeHint());
@@ -44,7 +44,7 @@ QtProjectWizzard::QtProjectWizzard(QWidget* parent)
m_appSettings.setHeaderSearchPaths(appSettings->getHeaderSearchPaths());
m_appSettings.setFrameworkSearchPaths(appSettings->getFrameworkSearchPaths());
m_appSettings.setScrollSpeed(appSettings->getScrollSpeed());
m_appSettings.setCoatiPort(appSettings->getCoatiPort());
m_appSettings.setSourcetrailPort(appSettings->getSourcetrailPort());
m_appSettings.setPluginPort(appSettings->getPluginPort());
}
@@ -73,10 +73,10 @@ void QtProjectWizzard::newProject()
QtProjectWizzardWindow* window = createWindowWithContent(
[this](QtProjectWizzardWindow* window)
{
window->setPreferredSize(QSize(570, 420));
return new QtProjectWizzardContentSelect(window);
}
);
window->setPreferredSize(QSize(570, 380));
connect(dynamic_cast<QtProjectWizzardContentSelect*>(window->content()),
SIGNAL(selected(SourceGroupType)),
@@ -209,8 +209,8 @@ QtProjectWizzardWindow* QtProjectWizzard::createWindowWithContent(
connect(window, SIGNAL(previous()), &m_windowStack, SLOT(popWindow()));
connect(window, SIGNAL(canceled()), this, SLOT(cancelWizzard()));
window->setContent(func(window));
window->setPreferredSize(QSize(580, 340));
window->setContent(func(window));
window->setup();
m_windowStack.pushWindow(window);
@@ -228,8 +228,8 @@ QtProjectWizzardWindow* QtProjectWizzard::createWindowWithSummary(
QtProjectWizzardContentSummary* summary = new QtProjectWizzardContentSummary(window);
window->setContent(summary);
window->setPreferredSize(QSize(750, 500));
window->setContent(summary);
func(window, summary);
m_windowStack.pushWindow(window);
@@ -464,7 +464,7 @@ void QtProjectWizzard::sourcePathsJava()
void QtProjectWizzard::sourcePathsJavaMaven()
{
std::dynamic_pointer_cast<SourceGroupSettingsJava>(m_sourceGroupSettings)->setMavenDependenciesDirectory(
"./coati_dependencies/" + utility::replace(m_projectSettings->getProjectName(), " ", "_") + "/maven"
"./sourcetrail_dependencies/" + utility::replace(m_projectSettings->getProjectName(), " ", "_") + "/maven"
);
QtProjectWizzardWindow* window = createWindowWithSummary(
@@ -685,7 +685,7 @@ void QtProjectWizzard::savePreferences()
MessageScrollSpeedChange(ApplicationSettings::getInstance()->getScrollSpeed()).dispatch();
}
if (m_appSettings.getCoatiPort() != ApplicationSettings::getInstance()->getCoatiPort() ||
if (m_appSettings.getSourcetrailPort() != ApplicationSettings::getInstance()->getSourcetrailPort() ||
m_appSettings.getPluginPort() != ApplicationSettings::getInstance()->getPluginPort())
{
MessagePluginPortChange().dispatch();
@@ -112,7 +112,7 @@ bool QtProjectWizzardContentData::check()
if (m_projectFileLocation->getText().isEmpty())
{
QMessageBox msgBox;
msgBox.setText("Please define the location for the Coati project file.");
msgBox.setText("Please define the location for the Sourcetrail project file.");
msgBox.exec();
return false;
}
@@ -131,7 +131,7 @@ bool QtProjectWizzardContentData::check()
void QtProjectWizzardContentData::addNameAndLocation(QGridLayout* layout, int& row)
{
QLabel* nameLabel = createFormLabel("Coati Project Name");
QLabel* nameLabel = createFormLabel("Sourcetrail Project Name");
m_projectName = new QLineEdit();
m_projectName->setObjectName("name");
m_projectName->setAttribute(Qt::WA_MacShowFocusRect, 0);
@@ -139,16 +139,17 @@ void QtProjectWizzardContentData::addNameAndLocation(QGridLayout* layout, int& r
layout->addWidget(nameLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
layout->addWidget(m_projectName, row, QtProjectWizzardWindow::BACK_COL);
layout->setRowMinimumHeight(row, 30);
row++;
QLabel* locationLabel = createFormLabel("Coati Project Location");
QLabel* locationLabel = createFormLabel("Sourcetrail Project Location");
m_projectFileLocation = new QtLocationPicker(this);
m_projectFileLocation->setPickDirectory(true);
m_projectFileLocation->setEnabled(!m_disableNameEditing);
layout->addWidget(locationLabel, row, QtProjectWizzardWindow::FRONT_COL, Qt::AlignRight);
layout->addWidget(m_projectFileLocation, row, QtProjectWizzardWindow::BACK_COL, Qt::AlignTop);
addHelpButton("The directory where Coati project files will be saved to.", layout, row);
addHelpButton("The directory where Sourcetrail project files will be saved to.", layout, row);
layout->setRowMinimumHeight(row, 30);
row++;
}
@@ -181,7 +182,7 @@ void QtProjectWizzardContentData::addBuildFilePicker(
row++;
QLabel* description = new QLabel(
"Coati will use all include paths and compiler flags from the compilation database and stay up-to-date "
"Sourcetrail will use all include paths and compiler flags from the compilation database and stay up-to-date "
"with changes on refresh.", this);
description->setObjectName("description");
description->setWordWrap(true);
@@ -314,9 +315,9 @@ void QtProjectWizzardContentDataCDBVS::populate(QGridLayout* layout, int& row)
layout->addWidget(nameLabel, row, QtProjectWizzardWindow::FRONT_COL);
addHelpButton("To create a new Compilation Database from a Visual Studio Solution, this Solution has to be open in Visual Studio.\n\
Coati will call Visual Studio to open the 'Create Compilation Database' dialog.\
Sourcetrail will call Visual Studio to open the 'Create Compilation Database' dialog.\
Please follow the instructions in Visual Studio to complete the process.\n\
Note: Coati's Visual Studio plugin has to be installed. Visual Studio has to be running with an eligible Solution, containing C/C++ projects, loaded.", layout, row);
Note: Sourcetrail's Visual Studio plugin has to be installed. Visual Studio has to be running with an eligible Solution, containing C/C++ projects, loaded.", layout, row);
QLabel* descriptionLabel = createFormLabel("Call Visual Studio to create a Compilation Database from the loaded Solution.");
descriptionLabel->setObjectName("description");
@@ -134,7 +134,7 @@ std::vector<std::string> QtProjectWizzardContentPathSourceMaven::getFileNames()
if (!success)
{
const std::string dialogMessage =
"Coati was unable to locate Maven on this machine.\n"
"Sourcetrail was unable to locate Maven on this machine.\n"
"Please make sure to provide the correct Maven Path in the preferences.";
MessageStatus(dialogMessage, true, false).dispatch();
@@ -151,7 +151,7 @@ QtProjectWizzardContentPathsSource::QtProjectWizzardContentPathsSource(
setTitleString("Indexed Paths");
setHelpString(
"Indexed Paths define the files and directories that will be indexed by Coati. Provide a directory to recursively "
"Indexed Paths define the files and directories that will be indexed by Sourcetrail. Provide a directory to recursively "
"add all contained files.<br />"
"<br />"
"If your project's source code resides in one location, but generated source files are kept at a different location, "
@@ -215,11 +215,11 @@ QtProjectWizzardContentPathsCDBHeader::QtProjectWizzardContentPathsCDBHeader(
setTitleString("Indexed Header Paths");
setHelpString(
"Define which header files should be indexed by Coati. Provide a directory to recursively add all contained files. "
"Every time an included header is encountered, Coati will check if the file is part of the indexed headers to "
"Define which header files should be indexed by Sourcetrail. Provide a directory to recursively add all contained files. "
"Every time an included header is encountered, Sourcetrail will check if the file is part of the indexed headers to "
"decide whether or not to index it.<br />"
"<br />"
"Just enter the root path of your project if you want Coati to index all contained headers it encounters.<br />"
"Just enter the root path of your project if you want Sourcetrail to index all contained headers it encounters.<br />"
"<br />"
"You can make use of environment variables with ${ENV_VAR}."
);
@@ -244,7 +244,7 @@ bool QtProjectWizzardContentPathsCDBHeader::check()
QMessageBox msgBox;
msgBox.setText("You didn't specify any Indexed Header Paths.");
msgBox.setInformativeText(
"Coati will only index the source files listed in the compilation database file and none of the included "
"Sourcetrail will only index the source files listed in the compilation database file and none of the included "
"header files.");
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Ok);
@@ -269,7 +269,7 @@ void QtProjectWizzardContentPathsCDBHeader::buttonClicked()
m_filesDialog = std::make_shared<QtSelectPathsDialog>(
"Select from Include Paths",
"The list contains all Include Paths found in the Compilation Database. Red paths do not exist. Select the "
"paths containing the header files you want to index with Coati.");
"paths containing the header files you want to index with Sourcetrail.");
m_filesDialog->setup();
@@ -376,7 +376,7 @@ QtProjectWizzardContentPathsHeaderSearchGlobal::QtProjectWizzardContentPathsHead
"The Global Include Paths will be used in all your projects - in addition to the project specific Include Paths. "
"These paths are usually passed to the compiler with the '-isystem' flag.<br />"
"<br />"
"Use them to add system header paths (See <a href=\"https://coati.io/documentation/#FindingSystemHeaderLocations\">"
"Use them to add system header paths (See <a href=\"https://sourcetrail.com/documentation/#FindingSystemHeaderLocations\">"
"Finding System Header Locations</a> or use the auto detection below)."
);
@@ -444,7 +444,7 @@ QtProjectWizzardContentPathsFrameworkSearchGlobal::QtProjectWizzardContentPathsF
"Framework Search Paths.<br />"
"<br />"
"They define where MacOS framework containers (.framework) are found "
"(See <a href=\"https://coati.io/documentation/#FindingSystemHeaderLocations\">"
"(See <a href=\"https://sourcetrail.com/documentation/#FindingSystemHeaderLocations\">"
"Finding System Header Locations</a> or use the auto detection below)."
);
@@ -99,12 +99,12 @@ void QtProjectWizzardContentPreferences::populate(QGridLayout* layout, int& row)
// Plugins
addTitle("PLUGIN", layout, row);
// Coati port
m_coatiPort = addLineEdit("Coati Port",
"Port number that Coati uses to listen for incoming messages from plugins.", layout, row);
// Sourcetrail port
m_sourcetrailPort = addLineEdit("Sourcetrail Port",
"Port number that Sourcetrail uses to listen for incoming messages from plugins.", layout, row);
// Coati port
m_pluginPort = addLineEdit("Plugin Port", "Port number that Coati sends outgoing messages to.", layout, row);
// Sourcetrail port
m_pluginPort = addLineEdit("Plugin Port", "Port number that Sourcetrail sends outgoing messages to.", layout, row);
addGap(layout, row);
@@ -150,7 +150,7 @@ void QtProjectWizzardContentPreferences::populate(QGridLayout* layout, int& row)
"Only required for indexing Java projects.\n"
"Provide the location of the jvm library inside the installation of your " + javaVersionString +
" runtime environment (for information on how to set these take a look at "
"<a href=\"https://coati.io/documentation/#FindingJavaRuntimeLibraryLocation\">"
"<a href=\"https://sourcetrail.com/documentation/#FindingJavaRuntimeLibraryLocation\">"
"Finding Java Runtime Library Location</a> or use the auto detection below)").c_str()
, layout, row
);
@@ -225,7 +225,7 @@ void QtProjectWizzardContentPreferences::load()
m_scrollSpeed->setText(QString::number(appSettings->getScrollSpeed(), 'f', 1));
m_graphZooming->setChecked(appSettings->getControlsGraphZoomOnMouseWheel());
m_coatiPort->setText(QString::number(appSettings->getCoatiPort()));
m_sourcetrailPort->setText(QString::number(appSettings->getSourcetrailPort()));
m_pluginPort->setText(QString::number(appSettings->getPluginPort()));
m_threads->setCurrentIndex(appSettings->getIndexerThreadCount() - 1);
@@ -265,8 +265,8 @@ void QtProjectWizzardContentPreferences::save()
appSettings->setControlsGraphZoomOnMouseWheel(m_graphZooming->isChecked());
int coatiPort = m_coatiPort->text().toInt();
if (coatiPort) appSettings->setCoatiPort(coatiPort);
int sourcetrailPort = m_sourcetrailPort->text().toInt();
if (sourcetrailPort) appSettings->setSourcetrailPort(sourcetrailPort);
int pluginPort = m_pluginPort->text().toInt();
if (pluginPort) appSettings->setPluginPort(pluginPort);
@@ -59,7 +59,7 @@ private:
QLineEdit* m_scrollSpeed;
QCheckBox* m_graphZooming;
QLineEdit* m_coatiPort;
QLineEdit* m_sourcetrailPort;
QLineEdit* m_pluginPort;
QComboBox* m_threads;
@@ -44,15 +44,15 @@ void QtProjectWizzardContentSelect::populate(QGridLayout* layout, int& row)
m_projectTypeIconName[SOURCE_GROUP_JAVA_MAVEN] = "mvn_icon";
// define descriptions for each kind of project
m_projectTypeDescriptions[SOURCE_GROUP_C_EMPTY] = "Create a new Coati project by defining which C files will be indexed.";
m_projectTypeDescriptions[SOURCE_GROUP_CPP_EMPTY] = "Create a new Coati project by defining which C++ files will be indexed.";
m_projectTypeDescriptions[SOURCE_GROUP_C_EMPTY] = "Create a new Sourcetrail project by defining which C files will be indexed.";
m_projectTypeDescriptions[SOURCE_GROUP_CPP_EMPTY] = "Create a new Sourcetrail project by defining which C++ files will be indexed.";
m_projectTypeDescriptions[SOURCE_GROUP_CXX_CDB] = "Create a project from an existing Compilation Database (compile_commands.json). They can be created from Make and "
"CMake projects. Have a look at the <a href=\"https://coati.io/documentation/#CreateAProjectFromCompilationDatabase\">"
"CMake projects. Have a look at the <a href=\"https://sourcetrail.com/documentation/#CreateAProjectFromCompilationDatabase\">"
"documentation</a> to find out more.";
m_projectTypeDescriptions[SOURCE_GROUP_CXX_VS] = "Create a new project from an existing Visual Studio Solution file. "
"<b>Note: Requires a running Visual Studio instance with the "
"<a href=\"https://coati.io/documentation/index.html#VisualStudio\">Visual Studio plugin</a> installed.";
m_projectTypeDescriptions[SOURCE_GROUP_JAVA_EMPTY] = "Create a new Coati project by defining which Java files will be indexed.";
"<a href=\"https://sourcetrail.com/documentation/index.html#VisualStudio\">Visual Studio plugin</a> installed.";
m_projectTypeDescriptions[SOURCE_GROUP_JAVA_EMPTY] = "Create a new Sourcetrail project by defining which Java files will be indexed.";
m_projectTypeDescriptions[SOURCE_GROUP_JAVA_MAVEN] = "Create a new project from an existing Maven project.";
QVBoxLayout* vlayout = new QVBoxLayout();
@@ -21,7 +21,7 @@ void QtProjectWizzardContentSimple::populate(QGridLayout* layout, int& row)
layout->addWidget(m_checkBox, row, QtProjectWizzardWindow::BACK_COL);
addHelpButton(
"If enabled Coati also uses the project paths and their subdirectories when resolving #include directives.<br />"
"If enabled Sourcetrail also uses the project paths and their subdirectories when resolving #include directives.<br />"
"<br />"
"Use this option when you know that the project is self contained but don't know which paths to "
"specify as include paths.<br />"
+2 -2
View File
@@ -34,7 +34,7 @@ JavaParser::JavaParser(std::shared_ptr<ParserClient> client)
methods.push_back({"recordComment", "(IIIII)V", (void*)&JavaParser::RecordComment});
methods.push_back({"recordError", "(ILjava/lang/String;IIIIII)V", (void*)&JavaParser::RecordError});
m_javaEnvironment->registerNativeMethods("io/coati/JavaIndexer", methods);
m_javaEnvironment->registerNativeMethods("com/sourcetrail/JavaIndexer", methods);
}
{
std::lock_guard<std::mutex> lock(s_parsersMutex);
@@ -79,7 +79,7 @@ void JavaParser::buildIndex(const FilePath& sourceFilePath, const std::string& c
ApplicationSettings::getInstance()->getVerboseIndexerLoggingEnabled() ? 1 : 0;
m_javaEnvironment->callStaticVoidMethod(
"io/coati/JavaIndexer",
"com/sourcetrail/JavaIndexer",
"processFile",
m_id,
m_currentFilePath,
+3 -3
View File
@@ -141,7 +141,7 @@ bool SourceGroupJava::prepareJavaEnvironment()
if (!JavaEnvironmentFactory::getInstance())
{
std::string dialogMessage =
"Coati was unable to locate Java on this machine.\n"
"Sourcetrail was unable to locate Java on this machine.\n"
"Please make sure to provide the correct Java Path in the preferences.";
if (errorString.size() > 0)
@@ -178,7 +178,7 @@ bool SourceGroupJava::prepareMavenData()
if (!success)
{
const std::string dialogMessage =
"Coati was unable to locate Maven on this machine.\n"
"Sourcetrail was unable to locate Maven on this machine.\n"
"Please make sure to provide the correct Maven Path in the preferences.";
MessageStatus(dialogMessage, true, false).dispatch();
@@ -248,7 +248,7 @@ std::set<FilePath> SourceGroupJava::fetchRootDirectories()
std::shared_ptr<TextAccess> textAccess = TextAccess::createFromFile(filePath.str());
std::string packageName = "";
javaEnvironment->callStaticMethod("io/coati/JavaIndexer", "getPackageName", packageName, textAccess->getText());
javaEnvironment->callStaticMethod("com/sourcetrail/JavaIndexer", "getPackageName", packageName, textAccess->getText());
if (packageName.empty())
{
+3 -2
View File
@@ -374,10 +374,11 @@ bool License::isValid() const
}
try // lol, now we try to handle errors?
{
// remove coati in version 1
// remove "Coati " in version 1
if(!(Botan::check_passhash9("Coati "+ getVersion(), getHashLine())
|| Botan::check_passhash9("Sourcetrail " + getVersion(), getHashLine())))
{
std::cout << "Wrong license version" << std::endl;
return false;
}
@@ -440,7 +441,7 @@ std::string License::getVersion() const
std::string line = getVersionLine();
//TODO: remove coati in version 1
//TODO: remove "Coati " in version 1
const std::array<std::string, 2> appNames = {{ "Coati ", "Sourcetrail " }};
for ( std::string appName : appNames)
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef COATI_LICENSE_H
#define COATI_LICENSE_H
#ifndef SOURCETRAIL_LICENSE_H
#define SOURCETRAIL_LICENSE_H
#include <memory>
#include <string>
@@ -84,4 +84,4 @@ private:
const std::vector<std::string> NON_COMMERCIAL_LICENSE_TYPES = { { "Private/Academic Single User License" } };
};
#endif // COATI_LICENSE_H
#endif // SOURCETRAIL_LICENSE_H
+4 -4
View File
@@ -22,7 +22,7 @@ bool process_command_line(int argc, char** argv)
int days = 0;
int seats = 0;
po::options_description modes_description("Coati Generator Modes");
po::options_description modes_description("Sourcetrail Generator Modes");
modes_description.add_options()
("key,k", "Generate the private and public key")
("generate,g", po::value<std::string>(&user), "Generate a License, USERNAME as value")
@@ -30,7 +30,7 @@ bool process_command_line(int argc, char** argv)
po::options_description required("Required Options");
required.add_options()
("version,v", po::value<std::string>(&version), "Versionnumber of Coati");
("version,v", po::value<std::string>(&version), "Versionnumber of Sourcetrail");
po::options_description keygen_description("Options Keygeneration");
keygen_description.add_options()
@@ -45,12 +45,12 @@ bool process_command_line(int argc, char** argv)
("license-file", po::value<std::string>(&licenseFile), "Custom license")
("hidden", "Print this help message");
po::options_description desc("Coati Generator");
po::options_description desc("Sourcetrail Generator");
desc.add_options()
("help,h", "Print this help message");
desc.add(modes_description).add(required).add(keygen_description);
po::options_description allDescriptions("Coati Generator");
po::options_description allDescriptions("Sourcetrail Generator");
allDescriptions.add_options();
allDescriptions.add(modes_description).add(required).add(keygen_description).add(hidden_description);
+1 -1
View File
@@ -32,7 +32,7 @@ bool TestSuiteFixture::setUpWorld()
if (!homedir.empty())
{
if(!ApplicationSettings::getInstance()->load(
FilePath(homedir + "/.config/coati/ApplicationSettings.xml")
FilePath(homedir + "/.config/sourcetrail/ApplicationSettings.xml")
))
{
std::cout << "no settings" << std::endl;