File indexing completed on 2024-04-28 15:16:06
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2010 Dennis Nienhüser <nienhueser@kde.org> 0004 // SPDX-FileCopyrightText: 2011 Thibaut Gridel <tgridel@free.fr> 0005 // SPDX-FileCopyrightText: 2012, 2013 Bernhard Beschow <bbeschow@cs.tu-berlin.de> 0006 0007 #include "RunnerTask.h" 0008 0009 #include "MarbleDebug.h" 0010 #include "ParsingRunner.h" 0011 #include "ParsingRunnerManager.h" 0012 #include "SearchRunner.h" 0013 #include "SearchRunnerManager.h" 0014 #include "ReverseGeocodingRunner.h" 0015 #include "ReverseGeocodingRunnerManager.h" 0016 #include "RoutingRunner.h" 0017 #include "RoutingRunnerManager.h" 0018 #include "routing/RouteRequest.h" 0019 0020 namespace Marble 0021 { 0022 0023 SearchTask::SearchTask( SearchRunner *runner, SearchRunnerManager *manager, const MarbleModel *model, const QString &searchTerm, const GeoDataLatLonBox &preferred ) : 0024 QObject(), 0025 m_runner( runner ), 0026 m_searchTerm( searchTerm ), 0027 m_preferredBbox( preferred ) 0028 { 0029 connect( m_runner, SIGNAL(searchFinished(QVector<GeoDataPlacemark*>)), 0030 manager, SLOT(addSearchResult(QVector<GeoDataPlacemark*>)) ); 0031 m_runner->setModel( model ); 0032 } 0033 0034 void SearchTask::run() 0035 { 0036 m_runner->search( m_searchTerm, m_preferredBbox ); 0037 m_runner->deleteLater(); 0038 0039 emit finished( this ); 0040 } 0041 0042 ReverseGeocodingTask::ReverseGeocodingTask( ReverseGeocodingRunner *runner, ReverseGeocodingRunnerManager *manager, const MarbleModel *model, const GeoDataCoordinates &coordinates ) : 0043 QObject(), 0044 m_runner( runner ), 0045 m_coordinates( coordinates ) 0046 { 0047 connect( m_runner, SIGNAL(reverseGeocodingFinished(GeoDataCoordinates,GeoDataPlacemark)), 0048 manager, SLOT(addReverseGeocodingResult(GeoDataCoordinates,GeoDataPlacemark)) ); 0049 m_runner->setModel( model ); 0050 } 0051 0052 void ReverseGeocodingTask::run() 0053 { 0054 m_runner->reverseGeocoding( m_coordinates ); 0055 m_runner->deleteLater(); 0056 0057 emit finished( this ); 0058 } 0059 0060 RoutingTask::RoutingTask( RoutingRunner *runner, RoutingRunnerManager *manager, const RouteRequest* routeRequest ) : 0061 QObject(), 0062 m_runner( runner ), 0063 m_routeRequest( routeRequest ) 0064 { 0065 connect( m_runner, SIGNAL(routeCalculated(GeoDataDocument*)), 0066 manager, SLOT(addRoutingResult(GeoDataDocument*)) ); 0067 } 0068 0069 void RoutingTask::run() 0070 { 0071 m_runner->retrieveRoute( m_routeRequest ); 0072 m_runner->deleteLater(); 0073 0074 emit finished( this ); 0075 } 0076 0077 ParsingTask::ParsingTask( ParsingRunner *runner, ParsingRunnerManager *manager, const QString& fileName, DocumentRole role ) : 0078 QObject(), 0079 m_runner( runner ), 0080 m_fileName( fileName ), 0081 m_role( role ), 0082 m_manager(manager) 0083 { 0084 connect(this, SIGNAL(parsed(GeoDataDocument*,QString)), m_manager, SLOT(addParsingResult(GeoDataDocument*,QString))); 0085 } 0086 0087 void ParsingTask::run() 0088 { 0089 QString error; 0090 GeoDataDocument* document = m_runner->parseFile( m_fileName, m_role, error ); 0091 emit parsed(document, error); 0092 m_runner->deleteLater(); 0093 emit finished(); 0094 } 0095 0096 } 0097 0098 #include "moc_RunnerTask.cpp"