ssrf: add shared helper file

add subsurface-helper.cpp to share functions between mobile and desktop

move mobile qml registrations to a shared function (avoiding differences in registrations)

Target is to replace current subsurface-desktop-main + subsurface-desktop-helper and
subsurface-mobile-main + subsurface-mobile-helper with
subsurface-*-main + subsurface-helper

Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
jan Iversen 2018-07-11 11:34:33 +02:00 committed by Dirk Hohndel
parent a56a7c51f6
commit 8cc0b6dbc1
4 changed files with 61 additions and 38 deletions

View file

@ -291,6 +291,7 @@ if(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "MobileExecutable")
mobile-widgets/qml/kirigami/src/libkirigami/tabletmodewatcher.cpp
subsurface-mobile-main.cpp
subsurface-mobile-helper.cpp
subsurface-helper.cpp
profile-widget/qmlprofile.cpp
map-widget/qmlmapwidgethelper.cpp
)
@ -315,6 +316,7 @@ elseif(${SUBSURFACE_TARGET_EXECUTABLE} MATCHES "DesktopExecutable")
set(SUBSURFACE_APP
subsurface-desktop-main.cpp
subsurface-desktop-helper.cpp
subsurface-helper.cpp
)
source_group("Subsurface App" FILES ${SUBSURFACE_APP})
if(ANDROID)

View file

@ -6,6 +6,7 @@ void init_qt_late();
void init_ui();
void run_ui();
void register_qml_types();
void exit_ui();
void set_non_bt_addresses();

57
subsurface-helper.cpp Normal file
View file

@ -0,0 +1,57 @@
// SPDX-License-Identifier: GPL-2.0
#include <QQmlEngine>
#include <QDebug>
#include <QQuickItem>
#include "core/qt-gui.h"
#include "core/settings/qPref.h"
#ifdef SUBSURFACE_MOBILE
#include "mobile-widgets/qmlmanager.h"
#include "mobile-widgets/qmlprefs.h"
#include "qt-models/divelistmodel.h"
#include "qt-models/gpslistmodel.h"
#include "profile-widget/qmlprofile.h"
#include "core/downloadfromdcthread.h"
#include "qt-models/diveimportedmodel.h"
#include "map-widget/qmlmapwidgethelper.h"
#include "qt-models/maplocationmodel.h"
#endif
void register_qml_types()
{
int rc;
rc = qmlRegisterType<qPref>("org.subsurfacedivelog.mobile", 1, 0, "SsrfPrefs");
if (rc < 0)
qDebug() << "ERROR: Cannot register Prefs (class qPref), QML will not work!!";
rc = qmlRegisterType<qPrefDisplay>("org.subsurfacedivelog.mobile", 1, 0, "SsrfDisplayPrefs");
if (rc < 0)
qDebug() << "ERROR: Cannot register DisplayPrefs (class qPrefDisplay), QML will not work!!";
#ifdef SUBSURFACE_MOBILE
rc = qmlRegisterType<QMLManager>("org.subsurfacedivelog.mobile", 1, 0, "QMLManager");
if (rc < 0)
qDebug() << "ERROR: Cannot register QMLManager, QML will not work!!";
rc = qmlRegisterType<QMLPrefs>("org.subsurfacedivelog.mobile", 1, 0, "QMLPrefs");
if (rc < 0)
qDebug() << "ERROR: Cannot register QMLPrefs, QML will not work!!";
rc = qmlRegisterType<QMLProfile>("org.subsurfacedivelog.mobile", 1, 0, "QMLProfile");
if (rc < 0)
qDebug() << "ERROR: Cannot register QMLProfile, QML will not work!!";
rc = qmlRegisterType<DownloadThread>("org.subsurfacedivelog.mobile", 1, 0, "DCDownloadThread");
if (rc < 0)
qDebug() << "ERROR: Cannot register DCDownloadThread, QML will not work!!";
rc = qmlRegisterType<DiveImportedModel>("org.subsurfacedivelog.mobile", 1, 0, "DCImportModel");
if (rc < 0)
qDebug() << "ERROR: Cannot register DCImportModel, QML will not work!!";
rc = qmlRegisterType<MapWidgetHelper>("org.subsurfacedivelog.mobile", 1, 0, "MapWidgetHelper");
if (rc < 0)
qDebug() << "ERROR: Cannot register MapWidgetHelper, QML will not work!!";
rc = qmlRegisterType<MapLocationModel>("org.subsurfacedivelog.mobile", 1, 0, "MapLocationModel");
if (rc < 0)
qDebug() << "ERROR: Cannot register MapLocationModel, QML will not work!!";
rc = qmlRegisterType<MapLocation>("org.subsurfacedivelog.mobile", 1, 0, "MapLocation");
if (rc < 0)
qDebug() << "ERROR: Cannot register MapLocation, QML will not work!!";
#endif
}

View file

@ -17,16 +17,8 @@
#include <QQmlContext>
#include <QSortFilterProxyModel>
#include "mobile-widgets/qmlmanager.h"
#include "mobile-widgets/qmlprefs.h"
#include "qt-models/divelistmodel.h"
#include "qt-models/gpslistmodel.h"
#include "profile-widget/qmlprofile.h"
#include "core/downloadfromdcthread.h"
#include "core/connectionlistmodel.h"
#include "qt-models/diveimportedmodel.h"
#include "qt-models/messagehandlermodel.h"
#include "map-widget/qmlmapwidgethelper.h"
#include "qt-models/maplocationmodel.h"
#include "core/settings/qPref.h"
#include "mobile-widgets/qml/kirigami/src/kirigamiplugin.h"
@ -55,37 +47,8 @@ void init_ui()
void run_ui()
{
int rc;
LOG_STP("run_ui starting");
rc = qmlRegisterType<qPref>("org.subsurfacedivelog.mobile", 1, 0, "SsrfPrefs");
if (rc < 0)
qDebug() << "ERROR: Cannot register Prefs (class qPref), QML will not work!!";
rc = qmlRegisterType<QMLManager>("org.subsurfacedivelog.mobile", 1, 0, "QMLManager");
if (rc < 0)
qDebug() << "ERROR: Cannot register QMLManager, QML will not work!!";
rc = qmlRegisterType<QMLPrefs>("org.subsurfacedivelog.mobile", 1, 0, "QMLPrefs");
if (rc < 0)
qDebug() << "ERROR: Cannot register QMLPrefs, QML will not work!!";
rc = qmlRegisterType<QMLProfile>("org.subsurfacedivelog.mobile", 1, 0, "QMLProfile");
if (rc < 0)
qDebug() << "ERROR: Cannot register QMLProfile, QML will not work!!";
rc = qmlRegisterType<DownloadThread>("org.subsurfacedivelog.mobile", 1, 0, "DCDownloadThread");
if (rc < 0)
qDebug() << "ERROR: Cannot register DCDownloadThread, QML will not work!!";
rc = qmlRegisterType<DiveImportedModel>("org.subsurfacedivelog.mobile", 1, 0, "DCImportModel");
if (rc < 0)
qDebug() << "ERROR: Cannot register DCImportModel, QML will not work!!";
rc = qmlRegisterType<MapWidgetHelper>("org.subsurfacedivelog.mobile", 1, 0, "MapWidgetHelper");
if (rc < 0)
qDebug() << "ERROR: Cannot register MapWidgetHelper, QML will not work!!";
rc = qmlRegisterType<MapLocationModel>("org.subsurfacedivelog.mobile", 1, 0, "MapLocationModel");
if (rc < 0)
qDebug() << "ERROR: Cannot register MapLocationModel, QML will not work!!";
rc = qmlRegisterType<MapLocation>("org.subsurfacedivelog.mobile", 1, 0, "MapLocation");
if (rc < 0)
qDebug() << "ERROR: Cannot register MapLocation, QML will not work!!";
register_qml_types();
QQmlApplicationEngine engine;
LOG_STP("run_ui qml engine started");