/*
 * Copyright (C) 2018 QuasarApp.
 * Distributed under the lgplv3 software license, see the accompanying
 * Everyone is permitted to copy and distribute verbatim copies
 * of this license document, but changing it is not allowed.
*/

#include "quasarapp.h"
#include <QVariantMap>
#include <QDebug>
#include <QCoreApplication>
#include <QTranslator>

static QVariantMap params = QVariantMap();

bool QuasarAppUtils::parseParams(int argc, char *argv[]) {
    params.clear();
    params ["appPath"] =  argv[0];

    for (int i = 1; i < argc; i++) {
        if (argv[i][0] == '-' && i ) {
            if (i < (argc - 1) && argv[i + 1][0] != '-') {
                params[&(argv[i][1])] = argv[i + 1];
                i++;
            } else {
                qDebug() << "Missing argument for " + QString(argv[i]) ;
            }
        } else {
            params[argv[i]] = "";
        }
    }

    return true;
}

QString QuasarAppUtils::getStrArg(const QString& key) {
    return  params.value(key, "").toString();
}

QVariant QuasarAppUtils::getArg(const QString& key) {
    return  params.value(key, "");
}

bool QuasarAppUtils::isEndable(const QString& key) {
    return  params.contains(key);
}

bool initLocale(const QString &locale, QCoreApplication *app, QTranslator *translator){

    QString defaultLocale = QLocale::system().name();
    defaultLocale.truncate(defaultLocale.lastIndexOf('_'));

    if(!locale.isEmpty() && translator->load(QString(":/languages/%0").arg(locale))){
        return app->installTranslator(translator);
    }

    if(!translator->load(QString(":/languages/%0").arg(defaultLocale))){
        return false;
    }

    return app->installTranslator(translator);
}