From deb0c472023043669d1daf9cf8d4a0a0b7123462 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Mon, 4 Jun 2012 15:29:58 -0300 Subject: Added a thumbnail field to the BookmarksModel. At the moment it only returns a placeholder image, since we can't get web page thumbnails yet. Also changed the usage of "screenshot" in TabsModel to the more specific "thumbnail" term. Reviewed-by: Hugo Parente Lima --- src/core/BookmarkModel.cpp | 25 +++++++++++++------------ src/core/TabsModel.cpp | 10 +++++----- src/mobile/qml/TabsPanel.qml | 2 +- src/mobile/qml/TopSitesPanel.qml | 2 +- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/core/BookmarkModel.cpp b/src/core/BookmarkModel.cpp index efa2867..79ab1da 100644 --- a/src/core/BookmarkModel.cpp +++ b/src/core/BookmarkModel.cpp @@ -38,11 +38,8 @@ void BookmarkModel::generateRoleNames() QString BookmarkModel::tableCreateQuery() const { - const QLatin1String bookmarkQuery("CREATE TABLE IF NOT EXISTS bookmarks (id INTEGER PRIMARY KEY AUTOINCREMENT," - "name VARCHAR, url VARCHAR, dateAdded DATE);"); - - return bookmarkQuery; - + return QStringLiteral("CREATE TABLE IF NOT EXISTS bookmarks (id INTEGER PRIMARY KEY AUTOINCREMENT," + "name VARCHAR, url VARCHAR, dateAdded DATE, thumbnail BLOB DEFAULT NULL);"); } void BookmarkModel::setFilter(const QString& filter) @@ -121,13 +118,17 @@ bool BookmarkModel::contains(const QString& url) QVariant BookmarkModel::data(const QModelIndex& index, int role) const { - QVariant value; if (role < Qt::UserRole) - value = QSqlQueryModel::data(index, role); - else { - const int columnId = role - Qt::UserRole; - const QModelIndex modelIndex = createIndex(index.row(), columnId); - value = QSqlTableModel::data(modelIndex, Qt::DisplayRole); + return QSqlQueryModel::data(index, role); + + const int columnId = role - Qt::UserRole; + + // FIXME: placeholder waiting for the time we can get some webpage thumbnails. + if (columnId == fieldIndex("thumbnail")) { + static QString defaultThumbnail = QStringLiteral("qrc:///mobile/grid/thumb_mysites_placeholder"); + return QVariant::fromValue(defaultThumbnail); } - return value; + + const QModelIndex modelIndex = createIndex(index.row(), columnId); + return QSqlTableModel::data(modelIndex, Qt::DisplayRole); } diff --git a/src/core/TabsModel.cpp b/src/core/TabsModel.cpp index ba73b8e..5c6c1a6 100644 --- a/src/core/TabsModel.cpp +++ b/src/core/TabsModel.cpp @@ -18,7 +18,7 @@ enum TabModelRole { UrlRole = Qt::UserRole + 1, - ScreenshotRole + ThumbnailRole }; TabsModel::TabsModel(QObject* parent) @@ -42,9 +42,9 @@ QVariant TabsModel::data(const QModelIndex& index, int role) const if (data) return data->property("url"); break; - case ScreenshotRole: - static QString defaultScreenShot = QLatin1String("qrc:///mobile/grid/thumb_tabs_placeholder"); - return QVariant::fromValue(defaultScreenShot); + case ThumbnailRole: + static QString defaultThumbnail = QStringLiteral("qrc:///mobile/grid/thumb_tabs_placeholder"); + return QVariant::fromValue(defaultThumbnail); } return QVariant(); } @@ -101,7 +101,7 @@ void TabsModel::generateRolenames() { QHash roles; roles[UrlRole] = QByteArray("url"); - roles[ScreenshotRole] = QByteArray("screenshot"); + roles[ThumbnailRole] = QByteArray("thumbnail"); setRoleNames(roles); } diff --git a/src/mobile/qml/TabsPanel.qml b/src/mobile/qml/TabsPanel.qml index 4881479..e52b8b2 100644 --- a/src/mobile/qml/TabsPanel.qml +++ b/src/mobile/qml/TabsPanel.qml @@ -38,7 +38,7 @@ Item { Image { property string url: model.url property bool fadeUrl: false - source: model.screenshot + source: model.thumbnail height: UiConstants.PagedGridSizeTable[1] fillMode: Image.Pad verticalAlignment: Image.AlignBottom diff --git a/src/mobile/qml/TopSitesPanel.qml b/src/mobile/qml/TopSitesPanel.qml index 404916c..2d12928 100644 --- a/src/mobile/qml/TopSitesPanel.qml +++ b/src/mobile/qml/TopSitesPanel.qml @@ -40,7 +40,7 @@ Item { Image { property string url: model.url property bool fadeUrl: false - source: "qrc:///mobile/grid/thumb_mysites_placeholder" + source: model.thumbnail height: UiConstants.PagedGridSizeTable[1] fillMode: Image.Pad verticalAlignment: Image.AlignBottom -- cgit v1.2.1