summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallery/tracker/qgallerytrackerlistcolumn.cpp20
-rw-r--r--src/gallery/tracker/qgallerytrackerlistcolumn_p.h6
-rw-r--r--src/gallery/tracker/qgallerytrackerschema.cpp8
3 files changed, 32 insertions, 2 deletions
diff --git a/src/gallery/tracker/qgallerytrackerlistcolumn.cpp b/src/gallery/tracker/qgallerytrackerlistcolumn.cpp
index 92bcf34..981faf7 100644
--- a/src/gallery/tracker/qgallerytrackerlistcolumn.cpp
+++ b/src/gallery/tracker/qgallerytrackerlistcolumn.cpp
@@ -163,6 +163,26 @@ QVariant QGalleryTrackerIntegerColumn::toVariant(TrackerSparqlCursor *cursor, in
}
+QVariant QGalleryTrackerLongLongColumn::toVariant(TrackerSparqlCursor *cursor, int index) const
+{
+ switch (TrackerSparqlValueType type = tracker_sparql_cursor_get_value_type(cursor, index)) {
+ case TRACKER_SPARQL_VALUE_TYPE_INTEGER:
+ return qint64(tracker_sparql_cursor_get_integer(cursor, index));
+ case TRACKER_SPARQL_VALUE_TYPE_DOUBLE:
+ return qint64(tracker_sparql_cursor_get_double(cursor, index));
+ case TRACKER_SPARQL_VALUE_TYPE_UNBOUND:
+ case TRACKER_SPARQL_VALUE_TYPE_BLANK_NODE:
+ break;
+ default:
+ if (!m_warned) {
+ m_warned = true;
+ qWarning() << "QGalleryTracker: Expected integer type at index" << index << "got" << type;
+ }
+ break;
+ }
+ return QVariant();
+}
+
QVariant QGalleryTrackerDoubleColumn::toVariant(TrackerSparqlCursor *cursor, int index) const
{
switch (TrackerSparqlValueType type = tracker_sparql_cursor_get_value_type(cursor, index)) {
diff --git a/src/gallery/tracker/qgallerytrackerlistcolumn_p.h b/src/gallery/tracker/qgallerytrackerlistcolumn_p.h
index 8e19bca..62f47a7 100644
--- a/src/gallery/tracker/qgallerytrackerlistcolumn_p.h
+++ b/src/gallery/tracker/qgallerytrackerlistcolumn_p.h
@@ -115,6 +115,12 @@ public:
QVariant toVariant(TrackerSparqlCursor *cursor, int index) const;
};
+class QGalleryTrackerLongLongColumn : public QGalleryTrackerValueColumn
+{
+public:
+ QVariant toVariant(TrackerSparqlCursor *cursor, int index) const;
+};
+
class QGalleryTrackerDoubleColumn : public QGalleryTrackerValueColumn
{
public:
diff --git a/src/gallery/tracker/qgallerytrackerschema.cpp b/src/gallery/tracker/qgallerytrackerschema.cpp
index f54d7e8..ed79f46 100644
--- a/src/gallery/tracker/qgallerytrackerschema.cpp
+++ b/src/gallery/tracker/qgallerytrackerschema.cpp
@@ -733,7 +733,7 @@ static bool qt_writeOrientationCondition(
QT_GALLERY_NIE_DATAOBJECT_PROPERTIES, \
QT_GALLERY_NIE_INFORMATIONELEMENT_PROPERTIES, \
QT_GALLERY_ITEM_PROPERTY("fileName" , "nfo:fileName(?x)" , String , CanRead | CanSort | CanFilter), \
- QT_GALLERY_ITEM_PROPERTY("fileSize" , "nfo:fileSize(?x)" , Int , CanRead | CanSort | CanFilter), \
+ QT_GALLERY_ITEM_PROPERTY("fileSize" , "nfo:fileSize(?x)" , LongLong, CanRead | CanSort | CanFilter), \
QT_GALLERY_ITEM_PROPERTY("lastAccessed" , "nfo:fileLastAccessed(?x)" , DateTime, CanRead | CanSort | CanFilter), \
QT_GALLERY_ITEM_PROPERTY("lastModified" , "nfo:fileLastModified(?x)" , DateTime, CanRead | CanSort | CanFilter)
@@ -1232,7 +1232,8 @@ QDocumentGallery::Error QGalleryTrackerSchema::prepareTypeResponse(
new QGalleryTrackerStaticColumn(qt_galleryItemTypeList[m_itemIndex].itemType));
arguments->valueColumns = QVector<QGalleryTrackerValueColumn *>()
<< new QGalleryTrackerStringColumn
- << new QGalleryTrackerIntegerColumn;
+ << new QGalleryTrackerIntegerColumn
+ << new QGalleryTrackerLongLongColumn;
arguments->service = qt_galleryItemTypeList[m_itemIndex].service;
arguments->updateMask = qt_galleryItemTypeList[m_itemIndex].updateMask;
@@ -1427,6 +1428,9 @@ static QVector<QGalleryTrackerValueColumn *> qt_createValueColumns(
case QVariant::Url:
columns.append(new QGalleryTrackerUrlColumn);
break;
+ case QVariant::LongLong:
+ columns.append(new QGalleryTrackerLongLongColumn);
+ break;
default:
Q_ASSERT(false);
break;