From 77645a5dcfcb968cf5a3e4d43b4e93c12710f79e Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 17 Mar 2012 06:45:33 +0100 Subject: Show number of selected files in PictureViewer Show the number of files available to PictureViewer2 in the InfoItem. Also give constructFilenameItem a proper name. --- pictureviewer2.cpp | 26 ++++++++++++++++---------- pictureviewer2.h | 4 ++-- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index 3234ffc..88522e0 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -58,13 +58,18 @@ void PictureViewer2::addFiles(const PicDataList &files, bool clear){ mFiles.clear(); mFiles = files; mCurPos = 0; - return; - } - foreach(const PicData &f, files){ - if(!mFiles.contains(f)){ - mFiles.append(f); + }else{ + foreach(const PicData &f, files){ + if(!mFiles.contains(f)){ + mFiles.append(f); + } } } + if(!mCurPos >= mFiles.size()){ + showFile(mFiles.at(mCurPos)); + }else{ + showFile(mFiles.at(0)); + } } void PictureViewer2::setFile(const PicData &file){ @@ -151,15 +156,15 @@ void PictureViewer2::showFile(const PicData &file){ mCur->setPos(cX, cY); setWindowTitle(constructWindowTitle()); //TODO: configure! - constructFilenameItem(file, pixmap.size()); + constructInfoItem(file, pixmap.size()); } -void PictureViewer2::constructFilenameItem(const PicData &data, QSize picSize){ +void PictureViewer2::constructInfoItem(const PicData &data, QSize picSize){ if(mFnItem){ mScene->removeItem(mFnItem); delete mFnItem; } - mFnItem = new PictureViewer2FileinfoItem(data, picSize); + mFnItem = new PictureViewer2FileinfoItem(data, mFiles.size(), picSize); mFnItem->setPos(10, 10); mScene->addItem(mFnItem); } @@ -181,16 +186,17 @@ QString PictureViewer2::constructWindowTitle() const { return retval; } -PictureViewer2FileinfoItem::PictureViewer2FileinfoItem(const PicData &data, const QSize &picSize, QGraphicsItem *parent) : QGraphicsItem(parent){ +PictureViewer2FileinfoItem::PictureViewer2FileinfoItem(const PicData &data, const int numSelected, const QSize &picSize, QGraphicsItem *parent) : QGraphicsItem(parent){ QStringList textList; //prevent QStaticText from wrapping filesnames with spaces //we shouldn't allow this in the first place textList << data.at(PicFilesModel::FileName).toString().replace(' ', '_'); textList << QString("%1x%2").arg(QString::number(picSize.width())).arg(QString::number(picSize.height())); QLocale l; - textList << QString("%1 bytes").arg(l.toString(data.at(PicFilesModel::Size).toInt())); + textList << QString(QObject::tr("%1 bytes")).arg(l.toString(data.at(PicFilesModel::Size).toInt())); textList << l.toString(data.at(PicFilesModel::Added).toDate()); textList << data.at(PicFilesModel::MimeType).toString(); + textList << QString(QObject::tr("%1 files selected")).arg(QString::number(numSelected)); mText = QStaticText(textList.join("
")); } diff --git a/pictureviewer2.h b/pictureviewer2.h index e93dffc..77328e8 100644 --- a/pictureviewer2.h +++ b/pictureviewer2.h @@ -44,7 +44,7 @@ class PictureViewer2 : public QGraphicsView { private slots: void showFile(const PicData &data); - void constructFilenameItem(const PicData &file, QSize picSize); + void constructInfoItem(const PicData &file, QSize picSize); private: void setupDialog(); @@ -64,7 +64,7 @@ class PictureViewer2 : public QGraphicsView { class PictureViewer2FileinfoItem : public QGraphicsItem { public: - explicit PictureViewer2FileinfoItem(const PicData &data, const QSize &picSize = QSize(), QGraphicsItem *parent = 0); + explicit PictureViewer2FileinfoItem(const PicData &data, const int numSelected, const QSize &picSize = QSize(), QGraphicsItem *parent = 0); QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); -- cgit v1.2.3-70-g09d2