[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