[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/graphics/kgraphviewer/src/part
From: Gaƫl de Chalendar <kleag () free ! fr>
Date: 2007-10-31 23:13:56
Message-ID: 1193872436.771428.14241.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 731535 by kleag:
Made edges selectable
M +4 -3 KgvGlobal.cpp
M +6 -2 KgvUnitWidgets.cpp
M +1 -2 KgvUnitWidgets.h
M +48 -3 canvasedge.cpp
M +3 -0 canvasedge.h
M +2 -1 graphelement.cpp
M +4 -0 graphelement.h
--- trunk/extragear/graphics/kgraphviewer/src/part/KgvGlobal.cpp #731534:731535
@@ -35,18 +35,19 @@
#include <klocale.h>
#include <ksimpleconfig.h>
#include <kstandarddirs.h>
-#include <k3staticdeleter.h>
+// #include <k3staticdeleter.h>
#include <kimageio.h>
#include <kiconloader.h>
KgvGlobal* KgvGlobal::s_global = 0L;
-static K3StaticDeleter<KgvGlobal> sdg;
+// static K3StaticDeleter<KgvGlobal> sdg;
KgvGlobal* KgvGlobal::self()
{
if ( !s_global )
- sdg.setObject( s_global, new KgvGlobal );
+ s_global = new KgvGlobal ;
+// sdg.setObject( s_global, new KgvGlobal );
return s_global;
}
--- trunk/extragear/graphics/kgraphviewer/src/part/KgvUnitWidgets.cpp #731534:731535
@@ -158,6 +158,10 @@
setSingleStep(step);
setValue(value);
setDecimals(precision);
+ QDoubleSpinBox::setMinimum(lower);
+ QDoubleSpinBox::setMaximum(upper);
+ QDoubleSpinBox::setSingleStep(step);
+ QDoubleSpinBox::setValue(value);
m_unit = KgvUnit::U_PT;
m_validator = new KgvUnitDoubleValidator( this, this );
// QSpinBox::setValidator( m_validator );
@@ -225,8 +229,8 @@
void KgvUnitDoubleSpinBox::setMinMaxStep( double min, double max, double step )
{
- setMinValue( min );
- setMaxValue( max );
+ setMinimum( min );
+ setMaximum( max );
setLineStepPt( step );
}
--- trunk/extragear/graphics/kgraphviewer/src/part/KgvUnitWidgets.h #731534:731535
@@ -33,10 +33,9 @@
#include <klineedit.h>
#include <kcombobox.h>
#include <KgvUnit.h>
-//Added by qt3to4:
#include <QEvent>
+#include <QDoubleSpinBox>
-
// ----------------------------------------------------------------
// Support classes
--- trunk/extragear/graphics/kgraphviewer/src/part/canvasedge.cpp #731534:731535
@@ -67,7 +67,6 @@
QRectF CanvasEdge::boundingRect() const
{
-// kDebug() << edge()->fromNode()->id() << "->" << edge()->toNode()->id() << \
m_boundingRect; return m_boundingRect;
}
@@ -102,12 +101,14 @@
}
return;
}
+ QList<QPointF> allPoints;
DotRenderOpVec::const_iterator it, it_end;
it = edge()->renderOperations().begin();
it_end = edge()->renderOperations().end();
for (; it != it_end; it++)
{
const DotRenderOp& dro = (*it);
+// kDebug() << edge()->fromNode()->id() << "->" << edge()->toNode()->id() << \
"renderop" << (*it).renderop << "; selected:" << edge()->isSelected(); if ( \
(*it).renderop == "T" ) {
const QString& str = (*it).str;
@@ -152,6 +153,8 @@
(int(m_gh-(*it).integers[2*i+2])/*%m_hdvcf*/)*m_scaleY + m_yMargin
);
polygon[i] = point;
+// kDebug() << edge()->fromNode()->id() << "->" << edge()->toNode()->id() \
<< point; + allPoints.append(point);
}
if ((*it).renderop == "P" )
{
@@ -270,6 +273,8 @@
(m_gh-(*it).integers[2*i+2]/*%m_hdvcf*/)*m_scaleY + m_yMargin + diffY
);
points[i] = p;
+// kDebug() << edge()->fromNode()->id() << "->" << edge()->toNode()->id() \
<< p; + allPoints.append(p);
}
// kDebug() << "Setting pen color to " << edge()->color(splineNum);
pen.setColor(Dot2QtConsts::componentData().qtColor(edge()->color(splineNum)));
@@ -287,8 +292,36 @@
p->drawPath(path);
p->restore();
}
- }
+ }
}
+ if (edge()->isSelected())
+ {
+// kDebug() << "draw square";
+// p->drawRect(m_boundingRect);
+ qreal maxDist = 0;
+ QPair<QPointF,QPointF> pointsPair;
+ foreach(const QPointF& point1, allPoints)
+ {
+ foreach(const QPointF& point2, allPoints)
+ {
+ if (distance(point1, point2) > maxDist)
+ {
+ maxDist = distance(point1, point2);
+ pointsPair = qMakePair(point1, point2);
+ }
+ }
+ }
+ if (maxDist>0)
+ {
+ p->save();
+ // p->setBrush(Dot2QtConsts::componentData().qtColor(edge()->color(0)));
+ p->setBrush(Qt::black);
+ p->setPen(Qt::black);
+ p->drawRect(QRectF(pointsPair.first-QPointF(3,3),QSizeF(6,6)));
+ p->drawRect(QRectF(pointsPair.second-QPointF(3,3),QSizeF(6,6)));
+ p->restore();
+ }
+ }
}
void CanvasEdge::modelChanged()
@@ -327,7 +360,7 @@
for (; it != it_end; it++)
{
// kDebug() << (*it).renderop << ", ";
- if ( (*it).renderop != "B" ) continue;
+ if ( ((*it).renderop != "B") && ((*it).renderop != "p") && ((*it).renderop != \
"P") ) continue; uint previousSize = points.size();
points.resize(previousSize+(*it).integers[0]);
for (int i = 0; i < (*it).integers[0]; i++)
@@ -357,3 +390,15 @@
}
// kDebug() ;//<< edge()->fromNode()->id() << "->" << edge()->toNode()->id() << \
"New bounding rect is:" << m_boundingRect; }
+
+void CanvasEdge::mousePressEvent(QGraphicsSceneMouseEvent * event)
+{
+// kDebug() << event;
+ edge()->setSelected(!edge()->isSelected());
+ update();
+}
+
+qreal CanvasEdge::distance(const QPointF& point1, const QPointF& point2)
+{
+ return sqrt(pow(point1.x()-point2.x(),2)+pow(point1.y()-point2.y(),2));
+}
--- trunk/extragear/graphics/kgraphviewer/src/part/canvasedge.h #731534:731535
@@ -77,8 +77,11 @@
void modelChanged();
protected:
+ virtual void mousePressEvent ( QGraphicsSceneMouseEvent * event );
private:
+ qreal distance(const QPointF& point1, const QPointF& point2);
+
qreal m_scaleX, m_scaleY;
qreal m_xMargin, m_yMargin, m_gh, m_wdhcf, m_hdvcf;
GraphEdge* m_edge;
--- trunk/extragear/graphics/kgraphviewer/src/part/graphelement.cpp #731534:731535
@@ -32,7 +32,8 @@
m_originalAttributes(),
m_ce(0),
m_z(1.0),
- m_renderOperations()
+ m_renderOperations(),
+ m_selected(false)
{
/* label("");
id("");
--- trunk/extragear/graphics/kgraphviewer/src/part/graphelement.h #731534:731535
@@ -93,6 +93,9 @@
inline CanvasElement* canvasElement() {return m_ce;}
inline const CanvasElement* canvasElement() const {return m_ce;}
inline void setCanvasElement(CanvasElement* ce) {m_ce = ce;}
+
+ inline void setSelected(bool s) {m_selected=s;}
+ inline bool isSelected() {return m_selected;}
Q_SIGNALS:
void changed();
@@ -107,6 +110,7 @@
DotRenderOpVec m_renderOperations;
+ bool m_selected;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic