diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-06-02 22:09:21 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-06-03 00:06:42 -0700 |
commit | dbdff1c0afe958c00cae9344ba50fe31e43b243d (patch) | |
tree | f6ab983e25c3644d941eba7d1f76f1b7204aab1b | |
parent | 3595ad029408cae855dcf3d7fdbb03c1a02a6714 (diff) | |
download | subsurface-dbdff1c0afe958c00cae9344ba50fe31e43b243d.tar.gz |
Change from QPixmap to QImage due to thread issues.
QPixmap cannot be accessed from outside the Main thread, but QImage can.
so change that. Also, make the Photo widget display in Icon mode.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-ui/divepicturewidget.cpp | 8 | ||||
-rw-r--r-- | qt-ui/divepicturewidget.h | 2 | ||||
-rw-r--r-- | qt-ui/maintab.ui | 18 |
3 files changed, 17 insertions, 11 deletions
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp index 916345346..e5824e608 100644 --- a/qt-ui/divepicturewidget.cpp +++ b/qt-ui/divepicturewidget.cpp @@ -1,6 +1,7 @@ #include "divepicturewidget.h" #include <dive.h> #include <qtconcurrentmap.h> +#include <qdir.h> void DivePictureDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { @@ -11,11 +12,11 @@ DivePictureModel::DivePictureModel(QObject *parent): QAbstractTableModel(parent) { } -typedef QPair<QString, QPixmap> SPixmap; +typedef QPair<QString, QImage> SPixmap; typedef QList<SPixmap> SPixmapList; SPixmap scaleImages(const QString& s) { - QPixmap p = QPixmap(s).scaled(128,128, Qt::KeepAspectRatio); + QImage p = QImage(s).scaled(128,128, Qt::KeepAspectRatio); SPixmap ret; ret.first = s; ret.second = p; @@ -63,8 +64,9 @@ QVariant DivePictureModel::data(const QModelIndex &index, int role) const QString key = stringPixmapCache.keys().at(index.row()); switch(role){ - case Qt::DisplayRole : ret = key; break; + case Qt::ToolTipRole : ret = key; break; case Qt::DecorationRole : ret = stringPixmapCache[key]; break; + case Qt::DisplayRole : ret = QFileInfo(key).fileName(); } return ret; } diff --git a/qt-ui/divepicturewidget.h b/qt-ui/divepicturewidget.h index 9fb5465df..4660bd070 100644 --- a/qt-ui/divepicturewidget.h +++ b/qt-ui/divepicturewidget.h @@ -19,7 +19,7 @@ private: // Currently, load the images on the fly // Later, use a thread to load the images // Later, save the thumbnails so we don't need to reopen every time. - QHash<QString, QPixmap> stringPixmapCache; + QHash<QString, QImage> stringPixmapCache; }; class DivePictureDelegate : QStyledItemDelegate { diff --git a/qt-ui/maintab.ui b/qt-ui/maintab.ui index 0998db22f..904a49304 100644 --- a/qt-ui/maintab.ui +++ b/qt-ui/maintab.ui @@ -289,8 +289,8 @@ <rect> <x>0</x> <y>0</y> - <width>100</width> - <height>30</height> + <width>662</width> + <height>649</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_5"> @@ -369,8 +369,8 @@ <rect> <x>0</x> <y>0</y> - <width>399</width> - <height>325</height> + <width>662</width> + <height>649</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_6"> @@ -679,8 +679,8 @@ <rect> <x>0</x> <y>0</y> - <width>267</width> - <height>115</height> + <width>662</width> + <height>649</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_7"> @@ -819,7 +819,11 @@ </attribute> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> - <widget class="DivePictureWidget" name="photosView"/> + <widget class="DivePictureWidget" name="photosView"> + <property name="viewMode"> + <enum>QListView::IconMode</enum> + </property> + </widget> </item> </layout> </widget> |