6#include "KmlStateTagHandler.h"
8#include "MarbleDebug.h"
10#include "GeoDataItemIcon.h"
11#include "GeoDataParser.h"
12#include "KmlElementDictionary.h"
18KML_DEFINE_TAG_HANDLER(state)
20GeoNode *KmlstateTagHandler::parse(GeoParser &parser)
const
22 Q_ASSERT(parser.isStartElement() && parser.isValidElement(QLatin1StringView(kmlTag_state)));
24 GeoStackItem parentItem = parser.parentElement();
26 GeoDataItemIcon::ItemIconStates itemIconState;
28 if (parentItem.represents(kmlTag_ItemIcon)) {
29 QString value = parser.readElementText().trimmed();
30 QStringList iconStateTextList = value.
split(QLatin1Char(
' '));
32 for (
const QString &value : iconStateTextList) {
33 if (value == QLatin1StringView(
"open")) {
34 itemIconState |= GeoDataItemIcon::Open;
35 }
else if (value == QLatin1StringView(
"closed")) {
36 itemIconState |= GeoDataItemIcon::Closed;
37 }
else if (value == QLatin1StringView(
"error")) {
38 itemIconState |= GeoDataItemIcon::Error;
39 }
else if (value == QLatin1StringView(
"fetching0")) {
40 itemIconState |= GeoDataItemIcon::Fetching0;
41 }
else if (value == QLatin1StringView(
"fetching1")) {
42 itemIconState |= GeoDataItemIcon::Fetching1;
43 }
else if (value == QLatin1StringView(
"fetching2")) {
44 itemIconState |= GeoDataItemIcon::Fetching2;
46 mDebug() <<
"Cannot parse state value" << value;
50 parentItem.nodeAs<GeoDataItemIcon>()->setState(itemIconState);
Binds a QML item to a specific geodetic location in screen coordinates.
QStringList split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const const