[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 ℑ
+}
#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