summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp46
1 files changed, 26 insertions, 20 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index 1f8f15b..cf24c0a 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -16,6 +16,7 @@
#include <QTimer>
#include <QPainter>
#include <QStyleOptionGraphicsItem>
+#include <QDate>
#include "pictureviewer2.h"
#include "pictureswidget.h"
@@ -135,19 +136,16 @@ void PictureViewer2::showFile(const PicData &file){
mScene->addItem(mCur);
mCur->setPos(cX, cY);
setWindowTitle(constructWindowTitle());
- constructFilenameItem(mFiles.at(mCurPos).at(PicFilesModel::FileName).toString());
+ constructFilenameItem(file, pixmap.size());
}
-void PictureViewer2::constructFilenameItem(const QString &filename){
+void PictureViewer2::constructFilenameItem(const PicData &data, QSize picSize){
if(mFnItem){
mScene->removeItem(mFnItem);
delete mFnItem;
}
- mFnItem = new PictureViewer2FilenameItem(filename);
- QSizeF itemSize = mFnItem->boundingRect().size();
- int thisWidth = size().width();
- int xPos = (thisWidth / 2) - (itemSize.width() / 2);
- mFnItem->setPos(xPos, 0);
+ mFnItem = new PictureViewer2FileinfoItem(data, picSize);
+ mFnItem->setPos(10, 10);
mScene->addItem(mFnItem);
}
@@ -168,34 +166,42 @@ QString PictureViewer2::constructWindowTitle() const {
return retval;
}
-PictureViewer2FilenameItem::PictureViewer2FilenameItem(const QString &fileName, QGraphicsItem *parent) : QGraphicsItem(parent), mFilename(fileName) {
- setZValue(1);
+PictureViewer2FileinfoItem::PictureViewer2FileinfoItem(const PicData &data, 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 << l.toString(data.at(PicFilesModel::Added).toDate());
+ textList << data.at(PicFilesModel::MimeType).toString();
+ mText = QStaticText(textList.join("<br/>"));
}
-QRectF PictureViewer2FilenameItem::boundingRect() const {
- QSize size = qApp->fontMetrics().size(Qt::TextSingleLine, mFilename);
- size += QSize(2, 2);
+QRectF PictureViewer2FileinfoItem::boundingRect() const {
+ QSizeF size = mText.size();
+ size += QSize(10, 10);
QRectF retval;
retval.setWidth(size.width());
retval.setHeight(size.height());
return retval;
}
-void PictureViewer2FilenameItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){
+void PictureViewer2FileinfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){
Q_UNUSED(option);
Q_UNUSED(widget);
painter->save();
- painter->setRenderHint(QPainter::Antialiasing, false);
+ painter->setRenderHint(QPainter::Antialiasing, true);
painter->setRenderHint(QPainter::TextAntialiasing, true);
- QColor bgColor = QColor(237, 12, 102);
- bgColor.setAlpha(70);
- QColor fgColor = QColor(209, 207, 232);
+ QColor bgColor = QColor(Qt::white);
+ bgColor.setAlpha(80);
+ QColor fgColor = QColor(Qt::black);
QBrush brush(bgColor);
painter->setPen(QColor(Qt::yellow));
painter->setBrush(brush);
- painter->drawRect(boundingRect());
+ painter->drawRoundedRect(boundingRect(), 15.0, 15.0);
painter->setPen(QPen(fgColor));
- QPoint start(1, qApp->fontMetrics().ascent() + 1);
- painter->drawText(start, mFilename);
+ painter->drawStaticText(5, 5, mText);
painter->restore();
}