/* *openPilot Log - A FOSS Pilot Logbook Application *Copyright (C) 2020 Felix Turowsky * *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 3 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, see . */ #include "mainwindow.h" #include "src/gui/dialogues/firstrundialog.h" #include #include #include #include const auto DATA_DIR = QLatin1String("data"); /*! * \brief setup checks if data folder and settings files exists. * \return */ bool setup() { if (!QDir(DATA_DIR).exists()) QDir().mkdir(DATA_DIR); QDir settingspath(DATA_DIR + QLatin1Char('/') + QCoreApplication::organizationName()); QString settingsfile = QCoreApplication::applicationName() + QLatin1String(".ini"); QFileInfo check_file(settingspath,settingsfile); return check_file.exists() && check_file.isFile(); }; int main(int argc, char *argv[]) { QCoreApplication::setOrganizationName("openPilotLog"); QCoreApplication::setOrganizationDomain("https://github.com/fiffty-50/openpilotlog"); QCoreApplication::setApplicationName("openPilotLog"); QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, DATA_DIR); QSettings::setDefaultFormat(QSettings::IniFormat); QSettings settings; QApplication openPilotLog(argc, argv); if(!setup()){ FirstRunDialog dialog; dialog.exec(); } //Theming int selectedtheme = settings.value("main/theme").toInt(); QDir::setCurrent("/themes"); switch (selectedtheme) { case 1:{ qDebug() << "main :: Loading light theme"; QFile file(":light.qss"); file.open(QFile::ReadOnly | QFile::Text); QTextStream stream(&file); openPilotLog.setStyleSheet(stream.readAll()); break; } case 2:{ qDebug() << "Loading dark theme"; QFile file(":dark.qss"); file.open(QFile::ReadOnly | QFile::Text); QTextStream stream(&file); openPilotLog.setStyleSheet(stream.readAll()); break; } default: break; } MainWindow w; //w.showMaximized(); w.show(); return openPilotLog.exec(); }