You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.4 KiB
C++

#include "mainwindow.h"
#include <QApplication>
#include <QDir>
#include <QSettings>
#include <QStandardPaths>
// maximum level an safety!
std::unique_ptr<QSettings> settings;
// funktioniert komplett plattformunabhängig!
// sogar auf Android, wenn man wahnsinnig sein sollte!
void initialise_settings() { // sucht für die Config Datei an diversen sinnvollen Orten
QString config_filename = "ThinkPink.ini";
QString config_path = "";
// priorisiert Config Datei, die direkt neben der Binary liegt, falls vorhanden
QString prio_path = QDir(QCoreApplication::applicationDirPath()).filePath(config_filename);
if (QFileInfo::exists(prio_path)) {
config_path = prio_path;
}
else {// schaut an den gängigen Orten (abhängig vom Betriebssystem) nach der Config-Datei
QList<QStandardPaths::StandardLocation> locations{ QStandardPaths::ConfigLocation, QStandardPaths::AppConfigLocation};
for (long long i = 0; i < locations.size(); i++) {
config_path = QStandardPaths::locate( locations.value(i), config_filename);
if (config_path != "") // config found
break;
}
}
settings.reset( new QSettings( config_path, QSettings::IniFormat ) );
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
initialise_settings();
MainWindow w;
w.show();
return a.exec();
}