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

List:       kde-commits
Subject:    KDE/kdeedu/marble/src/plugins/render/panoramio
From:       Bastian Holst <bastianholst () gmx ! de>
Date:       2009-04-14 17:24:19
Message-ID: 1239729859.851014.21056.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 953888 by bholst:

Getting system load away from initialization in Marbles PanoramioPlugin


 M  +30 -15    PanoramioPlugin.cpp  
 M  +4 -3      PanoramioPlugin.h  


--- trunk/KDE/kdeedu/marble/src/plugins/render/panoramio/PanoramioPlugin.cpp \
#953887:953888 @@ -64,9 +64,8 @@
                                               + "/cache/" );
     m_downloadManager = new HttpDownloadManager( QUrl("htttp://mw2.google.com/"),
                                                  m_storagePolicy );
-    downloadPanoramio( 0, numberOfImagesToShow,
-                       -180.00 / RADIANSTODEGREES, -90.00 / RADIANSTODEGREES, 
-                        180.00 / RADIANSTODEGREES,  90.00 / RADIANSTODEGREES );
+    connect( m_downloadManager, SIGNAL( downloadComplete( QString, QString ) ),
+             this,              SLOT( processFinishedJob( QString , QString ) ) );
 }
 
 bool PanoramioPlugin::isInitialized() const {
@@ -79,7 +78,14 @@
 bool PanoramioPlugin::render( GeoPainter *painter, ViewportParams *viewport,
                               const QString& renderPos, GeoSceneLayer * layer )
 {
-    static qreal deltaWest = 0 , deltaEast = 0 , deltaSouth = 0 , deltaNorth = 0;
+    static bool firstTime = true;
+    if( firstTime ) {
+        // GeoDataLatLonAltBox latLonAltBox = viewport->viewLatLonAltBox();
+        downloadPanoramio( 0, numberOfImagesToShow,
+                           180 / RADIANSTODEGREES, -180 / RADIANSTODEGREES, 
+                            90 / RADIANSTODEGREES, - 90 / RADIANSTODEGREES );
+         firstTime = false;
+    }
     painter->autoMapQuality();
     GeoDataLatLonAltBox mylatLonAltBox = viewport->viewLatLonAltBox();
     if ( flag == 1 ) {
@@ -101,17 +107,21 @@
     return true;
 }
 
+void PanoramioPlugin::processFinishedJob( QString relativeUrlString, QString id ) {
+    if( id.startsWith( "panoramio_json_" ) )
+        downloadImages( relativeUrlString, id );
+    else
+        appendImageToList( relativeUrlString, id );
+}
+    
+    
+
 /**
  *this slot is called after the json has been downlaod
  *[1]this flost calls the json parser
  *[2]add jobs in  http Download manager for each parsed entry in parsed json
  */
 void PanoramioPlugin::downloadImages( QString relativeUrlString, QString id ) {
-    disconnect( m_downloadManager, SIGNAL( downloadComplete( QString, QString ) ),
-                this, SLOT( downloadImages( QString , QString ) ) );
-    connect( m_downloadManager, SIGNAL( downloadComplete( QString, QString ) ),
-             this, SLOT( appendImageToList( QString , QString ) ) );
-
     for ( int x = 0; x < numberOfImagesToShow; ++x ) {
         temp = panoramioJsonParser.parseObjectOnPosition( QString::fromUtf8( \
m_storagePolicy->data( id ) ), x );  parsedData.append( temp );
@@ -121,7 +131,6 @@
             qDebug() << "adding " << temp.photo_title;
         }
     }
-
 }
 
 /**
@@ -153,18 +162,23 @@
                   + "&miny=" + QString::number( west  * RADIANSTODEGREES )
                   + "&maxx=" + QString::number( north * RADIANSTODEGREES )
                   + "&maxy=" + QString::number( south * RADIANSTODEGREES )
-                  + "&size=medium");
+                  + "&size=small");
+    qDebug() << QString( "Downloading:\n" )
+                + "East: " + QString::number( east ) + '\n'
+                + "West: " + QString::number( west ) + '\n'
+                + "North: " + QString::number( north ) + '\n'
+                + "South: " + QString::number( south ) + '\n'
+                + "From: " + jsonUrl.toString();
     m_downloadManager->addJob( jsonUrl,
-                               "panoramio" + QString::number( east ),
-                               "panoramio" + QString::number( east ) );
-    connect( m_downloadManager, SIGNAL( downloadComplete( QString, QString ) ),
-             this,              SLOT( downloadImages( QString , QString ) ) );
+                               "panoramio_json_" + QString::number( east ),
+                               "panoramio_json_" + QString::number( east ) );
 }
 
 
 /**
  * trying to install a event filter on marble widget to filter events for our little \
                image widgets
  */
+/*
 bool PanoramioPlugin::eventFilter(QObject *object, QEvent *e) {
     MarbleWidget *widget = dynamic_cast<MarbleWidget*> (object);
     if ( !widget ) {
@@ -175,6 +189,7 @@
         qDebug()<<__func__;
     }
 }
+*/
 
 
 
--- trunk/KDE/kdeedu/marble/src/plugins/render/panoramio/PanoramioPlugin.h \
#953887:953888 @@ -67,17 +67,18 @@
     bool render( GeoPainter *painter, ViewportParams *viewport,
                  const QString& renderPos, GeoSceneLayer * layer = 0 );
 protected:
-    bool eventFilter( QObject *object, QEvent *e );
+//    bool eventFilter( QObject *object, QEvent *e );
 
 public slots:
+    void processFinishedJob( QString relativeUrlString, QString id );
     /**
      * Download images from the json-file
      */
-    void downloadImages( QString , QString );
+    void downloadImages( QString relativeUrlString, QString id );
     /**
      * Append images that are have been downloaded
      */
-    void appendImageToList( QString , QString );
+    void appendImageToList( QString relativeUrlString, QString id );
 signals:
     void statusMessageForImageDownloadingProcess(QString);
 private:


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

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