From f30d07e5acb83dd74bc6e6dc75b8b1c9e39e6e01 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 24 Mar 2012 08:40:23 +0100 Subject: Show mappings in PictureViewer2 Hell, this was one heck of a bitch. Lots of changes just to show the mapping tree in PictureViewer2. Did I mention that I hate recursion? Added a function for fetching a SmTreeItem * from MappingTreeModel for paths, just to turn it into a QTextDocument in PictureViewer2. Of course everything is recursive. Did I say that I hate recursion? Well, as said in the comments, one recursion function seems fishy, but it works (tm). --- pictureviewer2.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'pictureviewer2.h') diff --git a/pictureviewer2.h b/pictureviewer2.h index e18fc18..d31780e 100644 --- a/pictureviewer2.h +++ b/pictureviewer2.h @@ -19,7 +19,11 @@ class QGraphicsPixmapItem; class QWheelEvent; class QContextMenuEvent; class QTimer; -class PictureViewer2FileinfoItem; +class QTextDocument; +class QTextCursor; +class PictureViewer2Item; +class SmTreeItem; +class MappingTreeModel; typedef QList PicData; typedef QList > PicDataList; @@ -51,10 +55,13 @@ class PictureViewer2 : public QGraphicsView { private slots: void showFile(const PicData &data); void constructInfoItem(const PicData &file, QSize picSize); + void constructMappingItem(const PicData &file); private: void setupDialog(); void setGradient(const QPixmap &pic); + QTextDocument *treeToString(const SmTreeItem *root) const; + void treeToStringRecursive(const SmTreeItem *parent, QTextCursor *cursor) const; QString constructWindowTitle() const; PicDataList mFiles; QGraphicsScene *mScene; @@ -63,22 +70,27 @@ class PictureViewer2 : public QGraphicsView { int mCurPos; QTimer *mSlideTimer; const QString mDefaultFile; - PictureViewer2FileinfoItem *mFnItem; + PictureViewer2Item *mFnItem; + PictureViewer2Item *mMappingItem; bool mUseGradient; QColor mBgColor; QPointF mInfoPos; + QPointF mMappingPos; QAction *mSlideA; QAction *mHideA; }; -class PictureViewer2FileinfoItem : public QGraphicsItem { +class PictureViewer2Item : public QGraphicsItem { public: - explicit PictureViewer2FileinfoItem(const PicData &data, const int numSelected, const QSize &picSize = QSize(), QGraphicsItem *parent = 0); + explicit PictureViewer2Item(const PicData &data, const int numSelected, const QSize &picSize = QSize(), QGraphicsItem *parent = 0); + explicit PictureViewer2Item(QTextDocument *doc, QGraphicsItem *parent = 0); + ~PictureViewer2Item(); QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); private: QStaticText mText; + QTextDocument *mDoc; }; #endif // PICTUREVIEWER2_H -- cgit v1.2.3-70-g09d2