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

List:       kde-commits
Subject:    KDE/kdeedu/marble/src/plugins/render/panoramio
From:       Shashank Singh <shashank.personal () gmail ! com>
Date:       2009-03-25 15:46:07
Message-ID: 1237995967.801031.8719.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 944504 by ssingh:

[1]removed redudant variables
[2]changed names of slot to mroe meaningfull counterparts
[3]trying to paint a widget as a pixmap [panoramio] so that mousePress
event can be extracted
[4]corrected a bug in josnParser


 M  +23 -9     PanoramioPlugin.cpp  
 M  +2 -5      PanoramioPlugin.h  
 M  +21 -2     imagewidget.cpp  
 M  +12 -7     imagewidget.h  
 M  +9 -96     jsonparser.cpp  


--- trunk/KDE/kdeedu/marble/src/plugins/render/panoramio/PanoramioPlugin.cpp \
#944503:944504 @@ -78,26 +78,33 @@
 {
     return true;
 }
-
+/**
+*This function render whatever images it has in list
+*/
 bool PanoramioPlugin::render(GeoPainter *painter, ViewportParams *viewport, const \
QString& renderPos, GeoSceneLayer * layer)  {
     static qreal 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(GeoDataCoordinates(parsedData[x].longitude, \
parsedData[x].latitude, 0.0, GeoDataCoordinates::Degree), imagesWeHave[x]); +        \
for (int x = 0; x < images.size(); ++x) { +            \
painter->drawPixmap(GeoDataCoordinates(parsedData[x].longitude, \
parsedData[x].latitude, 0.0, GeoDataCoordinates::Degree), \
*((images.at(x))->returnPointerToImage())); +// 	  \
(images.at(x)).render(painter->device(),QPoint(),QRegion(),QWidget::RenderFlags(QWidget::DrawChildren));//,my \
attempt at drawing a widget  painter->setBrush(QBrush(Qt::NoBrush));
             painter->setPen(Qt::Dense1Pattern);
             painter->setPen(Qt::white);
             painter->drawRect(GeoDataCoordinates(parsedData[x].longitude, \
parsedData[x].latitude, 0.0, GeoDataCoordinates::Degree),/*parsedData[x].height , \
                parsedData[x].width*/50, 50);
-             qDebug() <<"Shanky: Coordinates are lon-lat: " << \
                parsedData[x].longitude << parsedData[x].latitude;
-	  tempLabel.render(painter->device(),QPoint(),QRegion(),QWidget::RenderFlags(QWidget::DrawChildren));//,my \
attempt at drawing a widget +//              qDebug() <<"Shanky: Coordinates are \
lon-lat: " << parsedData[x].longitude << parsedData[x].latitude; +
         }
     }
   return true;
 }
-
+/**
+*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::slotDownloadImage(QString relativeUrlString, QString id)
 {
     disconnect(m_downloadManager, SIGNAL(downloadComplete(QString, QString)), this, \
SLOT(slotDownloadImage(QString , QString))); @@ -114,15 +121,22 @@
     }
 
 }
-
+/**
+*this slot is called once a image has been downloaded by HTTPdownloader
+[1]It appends the image to a imageWidget
+*/
 void PanoramioPlugin::slotAppendImageToList(const QString relativeUrlString, const \
QString id)  {
     tempImage.load(MarbleDirs::localPath() + "/cache/" + relativeUrlString);
-    imagesWeHave.append(tempImage.scaled(QSize(50, 50),  Qt::IgnoreAspectRatio , \
Qt::FastTransformation)); +//     imagesWeHave.append(tempImage.scaled(QSize(50, 50), \
Qt::IgnoreAspectRatio , Qt::FastTransformation)); +    images.append(new \
imageWidget); +    (images.at((images.size())-1))->addImage(tempImage.scaled(QSize(50, \
                50),  Qt::IgnoreAspectRatio , Qt::FastTransformation));
     qDebug() <<__func__ << id << "=" << tempImage.isNull() << \
MarbleDirs::localPath() + "/cache/" + relativeUrlString ;  flag = 1;
 }
-
+/**
+*This function add jobs to downlaod manager to fetch json file from panoramio \
sevrers +*/
 void PanoramioPlugin::downloadPanoramio(int rangeFrom , int rangeTo , qreal east , \
qreal west , qreal north , qreal south)  {
     m_downloadManager->addJob(QUrl("http://www.panoramio.com/map/get_panoramas.php?from="
                
--- trunk/KDE/kdeedu/marble/src/plugins/render/panoramio/PanoramioPlugin.h \
#944503:944504 @@ -21,6 +21,7 @@
 #include "../lib/CacheStoragePolicy.h"
 // #include "../lib/HttpJob.h"
 #include "jsonparser.h"
+#include "imagewidget.h"
 #include "MarbleRenderPlugin.h"
 #include <QWidget>
 #include <QLabel>
@@ -74,16 +75,12 @@
     jsonParser panoramioJsonParser;
     int decimalToSexagecimal();//convert decimal to DMS system
     void downloadPanoramio(int, int, qreal, qreal, qreal, qreal);
-    QList <QPixmap > imagesWeHave;//this list will hold pointers to pixmaps we have \
downloaded  QList <panoramioDataStructure> parsedData;
     panoramioDataStructure temp;
     QPixmap tempImage;
-    QPushButton tempLabel;
     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
-    QWidget *parent;
-    QList<QLabel>images;//these widgets are supposed to show draw images and take \
click events  +    QList<imageWidget*>images;//these widgets are supposed to show \
draw images and take click events   };
 
 }
--- trunk/KDE/kdeedu/marble/src/plugins/render/panoramio/imagewidget.cpp \
#944503:944504 @@ -1,5 +1,24 @@
 #include "imagewidget.h"
-imageWidget::imageWidget() {}
+imageWidget::imageWidget() {
+}
 
-imageWidget:: ~imageWidget() {}
+imageWidget:: ~imageWidget() {
+}
+
+void imageWidget::addImage(QPixmap temp) {
+    image=temp;
+}
+
+
+void imageWidget::paintEvent(QPaintEvent * event ) {
+qDebug()<<__func__<<"painevent";
+}
+
+void imageWidget::mousePressEvent ( QMouseEvent * event ) {
+qDebug()<<__func__<<"mouseevent";
+}
+
+QPixmap * imageWidget::returnPointerToImage(){
+return &image;
+}
 #include "imagewidget.moc"
--- trunk/KDE/kdeedu/marble/src/plugins/render/panoramio/imagewidget.h #944503:944504
@@ -12,25 +12,30 @@
 #define IMAGEWIDGET_H
 
 #include <QWidget>
-
+#include <QDebug>
 /**
 This class implements a Widget that shows image in thumbnail format and then it will \
also implement sutiable events so that if clicked it scales the image to show it in \
it's original size  
 	@author Shashank Singh <shashank.singh@geodesic.com>
 */
-class imageWidget : public QWidget
-{
-	Q_OBJECT
+class imageWidget : public QWidget {
+    Q_OBJECT
+    Q_DISABLE_COPY(imageWidget) //i am trying to save this class from deepcopy
 public:
     imageWidget();
 
     ~imageWidget();
+
+    void addImage(QPixmap);
+    QPixmap* returnPointerToImage();
 protected:
-// 	void 
+    void paintEvent(QPaintEvent * event );
+    void mousePressEvent ( QMouseEvent * event ) ;
 private:
-	QString imageLink;
-	
+    QString imageLink;
+    QPixmap image;
 
+
 };
 
 #endif
--- trunk/KDE/kdeedu/marble/src/plugins/render/panoramio/jsonparser.cpp \
#944503:944504 @@ -9,7 +9,7 @@
 
 jsonParser::jsonParser()
 {
-//   myEngine.setProcessEventsInterval(10);//this lets the gui remain responsive
+  myEngine.setProcessEventsInterval(10);//this lets the gui remain responsive
 }
 
 jsonParser::~jsonParser()
@@ -27,106 +27,19 @@
     myEngine.evaluate(QString("function owner_id(x){return \
                myJSONObject.photos[x].owner_id};"));
     myEngine.evaluate(QString("function photo_file_url(x){return \
                myJSONObject.photos[x].photo_file_url};"));
     myEngine.evaluate(QString("function photo_title(x){return \
                myJSONObject.photos[x].photo_title};"));
-
-	
     dataStorage.count = myEngine.evaluate("count();").toInteger();
+    myEngine.evaluate(QString("var x="+QString::number(requiredObjectPosition)));
+    dataStorage.longitude=myEngine.evaluate(QString("longitude(x)")).toNumber();
+    dataStorage.latitude=myEngine.evaluate(QString("latitude(x)")).toNumber();
+    dataStorage.photo_file_url=myEngine.evaluate(QString("photo_file_url(x)")).toString();
 +    dataStorage.photo_title=myEngine.evaluate(QString("photo_title(x)")).toString();
  
-/*    dataStorage.height = myEngine.evaluate(QString("return myJSONObject.photos[")
-                                           + QString::number(requiredObjectPosition)
-                                           + QString("].height;")) .toInteger();
-    dataStorage.latitude = myEngine.evaluate(QString("return myJSONObject.photos[")
-                           + QString::number(requiredObjectPosition)
-                           + QString("].latitude;")).toNumber();
-    dataStorage.longitude = myEngine.evaluate(QString("return myJSONObject.photos[")
-                            + QString::number(requiredObjectPosition)
-                            + QString("].longitude;")).toNumber();
-    dataStorage.owner_id = myEngine.evaluate(QString("return myJSONObject.photos[")
-                           + QString::number(requiredObjectPosition)
-                           + QString("].owner_id;")).toInteger();
-    dataStorage.owner_name = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                             + QString::number(requiredObjectPosition)
-                             + QString("].owner_name;")).toString();
-    dataStorage.owner_url = myEngine.evaluate(QString("return myJSONObject.photos[")
-                            + QString::number(requiredObjectPosition)
-                            + QString("].owner_url;")).toString();
-    dataStorage.photo_id = myEngine.evaluate(QString("return myJSONObject.photos[")
-                           + QString::number(requiredObjectPosition)
-                           + QString("].photo_id;")).toInteger();
-    dataStorage.photo_title = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                              + QString::number(requiredObjectPosition)
-                              + QString("].photo_title;")).toString();
-    dataStorage.photo_url = myEngine.evaluate(QString("return myJSONObject.photos[")
-                            + QString::number(requiredObjectPosition)
-                            + QString("].photo_url;")).toString();
-    dataStorage.photo_file_url = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                 + QString::number(requiredObjectPosition)
-                                 + QString("].photo_file_url;")).toString();
-    dataStorage.upload_date = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                              + QString::number(requiredObjectPosition)
-                              + QString("].upload_date;")).toString();
-    dataStorage.width  = myEngine.evaluate(QString("return myJSONObject.photos[")
-                                           + QString::number(requiredObjectPosition)
-                                           + QString("].width;")).toInteger();
-
-*/
-	myEngine.evaluate(QString("var x="+QString::number(requiredObjectPosition)));
-	dataStorage.longitude=myEngine.evaluate(QString("longitude(x)")).toNumber();
-	dataStorage.latitude=myEngine.evaluate(QString("latitude(x)")).toNumber();
-	dataStorage.photo_file_url=myEngine.evaluate(QString("photo_file_url(x)")).toString();
                
-	dataStorage.photo_title=myEngine.evaluate(QString("photo_title(x)")).toString();
-
-qDebug()<<":::::::"<<__func__<<myEngine.evaluate("longitude(x)").toNumber();
+//     qDebug()<<":::::::"<<__func__<<myEngine.evaluate("longitude(x)").toNumber();
     return dataStorage;
 }
 
 QList <panoramioDataStructure> jsonParser::parseAllObjects(const QString &content , \
int numberOfObjects)  {
-    /*QString temp = "var myJSONObject = " + content;
-    int iterator = 0;//the count starts fom one
-
-    myEngine.evaluate(temp);
-    while ((iterator) < numberOfObjects) {
-
-        dataStorage.count = myEngine.evaluate("return \
                myJSONObject.count;").toInteger();
-        dataStorage.height = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                               + QString::number(iterator)
-                                               + QString("].height;")) .toInteger();
-        dataStorage.latitude = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                               + QString::number(iterator)
-                               + QString("].latitude;")).toNumber();
-        dataStorage.longitude = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                + QString::number(iterator)
-                                + QString("].longitude;")).toNumber();
-        dataStorage.owner_id = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                               + QString::number(iterator)
-                               + QString("].owner_id;")).toInteger();
-        dataStorage.owner_name = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                 + QString::number(iterator)
-                                 + QString("].owner_name;")).toString();
-        dataStorage.owner_url = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                + QString::number(iterator)
-                                + QString("].owner_url;")).toString();
-        dataStorage.photo_id = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                               + QString::number(iterator)
-                               + QString("].photo_id;")).toInteger();
-        dataStorage.photo_title = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                  + QString::number(iterator)
-                                  + QString("].photo_title;")).toString();
-        dataStorage.photo_url = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                + QString::number(iterator)
-                                + QString("].photo_url;")).toString();
-        dataStorage.photo_file_url = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                     + QString::number(iterator)
-                                     + QString("].photo_file_url;")).toString();
-        dataStorage.upload_date = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                  + QString::number(iterator)
-                                  + QString("].upload_date;")).toString();
-        dataStorage.width  = myEngine.evaluate(QString("return \
                myJSONObject.photos[")
-                                               + QString::number(iterator)
-                                               + QString("].width;")).toInteger();
-        parsedJsonOutput.insert(iterator , dataStorage);
-        ++iterator;
-    }
-*/
-    return parsedJsonOutput;
+    QList <panoramioDataStructure> returnStructure;
+    return returnStructure;
 }


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

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