Warning, file /plasma/kdeplasma-addons/applets/weather/plugin/plugin.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * SPDX-FileCopyrightText: 2016 Friedrich W. H. Kossebau <kossebau@kde.org>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "plugin.h"
0008 
0009 #include "abstractunitlistmodel.h"
0010 #include "locationlistmodel.h"
0011 #include "util.h"
0012 
0013 // KF
0014 #include <KLocalizedString>
0015 // Qt
0016 #include <QQmlEngine>
0017 
0018 static QObject *temperatureUnitListModelSingletonTypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
0019 {
0020     Q_UNUSED(scriptEngine)
0021 
0022     QVector<UnitItem> items{UnitItem(KUnitConversion::Celsius), UnitItem(KUnitConversion::Fahrenheit), UnitItem(KUnitConversion::Kelvin)};
0023 
0024     return new AbstractUnitListModel(items, engine);
0025 }
0026 
0027 static QObject *pressureUnitListModelSingletonTypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
0028 {
0029     Q_UNUSED(scriptEngine)
0030 
0031     QVector<UnitItem> items{UnitItem(KUnitConversion::Hectopascal),
0032                             UnitItem(KUnitConversion::Kilopascal),
0033                             UnitItem(KUnitConversion::Pascal),
0034                             UnitItem(KUnitConversion::Millibar),
0035                             UnitItem(KUnitConversion::InchesOfMercury),
0036                             UnitItem(KUnitConversion::MillimetersOfMercury)};
0037 
0038     return new AbstractUnitListModel(items, engine);
0039 }
0040 
0041 static QObject *windSpeedUnitListModelSingletonTypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
0042 {
0043     Q_UNUSED(scriptEngine)
0044 
0045     QVector<UnitItem> items{UnitItem(KUnitConversion::MeterPerSecond),
0046                             UnitItem(KUnitConversion::KilometerPerHour),
0047                             UnitItem(KUnitConversion::MilePerHour),
0048                             UnitItem(KUnitConversion::Knot),
0049                             UnitItem(KUnitConversion::Beaufort)};
0050 
0051     return new AbstractUnitListModel(items, engine);
0052 }
0053 
0054 static QObject *visibilityUnitListModelSingletonTypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
0055 {
0056     Q_UNUSED(scriptEngine)
0057 
0058     QVector<UnitItem> items{UnitItem(KUnitConversion::Kilometer), UnitItem(KUnitConversion::Mile)};
0059 
0060     return new AbstractUnitListModel(items, engine);
0061 }
0062 
0063 static QObject *utilSingletonTypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
0064 {
0065     Q_UNUSED(engine)
0066     Q_UNUSED(scriptEngine)
0067 
0068     return new Util();
0069 }
0070 
0071 void WeatherPlugin::registerTypes(const char *uri)
0072 {
0073     Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.private.weather"));
0074 
0075     qmlRegisterSingletonType<AbstractUnitListModel>(uri, 1, 0, "TemperatureUnitListModel", temperatureUnitListModelSingletonTypeProvider);
0076     qmlRegisterSingletonType<AbstractUnitListModel>(uri, 1, 0, "PressureUnitListModel", pressureUnitListModelSingletonTypeProvider);
0077     qmlRegisterSingletonType<AbstractUnitListModel>(uri, 1, 0, "WindSpeedUnitListModel", windSpeedUnitListModelSingletonTypeProvider);
0078     qmlRegisterSingletonType<AbstractUnitListModel>(uri, 1, 0, "VisibilityUnitListModel", visibilityUnitListModelSingletonTypeProvider);
0079     qmlRegisterSingletonType<Util>(uri, 1, 0, "Util", utilSingletonTypeProvider);
0080     qmlRegisterType<LocationListModel>(uri, 1, 0, "LocationListModel");
0081 }