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 }