00001 #ifndef NODE_H 00002 #define NODE_H 00003 00004 #include "includes.h" 00005 00007 00013 class node : public QObject, public QGraphicsRectItem 00014 { 00015 Q_OBJECT 00016 00017 public: 00018 node(QString path, QObject *parent=0); 00019 00020 void addToTotalSize(qint64 size); 00021 void traverse(); 00022 bool isDir() { return bDir; } 00023 QRectF calculateRect(); 00024 void addParentOffset(float offset); 00025 void addParentOffset(QRectF rect); 00027 00030 QVector<node*> children; 00031 node* parent(); 00032 bool isVertical(); 00033 00034 qint64 getTotalSize() { return totalSize; } 00035 QString getPath() { return path; } 00036 QVector<node*> getChildren() { return children; } 00037 int getDepth() { return depth; } 00038 float getScaleFactor() { return scaleFactor; } 00039 void setTreeItem(QTreeWidgetItem *item) { treeItem = item; } 00040 00041 static void setTreeWidget(QTreeWidget *tw) { treeWidget = tw; } 00042 00043 protected: 00044 static float scaleFactor; 00045 static QTreeWidget *treeWidget; 00046 00048 QString path; 00050 int depth; 00052 00055 qint64 fileSize; 00057 00060 float totalSize; 00061 float offset; 00062 bool bDir; 00063 QTreeWidgetItem *treeItem; 00064 00065 qint64 traverse(QDirIterator& it); 00066 void addChild(node *childNode); 00067 float getRelativeSize(); 00068 void mousePressEvent(QGraphicsSceneMouseEvent *event); 00069 00070 void setSize(qint64 size) { fileSize = size; } 00071 qint64 getSize() { return fileSize; } 00072 float getOffset() { return offset; } 00073 }; 00074 00075 #endif