summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-07-17 11:41:09 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-22 07:33:38 -0400
commit3bf7717c0a8507c9befce6b74c84c4dbdcac99de (patch)
treecb0342126b8654b8f373190279a513537abcc684 /src/main.cpp
parent4dfaa363c05eb7691e2c7ea755c35758b62e0fc9 (diff)
moved Settings out of OrganizerCore so it can be created by itself to access settings early
set log level on startup replaced more qDebug()
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp100
1 files changed, 50 insertions, 50 deletions
diff --git a/src/main.cpp b/src/main.cpp
index f55c32f2..aa842ead 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -425,8 +425,6 @@ void setupPath()
{
static const int BUFSIZE = 4096;
- log::debug("MO at {}", QCoreApplication::applicationDirPath());
-
QCoreApplication::setLibraryPaths(QStringList(QCoreApplication::applicationDirPath() + "/dlls") + QCoreApplication::libraryPaths());
boost::scoped_array<TCHAR> oldPath(new TCHAR[BUFSIZE]);
@@ -446,8 +444,6 @@ void setupPath()
void preloadDll(const QString& filename)
{
- log::debug("preloading {}", filename);
-
if (GetModuleHandleW(filename.toStdWString().c_str())) {
// already loaded, this can happen when "restarting" MO by switching
// instances, for example
@@ -513,62 +509,68 @@ void dumpEnvironment()
int runApplication(MOApplication &application, SingleInstance &instance,
const QString &splashPath)
{
-
log::info(
- "Starting Mod Organizer version {} revision {}",
- getVersionDisplayString(), GITID);
+ "Starting Mod Organizer version {} revision {} in {}",
+ getVersionDisplayString(), GITID, QCoreApplication::applicationDirPath());
-#if !defined(QT_NO_SSL)
preloadSsl();
- log::info("ssl support: {}", QSslSocket::supportsSsl());
-#else
- log::info("non-ssl build");
-#endif
-
- dumpEnvironment();
+ if (!QSslSocket::supportsSsl()) {
+ log::warn("no ssl support");
+ }
QString dataPath = application.property("dataPath").toString();
- qDebug("data path: %s", qUtf8Printable(dataPath));
+ log::info("data path: {}", dataPath);
if (!bootstrap()) {
reportError("failed to set up data paths");
return 1;
}
- QWindowsWindowFunctions::setWindowActivationBehavior(QWindowsWindowFunctions::AlwaysActivateWindow);
+ QWindowsWindowFunctions::setWindowActivationBehavior(
+ QWindowsWindowFunctions::AlwaysActivateWindow);
QStringList arguments = application.arguments();
try {
- qDebug("Working directory: %s", qUtf8Printable(QDir::toNativeSeparators(QDir::currentPath())));
+ log::info("working directory: {}", QDir::currentPath());
- QSettings settings(dataPath + "/"
- + QString::fromStdWString(AppConfig::iniFileName()),
- QSettings::IniFormat);
+ QSettings initSettings(
+ dataPath + "/" + QString::fromStdWString(AppConfig::iniFileName()),
+ QSettings::IniFormat);
- // global crashDumpType sits in OrganizerCore to make a bit less ugly to update it when the settings are changed during runtime
- OrganizerCore::setGlobalCrashDumpsType(settings.value("Settings/crash_dumps_type", static_cast<int>(CrashDumpsType::Mini)).toInt());
+ Settings settings(initSettings);
+ log::getDefault().setLevel(settings.logLevel());
- qDebug("Loaded settings:");
- settings.beginGroup("Settings");
- for (auto k : settings.allKeys())
- if (!k.contains("username") && !k.contains("password") && !k.contains("nexus_api_key"))
- qDebug(" %s=%s", k.toUtf8().data(), settings.value(k).toString().toUtf8().data());
- settings.endGroup();
+ dumpEnvironment();
+ // global crashDumpType sits in OrganizerCore to make a bit less ugly to
+ // update it when the settings are changed during runtime
+ OrganizerCore::setGlobalCrashDumpsType(settings.crashDumpsType());
- qDebug("initializing core");
+ log::debug("Loaded settings:");
+
+ initSettings.beginGroup("Settings");
+ for (auto k : initSettings.allKeys()) {
+ if (!k.contains("username") && !k.contains("password") && !k.contains("nexus_api_key")) {
+ log::debug(" {}={}", k, initSettings.value(k).toString());
+ }
+ }
+ initSettings.endGroup();
+
+
+ log::debug("initializing core");
OrganizerCore organizer(settings);
if (!organizer.bootstrap()) {
reportError("failed to set up data paths");
return 1;
}
- qDebug("initialize plugins");
+
+ log::debug("initializing plugins");
PluginContainer pluginContainer(&organizer);
pluginContainer.loadPlugins();
MOBase::IPluginGame *game = determineCurrentGame(
- application.applicationDirPath(), settings, pluginContainer);
+ application.applicationDirPath(), initSettings, pluginContainer);
if (game == nullptr) {
InstanceManager &instance = InstanceManager::instance();
QString instanceName = instance.currentInstance();
@@ -586,14 +588,14 @@ int runApplication(MOApplication &application, SingleInstance &instance,
if (!image.isNull()) {
image.save(dataPath + "/splash.png");
} else {
- qDebug("no plugin splash");
+ log::debug("no plugin splash");
}
}
organizer.setManagedGame(game);
organizer.createDefaultProfile();
- if (!settings.contains("game_edition")) {
+ if (!initSettings.contains("game_edition")) {
QStringList editions = game->gameVariants();
if (editions.size() > 1) {
SelectionDialog selection(
@@ -609,18 +611,17 @@ int runApplication(MOApplication &application, SingleInstance &instance,
if (selection.exec() == QDialog::Rejected) {
return 1;
} else {
- settings.setValue("game_edition", selection.getChoiceString());
+ initSettings.setValue("game_edition", selection.getChoiceString());
}
}
}
- game->setGameVariant(settings.value("game_edition").toString());
+ game->setGameVariant(initSettings.value("game_edition").toString());
- qDebug("managing game at %s", qUtf8Printable(QDir::toNativeSeparators(
- game->gameDirectory().absolutePath())));
+ log::info("managing game at {}", game->gameDirectory().absolutePath());
- organizer.updateExecutablesList(settings);
+ organizer.updateExecutablesList(initSettings);
- QString selectedProfileName = determineProfile(arguments, settings);
+ QString selectedProfileName = determineProfile(arguments, initSettings);
organizer.setCurrentProfile(selectedProfileName);
// if we have a command line parameter, it is either a nxm link or
@@ -640,13 +641,12 @@ int runApplication(MOApplication &application, SingleInstance &instance,
}
}
else if (OrganizerCore::isNxmLink(arguments.at(1))) {
- qDebug("starting download from command line: %s",
- qUtf8Printable(arguments.at(1)));
+ log::debug("starting download from command line: {}", arguments.at(1));
organizer.externalMessage(arguments.at(1));
}
else {
QString exeName = arguments.at(1);
- qDebug("starting %s from command line", qUtf8Printable(exeName));
+ log::debug("starting {} from command line", exeName);
arguments.removeFirst(); // remove application name (ModOrganizer.exe)
arguments.removeFirst(); // remove binary name
// pass the remaining parameters to the binary
@@ -665,8 +665,8 @@ int runApplication(MOApplication &application, SingleInstance &instance,
QPixmap pixmap(splashPath);
QSplashScreen splash(pixmap);
- if (settings.contains("window_monitor")) {
- const int monitor = settings.value("window_monitor").toInt();
+ if (initSettings.contains("window_monitor")) {
+ const int monitor = initSettings.value("window_monitor").toInt();
if (monitor != -1) {
QDesktopWidget* desktop = QApplication::desktop();
@@ -683,21 +683,21 @@ int runApplication(MOApplication &application, SingleInstance &instance,
NexusInterface::instance(&pluginContainer)->getAccessManager()->apiCheck(apiKey);
}
- qDebug("initializing tutorials");
+ log::debug("initializing tutorials");
TutorialManager::init(
qApp->applicationDirPath() + "/"
+ QString::fromStdWString(AppConfig::tutorialsPath()) + "/",
&organizer);
- if (!application.setStyleFile(settings.value("Settings/style", "").toString())) {
+ if (!application.setStyleFile(initSettings.value("Settings/style", "").toString())) {
// disable invalid stylesheet
- settings.setValue("Settings/style", "");
+ initSettings.setValue("Settings/style", "");
}
int res = 1;
{ // scope to control lifetime of mainwindow
// set up main window and its data structures
- MainWindow mainWindow(settings, organizer, pluginContainer);
+ MainWindow mainWindow(initSettings, organizer, pluginContainer);
NexusInterface::instance(&pluginContainer)
->getAccessManager()->setTopLevelWidget(&mainWindow);
@@ -714,7 +714,7 @@ int runApplication(MOApplication &application, SingleInstance &instance,
mainWindow.readSettings();
- qDebug("displaying main window");
+ log::debug("displaying main window");
mainWindow.show();
mainWindow.activateWindow();
@@ -857,7 +857,7 @@ int main(int argc, char *argv[])
if (moshortcut ||
arguments.size() > 1 && OrganizerCore::isNxmLink(arguments.at(1)))
{
- qDebug("not primary instance, sending shortcut/download message");
+ log::debug("not primary instance, sending shortcut/download message");
instance.sendMessage(arguments.at(1));
return 0;
} else if (arguments.size() == 1) {