Added freeze option in NetworkView (Modified patch from K. Eisentraut)

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6879 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2013-10-27 23:07:47 +00:00
parent e04283f3af
commit 5304865fc4
5 changed files with 41 additions and 1 deletions

View File

@ -57,6 +57,7 @@ NetworkView::NetworkView(QWidget *parent)
/* Hide Settings frame */
connect( ui.maxFriendLevelSB, SIGNAL(valueChanged(int)), this, SLOT(setMaxFriendLevel(int)));
connect( ui.edgeLengthSB, SIGNAL(valueChanged(int)), this, SLOT(setEdgeLength(int)));
connect( ui.freezeCheckBox, SIGNAL(toggled(bool)), this, SLOT(setFreezeState(bool)));
_should_update = true ;
}
@ -96,6 +97,15 @@ void NetworkView::clear()
update() ;
}
void NetworkView::setFreezeState(bool freeze)
{
#ifdef DEBUG_NETWORKVIEW
std::cerr << " NetworkView::setFreezeState(" << freeze << ")" << std::endl;
#endif
ui.graphicsView->setFreeze(freeze);
}
class NodeInfo
{
public:

View File

@ -49,6 +49,8 @@ class NetworkView : public RsAutoUpdatePage
void changedFoFCheckBox( );
void redraw();
void setFreezeState(bool);
private:
void clear();

View File

@ -91,6 +91,13 @@
</property>
</widget>
</item>
<item row="0" column="6">
<widget class="QCheckBox" name="freezeCheckBox">
<property name="text">
<string>Freeze</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>

View File

@ -121,7 +121,7 @@ void fourn(double data[],unsigned long nn[],unsigned long ndim,int isign)
#undef SWAP
GraphWidget::GraphWidget(QWidget *)
: timerId(0)
: timerId(0), mIsFrozen(false)
{
// QGraphicsScene *scene = new QGraphicsScene(QRectF(0,0,500,500),this);
// scene->setItemIndexMethod(QGraphicsScene::NoIndex);
@ -305,6 +305,12 @@ void GraphWidget::timerEvent(QTimerEvent *event)
if(!isVisible())
return ;
if (mIsFrozen)
{
update();
return;
}
static const int S = 256 ;
static double *forceMap = new double[2*S*S] ;
@ -437,3 +443,13 @@ void GraphWidget::scaleView(qreal scaleFactor)
scale(scaleFactor, scaleFactor);
}
void GraphWidget::setFreeze(bool freeze)
{
mIsFrozen = freeze;
}
bool GraphWidget::isFrozen() const
{
return mIsFrozen;
}

View File

@ -78,6 +78,10 @@ public:
void snapshotNodesPositions() ;
void clearNodesPositions() ;
void clearGraph() ;
void setFreeze(bool freeze);
bool isFrozen() const;
virtual void itemMoved();
void setEdgeLength(uint32_t l) ;
@ -96,6 +100,7 @@ private:
int timerId;
//Node *centerNode;
bool mDeterminedBB ;
bool mIsFrozen;
std::vector<Node *> _nodes ;
std::map<std::pair<NodeId,NodeId>,Edge *> _edges ;