1 /**********************************************************************************************
2     Copyright (C) 2017 Oliver Eichler <oliver.eichler@gmx.de>
3 
4     This program is free software: you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation, either version 3 of the License, or
7     (at your option) any later version.
8 
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13 
14     You should have received a copy of the GNU General Public License
15     along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 
17 **********************************************************************************************/
18 
19 #include "items/CItemRefMap.h"
20 #include "overlay/COverlayRefMap.h"
21 #include "overlay/refmap/COverlayRefMapPoint.h"
22 
23 #include <QtWidgets>
24 
CItemRefMap(const QString & filename,QStackedWidget * stackedWidget,QListWidget * parent)25 CItemRefMap::CItemRefMap(const QString& filename, QStackedWidget* stackedWidget, QListWidget* parent)
26     : CItemFile(filename, parent)
27 {
28     overlay = new COverlayRefMap(this, stackedWidget);
29     connect(overlay, &COverlayRefMap::sigChanged, this, &CItemRefMap::sigChanged);
30 }
31 
~CItemRefMap()32 CItemRefMap::~CItemRefMap()
33 {
34     overlay->deleteLater();
35 }
36 
saveSettings(QSettings & cfg)37 void CItemRefMap::saveSettings(QSettings& cfg)
38 {
39     CItemFile::saveSettings(cfg);
40     overlay->saveSettings(cfg);
41 }
42 
loadSettings(QSettings & cfg)43 void CItemRefMap::loadSettings(QSettings& cfg)
44 {
45     CItemFile::loadSettings(cfg);
46     overlay->loadSettings(cfg);
47 }
48 
addRefPoints(QList<COverlayRefMapPoint * > & points)49 void CItemRefMap::addRefPoints(QList<COverlayRefMapPoint*>& points)
50 {
51     overlay->addRefPoints(points);
52 }
53 
getMapProjection() const54 QString CItemRefMap::getMapProjection() const
55 {
56     return overlay->getMapProjection();
57 }
58 
getRefPoints() const59 const QList<COverlayRefMapPoint*> CItemRefMap::getRefPoints() const
60 {
61     return overlay->getRefPoints();
62 }
63 
64 
toFront()65 void CItemRefMap::toFront()
66 {
67     overlay->toFront();
68 }
69 
drawFx(QPainter & p,CCanvas::redraw_e needsRedraw)70 bool CItemRefMap::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
71 {
72     CItemFile::drawFx(p, needsRedraw);
73     overlay->drawFx(p, needsRedraw);
74     return true;
75 }
76 
mouseMoveEventFx(QMouseEvent * e)77 void CItemRefMap::mouseMoveEventFx(QMouseEvent* e)
78 {
79     CItemFile::mouseMoveEventFx(e);
80     if(!mapIsMoving)
81     {
82         overlay->mouseMoveEventFx(e);
83     }
84 }
85 
mouseReleaseEventFx(QMouseEvent * e)86 void CItemRefMap::mouseReleaseEventFx(QMouseEvent* e)
87 {
88     if(!mapDidMove)
89     {
90         overlay->mouseReleaseEventFx(e);
91     }
92     CItemFile::mouseReleaseEventFx(e);
93 }
94 
keyPressEventFx(QKeyEvent * e)95 bool CItemRefMap::keyPressEventFx(QKeyEvent* e)
96 {
97     return overlay->keyPressEventFx(e);
98 }
99 
leaveEventFx(QEvent * e)100 void CItemRefMap::leaveEventFx(QEvent* e)
101 {
102     CItemFile::leaveEventFx(e);
103     overlay->abortStep();
104 }
105 
getCursorFx()106 QCursor CItemRefMap::getCursorFx()
107 {
108     return overlay->getCursorFx();
109 }
110 
isOk() const111 bool CItemRefMap::isOk() const
112 {
113     return overlay->isOk();
114 }
115