1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
#include <QApplication>
#include <QTranslator>
#include <QLibraryInfo>
#include <QCommandLineParser>
#include <QDebug>
#include "mainwindow.h"
#include "ObjectConsole.h"
#include "version.h"
#include <iostream>
int main(int argc, char *argv[]){
#ifdef Q_OS_LINUX
bool useGUI = getenv("DISPLAY") != NULL;
#else
bool useGUI = true;
#endif
QTranslator translator;
QTranslator qtTranslator;
QString locale = QLocale::system().name();
qtTranslator.load("qt_"+locale,QLibraryInfo::location(QLibraryInfo::TranslationsPath));
if (translator.load(QString("qcalcfilehash_") + locale)==false){
translator.load(QString("/usr/share/qcalcfilehash/langs/qcalcfilehash_") + locale);
}
bool showProgress=false;
bool showlistOption=false;
bool isForceGui=false;
QStringList listPositionalArguments;
QString compareHash="";
{
QCoreApplication app(argc, argv);
QCoreApplication::setApplicationName("QCalcFileHash");
QCoreApplication::setApplicationVersion(VERSION);
QCoreApplication::setOrganizationDomain("dansoft.krasnokamensk.ru");
app.installTranslator(&qtTranslator);
app.installTranslator(&translator);
QCommandLineParser parser;
parser.setApplicationDescription("Calculator hash (SHA1, SHA-224, SHA-256, SHA-384, SHA-512, MD5, CRC32, CRC8)");
parser.addHelpOption();
parser.addVersionOption();
parser.addPositionalArgument("filename", QCoreApplication::tr("Source file to hash"));
parser.addPositionalArgument("hash", QCoreApplication::tr("Hash algorithm"));
QCommandLineOption CompareHash(QStringList() << "compare",
QCoreApplication::tr("hash comparison"),
QCoreApplication::tr("hash"));
parser.addOption(CompareHash);
QCommandLineOption showProgressOption("p", QCoreApplication::tr("Show progress"));
parser.addOption(showProgressOption);
QCommandLineOption listOption(QStringList() << "l" << "list", QCoreApplication::tr("Show list all hash algorithm"));
parser.addOption(listOption);
QCommandLineOption forceGui(QStringList() << "gui", QCoreApplication::tr("Open in gui"));
parser.addOption(forceGui);
parser.process(app);
listPositionalArguments = parser.positionalArguments();
showProgress = parser.isSet(showProgressOption);
showlistOption = parser.isSet(listOption);
compareHash = parser.value(CompareHash);
isForceGui = parser.isSet(forceGui);
}
if (listPositionalArguments.size()!=0 or showlistOption!=false){
useGUI=false;
}
if (isForceGui) useGUI=true;
if (useGUI){
QApplication app(argc, argv);
app.installTranslator(&qtTranslator);
app.installTranslator(&translator);
MainWindow form;
if (listPositionalArguments.size()>=1) form.setFilename(listPositionalArguments.at(0));
if (listPositionalArguments.size()>=2) form.setHash(listPositionalArguments.at(1));
form.show();
form.startCalc();
return app.exec();
}else{
QCoreApplication app(argc, argv);
app.installTranslator(&qtTranslator);
app.installTranslator(&translator);
ObjectConsole form;
form.calcHash(listPositionalArguments,showProgress,showlistOption,compareHash);
return app.exec();
}
}
|