tmain.cpp - sailfish-safe - Sailfish frontend for safe(1)
 (HTM) git clone git://git.z3bra.org/sailfish-safe.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tmain.cpp (2814B)
       ---
            1 /*
            2  *   Copyright (C) 2019  Daniel Vrátil <dvratil@kde.org>
            3  *                 2021  Willy Goiffon <contact@z3bra.org>
            4  *
            5  *   This program is free software: you can redistribute it and/or modify
            6  *   it under the terms of the GNU General Public License as published by
            7  *   the Free Software Foundation, either version 3 of the License, or
            8  *   (at your option) any later version.
            9  *
           10  *   This program is distributed in the hope that it will be useful,
           11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
           12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
           13  *   GNU General Public License for more details.
           14  *
           15  *   You should have received a copy of the GNU General Public License
           16  *   along with this program.  If not, see <https://www.gnu.org/licenses/>.
           17  */
           18 
           19 #include "passwordsmodel.h"
           20 #include "passwordfiltermodel.h"
           21 #include "passwordsortproxymodel.h"
           22 #include "passwordgenerator.h"
           23 #include "imageprovider.h"
           24 #include "scopeguard.h"
           25 #include "settings.h"
           26 
           27 #include <QQuickView>
           28 #include <QQmlEngine>
           29 #include <QGuiApplication>
           30 #include <QScopedPointer>
           31 
           32 #include <sailfishapp.h>
           33 
           34 void addImageProvider(QQmlEngine *engine, const QString &id)
           35 {
           36     engine->addImageProvider(id, new ImageProvider(id));
           37 }
           38 
           39 int main(int argc, char *argv[])
           40 {
           41     QScopedPointer<QGuiApplication> app(SailfishApp::application(argc, argv));
           42     app->setApplicationDisplayName(QObject::tr("Safe"));
           43     app->setApplicationName(QStringLiteral("safe"));
           44     app->setApplicationVersion(QStringLiteral(SAFE_VERSION));
           45     app->setOrganizationName(QObject::tr("Willy GOiffon"));
           46 
           47     QScopedPointer<QQuickView> view(SailfishApp::createView());
           48     const auto settingsGuard = scopeGuard([]() {
           49         Settings::destroy();
           50     });
           51 
           52     qmlRegisterType<PasswordsModel>("harbour.safe", 0, 1, "PasswordsModel");
           53     qmlRegisterType<PasswordFilterModel>("harbour.safe", 0, 1, "PasswordFilterModel");
           54     qmlRegisterType<PasswordSortProxyModel>("harbour.safe", 0, 1, "PasswordSortProxyModel");
           55     qmlRegisterSingletonType<Settings>("harbour.safe", 0, 1, "Settings",
           56                                        [](QQmlEngine *, QJSEngine *) -> QObject* {
           57                                             return Settings::self();
           58                                        });
           59     qmlRegisterSingletonType<PasswordGenerator>("harbour.safe", 0, 1, "PasswordGenerator",
           60                                                 [](QQmlEngine *, QJSEngine *) -> QObject* {
           61                                                     return new PasswordGenerator;
           62                                                 });
           63 
           64     addImageProvider(view->engine(), QStringLiteral("passIcon"));
           65     addImageProvider(view->engine(), QStringLiteral("passImage"));
           66     view->setSource(SailfishApp::pathToMainQml());
           67     view->show();
           68 
           69     return app->exec();
           70 }