int main(int argc, char* argv[]){ QCoreApplication::setOrganizationName("Ibrahim Sha'ath"); QCoreApplication::setOrganizationDomain("ibrahimshaath.co.uk"); QCoreApplication::setApplicationName(GuiStrings::getInstance()->appName()); // libav setup av_register_all(); av_log_set_level(AV_LOG_ERROR); av_lockmgr_register(NULL); // primitive command line use if(argc > 2){ int cliResult = commandLineInterface(argc,argv); if(cliResult >= 0) return cliResult; } qInstallMsgHandler(LoggingHandler); QApplication a(argc, argv); QTranslator qtTranslator; qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); a.installTranslator(&qtTranslator); QString localeParam = "%1/Translations/is_keyfinder_%2.qm"; #if defined Q_OS_MAC QDir dir(QApplication::applicationDirPath()); dir.cdUp(); QString localePath = localeParam.arg(dir.absolutePath()).arg(QLocale::system().name()); #elif defined Q_OS_LINUX QString localePath = localeParam.arg(WORK_CACHEDIR).arg(QLocale::system().name()); #else QString localePath = localeParam.arg(QCoreApplication::applicationDirPath()).arg(QLocale::system().name()); #endif QTranslator myappTranslator; myappTranslator.load(localePath); a.installTranslator(&myappTranslator); MainMenuHandler* menuHandler = new MainMenuHandler(0); menuHandler->new_Batch_Window(true); return a.exec(); }
int main(int argc, char *argv[]) { //Initialization of system functions InitSystem(); //configure debug output qInstallMessageHandler(myMessageOutput); //class for interface windows gMainInterface = new cInterface; WriteLog("Prepare QApplication", 2); QCoreApplication *gCoreApplication = new QCoreApplication(argc, argv); gCoreApplication->setOrganizationName("Mandelbulber"); gCoreApplication->setApplicationName("Mandelbulber"); gCoreApplication->setApplicationVersion(MANDELBULBER_VERSION_STRING); UpdateLanguage(gCoreApplication); cCommandLineInterface commandLineInterface(gApplication); if (commandLineInterface.isNoGUI()) { gApplication = qobject_cast<QApplication *>(gCoreApplication); } else { delete gCoreApplication; gApplication = new QApplication(argc, argv); gApplication->setOrganizationName("Mandelbulber"); gApplication->setApplicationName("Mandelbulber"); gApplication->setApplicationVersion(MANDELBULBER_VERSION_STRING); } //registering types for queued connections qRegisterMetaType<cStatistics>("cStatistics"); qRegisterMetaType<QList<QByteArray> >("QList<QByteArray>"); qRegisterMetaType<QList<int> >("QList<int>"); qRegisterMetaType<cParameterContainer>("cParameterContainer"); qRegisterMetaType<cFractalContainer>("cFractalContainer"); qRegisterMetaType<sTextures>("sTextures"); qRegisterMetaType<cProgressText::enumProgressType>("cProgressText::enumProgressType"); qRegisterMetaType<QVector<int> >("QVector<int>"); qRegisterMetaType<CVector2<double> >("CVector2<double>"); qRegisterMetaType<QMessageBox::StandardButtons>("QMessageBox::StandardButtons"); qRegisterMetaType<QMessageBox::StandardButtons*>("QMessageBox::StandardButtons*"); qRegisterMetaType<cErrorMessage::enumMessageType>("cErrorMessage::enumMessageType"); gErrorMessage = new cErrorMessage; //create default directories and copy all needed files WriteLog("CreateDefaultFolders()", 2); if (!CreateDefaultFolders()) { qCritical() << "Files/directories initialization failed" << endl; return 73; } //create internal database with parameters gPar = new cParameterContainer; gParFractal = new cFractalContainer; //Allocate container for animation frames gAnimFrames = new cAnimationFrames; //Allocate container for key frames gKeyframes = new cKeyframes; gPar->SetContainerName("main"); InitParams(gPar); for (int i = 0; i < NUMBER_OF_FRACTALS; i++) { gParFractal->at(i).SetContainerName(QString("fractal") + QString::number(i)); InitFractalParams(&gParFractal->at(i)); } /****************** TEMPORARY CODE FOR MATERIALS *******************/ //InitMaterialParams(1, gPar); //InitMaterialParams(2, gPar); //InitMaterialParams(3, gPar); /*******************************************************************/ //Define list of fractal formulas DefineFractalList(&fractalList); //Netrender gNetRender = new CNetRender(systemData.numberOfThreads); //loading AppSettings if (QFile(systemData.dataDirectory + "mandelbulber.ini").exists()) { cSettings parSettings(cSettings::formatAppSettings); parSettings.LoadFromFile(systemData.dataDirectory + "mandelbulber.ini"); parSettings.Decode(gPar, gParFractal); } systemData.loggingVerbosity = gPar->Get<int>("logging_verbosity"); UpdateDefaultPaths(); if (!commandLineInterface.isNoGUI()) { UpdateUIStyle(); UpdateUISkin(); } UpdateLanguage(gApplication); commandLineInterface.ReadCLI(); if (!commandLineInterface.isNoGUI()) { gMainInterface->ShowUi(); gFlightAnimation = new cFlightAnimation(gMainInterface, gAnimFrames, gMainInterface->mainImage, gMainInterface->renderedImage, gPar, gParFractal, gMainInterface->mainWindow); gKeyframeAnimation = new cKeyframeAnimation(gMainInterface, gKeyframes, gMainInterface->mainImage, gMainInterface->renderedImage, gPar, gParFractal, gMainInterface->mainWindow); QObject::connect(gFlightAnimation, SIGNAL(updateProgressAndStatus(const QString&, const QString&, double, cProgressText::enumProgressType)), gMainInterface->mainWindow, SLOT(slotUpdateProgressAndStatus(const QString&, const QString&, double, cProgressText::enumProgressType))); QObject::connect(gFlightAnimation, SIGNAL(updateProgressHide(cProgressText::enumProgressType)), gMainInterface->mainWindow, SLOT(slotUpdateProgressHide(cProgressText::enumProgressType))); QObject::connect(gFlightAnimation, SIGNAL(updateStatistics(cStatistics)), gMainInterface->mainWindow, SLOT(slotUpdateStatistics(cStatistics))); QObject::connect(gKeyframeAnimation, SIGNAL(updateProgressAndStatus(const QString&, const QString&, double, cProgressText::enumProgressType)), gMainInterface->mainWindow, SLOT(slotUpdateProgressAndStatus(const QString&, const QString&, double, cProgressText::enumProgressType))); QObject::connect(gKeyframeAnimation, SIGNAL(updateProgressHide(cProgressText::enumProgressType)), gMainInterface->mainWindow, SLOT(slotUpdateProgressHide(cProgressText::enumProgressType))); QObject::connect(gKeyframeAnimation, SIGNAL(updateStatistics(cStatistics)), gMainInterface->mainWindow, SLOT(slotUpdateStatistics(cStatistics))); try { gQueue = new cQueue(gMainInterface, systemData.dataDirectory + "queue.fractlist", systemData.dataDirectory + "queue", gMainInterface->mainWindow); } catch (QString &ex) { cErrorMessage::showMessage(QObject::tr("Cannot init queue: ") + ex, cErrorMessage::errorMessage); return -1; } }