File indexing completed on 2024-04-28 03:50:29

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2016 Friedrich W. H. Kossebau <kossebau@kde.org>
0004 
0005 #include "GeoUriRunner.h"
0006 
0007 #include "GeoDataPlacemark.h"
0008 #include "GeoDataCoordinates.h"
0009 #include "GeoUriParser.h"
0010 #include "MarbleModel.h"
0011 
0012 #include "MarbleDebug.h"
0013 #include <QVector>
0014 
0015 
0016 namespace Marble
0017 {
0018 
0019 GeoUriRunner::GeoUriRunner(QObject *parent)
0020     : SearchRunner(parent)
0021 {
0022 }
0023 
0024 
0025 GeoUriRunner::~GeoUriRunner()
0026 {
0027 }
0028 
0029 void GeoUriRunner::search(const QString &searchTerm, const GeoDataLatLonBox &)
0030 {
0031     QVector<GeoDataPlacemark*> vector;
0032 
0033     GeoUriParser uriParser(searchTerm);
0034     const bool success = uriParser.parse();
0035     if (success &&
0036         (uriParser.planet().id() == model()->planet()->id())) {
0037         const GeoDataCoordinates coordinates = uriParser.coordinates();
0038 
0039         GeoDataPlacemark *placemark = new GeoDataPlacemark;
0040         placemark->setName(searchTerm);
0041         placemark->setCoordinate(coordinates);
0042         placemark->setVisualCategory(GeoDataPlacemark::Coordinate);
0043         placemark->setPopularity(1000000000);
0044         placemark->setZoomLevel(1);
0045 
0046         vector.append(placemark);
0047     }
0048 
0049     emit searchFinished(vector);
0050 }
0051 
0052 }
0053 
0054 #include "moc_GeoUriRunner.cpp"