Fix creation of the poligon-based lines for the dive planner

This fixes the creation of the poligon-based lines
next thing to do is to forbit creation of the next point
before the last one.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-06-20 13:39:41 -03:00
parent 364254ed36
commit b1c526ddb4
2 changed files with 8 additions and 4 deletions

View file

@ -1,6 +1,6 @@
#include "diveplanner.h"
#include <QMouseEvent>
#include <boost/graph/graph_concepts.hpp>
#include <QDebug>
DivePlanner* DivePlanner::instance()
{
@ -26,18 +26,22 @@ void DivePlanner::mouseDoubleClickEvent(QMouseEvent* event)
if (lines.empty()){
QGraphicsLineItem *first = new QGraphicsLineItem(0,0, mappedPos.x(), mappedPos.y());
lines << first;
lines.push_back(first);
create_deco_stop();
scene()->addItem(first);
}else{
clear_generated_deco();
QGraphicsEllipseItem *prevHandle = handles.at( handles.count()-2);
QGraphicsLineItem *line = new QGraphicsLineItem(prevHandle->x(), prevHandle->y(), item->x(), item->y());
lines.push_back(line);
scene()->addItem(line);
create_deco_stop();
}
}
void DivePlanner::clear_generated_deco()
{
for(int i = handles.count(); i < lines.count(); i++){
for(int i = handles.count(); i <= lines.count(); i++){
scene()->removeItem(lines.last());
delete lines.last();
lines.removeLast();

View file

@ -12,7 +12,7 @@ protected:
virtual void mouseDoubleClickEvent(QMouseEvent* event);
virtual void showEvent(QShowEvent* event);
virtual void resizeEvent(QResizeEvent* event);
void clear_generated_deco();
void create_deco_stop();