int helpMessage(const QApplication &app, QString text) { QString title = QObject::tr("Help for ") + app.applicationName(); #ifdef WIN32 QMessageBox msgBox(QMessageBox::NoIcon, title, text, QMessageBox::Ok); return msgBox.exec(); #else printf("\n%s\n", title.toStdString().c_str()); printf("\n%s", text.toStdString().c_str()); return 0; #endif }
int saisieAppuisInitQT_main(QApplication &app, int argc, char *argv[]) { app.setApplicationName("SaisieAppuisInitQT"); app.setOrganizationName("Culture3D"); QStringList cmdline_args = QCoreApplication::arguments(); if (cmdline_args.back().contains("help")) { QString help = "Mandatory unnamed args :\n" "* string :: {Full name (Dir+Pattern)}\n" "* string :: {Orientation ; NONE if not used}\n" "* string :: {Point name, or point file name}\n" "* string :: {Output}\n\n" "Named args :\n" "* [Name=SzW] Pt2di :: {Sz of window}\n" "* [Name=NbF] Pt2di :: {Nb of sub window}\n" "* [Name=NameAuto] string :: {Prefix for automatic point creation}\n" //"* [Name=Pref2Add] string :: {Prefix to add during import (for bug correction ?)}\n" "* [Name=ForceGray] bool :: {Force gray image, def=false}\n" "* [Name=OriMode] string :: {Orientation type (GRID) (Def=Std)}\n" "* [Name=ZMoy] REAL :: {Average Z, Mandatory in PB}\n" "* [Name=ZInc] REAL :: {Incertitude on Z, Mandatory in PB}\n\n" "Example:\nmm3d " + app.applicationName() + " IMG_558{0-9}[1].tif RadialBasic 100 measures.xml\n\n" "NB: visual interface for argument edition available with command:\n\n mm3d v" + app.applicationName() + "\n\n"; return helpMessage(app, help); } loadTranslation(app); QSettings settings(QApplication::organizationName(), QApplication::applicationName()); if ((argc>0)&&(string(argv[0]).find("SaisieQT")!= string::npos)) { argv++; argc--; } Pt2di aSzWin(800,800); Pt2di aNbFen(-1,-1); string aFullName, aDir, aName, aNamePt, aNameOut; //mandatory arguments string aNameOri, aModeOri, aNameAuto, aPrefix2Add; //named args aPrefix2Add = ""; bool aForceGray = false; settings.beginGroup("Misc"); aNameAuto = settings.value("defPtName", QString("100")).toString().toStdString(); settings.endGroup(); settings.beginGroup("Drawing settings"); aForceGray = settings.value("forceGray", false ).toBool(); settings.endGroup(); double aZInc, aZMoy; if (argv[0][0] == 'v') { MMVisualMode = true; argv[0] = (char*) "SaisieAppuisInitQT"; } std::string aInputSec; SaisieAppuisInit(argc, argv, aSzWin, aNbFen, aFullName, aDir, aName, aNamePt, aNameOri, aModeOri, aNameOut, aNameAuto, aPrefix2Add, aForceGray, aZMoy, aZInc,aInputSec); if (!MMVisualMode) { if (!checkNamePt( QString (aNamePt.c_str()))) return -1; QStringList filenames = getFilenames(aDir, aName); int aNbW = aNbFen.x * aNbFen.y; if (filenames.size() < aNbW) { aNbW = filenames.size(); cVirtualInterface::ComputeNbFen(aNbFen, aNbW); } updateSettings(settings, aSzWin,aNbFen, aForceGray); settings.beginGroup("Misc"); settings.setValue("defPtName", QString(aNameAuto.c_str())); settings.endGroup(); QStringList input; input << QString(MMDir().c_str()) + QString("bin/SaisiePts") << QString(MMDir().c_str()) + QString("include/XML_MicMac/SaisieInitiale.xml") << QString("DirectoryChantier=") + QString(aDir.c_str()) << QString("+Image=") + QString(aName.c_str()) << QString("+Ori=") + QString(aNameOri.c_str()) << QString("+NamePt=") + QString(aNamePt.c_str()) << QString("+NameAuto=") + QString(aNameAuto.c_str()) << QString("+Sauv=") + QString(aNameOut.c_str()) << QString("+SzWx=") + QString::number(aSzWin.x) << QString("+SzWy=") + QString::number(aSzWin.y) << QString("+NbFx=") + QString::number(aNbFen.x) << QString("+NbFy=") + QString::number(aNbFen.y); if (aModeOri == "GRID") { input << QString("+ModeOriIm=eGeomImageGrille") << QString("+Conik=false") << QString("+ZIncIsProp=false") //<< QString(+PostFixOri=GRIBin") << QString("+Px1Inc=") + QString::number(aZInc) << QString("+Px1Moy=") + QString::number(aZMoy); //<< QString("+Geom=eGeomMNTFaisceauIm1ZTerrain_Px1D"); } if (EAMIsInit(&aForceGray)) input << QString("+ForceGray=") + QString(((string)(ToString(aForceGray))).c_str()); if (EAMIsInit(&aPrefix2Add)) input << QString("+Pref2Add=") + QString(aPrefix2Add.c_str()); char **output; // Copy input to output output = new char*[input.size() + 1]; for (int i = 0; i < input.size(); i++) { output[i] = new char[strlen(input.at(i).toStdString().c_str())+1]; memcpy(output[i], input.at(i).toStdString().c_str(), strlen(input.at(i).toStdString().c_str())+1); } output[input.size()] = ((char*)NULL); cResultSubstAndStdGetFile<cParamSaisiePts> aP2( input.size()-2,output+2, output[1], StdGetFileXMLSpec("ParamSaisiePts.xml"), "ParamSaisiePts", "ParamSaisiePts", "DirectoryChantier", "FileChantierNameDescripteur" ); cAppli_SaisiePts anAppli (aP2,false); SaisieQtWindow w(POINT2D_INIT); new cQT_Interface(anAppli,&w); w.show(); w.addFiles(filenames, false); return app.exec(); } else return EXIT_SUCCESS; }
BaseWindow::BaseWindow(QWidget *parent) : QWidget(parent), ui(new Ui::BaseWindow) { this->setAttribute(Qt::WA_QuitOnClose, false); serverCounter = 1; ui->setupUi(this); QApplication *app = (QApplication*)QApplication::instance(); this->setWindowTitle(QString("%1 %2 (v%3)").arg(app->organizationName(), app->applicationName(), app->applicationVersion())); // Icon QIcon ico(":resources/RKnock.ico"); this->setWindowIcon(ico); // Find the config file, does it exist? #ifdef Q_WS_WIN QString fSection; QString mSection; QString lSection = "Settings.xml"; if (QSysInfo::windowsVersion() < QSysInfo::WV_2000) { // All Versions before win2000 fSection = QDir::currentPath(); // Where we are :) mSection = ""; } else if (QSysInfo::windowsVersion() < QSysInfo::WV_VISTA) { fSection = QDir::homePath(); mSection = QString("Application Data/%1/%2").arg(app->organizationName(), app->applicationName()); } else { fSection = QDir::homePath(); mSection = QString("AppData/Roaming/%1/%2").arg(app->organizationName(), app->applicationName()); } if (mSection.size() == 0) this->cfgFileLocation = QString("%1/%2").arg(fSection, lSection); else this->cfgFileLocation = QString("%1/%2/%3").arg(fSection, mSection, lSection); //this->cfgFileLocation = QtDir::homePath().append("\\").append(" #else QString path = QString("%1/.%2/%3").arg(QDir::homePath(), app->organizationName(), app->applicationName()); QString file = QString("%1/Settings.xml").arg(path); this->cfgFileLocation = file; #endif if (QFile(this->cfgFileLocation).exists()) this->loadSettings(); this->tray = new QSystemTrayIcon(this); this->trayMenu = new QMenu(this); this->trayServersMenu = new QMenu("Servers", this->trayMenu); this->tray->setContextMenu(this->trayMenu); this->tray->setIcon(ico); this->tray->setVisible(true); QAction *subaction = 0; QMenu *submenu = 0; // Open Dialog subaction = this->trayMenu->addAction("Open Configuration Dialog..."); connect(subaction, SIGNAL(triggered()), this, SLOT(show())); subaction = this->trayMenu->addAction("About RKnock..."); connect(subaction, SIGNAL(triggered()), this, SLOT(showAbout())); this->trayMenu->addMenu(trayServersMenu); this->trayMenu->addSeparator(); subaction = this->trayMenu->addAction("Exit..."); connect(subaction, SIGNAL(triggered()), app, SLOT(quit())); connect(tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(activateMenu(QSystemTrayIcon::ActivationReason))); this->rebuildActions(); }