summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-10-04 06:59:44 +0200
committerArno <am@disconnect.de>2012-10-04 07:01:29 +0200
commit184448e767ccdeae66fe4d795757cace98033b0e (patch)
tree26cafbb4fbafe94406413439c0cbd36f5cd66cc3 /pictureviewer2.cpp
parentdeeec5306a37e2280626f3486a07629570aafe92 (diff)
downloadSheMov-184448e767ccdeae66fe4d795757cace98033b0e.tar.gz
SheMov-184448e767ccdeae66fe4d795757cace98033b0e.tar.bz2
SheMov-184448e767ccdeae66fe4d795757cace98033b0e.zip
Fix Mappings in PictureViewer2
Another fix for the new MappingTreeModel database layout: Make the mappings display correctly when showing an archived picture. For performance reasons I had to make PicFilesModel global and put it into a separate file. Also clean up MappingTreeModel: remove comments and unused functions.
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp51
1 files changed, 31 insertions, 20 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index 36701ff..ae18a0c 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -14,9 +14,9 @@
#include <QContextMenuEvent>
#include <QMenu>
#include <QTimer>
+#include <QDateTime>
#include <QPainter>
#include <QStyleOptionGraphicsItem>
-#include <QDate>
#include <QSettings>
#include <QTextDocument>
#include <QTextCursor>
@@ -29,6 +29,7 @@
#include <QMessageBox>
#include "pictureviewer2.h"
+#include "picfilesmodel.h"
#include "pictureswidget.h"
#include "smglobals.h"
#include "mappingtreemodel.h"
@@ -52,6 +53,10 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0)
mSlideTimer = new QTimer(this);
connect(mSlideTimer, SIGNAL(timeout()), this, SLOT(next()));
+ //models
+ mMappingTreeModel = static_cast<MappingTreeModel*>(SmGlobals::instance()->model("MappingTree"));
+ mPicFilesModel = static_cast<PicFilesModel*>(SmGlobals::instance()->model("PicFiles"));
+
//setup gui
mScene = new QGraphicsScene(this);
setScene(mScene);
@@ -306,15 +311,18 @@ void PictureViewer2::constructInfoItem(const PicData &data, QSize picSize){
mScene->addItem(mFnItem);
}
-//FIXME!
void PictureViewer2::constructMappingItem(const PicData &file){
- MappingTreeModel *mappingModel = static_cast<MappingTreeModel*>(SmGlobals::instance()->model("MappingTree"));
- QList<QVariant> mappings = mappingModel->mappingsForFile(file.at(PicFilesModel::Id));
+ QList<MappingData> mapData = mPicFilesModel->mappingDataFromFile(file.at(PicFilesModel::Id).toInt());
+ QList<QStringList> mappings;
+ foreach(MappingData d, mapData){
+ mappings << d.path;
+ }
QStringList mappingPaths;
- foreach(QVariant mId, mappings){
- mappingPaths << mappingModel->mappingDataFromId(mId.toInt()).path.join("/");
+ foreach(QStringList l, mappings){
+ mappingPaths << l.join("/");
}
- SmTreeItem *mappingTree = mappingModel->treeFromPaths(mappingPaths);
+
+ SmTreeItem *mappingTree = mMappingTreeModel->treeFromPaths(mappingPaths);
if(mappingTree){
if(mMappingItem){
mMappingPos = mMappingItem->scenePos();
@@ -352,26 +360,29 @@ QTextDocument *PictureViewer2::treeToString(const SmTreeItem *root) const{
retval->setIndentWidth(2);
retval->setDocumentMargin(8);
QTextCursor *cursor = new QTextCursor(retval);
- treeToStringRecursive(root, cursor, 0);
+ for(int i = 0; i < root->childCount(); ++i){
+ treeToStringRecursive(root->child(i), cursor, 0);
+ QTextBlockFormat fmt;
+ fmt.setIndent(0);
+ cursor->insertBlock(fmt);
+ }
return retval;
}
void PictureViewer2::treeToStringRecursive(const SmTreeItem *parent, QTextCursor *cursor, int indent) const{
+ QChar bullet(0x2640);
+ if(indent % 2){
+ bullet = QChar(0x2642);
+ }
+ cursor->insertText(QString("%1 %2").arg(bullet).arg(parent->data(0).toString()));
+ if(parent->childCount()){
+ indent++;
+ }
for(int i = 0; i < parent->childCount(); ++i){
QTextBlockFormat fmt;
fmt.setIndent(indent * 5);
- //to prevent a stupid empty line with a <br />...
- if(indent > 0){
- cursor->insertBlock(fmt);
- }
- QChar bullet(0x2640);
- if(indent % 2){
- bullet = QChar(0x2642);
- }
- cursor->insertText(QString("%1 %2").arg(bullet).arg(parent->child(i)->data(0).toString()));
- if(parent->child(i)->childCount()){
- treeToStringRecursive(parent->child(i), cursor, indent + 1);
- }
+ cursor->insertBlock(fmt);
+ treeToStringRecursive(parent->child(i), cursor, indent);
}
}