Add:gui/qml:POI viewer now proceeds to point screen after POI selection
authorakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sat, 3 Apr 2010 19:13:10 +0000 (19:13 +0000)
committerakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sat, 3 Apr 2010 19:13:10 +0000 (19:13 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3123 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/gui/qml/ngqpoint.h
navit/navit/gui/qml/skins/navit/PagePoi.qml

index ba03322..a494b07 100644 (file)
@@ -29,7 +29,7 @@ get_direction(char *buffer, int angle, int mode)
        }
 }
 
-enum NGQPointTypes {MapPoint,Bookmark,Position,Destination};
+enum NGQPointTypes {MapPoint,Bookmark,Position,Destination,PointOfInterest};
 
 class NGQPoint : public QObject {
        Q_OBJECT;
@@ -82,6 +82,19 @@ public:
 
     struct pcoord* pc() { return &c; }
 public slots:
+    void setNewPoint(QString coord,NGQPointTypes type=PointOfInterest) {
+            QStringList coordSplit=coord.split(" ",QString::SkipEmptyParts);
+            this->co.x=coordSplit[0].toInt();
+            this->co.y=coordSplit[1].toInt();
+            transform_to_geo(transform_get_projection(navit_get_trans(this->object->nav)), &co, &g);
+            this->c.pro = transform_get_projection(navit_get_trans(this->object->nav));
+            this->c.x = coordSplit[0].toInt();
+            this->c.y = coordSplit[1].toInt();
+            this->type=type;
+
+            this->name=this->_coordName();
+            this->coord=this->_coordString();
+    }
     QString pointName() {
             return this->name;    
     }
@@ -101,7 +114,7 @@ public slots:
             }
             return QString("");
     }
-    QString getAttrList(const QString &attr_name) {
+    QString getPOI(const QString &attr_name) {
             struct attr attr;
             struct item* item;
             struct mapset_handle *h;
@@ -188,7 +201,7 @@ public slots:
             }
             map_selection_destroy(sel);
             mapset_close(h);
-            dbg(0,"%s\n",retDoc.toString().toLocal8Bit().constData());
+            dbg(2,"%s\n",retDoc.toString().toLocal8Bit().constData());
             return retDoc.toString();
     }
 protected:
index e5b8c11..a33d239 100644 (file)
@@ -9,10 +9,6 @@ Rectangle {
     color: "Black"
     opacity: 0
 
-    function poiClick(item) {
-       console.log("itemName: "+item.itemName);
-    }
-
     function calculateFilter() {
         page.poiFilter='/points/point[type="point_begin" or ';
        if (bankBtn.state=="on") {
@@ -101,22 +97,22 @@ Rectangle {
   }
 
        Slider {
-           id: distanceSlider; minValue: 1; maxValue: 250; value: gui.getAttr("radius"); text: "Distance"; onChanged: { gui.setAttr("radius",distanceSlider.value); listModel.xml=point.getAttrList("points"); listModel.reload(); }
+           id: distanceSlider; minValue: 1; maxValue: 250; value: gui.getAttr("radius"); text: "Distance"; onChanged: { gui.setAttr("radius",distanceSlider.value); listModel.xml=point.getPOI("points"); listModel.reload(); }
            anchors.top: selectorsList.bottom; anchors.horizontalCenter: page.horizontalCenter;
        }
 
        XmlListModel {
                id: listModel
-               xml: point.getAttrList("points")
+               xml: point.getPOI("points")
                query: "/points/point"
                XmlRole { name: "itemName"; query: "name/string()" }
                XmlRole { name: "itemType"; query: "type/string()" }
                XmlRole { name: "itemDistance"; query: "distance/string()" }
                XmlRole { name: "itemDirection"; query: "direction/string()" }
-               XmlRole { name: "itemCoords"; query: "coords/string()" }
+               XmlRole { name: "itemValue"; query: "coords/string()" }
        }
     ListSelector { 
-       id:layoutList; text: ""; itemId: point.getAttrList("points"); onChanged: console.log("clicked"+wrapper);
+       id:layoutList; text: ""; itemId: point.getPOI("points"); onChanged: { point.setNewPoint(layoutList.value); gui.setPage("point.qml"); }
        anchors.top: distanceSlider.bottom;
        anchors.left: parent.left; anchors.leftMargin: 3
        anchors.topMargin: gui.height/16; anchors.leftMargin: gui.width/32