plotting
diff --git a/demo/digesttreescene.h b/demo/digesttreescene.h
index 1915c2f..5c8af9d 100644
--- a/demo/digesttreescene.h
+++ b/demo/digesttreescene.h
@@ -4,15 +4,79 @@
#include <QtGui/QGraphicsScene>
#include "ogdf/basic/GraphAttributes.h"
#include "ogdf/basic/Graph.h"
+#include <sync-seq-no.h>
+#include <sync-logic.h>
+#include <ctime>
+#include <QMap>
+#include <vector>
+#include <tr1/memory>
+
+class QGraphicsTextItem;
+
+class User;
+class DisplayUser;
class DigestTreeScene : public QGraphicsScene
{
Q_OBJECT
+typedef std::tr1::shared_ptr<DisplayUser> DisplayUserPtr;
+typedef QMap<QString, DisplayUserPtr> Roster;
+typedef QMap<QString, DisplayUserPtr>::iterator Roster_iterator;
+typedef QMapIterator<QString, DisplayUserPtr> RosterIterator;
+
public:
DigestTreeScene(QWidget *parent = 0);
- void plot();
+ void processUpdate(std::vector<Sync::MissingDataInfo> &v, QString digest);
+ void msgReceived(QString prefix, QString nick);
+ void plot(QString digest);
+ void plotEdge(ogdf::GraphAttributes &GA);
+ void plotNode(ogdf::GraphAttributes &GA, int rootIndex, QString digest);
private:
ogdf::Graph m_graph;
+ Roster m_roster;
+ QGraphicsTextItem *m_rootDigest;
+
};
+
+class User
+{
+public:
+ User():m_received(time(NULL)) {}
+ User(QString n, QString p, QString c): m_nick(n), m_prefix(p), m_chatroom(c), m_received(time(NULL)) {}
+ void setNick(QString nick) {m_nick = nick;}
+ void setPrefix(QString prefix) {m_prefix = prefix;}
+ void setChatroom(QString chatroom) {m_chatroom = chatroom;}
+ void setSeq(Sync::SeqNo seq) {m_seq = seq;}
+ void setReceived() {m_received = time(NULL);}
+ QString getNick() { return m_nick;}
+ QString getPrefix() { return m_prefix;}
+ QString getChatroom() { return m_chatroom;}
+ Sync::SeqNo getSeqNo() { return m_seq;}
+ time_t getReceived() { return m_received;}
+private:
+ QString m_nick;
+ QString m_prefix;
+ QString m_chatroom;
+ Sync::SeqNo m_seq;
+ time_t m_received;
+};
+
+class DisplayUser : public User
+{
+public:
+ DisplayUser():m_seqTextItem(NULL), m_nickTextItem(NULL), m_rimRectItem(NULL) {}
+ DisplayUser(QString n, QString p , QString c): User(n, p, c), m_seqTextItem(NULL), m_nickTextItem(NULL), m_rimRectItem(NULL) {}
+ QGraphicsTextItem *getSeqTextItem() {return m_seqTextItem;}
+ QGraphicsTextItem *getNickTextItem() {return m_nickTextItem;}
+ QGraphicsRectItem *getRimRectItem() {return m_rimRectItem;}
+ void setSeqTextItem(QGraphicsTextItem *item) { m_seqTextItem = item;}
+ void setNickTextItem(QGraphicsTextItem *item) { m_nickTextItem = item;}
+ void setRimRectItem(QGraphicsRectItem *item) {m_rimRectItem = item;}
+private:
+ QGraphicsTextItem *m_seqTextItem;
+ QGraphicsTextItem *m_nickTextItem;
+ QGraphicsRectItem *m_rimRectItem;
+};
+
#endif