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

List:       kde-commits
Subject:    KDE/kdeedu/marble/src/plugins/marble/panoramio
From:       Shashank Singh <shashank.personal () gmail ! com>
Date:       2008-07-20 19:07:19
Message-ID: 1216580839.804735.25397.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 835539 by ssingh:

additon of image borders tweaking oh http downlaoder and correctited a
bug in downlaoder


 M  +84 -42    PanoramioPlugin.cpp  
 M  +6 -3      PanoramioPlugin.h  


--- trunk/KDE/kdeedu/marble/src/plugins/marble/panoramio/PanoramioPlugin.cpp \
#835538:835539 @@ -17,108 +17,150 @@
 #include "MarbleDirs.h"
 #include "GeoPainter.h"
 #include "GeoDataPoint.h"
+#include "GeoDataPoint.h"
+#include "GeoDataLatLonAltBox.h"
+#include "ViewportParams.h"
 
-
 QStringList PanoramioPlugin::backendTypes() const
 {
-    return QStringList ( "panoramio" );
+        return QStringList ( "panoramio" );
 }
 
 QString PanoramioPlugin::renderPolicy() const
 {
-    return QString ( "ALWAYS" );
+        return QString ( "ALWAYS" );
 }
 
 QStringList PanoramioPlugin::renderPosition() const
 {
-    return QStringList ( "ALWAYS_ON_TOP" );
+        return QStringList ( "ALWAYS_ON_TOP" );
 }
 
 QString PanoramioPlugin::name() const
 {
-    return tr ( "Panoramio Photos" );
+        return tr ( "Panoramio Photos" );
 }
 
 QString PanoramioPlugin::guiString() const
 {
-    return tr ( "&Panoramio" );
+        return tr ( "&Panoramio" );
 }
 
 QString PanoramioPlugin::nameId() const
 {
-    return QString ( "panoramio" );
+        return QString ( "panoramio" );
 }
 
 QString PanoramioPlugin::description() const
 {
-    return tr ("Automatically downloads images from around the world in preference \
to their popularity" ); +        return tr ( "Automatically downloads images from \
around the world in preference to their popularity" );  }
 
 QIcon PanoramioPlugin::icon () const
 {
-    return QIcon();
+        return QIcon();
 }
 
 
 void PanoramioPlugin::initialize ()
 {
-    flag = 0;
-    numberOfImagesToShow = 5;
-    m_storagePolicy = new CacheStoragePolicy ( MarbleDirs::localPath() + "/cache/" \
                );
-    m_downloadManager = new HttpDownloadManager ( QUrl ( "htttp://mw2.google.com/" \
                ), m_storagePolicy );
-    downloadPanoramio ( 0, numberOfImagesToShow );
+        flag = 0;
+        numberOfImagesToShow = 5;
+        m_storagePolicy = new CacheStoragePolicy ( MarbleDirs::localPath() + \
"/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 );  
 }
 
 bool PanoramioPlugin::isInitialized () const
 {
-    return true;
+        return true;
 }
 
 bool PanoramioPlugin::render ( GeoPainter *painter, ViewportParams *viewport, const \
QString& renderPos, GeoSceneLayer * layer )  {
-    painter->autoMapQuality();
+        static double deltaWest = 0 , deltaEast = 0 , deltaSouth = 0 , deltaNorth = \
0; +        painter->autoMapQuality();
+        GeoDataLatLonAltBox mylatLonAltBox = viewport->viewLatLonAltBox();
 
-    if ( flag == 1 )
-    {
-        for ( int x = 0; x < imagesWeHave.count(); ++x )
-        {
-            painter->drawPixmap ( GeoDataPoint ( \
parsedData[x].longitude,parsedData[x].latitude, 0.0, GeoDataPoint::Degree ), \
                imagesWeHave[x] );
-            qDebug() <<"Shanky: Coordinates are lon-lat: " << \
parsedData[x].longitude << parsedData[x].latitude; +        double west = \
mylatLonAltBox.west(); +        double east = mylatLonAltBox.east();
+        double south = mylatLonAltBox.south();
+        double north = mylatLonAltBox.north();
+//  if ( ( west - deltaWest ) != 0 || ( east - deltaEast != 0 ) || ( south - \
deltaSouth != 0 ) || ( north - deltaNorth != 00 ) ) +//  {
+//     //       flag = 0 ;
+//             qDebug() <<"delta part";
+//          downloadPanoramio ( 0 , numberOfImagesToShow , west , east , north , \
south ); +//         disconnect( m_downloadManager, SIGNAL ( downloadComplete ( \
QString, QString ) ), this, SLOT ( slotImageDownloadComplete ( QString , QString ) ) \
); +//  }
+
+        if ( flag == 1 ) {
+                for ( int x = 0; x < imagesWeHave.count(); ++x ) {
+                        painter->drawPixmap ( GeoDataPoint ( \
parsedData[x].longitude,parsedData[x].latitude, 0.0, GeoDataPoint::Degree ), \
imagesWeHave[x] ); +                        painter->setBrush(QBrush(Qt::NoBrush));
+                        painter->setPen(Qt::Dense1Pattern);
+                        painter->setPen(Qt::white);
+                        painter->drawRect(GeoDataPoint ( \
parsedData[x].longitude,parsedData[x].latitude, 0.0, GeoDataPoint::Degree \
),/*parsedData[x].height , parsedData[x].width*/50,50); +//             qDebug() \
<<"Shanky: Coordinates are lon-lat: " << parsedData[x].longitude << \
parsedData[x].latitude; +                }
         }
-    }
-    return true;
+        qDebug() <<"deltas"<<west - deltaWest<<east - deltaEast<<south - \
deltaSouth<<north - deltaNorth; +
+        deltaWest = west;
+        deltaEast = east ;
+        deltaSouth = south ;
+        deltaNorth = north;
+        return true;
 }
 
 void PanoramioPlugin::slotJsonDownloadComplete ( QString relativeUrlString, QString \
id )  {
-    disconnect ( m_downloadManager, SIGNAL ( downloadComplete ( QString, QString ) \
                ), this, SLOT ( slotJsonDownloadComplete ( QString , QString ) ) );
-    connect ( m_downloadManager, SIGNAL ( downloadComplete ( QString, QString ) ), \
this, SLOT ( slotImageDownloadComplete ( QString , QString ) ) ); +        disconnect \
( m_downloadManager, SIGNAL ( downloadComplete ( QString, QString ) ), this, SLOT ( \
slotJsonDownloadComplete ( QString , QString ) ) ); +        connect ( \
m_downloadManager, SIGNAL ( downloadComplete ( QString, QString ) ), this, SLOT ( \
slotImageDownloadComplete ( QString , QString ) ) );  
-    for ( int x = 0; x < numberOfImagesToShow; ++x )
-    {
-        temp = panoramioJsonParser.parseObjectOnPosition ( QString::fromUtf8 ( \
                m_storagePolicy->data ( id ) ), x );
-        parsedData.append ( temp );
-        m_downloadManager->addJob ( QUrl ( temp.photo_file_url ), temp.photo_title, \
                QString::number ( x ) );
-        qDebug() <<":::::::shanky1" << temp.photo_file_url;
-    }
+        for ( int x = 0; x < numberOfImagesToShow; ++x ) {
+                temp = panoramioJsonParser.parseObjectOnPosition ( QString::fromUtf8 \
( m_storagePolicy->data ( id ) ), x ); +                parsedData.append ( temp );
+                if ( !m_storagePolicy->fileExists ( temp.photo_title ) ) {
+                        m_downloadManager->addJob ( QUrl ( temp.photo_file_url ), \
temp.photo_title, QString::number ( x ) ); +                        qDebug() \
<<"skipping "<<temp.photo_title; +                }
+                qDebug() <<":::::::shanky1" << temp.photo_file_url;
+        }
+
+//         HttpJob *job = new HttpJob ( sourceUrl, destFileName, id );
+//         m_downloadManager->removeJob(job);
 }
 
 void PanoramioPlugin::slotImageDownloadComplete ( const QString relativeUrlString, \
const QString id )  {
 
-    //     temp.loadFromData ( m_storagePolicy->data ( id ) );
-    tempImage.load ( MarbleDirs::localPath() + "/cache/" + relativeUrlString );
-    imagesWeHave.append ( tempImage.scaled ( QSize ( 50, 50 ),  Qt::KeepAspectRatio \
                , Qt::SmoothTransformation ) );
-    qDebug() <<"::::::::::::::shanky2"<< id << "=" << tempImage.isNull() << \
                MarbleDirs::localPath() + "/cache/" + relativeUrlString ;
-    flag = 1;
+        //     temp.loadFromData ( m_storagePolicy->data ( id ) );
+        tempImage.load ( MarbleDirs::localPath() + "/cache/" + relativeUrlString );
+        imagesWeHave.append ( tempImage.scaled ( QSize ( 50, 50 ),  \
Qt::IgnoreAspectRatio , Qt::SmoothTransformation ) ); +        qDebug() \
<<"::::::::::::::shanky2"<< id << "=" << tempImage.isNull() << \
MarbleDirs::localPath() + "/cache/" + relativeUrlString ; +        flag = 1;
 }
 
-void PanoramioPlugin::downloadPanoramio ( int rangeFrom , int rangeTo )
+void PanoramioPlugin::downloadPanoramio ( int rangeFrom , int rangeTo ,double east \
,double west , double north ,double south )  {
-    m_downloadManager->addJob ( QUrl ( \
"http://www.panoramio.com/map/get_panoramas.php?from="+QString::number(rangeFrom) + \
"&to=" + QString::number(rangeTo) + "&minx=-180&miny=-90&maxx=180&maxy=90" \
                ),"panoramio","panoramio" );
-    connect ( m_downloadManager,SIGNAL ( downloadComplete ( QString, QString ) \
                ),this, SLOT ( slotJsonDownloadComplete ( QString , QString ) ) );
-    qDebug() <<"::::::::::::::shanky0";
+        m_downloadManager->addJob ( QUrl ( \
"http://www.panoramio.com/map/get_panoramas.php?from=" +                              \
+ QString::number ( rangeFrom ) +                                           + "&to=" \
+ QString::number ( rangeTo ) +                                           + "&minx=" \
+ QString::number ( east * RADIANSTODEGREES ) +                                       \
+ "&miny=" + QString::number ( west * RADIANSTODEGREES ) +                            \
+ "&maxx=" + QString::number ( north * RADIANSTODEGREES ) +                           \
+ "&maxy=" + QString::number ( south * RADIANSTODEGREES ) + "&size=medium" \
),"panoramio","panoramio"); +        connect ( m_downloadManager,SIGNAL ( \
downloadComplete ( QString, QString ) ),this, SLOT ( slotJsonDownloadComplete ( \
QString , QString ) ) ); +        qDebug() <<"::::::::::::::shanky0";
+        job = new HttpJob ( QUrl ( \
"http://www.panoramio.com/map/get_panoramas.php?from=" +                              \
+ QString::number ( rangeFrom ) +                                   + "&to=" + \
QString::number ( rangeTo ) +                                   + "&minx=" + \
QString::number ( east * RADIANSTODEGREES ) +                                   + \
"&miny=" + QString::number ( west * RADIANSTODEGREES ) +                              \
+ "&maxx=" + QString::number ( north * RADIANSTODEGREES ) +                           \
+ "&maxy=" + QString::number ( south * RADIANSTODEGREES ) + "&size=medium" ), \
"panoramio","panoramio" );  }
 
 
--- trunk/KDE/kdeedu/marble/src/plugins/marble/panoramio/PanoramioPlugin.h \
#835538:835539 @@ -14,10 +14,12 @@
 
 #ifndef MARBLEPANORAMIOPLUGIN_H
 #define MARBLEPANORAMIOPLUGIN_H
+#define RADIANSTODEGREES 57.2957795
 
 #include <QtCore/QObject>
 #include "../lib/HttpDownloadManager.h"
 #include "../lib/CacheStoragePolicy.h"
+// #include "../lib/HttpJob.h"
 #include "jsonparser.h"
 #include "MarbleAbstractLayer.h"
 
@@ -53,24 +55,25 @@
 
         bool isInitialized () const;
 
-
         bool render ( GeoPainter *painter, ViewportParams *viewport, const QString& \
renderPos, GeoSceneLayer * layer = 0 );  
     public slots:
         void slotJsonDownloadComplete ( QString , QString );//completed download of \
                json reply fom panoramio
         void slotImageDownloadComplete ( QString , QString );//completed download of \
                image
-
+    signals:
+	void statusMessageForImageDownloadingProcess(QString);
     private:
         CacheStoragePolicy *m_storagePolicy;
         HttpDownloadManager *m_downloadManager;
         jsonParser panoramioJsonParser;
         int decimalToSexagecimal();//convert decimal to DMS system
-        void downloadPanoramio ( int,int );
+        void downloadPanoramio ( int,int,double,double,double,double);
         QList <QPixmap > imagesWeHave;//this list will hold pointers to pixmaps we \
have downloaded  QList <panoramioDataStructure> parsedData;
         panoramioDataStructure temp;
         QPixmap tempImage;
         int flag;//this flag is one when globe has an Image  (downloaded or already \
there in cache) +        HttpJob *job;
         int numberOfImagesToShow;//this factor stires how many are to be downloaded \
and shown on the globe  };
 


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

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