##// END OF EJS Templates
Settings binding (4)...
Settings binding (4) Loads settings when opening the dialog, and save settings when closing it (if it's by the OK button)

File last commit:

r460:09d21ab89520
r469:7a2eb58d2083
Show More
Main.cpp
79 lines | 2.4 KiB | text/x-c | CppLexer
/*------------------------------------------------------------------------------
-- This file is a part of the QLop Software
-- Copyright (C) 2015, Plasma Physics Laboratory - CNRS
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-------------------------------------------------------------------------------*/
/*-- Author : Alexis Jeandet
-- Mail : alexis.jeandet@member.fsf.org
----------------------------------------------------------------------------*/
#include "MainWindow.h"
#include <QProcessEnvironment>
#include <QThread>
#include <SqpApplication.h>
#include <qglobal.h>
#include <Plugin/PluginManager.h>
#include <QDir>
#include <QLoggingCategory>
Q_LOGGING_CATEGORY(LOG_Main, "Main")
namespace {
/// Name of the directory containing the plugins
#if _WIN32 || _WIN64
const auto PLUGIN_DIRECTORY_NAME = QStringLiteral("plugins");
#endif
} // namespace
int main(int argc, char *argv[])
{
SqpApplication a{argc, argv};
SqpApplication::setOrganizationName("LPP");
SqpApplication::setOrganizationDomain("lpp.fr");
SqpApplication::setApplicationName("SciQLop");
MainWindow w;
w.show();
// Loads plugins
auto pluginDir = QDir{sqpApp->applicationDirPath()};
#if _WIN32 || _WIN64
pluginDir.mkdir(PLUGIN_DIRECTORY_NAME);
pluginDir.cd(PLUGIN_DIRECTORY_NAME);
#endif
#if __unix || __APPLE
#if __x86_64__ || __ppc64__
if (!pluginDir.cd("../lib64/SciQlop")) {
pluginDir.cd("../lib64/sciqlop");
}
#else
if (!pluginDir.cd("../lib/SciQlop")) {
pluginDir.cd("../lib/sciqlop");
}
#endif
#endif
qCDebug(LOG_Main()) << QObject::tr("Plugin directory: %1").arg(pluginDir.absolutePath());
PluginManager pluginManager{};
pluginManager.loadPlugins(pluginDir);
return a.exec();
}