navit 0.5.3-trunk
Loading...
Searching...
No Matches
navitProxy.h
Go to the documentation of this file.
1#ifndef NAVIT_GUI_QML_NAVIT_H
2#define NAVIT_GUI_QML_NAVIT_H
3
4void __setNewPoint(struct gui_priv* this_,struct coord* c, NGQPointTypes type);
5
6class NGQProxyNavit : public NGQProxy {
7 Q_OBJECT;
8
9public:
10 NGQProxyNavit(struct gui_priv* object, QObject* parent) : NGQProxy(object,parent) { };
11
12public slots:
13 void quit() {
14 struct attr navit;
15 navit.type=attr_navit;
16 navit.u.navit=this->object->nav;
17 navit_destroy(navit.u.navit);
19 }
20 void setObjectByName(const QString& attr_name,const QString& attr_value) {
21 if (attr_name=="layout") {
22 navit_set_layout_by_name(this->object->nav,attr_value.toStdString().c_str());
23 }
24 if (attr_name=="vehicle") {
25 navit_set_vehicle_by_name(this->object->nav,attr_value.toStdString().c_str());
26 }
27 return;
28 }
29 QString getAttrList(const QString &attr_name) {
30 struct attr attr;
31 struct attr_iter *iter;
32 int counter=0;
33 QString currentValue;
34 QDomDocument retDoc;
35 QDomElement entries;
36
37 entries=retDoc.createElement("attributes");
38 retDoc.appendChild(entries);
39
40 //Find current value
41 getAttrFunc(attr_from_name(attr_name.toStdString().c_str()), &attr, NULL) ;
42 if (attr.type==attr_layout) {
43 currentValue=attr.u.layout->name;
44 }
45
46 //Fill da list
47 iter=getIterFunc();
48 if (iter == NULL) {
49 return QString();
50 }
51
52 while (getAttrFunc(attr_from_name(attr_name.toStdString().c_str()), &attr, iter) ) {
53 QStandardItem* curItem=new QStandardItem();
54 //Listed attributes are usualy have very complex structure
55 if (attr.type==attr_layout) {
56 curItem->setData(QVariant(counter),NGQStandardItemModel::ItemId);
57 curItem->setData(QVariant(attr.u.layout->name),NGQStandardItemModel::ItemName);
58 curItem->setData(QVariant(attr.u.layout->name),NGQStandardItemModel::ItemValue);
59 if (currentValue==attr.u.layout->name) {
60 this->_itemId=counter;
61 }
62 }
63 if (attr.type==attr_vehicle) {
64 QStandardItem* curItem=new QStandardItem();
65 QDomElement entry=retDoc.createElement("vehicle");
66 entries.appendChild(entry);
67
68 this->object->currVehicle=attr.u.vehicle;
69 curItem->setData(QVariant(this->object->vehicleProxy->getAttr("name")),NGQStandardItemModel::ItemName);
70 entry.appendChild(this->_fieldValueHelper(retDoc,QString("id"), QString::number(counter)));
71 entry.appendChild(this->_fieldValueHelper(retDoc,QString("name"),
72 QString(this->object->vehicleProxy->getAttr("name"))));
73
74 //Detecting current vehicle
75 struct attr vehicle_attr;
76 navit_get_attr(this->object->nav, attr_vehicle, &vehicle_attr, NULL);
77 if (vehicle_attr.u.vehicle==attr.u.vehicle) {
78 this->_itemId=counter;
79 }
80 }
81 counter++;
82 }
83
84 dropIterFunc(iter);
85
86 dbg(lvl_debug,QString::number(_itemId).toStdString().c_str(),NULL);
87
88 return retDoc.toString();
89 }
90 QString getDestination() {
91 struct attr attr;
92 struct coord c;
93
94 if (getAttrFunc(attr_destination, &attr, NULL) ) {
95 c.x=attr.u.pcoord->x;
96 c.y=attr.u.pcoord->y;
97 __setNewPoint(this->object,&c,Destination);
98 return this->object->currentPoint->pointName();
99 }
100 return QString();
101 }
103 navit_set_destination(this->object->nav,this->object->currentPoint->pc(),
104 this->object->currentPoint->coordString().toStdString().c_str(),1);
105 }
107 navit_set_destination(this->object->nav,NULL,NULL,0);
108 }
109 QString getPosition() {
110 struct attr attr;
111 struct pcoord pc;
112 struct coord c;
113 struct transformation *trans;
114
115 trans=navit_get_trans(this->object->nav);
116
117 getAttrFunc(attr_vehicle, &attr, NULL);
118 this->object->currVehicle=attr.u.vehicle;
119
120 if (vehicle_get_attr(this->object->currVehicle, attr_position_coord_geo, &attr, NULL)) {
123 __setNewPoint(this->object,&c,Position);
124 return this->object->currentPoint->pointName();
125 }
126 return QString();
127 }
128 void setPosition() {
129 navit_set_position(this->object->nav,this->object->currentPoint->pc());
130 }
131 void setCenter() {
132 navit_set_center(this->object->nav,this->object->currentPoint->pc(),1);
133 }
134 void command(QString command) {
135 struct attr navit;
136 navit.type=attr_navit;
137 navit.u.navit=this->object->nav;
138 command_evaluate(&navit,command.toLocal8Bit().constData());
139 }
140protected:
141 int getAttrFunc(enum attr_type type, struct attr* attr, struct attr_iter* iter) {
142 return navit_get_attr(this->object->nav, type, attr, iter);
143 }
144 int setAttrFunc(struct attr* attr) {
145 return navit_set_attr(this->object->nav,attr);
146 }
148 return navit_attr_iter_new(NULL);
149 };
150 void dropIterFunc(struct attr_iter* iter) {
152 };
153
154private:
155
156};
157
158#include "navitProxy.moc"
159
160#endif /* NAVIT_GUI_QML_NAVITPROXY_H */
enum attr_type attr_from_name(const char *name)
Converts a string to an attr_type.
Definition attr.c:92
attr_type
Definition attr_type_def.h:11
Definition navitProxy.h:6
QString getAttrList(const QString &attr_name)
Definition navitProxy.h:29
QString getDestination()
Definition navitProxy.h:90
struct attr_iter * getIterFunc()
Definition navitProxy.h:147
void setPosition()
Definition navitProxy.h:128
void quit()
Definition navitProxy.h:13
void dropIterFunc(struct attr_iter *iter)
Definition navitProxy.h:150
void command(QString command)
Definition navitProxy.h:134
void stopNavigation()
Definition navitProxy.h:106
int getAttrFunc(enum attr_type type, struct attr *attr, struct attr_iter *iter)
Definition navitProxy.h:141
NGQProxyNavit(struct gui_priv *object, QObject *parent)
Definition navitProxy.h:10
QString getPosition()
Definition navitProxy.h:109
int setAttrFunc(struct attr *attr)
Definition navitProxy.h:144
void setObjectByName(const QString &attr_name, const QString &attr_value)
Definition navitProxy.h:20
void setCenter()
Definition navitProxy.h:131
void setDestination()
Definition navitProxy.h:102
Definition proxy.h:21
QString getAttr(const QString &attr_name)
Definition proxy.h:35
struct gui_priv * object
Definition proxy.h:89
int _itemId
Definition proxy.h:91
QDomElement _fieldValueHelper(QDomDocument doc, QString field, QString value)
Definition proxy.h:98
@ ItemName
Definition proxy.h:16
@ ItemValue
Definition proxy.h:16
@ ItemId
Definition proxy.h:16
void command_evaluate(struct attr *attr, const char *expr)
Definition command.c:1463
@ lvl_debug
Definition debug.h:52
#define dbg(level,...)
Definition debug.h:59
void event_main_loop_quit(void)
Definition event.c:52
char type[3]
Definition garmin_img.c:2
struct transformation * navit_get_trans(struct navit *this_)
Definition navit.c:3524
void navit_set_center(struct navit *this_, struct pcoord *center, int set_timeout)
Definition navit.c:2346
void navit_attr_iter_destroy(struct attr_iter *iter)
Definition navit.c:3215
void navit_destroy(struct navit *this_)
Definition navit.c:3838
int navit_set_vehicle_by_name(struct navit *n, const char *name)
Definition navit.c:3738
struct attr_iter * navit_attr_iter_new(void *unused)
Definition navit.c:3211
void navit_set_destination(struct navit *this_, struct pcoord *c, const char *description, int async)
Definition navit.c:1627
int navit_set_attr(struct navit *this_, struct attr *attr)
Definition navit.c:2815
int navit_set_layout_by_name(struct navit *n, const char *name)
Definition navit.c:3760
int navit_get_attr(struct navit *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter)
Definition navit.c:2819
void navit_set_position(struct navit *this_, struct pcoord *c)
Definition navit.c:3416
static GtkActionEntry entries[]
Definition gui_gtk_action.c:196
void __setNewPoint(struct gui_priv *this_, struct coord *c, NGQPointTypes type)
Definition guiProxy.h:143
NGQPointTypes
Definition ngqpoint.h:32
@ Position
Definition ngqpoint.h:32
@ Destination
Definition ngqpoint.h:32
static struct pcoord c
Definition popup.c:375
Definition config_.c:47
Definition attr.c:48
Definition attr.h:136
struct coord_geo * coord_geo
Definition attr.h:147
struct navit * navit
Definition attr.h:148
struct vehicle * vehicle
Definition attr.h:151
struct layout * layout
Definition attr.h:152
struct pcoord * pcoord
Definition attr.h:160
union attr::@0 u
enum attr_type type
Definition attr.h:137
Definition coord.h:34
Definition graphics_win32.h:52
class NGQProxyVehicle * vehicleProxy
Definition gui_qml.cpp:76
struct navit * nav
Definition graphics_win32.h:53
struct vehicle * currVehicle
Definition gui_qml.cpp:42
char * name
Definition layout.h:117
Definition navit.c:112
Definition gpx2navit_txt.h:51
Definition coord.h:52
int y
Definition coord.h:55
enum projection pro
Definition coord.h:53
int x
Definition coord.h:54
The parameters needed to transform a map for display.
Definition transform.c:64
enum projection transform_get_projection(struct transformation *this_)
Definition transform.c:706
void transform_from_geo(enum projection pro, const struct coord_geo *g, struct coord *c)
Transform the coordinates of a geographical point from a geographical (lat, long) representation to a...
Definition transform.c:309
int vehicle_get_attr(struct vehicle *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter)
Definition vehicle.c:201