[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdeedu/marble/src/lib
From:       Henry de Valence <hdevalence () gmail ! com>
Date:       2008-09-02 19:49:43
Message-ID: 1220384983.018278.4854.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 856408 by hdevalence:

Get rid of MarbleRunnerResult and work directly with the placemarks. Todo: get icons working


 M  +0 -1      CMakeLists.txt  
 M  +13 -16    MarbleRunnerManager.cpp  
 M  +4 -7      MarbleRunnerManager.h  
 D             MarbleRunnerResult.cpp  
 D             MarbleRunnerResult.h  
 M  +9 -14     runners/LatLonRunner.cpp  
 M  +0 -4      runners/LatLonRunner.h  
 M  +1 -1      runners/MarbleAbstractRunner.cpp  
 M  +8 -5      runners/MarbleAbstractRunner.h  
 M  +12 -16    runners/OnfRunner.cpp  


--- trunk/KDE/kdeedu/marble/src/lib/CMakeLists.txt #856407:856408
@@ -157,7 +157,6 @@
     MapThemeSortFilterProxyModel.cpp
     
     MarbleRunnerManager.cpp
-    MarbleRunnerResult.cpp
     runners/MarbleAbstractRunner.cpp
     runners/LatLonRunner.cpp
     runners/OnfRunner.cpp
--- trunk/KDE/kdeedu/marble/src/lib/MarbleRunnerManager.cpp #856407:856408
@@ -20,15 +20,17 @@
 
 #include "MarbleRunnerManager.h"
 
-#include "MarbleRunnerResult.h"
 #include "MarblePlacemarkModel.h"
 #include "PlaceMarkManager.h"
+#include "PlaceMarkContainer.h"
+#include "GeoDataPlacemark.h"
 
 #include "LatLonRunner.h"
 #include "OnfRunner.h"
 
 #include <QtCore/QObject>
 #include <QtCore/QString>
+#include <QtCore/QVector>
 
 #include <QtDebug>
 
@@ -38,8 +40,8 @@
 MarbleRunnerManager::MarbleRunnerManager( QObject *parent )
             : QObject(parent)
 {
-    qRegisterMetaType<MarbleRunnerResult>("MarbleRunnerResult");
-    
+    qRegisterMetaType<QVector<GeoDataPlacemark*> >("QVector<GeoDataPlacemark*>");
+
     m_model = new MarblePlacemarkModel(0);
     m_activeRunners = 0;
     m_lastString = "";
@@ -50,8 +52,8 @@
     m_latlonRunner->moveToThread(m_latlonRunner);
     connect( m_latlonRunner, SIGNAL( runnerStarted(QString) ),
              this,           SLOT( slotRunnerStarted(QString) ));
-    connect( m_latlonRunner, SIGNAL( runnerFinished( MarbleRunnerResult ) ),
-             this,           SLOT( slotRunnerFinished( MarbleRunnerResult ) ));
+    connect( m_latlonRunner, SIGNAL( runnerFinished( QVector<GeoDataPlacemark*> ) ),
+             this,           SLOT( slotRunnerFinished( QVector<GeoDataPlacemark*> ) ));
     connect( this,           SIGNAL( engage(QString) ),
              m_latlonRunner, SLOT( parse(QString) ));
 
@@ -60,8 +62,8 @@
     m_onfRunner->moveToThread(m_onfRunner);
     connect( m_onfRunner, SIGNAL( runnerStarted(QString) ),
              this,        SLOT( slotRunnerStarted(QString) ));
-    connect( m_onfRunner, SIGNAL( runnerFinished( MarbleRunnerResult ) ),
-             this,        SLOT( slotRunnerFinished( MarbleRunnerResult ) ));
+    connect( m_onfRunner, SIGNAL( runnerFinished( QVector<GeoDataPlacemark*> ) ),
+             this,        SLOT( slotRunnerFinished( QVector<GeoDataPlacemark*> ) ));
     connect( this,        SIGNAL( engage(QString) ),
              m_onfRunner, SLOT( parse(QString) ));
 }
@@ -91,18 +93,13 @@
     emit engage(text);
 }
 
-void MarbleRunnerManager::slotRunnerFinished( MarbleRunnerResult result )
+void MarbleRunnerManager::slotRunnerFinished( QVector<GeoDataPlacemark*> result )
 {
     m_activeRunners--;
     qDebug() << "Runner finished, active runners: " << m_activeRunners;
-    if( result.score() == MarbleRunnerResult::NoMatch ) {
-        qDebug() << "[RunnerManager]" << result.runnerName() << "failed to match :(";
-        return;
-    }
-    qDebug() << "[RunnerManager]" << result.runnerName() << "reports match found ("
-             << static_cast<int>(result.score()) << ") :D";
-    //TODO: use MarbleRunnerResult::ResultType to list the objects in order
-    PlaceMarkContainer cont = result.placemarks();
+    qDebug() << "Runner reports" << result.size() << "results";
+
+    PlaceMarkContainer cont( result, "Runner Results" );
     m_model->addPlaceMarks( cont, false );
 //     qDebug() << "emit modelchanged";
     emit modelChanged( m_model );
--- trunk/KDE/kdeedu/marble/src/lib/MarbleRunnerManager.h #856407:856408
@@ -21,18 +21,15 @@
 #ifndef MARBLERUNNERMANAGER_H
 #define MARBLERUNNERMANAGER_H
 
-
-#include "MarbleRunnerResult.h"
-
 #include <QtCore/QObject>
+#include <QtCore/QVector>
+#include <QtCore/QString>
 
-class QString;
-
 namespace Marble
 {
 
 class MarblePlacemarkModel;
-class PlaceMarkManager;
+class GeoDataPlacemark;
 
 class LatLonRunner;
 class OnfRunner;
@@ -54,7 +51,7 @@
     //tells runners to make it so
     void engage(QString text);
 private slots:
-    void slotRunnerFinished(MarbleRunnerResult result);
+    void slotRunnerFinished(QVector<GeoDataPlacemark*> result);
     void slotRunnerStarted(QString runnerName);
 private:
     int m_activeRunners;
--- trunk/KDE/kdeedu/marble/src/lib/runners/LatLonRunner.cpp #856407:856408
@@ -21,13 +21,12 @@
 #include "LatLonRunner.h"
 
 #include "MarbleAbstractRunner.h"
-#include "MarbleRunnerResult.h"
 #include "GeoDataPlacemark.h"
 #include "GeoDataCoordinates.h"
-#include "PlaceMarkContainer.h"
 
 #include <QtCore/QString>
 #include <QtCore/QStringList>
+#include <QtCore/QVector>
 
 #include <QtDebug>
 
@@ -41,7 +40,7 @@
 
 QString LatLonRunner::name() const
 {
-    return tr("Latitude / Longitude Runner");
+    return "FIXME";
 }
 
 LatLonRunner::~LatLonRunner()
@@ -55,26 +54,22 @@
     bool successful = false;
     GeoDataCoordinates coord = GeoDataCoordinates::fromString( input, successful );
     
-    MarbleRunnerResult::Score score;
     GeoDataPlacemark *placemark = new GeoDataPlacemark();
     placemark->setName( input );
     qreal lon, lat;
     coord.geoCoordinates( lon, lat );
     placemark->setCoordinate( lon, lat );
+    QVector<GeoDataPlacemark*> vector;
     
+    //TODO: FIXME
     if( successful ) {
-        score = MarbleRunnerResult::PerfectMatch; // matches regex
-    } else {
-        score = MarbleRunnerResult::NoMatch; //does not match
+        //TODO: set placemark icon  
+        placemark->setPopularity( 1000000000 );
+        placemark->setPopularityIndex( 18 );
+        vector.append( placemark );
     }
     
-    PlaceMarkContainer container;
-    container.setName( "Coordinate search result" );
-    container.append( placemark );
-    
-    MarbleRunnerResult result( container, score, name() );
-    
-    emit runnerFinished( result );    
+    emit runnerFinished( vector );    
 }
 
 }
--- trunk/KDE/kdeedu/marble/src/lib/runners/LatLonRunner.h #856407:856408
@@ -23,10 +23,6 @@
 
 #include "MarbleAbstractRunner.h"
 
-class QThread;
-class QString;
-class QStringList;
-
 namespace Marble
 {
 
--- trunk/KDE/kdeedu/marble/src/lib/runners/MarbleAbstractRunner.cpp #856407:856408
@@ -41,7 +41,7 @@
 
 QString MarbleAbstractRunner::name() const
 {
-    return QString("Abstract Runner");
+    return "FIXME";
 }
 
 void MarbleAbstractRunner::run() 
--- trunk/KDE/kdeedu/marble/src/lib/runners/MarbleAbstractRunner.h #856407:856408
@@ -21,14 +21,17 @@
 #ifndef MARBLEABSTRACTRUNNER_H
 #define MARBLEABSTRACTRUNNER_H
 
-#include "MarbleRunnerResult.h"
 
 #include <QThread>
+#include <QVector>
 
 class QString;
 
 namespace Marble
 {
+
+class GeoDataPlacemark;
+
 /**
  * This class is the base class for all Marble Runners. 
  */
@@ -45,7 +48,8 @@
      */
     ~MarbleAbstractRunner();
     /**
-     * This function should return the user-visible name for this runner
+     * This function gives the name of the icon for this runner
+     * @return the name of the icon of the runner
      */
     virtual QString name() const;
 
@@ -64,18 +68,17 @@
 signals:
     /**
      * This is emitted to indicate that the runner has started to work.
-     * @param runnerName the user-visible name for the runner.
+     * @param runnerName the name of the icon for the runner.
      * @see parse()
      * @see name()
      */
     void runnerStarted(QString runnerName);
     /**
      * This is emitted to indicate that the runner has finished.
-     * If the parsing failed, @p result should have MarbleRunnerResult::NoMatch
      * @param result the result of the parsing.
      * @see parse()
      */
-    void runnerFinished(MarbleRunnerResult result);
+    void runnerFinished(QVector<GeoDataPlacemark*> result);
 };
 
 }
--- trunk/KDE/kdeedu/marble/src/lib/runners/OnfRunner.cpp #856407:856408
@@ -21,13 +21,13 @@
 #include "OnfRunner.h"
 
 #include "MarbleAbstractRunner.h"
-#include "MarbleRunnerResult.h"
 #include "GeoOnfParser.h"
 #include "GeoDataDocument.h"
-#include "PlaceMarkContainer.h"
+#include "GeoDataPlacemark.h"
 
 #include <QtCore/QString>
 #include <QtCore/QBuffer>
+#include <QtCore/QVector>
 #include <QtCore/QtDebug>
 
 #include <QtNetwork/QHttp>
@@ -41,7 +41,6 @@
 
 OnfRunner::OnfRunner( QObject *parent ) : MarbleAbstractRunner( parent )
 {
-    qRegisterMetaType<MarbleRunnerResult>();
     m_http = new QHttp("gazetteer.openstreetmap.org");
     m_buffer = 0;
     
@@ -65,9 +64,8 @@
     //The manager needs to know when parsing starts and stops
     //in order to have a balanced count of active runners. So
     //we emit runnerFinished() to balance the previous failed runnerStarted()
-    MarbleRunnerResult fail;
-    fail.setRunnerName( name() );
-    emit runnerFinished( fail );
+    QVector<GeoDataPlacemark*> empty;
+    emit runnerFinished( empty );
     return;
 }
 
@@ -119,17 +117,15 @@
     
     GeoDataDocument *results = static_cast<GeoDataDocument*>( parser.releaseDocument() );
     Q_ASSERT( results );
-    
-    PlaceMarkContainer container( results->placemarks(), "ONF Search Results" );
-    MarbleRunnerResult result;
-    
-    if( container.isEmpty() ) {
-        result = MarbleRunnerResult( container, MarbleRunnerResult::NoMatch, name() );
-    } else {
-        result = MarbleRunnerResult( container, MarbleRunnerResult::PerfectMatch, name() );
+
+    QVector<GeoDataPlacemark*> placemarks = results->placemarks();
+    //TODO: get icons working
+/*
+    foreach( GeoDataPlacemark* placemark, placemarks ) {
+        //SET ICON using name()
     }
-        
-    emit runnerFinished( result );
+*/
+    emit runnerFinished( placemarks );
     return;
 }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic