subsurface/subsurface-mobile-main.cpp
Tomaz Canabrava a55efcf7d8 Move the fill_computer_list() out of widgets
fill_computer_list() creates a Qt friendly
structure that contains all of the necessary
information about dive computers and it's
devices, and it's needed both in Qml and Widgets
to allow the user to download their dives.

This patch makes it possible to use the code
in QML without duplication.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-27 08:07:35 -07:00

74 lines
1.8 KiB
C++

// SPDX-License-Identifier: GPL-2.0
/* main.c */
#include <locale.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "core/dive.h"
#include "core/qt-gui.h"
#include "core/subsurfacestartup.h"
#include "core/color.h"
#include "core/qthelper.h"
#include "core/helpers.h"
#include "core/downloadfromdcthread.h"
#include <QStringList>
#include <QApplication>
#include <QLoggingCategory>
#include <git2.h>
int main(int argc, char **argv)
{
int i;
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));
QApplication *application = new QApplication(argc, argv);
(void)application;
QStringList arguments = QCoreApplication::arguments();
bool dedicated_console = arguments.length() > 1 &&
(arguments.at(1) == QString("--win32console"));
subsurface_console_init(dedicated_console, false);
for (i = 1; i < arguments.length(); i++) {
QString a = arguments.at(i);
if (!a.isEmpty() && a.at(0) == '-') {
parse_argument(a.toLocal8Bit().data());
continue;
}
}
git_libgit2_init();
setup_system_prefs();
if (uiLanguage(0).contains("-US"))
default_prefs.units = IMPERIAL_units;
prefs = default_prefs;
fill_profile_color();
fill_computer_list();
parse_xml_init();
taglist_init_global();
init_ui();
if (prefs.default_file_behavior == LOCAL_DEFAULT_FILE)
set_filename(prefs.default_filename, true);
else
set_filename(NULL, true);
// some hard coded settings
prefs.animation_speed = 0; // we render the profile to pixmap, no animations
// always show the divecomputer reported ceiling in red
prefs.redceiling = 1;
init_proxy();
if (!quit)
run_ui();
exit_ui();
taglist_free(g_tag_list);
parse_xml_exit();
subsurface_console_exit();
free_prefs();
return 0;
}