2
* wbnewpath.cpp - a class used for representing a path on the whiteboard
3
* while it's being drawn.
4
* Copyright (C) 2008 Joonas Govenius
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this library; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
#include "wbnewpath.h"
24
#include <QGraphicsScene>
26
WbNewPath::WbNewPath(QGraphicsScene* s, QPointF startPos, int strokeWidth, const QColor &strokeColor, const QColor &fillColor) : WbNewItem(s) {
29
graphicsitem_.setZValue(std::numeric_limits<double>::max());
31
graphicsitem_.setBrush(QBrush(fillColor));
32
graphicsitem_.setPen(QPen(QBrush(strokeColor), strokeWidth));
34
scene->addItem(&graphicsitem_);
36
QPainterPath painterpath(startPos);
37
graphicsitem_.setPath(painterpath);
40
WbNewPath::~WbNewPath() {
45
void WbNewPath::parseCursorMove(QPointF newPos) {
47
QPainterPath painterpath = graphicsitem_.path();
48
// FIXME: the path should actually go through the "controlPoint_".
49
painterpath.quadTo(*controlPoint_, newPos);
50
graphicsitem_.setPath(painterpath);
55
controlPoint_ = new QPointF(newPos);
59
QDomNode WbNewPath::serializeToSvg() {
61
QPainterPath painterpath = graphicsitem_.path();
62
// FIXME: the path should actually go through the "controlPoint_".
63
painterpath.lineTo(*controlPoint_);
64
graphicsitem_.setPath(painterpath);
70
return WbNewItem::serializeToSvg();
73
QGraphicsItem* WbNewPath::graphicsItem() {
74
return &graphicsitem_;