mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -04:00
Removed my temporary and unfinished plugin from repository.
git-svn-id: http://svn.osgeo.org/qgis/trunk@6666 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
ff4a1e28ca
commit
1bca64cd82
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
SUBDIRS (copyright_label delimited_text grid_maker navigation north_arrow scale_bar)
|
SUBDIRS (copyright_label delimited_text grid_maker north_arrow scale_bar)
|
||||||
|
|
||||||
IF (POSTGRES_FOUND)
|
IF (POSTGRES_FOUND)
|
||||||
SUBDIRS (geoprocessing spit)
|
SUBDIRS (geoprocessing spit)
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
|
|
||||||
# TODO: needs 'gpsd' detection
|
|
||||||
|
|
||||||
########################################################
|
|
||||||
# Files
|
|
||||||
|
|
||||||
SET (NAVIGATION_SRCS
|
|
||||||
navigation.cpp
|
|
||||||
navigationgui.cpp
|
|
||||||
gpspage.cpp
|
|
||||||
gpscore.cpp
|
|
||||||
positionmarker.cpp
|
|
||||||
routingcore.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
SET (NAVIGATION_UIS
|
|
||||||
navigationgui.ui
|
|
||||||
gpspage.ui
|
|
||||||
)
|
|
||||||
|
|
||||||
SET (NAVIGATION_MOC_HDRS
|
|
||||||
navigation.h
|
|
||||||
navigationgui.h
|
|
||||||
gpscore.h
|
|
||||||
routingcore.h
|
|
||||||
)
|
|
||||||
|
|
||||||
SET (NAVIGATION_RCCS navigation.qrc)
|
|
||||||
|
|
||||||
########################################################
|
|
||||||
# Build
|
|
||||||
|
|
||||||
QT4_WRAP_UI (NAVIGATION_UIS_H ${NAVIGATION_UIS})
|
|
||||||
|
|
||||||
QT4_WRAP_CPP (NAVIGATION_MOC_SRCS ${NAVIGATION_MOC_HDRS})
|
|
||||||
|
|
||||||
QT4_ADD_RESOURCES(NAVIGATION_RCC_SRCS ${NAVIGATION_RCCS})
|
|
||||||
|
|
||||||
ADD_LIBRARY (navigationplugin MODULE ${NAVIGATION_SRCS} ${NAVIGATION_UIS_H} ${NAVIGATION_MOC_SRCS} ${NAVIGATION_RCC_SRCS})
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}
|
|
||||||
../../core ../../core/raster ../../core/renderer ../../core/symbology
|
|
||||||
../../gui
|
|
||||||
..
|
|
||||||
)
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(navigationplugin
|
|
||||||
${QT_LIBRARIES}
|
|
||||||
qgis_core
|
|
||||||
qgis_gui
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
########################################################
|
|
||||||
# Install
|
|
||||||
|
|
||||||
INSTALL(TARGETS navigationplugin
|
|
||||||
RUNTIME DESTINATION ${QGIS_PLUGIN_DIR}
|
|
||||||
LIBRARY DESTINATION ${QGIS_PLUGIN_DIR})
|
|
@ -1,86 +0,0 @@
|
|||||||
# Copyright (C) 2003 Gary Sherman <sherman at mrcc.com>
|
|
||||||
# and 2006 Tim Sutton <tim@linfiniti.com>
|
|
||||||
#
|
|
||||||
# This file is free software; as a special exception the author gives
|
|
||||||
# unlimited permission to copy and/or distribute it, with or without
|
|
||||||
# modifications, as long as this notice is preserved.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but
|
|
||||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
||||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
#
|
|
||||||
# $Id: Makefile.am 5381 2006-04-26 15:02:28Z wonder $
|
|
||||||
|
|
||||||
#navigation below to be replaced with the name of the plugin
|
|
||||||
|
|
||||||
##
|
|
||||||
## Legacy support for pkgdatapath - you are encouraged to use
|
|
||||||
## Qt4.x resource files where possible rather!
|
|
||||||
##
|
|
||||||
if !HAVE_QTMAC
|
|
||||||
PKGDATAPATH=-DPKGDATAPATH=\"$(pkgdatadir)\"
|
|
||||||
endif
|
|
||||||
|
|
||||||
plugindir = ${pkglibdir}
|
|
||||||
|
|
||||||
#for plugin so
|
|
||||||
plugin_LTLIBRARIES = libqgis_plugin_navigation.la
|
|
||||||
|
|
||||||
## For Qt4 intermerdiary meta object compiler files
|
|
||||||
%.moc.cpp: %.h
|
|
||||||
$(MOC) -o $@ $<
|
|
||||||
|
|
||||||
## For Qt4 User Interface Files
|
|
||||||
ui_%.h: %.ui
|
|
||||||
$(UIC) -o $@ $<
|
|
||||||
|
|
||||||
## For Qt4 Resource Files
|
|
||||||
%.qrc.cpp: %.qrc
|
|
||||||
$(RCC) -o $@ $<
|
|
||||||
|
|
||||||
##
|
|
||||||
## For plugin lib
|
|
||||||
##
|
|
||||||
|
|
||||||
libqgis_plugin_navigation_la_SOURCES = navigation.cpp \
|
|
||||||
navigationgui.cpp \
|
|
||||||
gpspage.cpp \
|
|
||||||
gpscore.cpp \
|
|
||||||
positionmarker.cpp \
|
|
||||||
routingcore.cpp \
|
|
||||||
$(plugin_UI)\
|
|
||||||
$(plugin_MOC)\
|
|
||||||
$(plugin_RES)
|
|
||||||
|
|
||||||
|
|
||||||
plugin_MOC = navigation.moc.cpp \
|
|
||||||
navigationgui.moc.cpp \
|
|
||||||
gpscore.moc.cpp \
|
|
||||||
routingcore.moc.cpp
|
|
||||||
|
|
||||||
plugin_UI = ui_navigationgui.h \
|
|
||||||
ui_gpspage.h
|
|
||||||
|
|
||||||
plugin_RES = navigation.qrc.cpp
|
|
||||||
|
|
||||||
|
|
||||||
BUILT_SOURCES = $(plugin_MOC) $(plugin_UI) $(plugin_RES)
|
|
||||||
|
|
||||||
|
|
||||||
libqgis_plugin_navigation_la_LIBADD = $(QT_LDADD) \
|
|
||||||
$(GDAL_LDADD) \
|
|
||||||
$(GPSD_LDADD) \
|
|
||||||
../../core/libqgis_core.la \
|
|
||||||
../../gui/libqgis_gui.la
|
|
||||||
libqgis_plugin_navigation_la_CFLAGS = $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG_QGIS)
|
|
||||||
libqgis_plugin_navigation_la_CXXFLAGS = $(CXXFLAGS) \
|
|
||||||
$(EXTRA_CXXFLAGS) \
|
|
||||||
$(QT_CXXFLAGS) \
|
|
||||||
$(DEBUG_QGIS) \
|
|
||||||
$(GDAL_CFLAGS) \
|
|
||||||
$(GEOS_CFLAGS) \
|
|
||||||
-I../../core/include \
|
|
||||||
-I../../ui \
|
|
||||||
-I../../gui
|
|
||||||
|
|
||||||
libqgis_plugin_navigation_la_LDFLAGS = -avoid-version -module
|
|
@ -1,10 +0,0 @@
|
|||||||
GPS navigation plugin
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
|
|
||||||
This plugin shows your position in Quantum GIS map canvas.
|
|
||||||
It uses 'gpsd' software for access to different models of GPS devices
|
|
||||||
by using the same protocol.
|
|
||||||
|
|
||||||
Currently work in progress, not yet stable and lacks many features.
|
|
||||||
|
|
@ -1,253 +0,0 @@
|
|||||||
|
|
||||||
#include "qgisinterface.h"
|
|
||||||
#include "qgsmapcanvas.h"
|
|
||||||
#include "qgsrubberband.h"
|
|
||||||
#include "qgsdistancearea.h"
|
|
||||||
|
|
||||||
#include "gpscore.h"
|
|
||||||
#include "gpspage.h"
|
|
||||||
#include "positionmarker.h"
|
|
||||||
|
|
||||||
#include <QCheckBox>
|
|
||||||
#include <QDateTime>
|
|
||||||
#include <QMessageBox>
|
|
||||||
#include <QToolBox>
|
|
||||||
|
|
||||||
#include <cmath>
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
// MSVC compiler doesn't have defined M_PI in math.h
|
|
||||||
#ifndef M_PI
|
|
||||||
#define M_PI 3.14159265358979323846
|
|
||||||
#endif
|
|
||||||
|
|
||||||
GpsCore::GpsCore(QgisInterface* qgis)
|
|
||||||
: mQgis(qgis)
|
|
||||||
{
|
|
||||||
// init gps widget
|
|
||||||
mGpsPage = new GpsPage;
|
|
||||||
|
|
||||||
connect(mGpsPage->chkShowPosition, SIGNAL(toggled(bool)), this, SLOT(toggledShowPosition(bool)));
|
|
||||||
|
|
||||||
mTcpSocket = new QTcpSocket(this);
|
|
||||||
|
|
||||||
// reading data from socket
|
|
||||||
connect(mTcpSocket, SIGNAL(readyRead()), this, SLOT(readGpsData()));
|
|
||||||
|
|
||||||
// socket error handling
|
|
||||||
connect(mTcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
|
|
||||||
this, SLOT(socketError(QAbstractSocket::SocketError)));
|
|
||||||
|
|
||||||
connect(mTcpSocket, SIGNAL(connected()), this, SLOT(socketConnected()));
|
|
||||||
connect(mTcpSocket, SIGNAL(disconnected()), this, SLOT(socketDisconnected()));
|
|
||||||
|
|
||||||
// create position marker
|
|
||||||
mMarker = new PositionMarker(mQgis->getMapCanvas());
|
|
||||||
|
|
||||||
mTrack = new QgsRubberBand(mQgis->getMapCanvas(), false);
|
|
||||||
mTrack->setWidth(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
GpsCore::~GpsCore()
|
|
||||||
{
|
|
||||||
delete mGpsPage;
|
|
||||||
delete mTcpSocket;
|
|
||||||
delete mMarker;
|
|
||||||
delete mTrack;
|
|
||||||
}
|
|
||||||
|
|
||||||
QTcpSocket* GpsCore::tcpSocket()
|
|
||||||
{
|
|
||||||
return mTcpSocket;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpsCore::start()
|
|
||||||
{
|
|
||||||
mInputData.resize(0);
|
|
||||||
|
|
||||||
mTcpSocket->connectToHost("localhost", 2947);
|
|
||||||
|
|
||||||
// gps page is added to toolbox when we're connected
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpsCore::stop()
|
|
||||||
{
|
|
||||||
QToolBox* tb = mQgis->getToolBox();
|
|
||||||
int index = tb->indexOf(mGpsPage);
|
|
||||||
if (index != -1) // does it exist?
|
|
||||||
{
|
|
||||||
tb->removeItem(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
mTcpSocket->disconnectFromHost();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void GpsCore::readGpsData()
|
|
||||||
{
|
|
||||||
//std::cout << "readGpsData! " << mTcpSocket->bytesAvailable() << " bytes" << std::endl;
|
|
||||||
|
|
||||||
// read data
|
|
||||||
QByteArray data = mTcpSocket->readAll();
|
|
||||||
//std::cout << (const char*)data << std::endl;
|
|
||||||
|
|
||||||
// to protect buffer from getting insanely big when getting bad data
|
|
||||||
// erase the buffer when it's bigger than 1 kb
|
|
||||||
// (as there are no such long packets)
|
|
||||||
if (mInputData.count() > 1024)
|
|
||||||
{
|
|
||||||
mInputData.resize(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// append newly received data
|
|
||||||
mInputData += data;
|
|
||||||
|
|
||||||
// search for the end of the packet
|
|
||||||
QString pck;
|
|
||||||
int end;
|
|
||||||
while ((end = mInputData.indexOf('\n')) != -1)
|
|
||||||
{
|
|
||||||
// get the packet
|
|
||||||
QByteArray packet = mInputData.left(end);
|
|
||||||
|
|
||||||
// erase the packet from input buffer
|
|
||||||
mInputData = mInputData.mid(end+1);
|
|
||||||
|
|
||||||
// parse the packet
|
|
||||||
if (!packet.startsWith("GPSD,"))
|
|
||||||
{
|
|
||||||
std::cout << "bad data coming!" << std::endl;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// GPSD,?=...........\n
|
|
||||||
char packetType = packet.at(5);
|
|
||||||
packet = packet.mid(7);
|
|
||||||
pck = packet; // convert to QString
|
|
||||||
|
|
||||||
//std::cout << "packet::" << (const char*) packet << std::endl;
|
|
||||||
switch (packetType)
|
|
||||||
{
|
|
||||||
case 'O':
|
|
||||||
parsePacketO(pck);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
std::cout << "got packet " << packetType << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// an example of GPSD output:
|
|
||||||
//GPSD,O=GSA 1114599742.00 0.005 48.898057 18.073253 221.50 5.40 2.00 182.2000 4.373 0.000 62.3221 5.19 ?
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpsCore::socketError(QAbstractSocket::SocketError err)
|
|
||||||
{
|
|
||||||
std::cout << "socketError! " << err << std::endl;
|
|
||||||
|
|
||||||
QString message;
|
|
||||||
if (err == QAbstractSocket::ConnectionRefusedError)
|
|
||||||
{
|
|
||||||
message = "Connection was refused.\nIs gpsd running?";
|
|
||||||
}
|
|
||||||
else if (err == QAbstractSocket::RemoteHostClosedError)
|
|
||||||
{
|
|
||||||
message = "Connection with gpsd has been closed!";
|
|
||||||
stop(); // clean up
|
|
||||||
}
|
|
||||||
else
|
|
||||||
message = QString("Error on socket with gpsd: %1").arg(err);
|
|
||||||
QMessageBox::critical(NULL, "GPS error", message);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpsCore::socketConnected()
|
|
||||||
{
|
|
||||||
// create gps page and set it as current
|
|
||||||
QToolBox* tb = mQgis->getToolBox();
|
|
||||||
tb->addItem(mGpsPage, "GPS info");
|
|
||||||
tb->setCurrentWidget(mGpsPage);
|
|
||||||
|
|
||||||
std::cout << "GPS STARTED =======================================" << std::endl;
|
|
||||||
mTcpSocket->write("w+\n", 2); // switch to watcher mode
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpsCore::socketDisconnected()
|
|
||||||
{
|
|
||||||
std::cout << "disconnected!" << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpsCore::parsePacketO(QString packet)
|
|
||||||
{
|
|
||||||
//std::cout << "got position data" << std::endl;
|
|
||||||
//std::cout << packet.toLocal8Bit().data() << std::endl;
|
|
||||||
|
|
||||||
if (packet[0] == '?') // no fix?
|
|
||||||
{
|
|
||||||
std::cout << "no fix!" << std::endl;
|
|
||||||
mGpsPage->lblFix->setText("No");
|
|
||||||
mMarker->setIcon(false);
|
|
||||||
// TODO: what to do with other fields?
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList strings = packet.split(' ');
|
|
||||||
|
|
||||||
// XXX more information can be acquired from M or S request
|
|
||||||
mGpsPage->lblFix->setText("Yes");
|
|
||||||
mMarker->setIcon(true);
|
|
||||||
|
|
||||||
// time
|
|
||||||
QString timeStr = strings[1];
|
|
||||||
if (timeStr != "?")
|
|
||||||
{
|
|
||||||
QDateTime time;
|
|
||||||
time.setTime_t((uint) timeStr.toDouble()); // time is formatted as %f
|
|
||||||
mGpsPage->txtTime->setText(time.toString("hh:mm:ss"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// strings[2]: time error - not interesting
|
|
||||||
|
|
||||||
// display lat & lon
|
|
||||||
mGpsPage->txtLat->setText(strings[3]);
|
|
||||||
mGpsPage->txtLon->setText(strings[4]);
|
|
||||||
|
|
||||||
// TODO: convert from wgs84 to project coordinates
|
|
||||||
double lat = strings[3].toDouble();
|
|
||||||
double lon = strings[4].toDouble();
|
|
||||||
|
|
||||||
// only if the position has changed
|
|
||||||
if (lat != mGpsPos.y() && lon != mGpsPos.x())
|
|
||||||
{
|
|
||||||
|
|
||||||
mGpsPosLast = mGpsPos;
|
|
||||||
mGpsPos = QgsPoint(lon,lat);
|
|
||||||
|
|
||||||
double angle = mDA.getBearing(mGpsPosLast, mGpsPos);
|
|
||||||
angle *= (180/M_PI);
|
|
||||||
|
|
||||||
// set marker
|
|
||||||
mMarker->setAngle(angle);
|
|
||||||
mMarker->setPosition(mGpsPos);
|
|
||||||
|
|
||||||
// hide it if told so (setPosition always shows it)
|
|
||||||
bool visible = mGpsPage->chkShowPosition->isChecked();
|
|
||||||
if (!visible)
|
|
||||||
mMarker->hide();
|
|
||||||
|
|
||||||
// add to history
|
|
||||||
mTrack->addPoint(QgsPoint(lon,lat));
|
|
||||||
// TODO: erase after some time?
|
|
||||||
|
|
||||||
// hide it if told so (setPosition always shows it)
|
|
||||||
visible = mGpsPage->chkShowHistory->isChecked();
|
|
||||||
if (!visible)
|
|
||||||
mTrack->hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: more stuff...?
|
|
||||||
}
|
|
||||||
|
|
||||||
void GpsCore::toggledShowPosition(bool toggled)
|
|
||||||
{
|
|
||||||
std::cout << "TOGGLED: " << toggled << std::endl;
|
|
||||||
}
|
|
@ -1,66 +0,0 @@
|
|||||||
|
|
||||||
#ifndef GPSCORE_H
|
|
||||||
#define GPSCORE_H
|
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
#include <QTcpSocket>
|
|
||||||
|
|
||||||
#include "qgspoint.h"
|
|
||||||
#include "qgsdistancearea.h"
|
|
||||||
|
|
||||||
class QPainter;
|
|
||||||
class GpsPage;
|
|
||||||
class QgisInterface;
|
|
||||||
class PositionMarker;
|
|
||||||
class QgsRubberBand;
|
|
||||||
|
|
||||||
class GpsCore : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT;
|
|
||||||
|
|
||||||
public:
|
|
||||||
GpsCore(QgisInterface* qgis);
|
|
||||||
~GpsCore();
|
|
||||||
|
|
||||||
void start();
|
|
||||||
void stop();
|
|
||||||
|
|
||||||
QTcpSocket* tcpSocket();
|
|
||||||
|
|
||||||
void parsePacketO(QString packet);
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void readGpsData();
|
|
||||||
void socketError(QAbstractSocket::SocketError);
|
|
||||||
void socketConnected();
|
|
||||||
void socketDisconnected();
|
|
||||||
|
|
||||||
void toggledShowPosition(bool);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
//! pointer to socket for communication with GPSD
|
|
||||||
QTcpSocket* mTcpSocket;
|
|
||||||
|
|
||||||
//! input buffer for receiving packets from GPSD
|
|
||||||
QByteArray mInputData;
|
|
||||||
|
|
||||||
//! pointer to QGIS interface
|
|
||||||
QgisInterface* mQgis;
|
|
||||||
|
|
||||||
//! pointer to GPS page
|
|
||||||
GpsPage* mGpsPage;
|
|
||||||
|
|
||||||
//! position marker
|
|
||||||
PositionMarker* mMarker;
|
|
||||||
|
|
||||||
//! rubber band for position history
|
|
||||||
QgsRubberBand* mTrack;
|
|
||||||
|
|
||||||
QgsPoint mGpsPos;
|
|
||||||
QgsPoint mGpsPosLast;
|
|
||||||
|
|
||||||
QgsDistanceArea mDA;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
#include "gpspage.h"
|
|
||||||
|
|
||||||
GpsPage::GpsPage()
|
|
||||||
{
|
|
||||||
setupUi(this);
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
|
|
||||||
#ifndef GPSPAGE_H
|
|
||||||
#define GPSPAGE_H
|
|
||||||
|
|
||||||
#include <QWidget>
|
|
||||||
#include "ui_gpspage.h"
|
|
||||||
|
|
||||||
class GpsPage : public QWidget, public Ui::gpsPage
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
GpsPage();
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,149 +0,0 @@
|
|||||||
<ui version="4.0" >
|
|
||||||
<author></author>
|
|
||||||
<comment></comment>
|
|
||||||
<exportmacro></exportmacro>
|
|
||||||
<class>gpsPage</class>
|
|
||||||
<widget class="QWidget" name="gpsPage" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>185</width>
|
|
||||||
<height>398</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font" >
|
|
||||||
<font>
|
|
||||||
<family>Tahoma</family>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
<weight>50</weight>
|
|
||||||
<italic>false</italic>
|
|
||||||
<bold>false</bold>
|
|
||||||
<underline>false</underline>
|
|
||||||
<strikeout>false</strikeout>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle" >
|
|
||||||
<string>GPS</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item row="1" column="1" >
|
|
||||||
<widget class="QLineEdit" name="txtTime" />
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QLabel" name="label_4" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>GPS Fix:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0" >
|
|
||||||
<widget class="QLabel" name="label_3" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Longitude:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1" >
|
|
||||||
<widget class="QLineEdit" name="txtLon" />
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1" >
|
|
||||||
<widget class="QLineEdit" name="txtLat" />
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QLabel" name="lblFix" >
|
|
||||||
<property name="font" >
|
|
||||||
<font>
|
|
||||||
<family>Tahoma</family>
|
|
||||||
<pointsize>10</pointsize>
|
|
||||||
<weight>75</weight>
|
|
||||||
<italic>false</italic>
|
|
||||||
<bold>true</bold>
|
|
||||||
<underline>false</underline>
|
|
||||||
<strikeout>false</strikeout>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>No</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment" >
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<widget class="QLabel" name="label" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>GPS Time:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0" >
|
|
||||||
<widget class="QLabel" name="label_2" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Latitude:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="chkShowPosition" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Show position on map</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="chkShowHistory" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Show position history</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="chkMovingMap" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Recenter map</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<pixmapfunction></pixmapfunction>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,205 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
navigation.cpp
|
|
||||||
A simple GPS navigation and routing system
|
|
||||||
|
|
||||||
-------------------
|
|
||||||
begin : [PluginDate]
|
|
||||||
copyright : [(C) Your Name and Date]
|
|
||||||
email : [Your Email]
|
|
||||||
|
|
||||||
***************************************************************************
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
***************************************************************************/
|
|
||||||
/* $Id: plugin.cpp 5400 2006-04-30 20:14:08Z wonder $ */
|
|
||||||
|
|
||||||
//
|
|
||||||
// QGIS Specific includes
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <qgisinterface.h>
|
|
||||||
|
|
||||||
#include "navigation.h"
|
|
||||||
#include "navigationgui.h"
|
|
||||||
#include "gpscore.h"
|
|
||||||
#include "routingcore.h"
|
|
||||||
|
|
||||||
//
|
|
||||||
// Qt4 Related Includes
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <QToolBar>
|
|
||||||
#include <QMenuBar>
|
|
||||||
#include <QMessageBox>
|
|
||||||
#include <QMenu>
|
|
||||||
#include <QLineEdit>
|
|
||||||
#include <QAction>
|
|
||||||
#include <QApplication>
|
|
||||||
#include <QCursor>
|
|
||||||
|
|
||||||
//non qt includes
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
#define QGISEXTERN extern "C" __declspec( dllexport )
|
|
||||||
#else
|
|
||||||
#define QGISEXTERN extern "C"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const char * const sIdent = "$Id: plugin.cpp 5400 2006-04-30 20:14:08Z wonder $";
|
|
||||||
static const QString sName = QObject::tr("Navigation");
|
|
||||||
static const QString sDescription = QObject::tr("A simple GPS navigation and routing system");
|
|
||||||
static const QString sPluginVersion = QObject::tr("Version 0.1");
|
|
||||||
static const QgisPlugin::PLUGINTYPE sPluginType = QgisPlugin::UI;
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// THE FOLLOWING METHODS ARE MANDATORY FOR ALL PLUGINS
|
|
||||||
//
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for the plugin. The plugin is passed a pointer
|
|
||||||
* an interface object that provides access to exposed functions in QGIS.
|
|
||||||
* @param theQGisInterface - Pointer to the QGIS interface object
|
|
||||||
*/
|
|
||||||
Navigation::Navigation(QgisInterface * theQgisInterface):
|
|
||||||
QgisPlugin(sName,sDescription,sPluginVersion,sPluginType),
|
|
||||||
mQGisIface(theQgisInterface)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Navigation::~Navigation()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialize the GUI interface for the plugin - this is only called once when the plugin is
|
|
||||||
* added to the plugin registry in the QGIS application.
|
|
||||||
*/
|
|
||||||
void Navigation::initGui()
|
|
||||||
{
|
|
||||||
// Create the action for tool
|
|
||||||
mQActionPointer = new QAction(QIcon(":/navigation/navigation.png"),tr("&Navigation"), this);
|
|
||||||
// Connect the action to the run
|
|
||||||
connect(mQActionPointer, SIGNAL(activated()), this, SLOT(run()));
|
|
||||||
// Add the toolbar
|
|
||||||
mToolBarPointer = new QToolBar(mQGisIface->getMainWindow(), "Navigation");
|
|
||||||
mToolBarPointer->setLabel("Navigation");
|
|
||||||
// Add the icon to the toolbar
|
|
||||||
mQGisIface->addToolBarIcon(mQActionPointer);
|
|
||||||
// Add to the plugins menu
|
|
||||||
mQGisIface->addPluginMenu(tr("&Navigation"), mQActionPointer);
|
|
||||||
|
|
||||||
// create gps core
|
|
||||||
mGps = new GpsCore(mQGisIface);
|
|
||||||
|
|
||||||
// create routing core
|
|
||||||
mRouting = new RoutingCore(mQGisIface);
|
|
||||||
}
|
|
||||||
//method defined in interface
|
|
||||||
void Navigation::help()
|
|
||||||
{
|
|
||||||
//implement me!
|
|
||||||
}
|
|
||||||
|
|
||||||
// Slot called when the menu item is activated
|
|
||||||
// If you created more menu items / toolbar buttons in initiGui, you should
|
|
||||||
// create a separate handler for each action - this single run() method will
|
|
||||||
// not be enough
|
|
||||||
void Navigation::run()
|
|
||||||
{
|
|
||||||
NavigationGui *myPluginGui=new NavigationGui(this);
|
|
||||||
myPluginGui->setAttribute(Qt::WA_DeleteOnClose);
|
|
||||||
//listen for when the layer has been made so we can draw it
|
|
||||||
connect(myPluginGui, SIGNAL(drawRasterLayer(QString)), this, SLOT(drawRasterLayer(QString)));
|
|
||||||
connect(myPluginGui, SIGNAL(drawVectorLayer(QString,QString,QString)), this, SLOT(drawVectorLayer(QString,QString,QString)));
|
|
||||||
myPluginGui->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Unload the plugin by cleaning up the GUI
|
|
||||||
void Navigation::unload()
|
|
||||||
{
|
|
||||||
// remove the GUI
|
|
||||||
mQGisIface->removePluginMenu(tr("&Navigation"),mQActionPointer);
|
|
||||||
mQGisIface->removeToolBarIcon(mQActionPointer);
|
|
||||||
delete mQActionPointer;
|
|
||||||
|
|
||||||
delete mGps;
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// END OF MANDATORY PLUGIN METHODS
|
|
||||||
//
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
QgisInterface* Navigation::qgis()
|
|
||||||
{
|
|
||||||
return mQGisIface;
|
|
||||||
}
|
|
||||||
|
|
||||||
GpsCore* Navigation::gps()
|
|
||||||
{
|
|
||||||
return mGps;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// THE FOLLOWING CODE IS AUTOGENERATED BY THE PLUGIN BUILDER SCRIPT
|
|
||||||
// YOU WOULD NORMALLY NOT NEED TO MODIFY THIS, AND YOUR PLUGIN
|
|
||||||
// MAY NOT WORK PROPERLY IF YOU MODIFY THIS INCORRECTLY
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Required extern functions needed for every plugin
|
|
||||||
* These functions can be called prior to creating an instance
|
|
||||||
* of the plugin class
|
|
||||||
*/
|
|
||||||
// Class factory to return a new instance of the plugin class
|
|
||||||
QGISEXTERN QgisPlugin * classFactory(QgisInterface * theQgisInterfacePointer)
|
|
||||||
{
|
|
||||||
return new Navigation(theQgisInterfacePointer);
|
|
||||||
}
|
|
||||||
// Return the name of the plugin - note that we do not user class members as
|
|
||||||
// the class may not yet be insantiated when this method is called.
|
|
||||||
QGISEXTERN QString name()
|
|
||||||
{
|
|
||||||
return sName;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return the description
|
|
||||||
QGISEXTERN QString description()
|
|
||||||
{
|
|
||||||
return sDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return the type (either UI or MapLayer plugin)
|
|
||||||
QGISEXTERN int type()
|
|
||||||
{
|
|
||||||
return sPluginType;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return the version number for the plugin
|
|
||||||
QGISEXTERN QString version()
|
|
||||||
{
|
|
||||||
return sPluginVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete ourself
|
|
||||||
QGISEXTERN void unload(QgisPlugin * thePluginPointer)
|
|
||||||
{
|
|
||||||
delete thePluginPointer;
|
|
||||||
}
|
|
@ -1,124 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
plugin.h
|
|
||||||
Functions:
|
|
||||||
-------------------
|
|
||||||
begin : Jan 21, 2004
|
|
||||||
copyright : (C) 2004 by Tim Sutton
|
|
||||||
email : tim@linfiniti.com
|
|
||||||
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
***************************************************************************/
|
|
||||||
/* $Id: plugin.h 5400 2006-04-30 20:14:08Z wonder $ */
|
|
||||||
/***************************************************************************
|
|
||||||
* QGIS Programming conventions:
|
|
||||||
*
|
|
||||||
* mVariableName - a class level member variable
|
|
||||||
* sVariableName - a static class level member variable
|
|
||||||
* variableName() - accessor for a class member (no 'get' in front of name)
|
|
||||||
* setVariableName() - mutator for a class member (prefix with 'set')
|
|
||||||
*
|
|
||||||
* Additional useful conventions:
|
|
||||||
*
|
|
||||||
* theVariableName - a method parameter (prefix with 'the')
|
|
||||||
* myVariableName - a locally declared variable within a method ('my' prefix)
|
|
||||||
*
|
|
||||||
* DO: Use mixed case variable names - myVariableName
|
|
||||||
* DON'T: separate variable names using underscores: my_variable_name (NO!)
|
|
||||||
*
|
|
||||||
* **************************************************************************/
|
|
||||||
#ifndef Navigation_H
|
|
||||||
#define Navigation_H
|
|
||||||
|
|
||||||
//QT4 includes
|
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
//QGIS includes
|
|
||||||
#include "../qgisplugin.h"
|
|
||||||
|
|
||||||
//forward declarations
|
|
||||||
class QAction;
|
|
||||||
class QToolBar;
|
|
||||||
|
|
||||||
class QgisInterface;
|
|
||||||
class GpsCore;
|
|
||||||
class RoutingCore;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \class Plugin
|
|
||||||
* \brief [name] plugin for QGIS
|
|
||||||
* [description]
|
|
||||||
*/
|
|
||||||
class Navigation:public QObject, public QgisPlugin
|
|
||||||
{
|
|
||||||
Q_OBJECT;
|
|
||||||
public:
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// MANDATORY PLUGIN METHODS FOLLOW
|
|
||||||
//
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for a plugin. The QgisInterface pointer is passed by
|
|
||||||
* QGIS when it attempts to instantiate the plugin.
|
|
||||||
* @param theInterface Pointer to the QgisInterface object.
|
|
||||||
*/
|
|
||||||
Navigation(QgisInterface * theInterface);
|
|
||||||
//! Destructor
|
|
||||||
virtual ~Navigation();
|
|
||||||
|
|
||||||
QgisInterface* qgis();
|
|
||||||
GpsCore* gps();
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
//! init the gui
|
|
||||||
virtual void initGui();
|
|
||||||
//! Show the dialog box
|
|
||||||
void run();
|
|
||||||
//! unload the plugin
|
|
||||||
void unload();
|
|
||||||
//! show the help document
|
|
||||||
void help();
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// END OF MANDATORY PLUGIN METHODS
|
|
||||||
//
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// MANDATORY PLUGIN PROPERTY DECLARATIONS .....
|
|
||||||
//
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
int mPluginType;
|
|
||||||
//! Pointer to our toolbar
|
|
||||||
QToolBar *mToolBarPointer;
|
|
||||||
//! Pointer to the QGIS interface object
|
|
||||||
QgisInterface *mQGisIface;
|
|
||||||
//!pointer to the qaction for this plugin
|
|
||||||
QAction * mQActionPointer;
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// ADD YOUR OWN PROPERTY DECLARATIONS AFTER THIS POINT.....
|
|
||||||
//
|
|
||||||
////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
GpsCore* mGps;
|
|
||||||
RoutingCore* mRouting;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //Navigation_H
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB |
@ -1,5 +0,0 @@
|
|||||||
<RCC>
|
|
||||||
<qresource prefix="/navigation/" >
|
|
||||||
<file>navigation.png</file>
|
|
||||||
</qresource>
|
|
||||||
</RCC>
|
|
@ -1,109 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
* Copyright (C) 2003 by Tim Sutton *
|
|
||||||
* tim@linfiniti.com *
|
|
||||||
* *
|
|
||||||
* This is a plugin generated from the QGIS plugin template *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#include "navigationgui.h"
|
|
||||||
#include "navigation.h"
|
|
||||||
#include "gpscore.h"
|
|
||||||
|
|
||||||
#include "qgisinterface.h"
|
|
||||||
#include "qgisgui.h"
|
|
||||||
#include "qgscontexthelp.h"
|
|
||||||
|
|
||||||
#include <QMessageBox>
|
|
||||||
|
|
||||||
|
|
||||||
NavigationGui::NavigationGui(Navigation* plugin)
|
|
||||||
: QDialog (plugin->qgis()->getMainWindow(), QgisGui::ModalDialogFlags), mPlugin(plugin)
|
|
||||||
{
|
|
||||||
setupUi(this);
|
|
||||||
|
|
||||||
QTcpSocket* socket = plugin->gps()->tcpSocket();
|
|
||||||
|
|
||||||
// init GUI with the current state of the socket
|
|
||||||
gpsStateChanged(socket->state());
|
|
||||||
|
|
||||||
connect(socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
|
|
||||||
this, SLOT(gpsStateChanged(QAbstractSocket::SocketState)));
|
|
||||||
|
|
||||||
connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
|
|
||||||
this, SLOT(socketError(QAbstractSocket::SocketError)));
|
|
||||||
}
|
|
||||||
|
|
||||||
NavigationGui::~NavigationGui()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void NavigationGui::on_buttonBox_accepted()
|
|
||||||
{
|
|
||||||
//close the dialog
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
|
|
||||||
void NavigationGui::on_buttonBox_rejected()
|
|
||||||
{
|
|
||||||
reject();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void NavigationGui::on_pbnStart_clicked()
|
|
||||||
{
|
|
||||||
mPlugin->gps()->start();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void NavigationGui::on_pbnStop_clicked()
|
|
||||||
{
|
|
||||||
mPlugin->gps()->stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
void NavigationGui::gpsStateChanged(QAbstractSocket::SocketState state)
|
|
||||||
{
|
|
||||||
QString status;
|
|
||||||
switch (state)
|
|
||||||
{
|
|
||||||
case QAbstractSocket::UnconnectedState:
|
|
||||||
status = "Not Connected";
|
|
||||||
break;
|
|
||||||
case QAbstractSocket::HostLookupState:
|
|
||||||
status = "Looking up host...";
|
|
||||||
break;
|
|
||||||
case QAbstractSocket::ConnectingState:
|
|
||||||
status = "Connecting...";
|
|
||||||
break;
|
|
||||||
case QAbstractSocket::ConnectedState:
|
|
||||||
status = "Connected!";
|
|
||||||
break;
|
|
||||||
case QAbstractSocket::ClosingState:
|
|
||||||
status = "Closing connection...";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
status = "???";
|
|
||||||
}
|
|
||||||
lblConnectionStatus->setText(status);
|
|
||||||
|
|
||||||
bool canStart = (state == QAbstractSocket::UnconnectedState);
|
|
||||||
|
|
||||||
pbnStart->setEnabled(canStart);
|
|
||||||
pbnStop->setEnabled(!canStart);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void NavigationGui::socketError(QAbstractSocket::SocketError error)
|
|
||||||
{
|
|
||||||
// GUI is not updated automatically on error => do it explicitly
|
|
||||||
gpsStateChanged(mPlugin->gps()->tcpSocket()->state());
|
|
||||||
}
|
|
||||||
|
|
||||||
void NavigationGui::on_buttonBox_helpRequested()
|
|
||||||
{
|
|
||||||
QgsContextHelp::run(context_id);
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
|
|
||||||
#ifndef NavigationGUI_H
|
|
||||||
#define NavigationGUI_H
|
|
||||||
|
|
||||||
#include <QDialog>
|
|
||||||
#include <ui_navigationgui.h>
|
|
||||||
|
|
||||||
#include <QAbstractSocket>
|
|
||||||
|
|
||||||
class Navigation;
|
|
||||||
|
|
||||||
class NavigationGui : public QDialog, private Ui::NavigationGui
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
NavigationGui(Navigation* plugin);
|
|
||||||
~NavigationGui();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Navigation* mPlugin;
|
|
||||||
static const int context_id = 0;
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void gpsStateChanged(QAbstractSocket::SocketState);
|
|
||||||
void socketError(QAbstractSocket::SocketError);
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
void on_pbnStart_clicked();
|
|
||||||
void on_pbnStop_clicked();
|
|
||||||
void on_buttonBox_accepted();
|
|
||||||
void on_buttonBox_rejected();
|
|
||||||
void on_buttonBox_helpRequested();
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,607 +0,0 @@
|
|||||||
<ui version="4.0" >
|
|
||||||
<class>NavigationGui</class>
|
|
||||||
<widget class="QDialog" name="NavigationGui" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>564</width>
|
|
||||||
<height>416</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle" >
|
|
||||||
<string>Navigation plugin settings</string>
|
|
||||||
</property>
|
|
||||||
<property name="windowIcon" >
|
|
||||||
<iconset/>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QTabWidget" name="tabWidget" >
|
|
||||||
<property name="currentIndex" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="tab" >
|
|
||||||
<attribute name="title" >
|
|
||||||
<string>GPS</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QVBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_6" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>This plugin uses 'gpsd' (GPS daemon) for acquiring your current position. Please select the option which suits best your needs:</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="radioButton_3" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>GPS daemon already runs</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="radioButton" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Simulate GPS using 'gpsfake'</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="3" >
|
|
||||||
<widget class="QPushButton" name="pushButton" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Browse...</string>
|
|
||||||
</property>
|
|
||||||
<property name="autoDefault" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType" >
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>31</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2" colspan="2" >
|
|
||||||
<widget class="QSlider" name="horizontalSlider" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QLabel" name="label_3" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Log file to play:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1" >
|
|
||||||
<widget class="QLabel" name="label_4" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Playback speed:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2" >
|
|
||||||
<widget class="QLineEdit" name="lineEdit" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>5</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="radioButton_2" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Start 'gpsd' daemon</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType" >
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>31</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_7" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Input defice for 'gpsd'</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="cboGpsInput" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy>
|
|
||||||
<hsizetype>1</hsizetype>
|
|
||||||
<vsizetype>0</vsizetype>
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="editable" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>/dev/ttyS0</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>/dev/ttyS1</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>/dev/ttyS2</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>/dev/ttyS3</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType" >
|
|
||||||
<enum>QSizePolicy::MinimumExpanding</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>59</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>21</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="pbnStart" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Start</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="pbnStop" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Stop</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>256</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_5" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>GPSD connection:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="lblConnectionStatus" >
|
|
||||||
<property name="frameShape" >
|
|
||||||
<enum>QFrame::Box</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow" >
|
|
||||||
<enum>QFrame::Sunken</enum>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="routing" >
|
|
||||||
<attribute name="title" >
|
|
||||||
<string>Routing</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QVBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_9" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>To enable routing support you must specify a vector layer that will be used as the roadmap.</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Vector layer for roadmap:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="cboLayer" />
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="Line" name="line" >
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_10" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Optional additional settings for better routing:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="chkRoadClass" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Support for road classification</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType" >
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>16</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_2" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Field containing the classification:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="cboRoadClass" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="chkRoadDirection" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Support for one-way roads</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType" >
|
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>16</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_11" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Field with information about direction:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="cboRoadDirection" >
|
|
||||||
<property name="enabled" >
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>21</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="lblStatus" >
|
|
||||||
<property name="frameShape" >
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="frameShadow" >
|
|
||||||
<enum>QFrame::Sunken</enum>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Status</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="pbnGenerateGraph" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Compute routing data</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<layout class="QVBoxLayout" >
|
|
||||||
<property name="margin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_8" >
|
|
||||||
<property name="text" >
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="pixmap" >
|
|
||||||
<pixmap resource="../gps_importer/qgsgps_plugin.qrc" >:/gps.xpm</pixmap>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" colspan="2" >
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox" >
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="standardButtons" >
|
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<layoutdefault spacing="6" margin="11" />
|
|
||||||
<tabstops>
|
|
||||||
<tabstop>tabWidget</tabstop>
|
|
||||||
<tabstop>radioButton_3</tabstop>
|
|
||||||
<tabstop>radioButton</tabstop>
|
|
||||||
<tabstop>radioButton_2</tabstop>
|
|
||||||
<tabstop>cboGpsInput</tabstop>
|
|
||||||
<tabstop>pbnStart</tabstop>
|
|
||||||
<tabstop>pbnStop</tabstop>
|
|
||||||
<tabstop>cboLayer</tabstop>
|
|
||||||
<tabstop>cboRoadClass</tabstop>
|
|
||||||
</tabstops>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -1,69 +0,0 @@
|
|||||||
|
|
||||||
#include <QPainter>
|
|
||||||
#include <QPainterPath>
|
|
||||||
|
|
||||||
#include "positionmarker.h"
|
|
||||||
|
|
||||||
|
|
||||||
PositionMarker::PositionMarker(QgsMapCanvas* mapCanvas)
|
|
||||||
: QgsMapCanvasItem(mapCanvas)
|
|
||||||
{
|
|
||||||
mHasPosition = false;
|
|
||||||
mAngle = 0;
|
|
||||||
setZValue(100); // be on top
|
|
||||||
}
|
|
||||||
|
|
||||||
void PositionMarker::setIcon(bool hasPosition)
|
|
||||||
{
|
|
||||||
mHasPosition = hasPosition;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PositionMarker::setAngle(double angle)
|
|
||||||
{
|
|
||||||
mAngle = angle;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PositionMarker::setPosition(const QgsPoint& point)
|
|
||||||
{
|
|
||||||
if (mPosition != point)
|
|
||||||
{
|
|
||||||
mPosition = point;
|
|
||||||
QPointF pt = toCanvasCoords(mPosition);
|
|
||||||
setPos(pt);
|
|
||||||
updateCanvas();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QRectF PositionMarker::boundingRect() const
|
|
||||||
{
|
|
||||||
return QRectF(-12,-12,12,12);
|
|
||||||
}
|
|
||||||
|
|
||||||
void PositionMarker::paint(QPainter* p)
|
|
||||||
{
|
|
||||||
//if (mHasPosition)
|
|
||||||
{
|
|
||||||
QPainterPath path;
|
|
||||||
path.moveTo(0,-10);
|
|
||||||
path.lineTo(10,10);
|
|
||||||
path.lineTo(0,5);
|
|
||||||
path.lineTo(-10,10);
|
|
||||||
path.lineTo(0,-10);
|
|
||||||
|
|
||||||
// render position with angle
|
|
||||||
p->save();
|
|
||||||
p->setRenderHint(QPainter::Antialiasing);
|
|
||||||
if (mHasPosition)
|
|
||||||
p->setBrush(QBrush(QColor(0,0,0)));
|
|
||||||
else
|
|
||||||
p->setBrush(QBrush(QColor(200,200,200)));
|
|
||||||
p->setPen(QColor(255,255,255));
|
|
||||||
p->rotate(mAngle);
|
|
||||||
p->drawPath(path);
|
|
||||||
p->restore();
|
|
||||||
}
|
|
||||||
/* else
|
|
||||||
{
|
|
||||||
// TODO: draw '?' to show that we don't have position
|
|
||||||
}*/
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
#ifndef POSITIONMARKER_H
|
|
||||||
#define POSITIONMARKER_H
|
|
||||||
|
|
||||||
#include "qgsmapcanvasitem.h"
|
|
||||||
#include "qgspoint.h"
|
|
||||||
|
|
||||||
class QPainter;
|
|
||||||
|
|
||||||
class PositionMarker : public QgsMapCanvasItem
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
PositionMarker(QgsMapCanvas* mapCanvas);
|
|
||||||
|
|
||||||
void setPosition(const QgsPoint& point);
|
|
||||||
|
|
||||||
void setIcon(bool hasPosition);
|
|
||||||
|
|
||||||
void setAngle(double angle);
|
|
||||||
|
|
||||||
void paint(QPainter* p);
|
|
||||||
|
|
||||||
QRectF boundingRect() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
bool mHasPosition;
|
|
||||||
|
|
||||||
//! angle in degrees (north = 0, south = 180)
|
|
||||||
double mAngle;
|
|
||||||
|
|
||||||
//! size
|
|
||||||
int mIconSize;
|
|
||||||
|
|
||||||
//! coordinates of the point in the center
|
|
||||||
QgsPoint mPosition;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,9 +0,0 @@
|
|||||||
|
|
||||||
#include "routingcore.h"
|
|
||||||
|
|
||||||
#include "qgisinterface.h"
|
|
||||||
|
|
||||||
RoutingCore::RoutingCore(QgisInterface* qgis)
|
|
||||||
: mQgis(qgis)
|
|
||||||
{
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
#ifndef ROUTINGCORE_H
|
|
||||||
#define ROUTINGCORE_H
|
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
class QgisInterface;
|
|
||||||
|
|
||||||
class RoutingCore : public QObject
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
RoutingCore(QgisInterface* qgis);
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
QgisInterface* mQgis;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
x
Reference in New Issue
Block a user