mirror of
git://projects.qi-hardware.com/nanomap.git
synced 2024-11-23 15:05:21 +02:00
move key handling to the layers
add layer to show current gps position
This commit is contained in:
parent
43593f6d4b
commit
2dbc275890
@ -47,6 +47,11 @@ void AbstractLayer::triggerAction()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AbstractLayer::keyPressed(QKeyEvent *event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event)
|
||||||
|
}
|
||||||
|
|
||||||
void AbstractLayer::paintLayer(QPainter *painter)
|
void AbstractLayer::paintLayer(QPainter *painter)
|
||||||
{
|
{
|
||||||
if (m_visible) {
|
if (m_visible) {
|
||||||
|
@ -21,19 +21,11 @@
|
|||||||
#define ABSTRACT_LAYER_H
|
#define ABSTRACT_LAYER_H
|
||||||
|
|
||||||
#include <QtCore/QObject>
|
#include <QtCore/QObject>
|
||||||
|
#include <QtGui/QKeyEvent>
|
||||||
#include <QtGui/QPainter>
|
#include <QtGui/QPainter>
|
||||||
|
|
||||||
class MapWidget;
|
class MapWidget;
|
||||||
|
|
||||||
enum Layer
|
|
||||||
{
|
|
||||||
Tracks,
|
|
||||||
Marker,
|
|
||||||
Time,
|
|
||||||
System,
|
|
||||||
User
|
|
||||||
};
|
|
||||||
|
|
||||||
class AbstractLayer : public QObject
|
class AbstractLayer : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -44,6 +36,7 @@ public:
|
|||||||
virtual void zoom(int level);
|
virtual void zoom(int level);
|
||||||
virtual void pan(const QPoint &move);
|
virtual void pan(const QPoint &move);
|
||||||
virtual void triggerAction();
|
virtual void triggerAction();
|
||||||
|
virtual void keyPressed(QKeyEvent *event);
|
||||||
|
|
||||||
void paintLayer(QPainter *painter);
|
void paintLayer(QPainter *painter);
|
||||||
|
|
||||||
|
@ -45,6 +45,14 @@ BatteryLayer::BatteryLayer(MapWidget *map) :
|
|||||||
repaint();
|
repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BatteryLayer::keyPressed(QKeyEvent *event)
|
||||||
|
{
|
||||||
|
if (event->modifiers() == Qt::NoModifier &&
|
||||||
|
event->key() == Qt::Key_B) {
|
||||||
|
toggleVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void BatteryLayer::paint(QPainter *painter)
|
void BatteryLayer::paint(QPainter *painter)
|
||||||
{
|
{
|
||||||
int w = map()->width();
|
int w = map()->width();
|
||||||
|
@ -31,6 +31,8 @@ class BatteryLayer : public AbstractLayer
|
|||||||
public:
|
public:
|
||||||
BatteryLayer(MapWidget *map);
|
BatteryLayer(MapWidget *map);
|
||||||
|
|
||||||
|
virtual void keyPressed(QKeyEvent *event);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void paint(QPainter *painter);
|
virtual void paint(QPainter *painter);
|
||||||
|
|
||||||
|
83
gpslayer.cpp
Normal file
83
gpslayer.cpp
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010 Niels Kummerfeldt <niels.kummerfeldt@tu-harburg.de>
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "gpslayer.h"
|
||||||
|
|
||||||
|
#include "gpsclient.h"
|
||||||
|
#include "mapwidget.h"
|
||||||
|
|
||||||
|
#include <QtCore/QPoint>
|
||||||
|
|
||||||
|
GpsLayer::GpsLayer(MapWidget *map) :
|
||||||
|
AbstractLayer(map),
|
||||||
|
m_gps(new GpsClient(this)),
|
||||||
|
m_pos(QPointF(9.8, 54))
|
||||||
|
{
|
||||||
|
setVisible(false);
|
||||||
|
connect(m_gps, SIGNAL(position(QPointF)), this, SLOT(position(QPointF)));
|
||||||
|
connect(m_gps, SIGNAL(connected()), this, SLOT(connected()));
|
||||||
|
connect(m_gps, SIGNAL(disconnected()), this, SLOT(disconnected()));
|
||||||
|
m_gps->connectGps();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GpsLayer::triggerAction()
|
||||||
|
{
|
||||||
|
if (isVisible()) {
|
||||||
|
map()->centerOnGeoPos(m_pos.x(), m_pos.y());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GpsLayer::keyPressed(QKeyEvent *event)
|
||||||
|
{
|
||||||
|
if (event->modifiers() == Qt::NoModifier &&
|
||||||
|
event->key() == Qt::Key_G) {
|
||||||
|
triggerAction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GpsLayer::paint(QPainter *painter)
|
||||||
|
{
|
||||||
|
QPoint pos = map()->geo2screen(m_pos.x(), m_pos.y());
|
||||||
|
|
||||||
|
painter->drawPoint(pos);
|
||||||
|
painter->setRenderHint(QPainter::Antialiasing, true);
|
||||||
|
painter->setPen(QPen(QBrush(QColor(0, 0, 255, 110)), 4));
|
||||||
|
painter->drawEllipse(pos, 8, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GpsLayer::position(const QPointF &pos)
|
||||||
|
{
|
||||||
|
m_pos = pos;
|
||||||
|
if (isVisible()) {
|
||||||
|
map()->update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void GpsLayer::connected()
|
||||||
|
{
|
||||||
|
setVisible(true);
|
||||||
|
map()->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GpsLayer::disconnected()
|
||||||
|
{
|
||||||
|
setVisible(false);
|
||||||
|
map()->update();
|
||||||
|
}
|
||||||
|
|
52
gpslayer.h
Normal file
52
gpslayer.h
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010 Niels Kummerfeldt <niels.kummerfeldt@tu-harburg.de>
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||||
|
* Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GPS_LAYER_H
|
||||||
|
#define GPS_LAYER_H
|
||||||
|
|
||||||
|
#include "abstractlayer.h"
|
||||||
|
|
||||||
|
#include <QtGui/QPainter>
|
||||||
|
|
||||||
|
class GpsClient;
|
||||||
|
|
||||||
|
class GpsLayer : public AbstractLayer
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
GpsLayer(MapWidget *map);
|
||||||
|
|
||||||
|
virtual void triggerAction();
|
||||||
|
virtual void keyPressed(QKeyEvent *event);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void paint(QPainter *painter);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void position(const QPointF &pos);
|
||||||
|
void connected();
|
||||||
|
void disconnected();
|
||||||
|
|
||||||
|
private:
|
||||||
|
GpsClient *m_gps;
|
||||||
|
QPointF m_pos;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GPS_LAYER_H
|
@ -24,6 +24,7 @@
|
|||||||
#include "markerlist.h"
|
#include "markerlist.h"
|
||||||
|
|
||||||
#include "batterylayer.h"
|
#include "batterylayer.h"
|
||||||
|
#include "gpslayer.h"
|
||||||
#include "gpxlayer.h"
|
#include "gpxlayer.h"
|
||||||
#include "markerlayer.h"
|
#include "markerlayer.h"
|
||||||
#include "timelayer.h"
|
#include "timelayer.h"
|
||||||
@ -50,17 +51,17 @@ MainWidget::MainWidget(QWidget *parent)
|
|||||||
|
|
||||||
AbstractLayer *l = new TimeLayer(m_map);
|
AbstractLayer *l = new TimeLayer(m_map);
|
||||||
l->setVisible(false);
|
l->setVisible(false);
|
||||||
m_map->addLayer(Time, l);
|
m_map->addLayer(l, 4);
|
||||||
|
|
||||||
l = new BatteryLayer(m_map);
|
l = new BatteryLayer(m_map);
|
||||||
l->setVisible(false);
|
l->setVisible(false);
|
||||||
m_map->addLayer(System, l);
|
m_map->addLayer(l, 4);
|
||||||
|
|
||||||
l = new GpxLayer(m_map);
|
|
||||||
if (fileName.endsWith(".gpx")) {
|
if (fileName.endsWith(".gpx")) {
|
||||||
|
l = new GpxLayer(m_map);
|
||||||
l->load(fileName);
|
l->load(fileName);
|
||||||
|
m_map->addLayer(l, 2);
|
||||||
}
|
}
|
||||||
m_map->addLayer(Tracks, l);
|
|
||||||
|
|
||||||
l = new MarkerLayer(m_map);
|
l = new MarkerLayer(m_map);
|
||||||
connect(l, SIGNAL(markerAdded(QString)), m_markerList, SLOT(addMarker(QString)));
|
connect(l, SIGNAL(markerAdded(QString)), m_markerList, SLOT(addMarker(QString)));
|
||||||
@ -68,7 +69,10 @@ MainWidget::MainWidget(QWidget *parent)
|
|||||||
connect(m_markerList, SIGNAL(removeMarker(int)), l, SLOT(removeMarker(int)));
|
connect(m_markerList, SIGNAL(removeMarker(int)), l, SLOT(removeMarker(int)));
|
||||||
connect(m_markerList, SIGNAL(markerRenamed(int, QString)), l, SLOT(renameMarker(int, QString)));
|
connect(m_markerList, SIGNAL(markerRenamed(int, QString)), l, SLOT(renameMarker(int, QString)));
|
||||||
l->load(QDir::homePath()+"/Maps/marker.list");
|
l->load(QDir::homePath()+"/Maps/marker.list");
|
||||||
m_map->addLayer(Marker, l);
|
m_map->addLayer(l, 3);
|
||||||
|
|
||||||
|
l = new GpsLayer(m_map);
|
||||||
|
m_map->addLayer(l, 1);
|
||||||
|
|
||||||
connect(m_map, SIGNAL(showMarkerList()), this, SLOT(showList()));
|
connect(m_map, SIGNAL(showMarkerList()), this, SLOT(showList()));
|
||||||
connect(m_map, SIGNAL(downloadArea(int, QRectF)), this, SLOT(downloadArea(int, QRectF)));
|
connect(m_map, SIGNAL(downloadArea(int, QRectF)), this, SLOT(downloadArea(int, QRectF)));
|
||||||
|
@ -131,9 +131,9 @@ MapWidget::~MapWidget()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWidget::addLayer(Layer l, AbstractLayer *layer)
|
void MapWidget::addLayer(AbstractLayer *layer, int z)
|
||||||
{
|
{
|
||||||
m_layer.insert(l, layer);
|
m_layer.insertMulti(z, layer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWidget::resizeEvent(QResizeEvent *event)
|
void MapWidget::resizeEvent(QResizeEvent *event)
|
||||||
@ -160,6 +160,8 @@ void MapWidget::resizeEvent(QResizeEvent *event)
|
|||||||
|
|
||||||
void MapWidget::mouseMoveEvent(QMouseEvent *event)
|
void MapWidget::mouseMoveEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
event->accept();
|
||||||
|
|
||||||
if (m_isMoving) {
|
if (m_isMoving) {
|
||||||
foreach (AbstractLayer *l, m_layer) {
|
foreach (AbstractLayer *l, m_layer) {
|
||||||
l->pan((event->pos() - m_startPos) - m_pos);
|
l->pan((event->pos() - m_startPos) - m_pos);
|
||||||
@ -171,6 +173,8 @@ void MapWidget::mouseMoveEvent(QMouseEvent *event)
|
|||||||
|
|
||||||
void MapWidget::mousePressEvent(QMouseEvent *event)
|
void MapWidget::mousePressEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
event->accept();
|
||||||
|
|
||||||
if (m_ui && QRect(9, 14, 13, 13).contains(event->pos())) {
|
if (m_ui && QRect(9, 14, 13, 13).contains(event->pos())) {
|
||||||
changeZoomLevel(1);
|
changeZoomLevel(1);
|
||||||
reloadPixmaps();
|
reloadPixmaps();
|
||||||
@ -189,13 +193,15 @@ void MapWidget::mousePressEvent(QMouseEvent *event)
|
|||||||
|
|
||||||
void MapWidget::mouseReleaseEvent(QMouseEvent *event)
|
void MapWidget::mouseReleaseEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
Q_UNUSED(event)
|
event->accept();
|
||||||
|
|
||||||
m_isMoving = false;
|
m_isMoving = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MapWidget::wheelEvent(QWheelEvent *event)
|
void MapWidget::wheelEvent(QWheelEvent *event)
|
||||||
{
|
{
|
||||||
|
event->accept();
|
||||||
|
|
||||||
if (event->delta() < 0) {
|
if (event->delta() < 0) {
|
||||||
changeZoomLevel(-1);
|
changeZoomLevel(-1);
|
||||||
reloadPixmaps();
|
reloadPixmaps();
|
||||||
@ -208,6 +214,8 @@ void MapWidget::wheelEvent(QWheelEvent *event)
|
|||||||
|
|
||||||
void MapWidget::keyPressEvent(QKeyEvent *event)
|
void MapWidget::keyPressEvent(QKeyEvent *event)
|
||||||
{
|
{
|
||||||
|
event->accept();
|
||||||
|
|
||||||
QPoint move;
|
QPoint move;
|
||||||
int width = 10;
|
int width = 10;
|
||||||
if (event->modifiers() & Qt::AltModifier) {
|
if (event->modifiers() & Qt::AltModifier) {
|
||||||
@ -221,16 +229,9 @@ void MapWidget::keyPressEvent(QKeyEvent *event)
|
|||||||
emit showMarkerList();
|
emit showMarkerList();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::Key_M:
|
case Qt::Key_D:
|
||||||
{
|
{
|
||||||
AbstractLayer *l = m_layer.value(Marker);
|
emit downloadArea(m_level, geoRect());
|
||||||
if (l) {
|
|
||||||
if (event->modifiers() & Qt::AltModifier) {
|
|
||||||
l->toggleVisibility();
|
|
||||||
} else if (event->modifiers() == Qt::NoModifier) {
|
|
||||||
l->triggerAction();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::Key_Up:
|
case Qt::Key_Up:
|
||||||
@ -253,15 +254,6 @@ void MapWidget::keyPressEvent(QKeyEvent *event)
|
|||||||
move = QPoint(-width, 0);
|
move = QPoint(-width, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::Key_C:
|
|
||||||
{
|
|
||||||
m_indexX = (m_minIndexX + m_maxIndexX) / 2;
|
|
||||||
m_indexY = (m_minIndexY + m_maxIndexY) / 2;
|
|
||||||
m_pos.setX(m_pixWidth/2);
|
|
||||||
m_pos.setY(m_pixHeight/2);
|
|
||||||
reloadPixmaps();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case Qt::Key_O:
|
case Qt::Key_O:
|
||||||
{
|
{
|
||||||
changeZoomLevel(-1);
|
changeZoomLevel(-1);
|
||||||
@ -274,30 +266,14 @@ void MapWidget::keyPressEvent(QKeyEvent *event)
|
|||||||
reloadPixmaps();
|
reloadPixmaps();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::Key_D:
|
|
||||||
{
|
|
||||||
emit downloadArea(m_level, geoRect());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case Qt::Key_U:
|
case Qt::Key_U:
|
||||||
{
|
{
|
||||||
m_ui = !m_ui;
|
m_ui = !m_ui;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::Key_T:
|
case Qt::Key_H:
|
||||||
{
|
{
|
||||||
AbstractLayer *l = m_layer.value(Time);
|
m_usage = !m_usage;
|
||||||
if (l) {
|
|
||||||
l->toggleVisibility();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case Qt::Key_B:
|
|
||||||
{
|
|
||||||
AbstractLayer *l = m_layer.value(System);
|
|
||||||
if (l) {
|
|
||||||
l->toggleVisibility();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::Key_Q:
|
case Qt::Key_Q:
|
||||||
@ -306,13 +282,12 @@ void MapWidget::keyPressEvent(QKeyEvent *event)
|
|||||||
qApp->quit();
|
qApp->quit();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Qt::Key_Question:
|
|
||||||
case Qt::Key_H:
|
|
||||||
{
|
|
||||||
m_usage = !m_usage;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (AbstractLayer *l, m_layer) {
|
||||||
|
l->keyPressed(event);
|
||||||
|
}
|
||||||
|
|
||||||
m_pos += move;
|
m_pos += move;
|
||||||
foreach (AbstractLayer *l, m_layer) {
|
foreach (AbstractLayer *l, m_layer) {
|
||||||
l->pan(move);
|
l->pan(move);
|
||||||
@ -322,9 +297,7 @@ void MapWidget::keyPressEvent(QKeyEvent *event)
|
|||||||
|
|
||||||
void MapWidget::paintEvent(QPaintEvent *event)
|
void MapWidget::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
Q_UNUSED(event)
|
event->accept();
|
||||||
|
|
||||||
AbstractLayer *l = 0;
|
|
||||||
|
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
|
|
||||||
@ -338,24 +311,10 @@ void MapWidget::paintEvent(QPaintEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
l = m_layer.value(Tracks);
|
QMapIterator<int, AbstractLayer *> i(m_layer);
|
||||||
if (l) {
|
while (i.hasNext()) {
|
||||||
l->paintLayer(&painter);
|
i.next();
|
||||||
}
|
i.value()->paintLayer(&painter);
|
||||||
|
|
||||||
l = m_layer.value(Marker);
|
|
||||||
if (l) {
|
|
||||||
l->paintLayer(&painter);
|
|
||||||
}
|
|
||||||
|
|
||||||
l = m_layer.value(Time);
|
|
||||||
if (l) {
|
|
||||||
l->paintLayer(&painter);
|
|
||||||
}
|
|
||||||
|
|
||||||
l = m_layer.value(System);
|
|
||||||
if (l) {
|
|
||||||
l->paintLayer(&painter);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_ui) {
|
if (m_ui) {
|
||||||
@ -395,7 +354,6 @@ void MapWidget::paintEvent(QPaintEvent *event)
|
|||||||
usage << "Esc: Quit application";
|
usage << "Esc: Quit application";
|
||||||
usage << "h: Show/hide this message";
|
usage << "h: Show/hide this message";
|
||||||
usage << "Arrows: Move the map";
|
usage << "Arrows: Move the map";
|
||||||
//usage << "c: Move to the center of the map";
|
|
||||||
if (m_zoomable) {
|
if (m_zoomable) {
|
||||||
usage << "i: Zoom in";
|
usage << "i: Zoom in";
|
||||||
usage << "o: Zoom out";
|
usage << "o: Zoom out";
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "abstractlayer.h"
|
#include "abstractlayer.h"
|
||||||
|
|
||||||
#include <QtCore/QHash>
|
#include <QtCore/QMap>
|
||||||
#include <QtCore/QPoint>
|
#include <QtCore/QPoint>
|
||||||
#include <QtGui/QWidget>
|
#include <QtGui/QWidget>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
#include <QtNetwork/QNetworkAccessManager>
|
||||||
@ -34,7 +34,7 @@ public:
|
|||||||
MapWidget(QWidget *parent = 0);
|
MapWidget(QWidget *parent = 0);
|
||||||
~MapWidget();
|
~MapWidget();
|
||||||
|
|
||||||
void addLayer(Layer l, AbstractLayer *layer);
|
void addLayer(AbstractLayer *layer, int z);
|
||||||
|
|
||||||
QRectF geoRect() const;
|
QRectF geoRect() const;
|
||||||
QPointF geoPos() const;
|
QPointF geoPos() const;
|
||||||
@ -89,7 +89,7 @@ private:
|
|||||||
QNetworkAccessManager *m_manager;
|
QNetworkAccessManager *m_manager;
|
||||||
bool m_networkMode;
|
bool m_networkMode;
|
||||||
QString m_copyright;
|
QString m_copyright;
|
||||||
QHash<Layer, AbstractLayer *> m_layer;
|
QMap<int, AbstractLayer *> m_layer;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -73,6 +73,17 @@ void MarkerLayer::triggerAction()
|
|||||||
emit markerAdded(newName);
|
emit markerAdded(newName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MarkerLayer::keyPressed(QKeyEvent *event)
|
||||||
|
{
|
||||||
|
if (event->key() == Qt::Key_M) {
|
||||||
|
if (event->modifiers() == Qt::NoModifier) {
|
||||||
|
triggerAction();
|
||||||
|
} else if (event->modifiers() == Qt::AltModifier) {
|
||||||
|
toggleVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MarkerLayer::paint(QPainter *painter)
|
void MarkerLayer::paint(QPainter *painter)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
@ -33,6 +33,7 @@ public:
|
|||||||
|
|
||||||
virtual void load(const QString &filename);
|
virtual void load(const QString &filename);
|
||||||
virtual void triggerAction();
|
virtual void triggerAction();
|
||||||
|
virtual void keyPressed(QKeyEvent *event);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void paint(QPainter *painter);
|
virtual void paint(QPainter *painter);
|
||||||
|
@ -7,6 +7,7 @@ SOURCES += main.cpp \
|
|||||||
mainwidget.cpp \
|
mainwidget.cpp \
|
||||||
projection.cpp \
|
projection.cpp \
|
||||||
abstractlayer.cpp \
|
abstractlayer.cpp \
|
||||||
|
gpslayer.cpp \
|
||||||
markerlayer.cpp \
|
markerlayer.cpp \
|
||||||
gpxlayer.cpp \
|
gpxlayer.cpp \
|
||||||
timelayer.cpp \
|
timelayer.cpp \
|
||||||
@ -19,6 +20,7 @@ SOURCES += main.cpp \
|
|||||||
HEADERS += mainwidget.h \
|
HEADERS += mainwidget.h \
|
||||||
projection.h \
|
projection.h \
|
||||||
abstractlayer.h \
|
abstractlayer.h \
|
||||||
|
gpslayer.h \
|
||||||
markerlayer.h \
|
markerlayer.h \
|
||||||
gpxlayer.h \
|
gpxlayer.h \
|
||||||
timelayer.h \
|
timelayer.h \
|
||||||
|
@ -34,6 +34,14 @@ TimeLayer::TimeLayer(MapWidget *map) :
|
|||||||
QTimer::singleShot(time, m_updateTimer, SLOT(start()));
|
QTimer::singleShot(time, m_updateTimer, SLOT(start()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TimeLayer::keyPressed(QKeyEvent *event)
|
||||||
|
{
|
||||||
|
if (event->modifiers() == Qt::NoModifier &&
|
||||||
|
event->key() == Qt::Key_T) {
|
||||||
|
toggleVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TimeLayer::paint(QPainter *painter)
|
void TimeLayer::paint(QPainter *painter)
|
||||||
{
|
{
|
||||||
int w = map()->width();
|
int w = map()->width();
|
||||||
|
@ -31,6 +31,8 @@ class TimeLayer : public AbstractLayer
|
|||||||
public:
|
public:
|
||||||
TimeLayer(MapWidget *map);
|
TimeLayer(MapWidget *map);
|
||||||
|
|
||||||
|
virtual void keyPressed(QKeyEvent *event);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void paint(QPainter *painter);
|
virtual void paint(QPainter *painter);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user