/* Copyright 2006-2020 The QElectroTech Team This file is part of QElectroTech. QElectroTech 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. QElectroTech 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 QElectroTech. If not, see . */ #include "qetapp.h" #include "singleapplication.h" #include "qet.h" #include "macosxopenevent.h" #include /** @brief main Main function of QElectroTech @param argc : number of parameters \~French number of paramètres \~ @param argv : parameters \~French paramètres \~ @return exit code */ int main(int argc, char **argv) { //Some setup, notably to use with QSetting. QCoreApplication::setOrganizationName("QElectroTech"); QCoreApplication::setOrganizationDomain("qelectrotech.org"); QCoreApplication::setApplicationName("QElectroTech"); //Creation and execution of the application //HighDPI QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); SingleApplication app(argc, argv, true); #ifdef Q_OS_MACOS //Handle the opening of QET when user double click on a .qet .elmt .tbt file //or drop these same files to the QET icon of the dock MacOSXOpenEvent open_event; app.installEventFilter(&open_event); app.setStyle(QStyleFactory::create("Fusion")); #endif if (app.isSecondary()) { QStringList arg_list = app.arguments(); //Remove the first argument, it's the binary file arg_list.takeFirst(); QETArguments qetarg(arg_list); QString message = "launched-with-args: " + QET::joinWithSpaces( QStringList(qetarg.arguments())); app.sendMessage(message.toUtf8()); return 0; } QETApp qetapp; QETApp::instance()->installEventFilter(&qetapp); QObject::connect(&app, &SingleApplication::receivedMessage, &qetapp, &QETApp::receiveMessage); return app.exec(); }