Changeset View
Changeset View
Standalone View
Standalone View
src/file/modifiedfileindexer.cpp
Show First 20 Lines • Show All 63 Lines • ▼ Show 20 Line(s) | 53 | for (const QString& filePath : qAsConst(m_files)) { | |||
---|---|---|---|---|---|
64 | } | 64 | } | ||
65 | 65 | | |||
66 | // FIXME: Using QFileInfo over here is quite expensive! | 66 | // FIXME: Using QFileInfo over here is quite expensive! | ||
67 | QFileInfo fileInfo(filePath); | 67 | QFileInfo fileInfo(filePath); | ||
68 | if (fileInfo.isSymLink()) { | 68 | if (fileInfo.isSymLink()) { | ||
69 | continue; | 69 | continue; | ||
70 | } | 70 | } | ||
71 | 71 | | |||
72 | bool mTimeChanged; | ||||
73 | bool cTimeChanged; | ||||
74 | const bool isKnownFile = tr.hasDocument(fileId); | ||||
astippich: const? | |||||
75 | if (isKnownFile) { | ||||
72 | DocumentTimeDB::TimeInfo timeInfo = tr.documentTimeInfo(fileId); | 76 | DocumentTimeDB::TimeInfo timeInfo = tr.documentTimeInfo(fileId); | ||
73 | bool mTimeChanged = timeInfo.mTime != fileInfo.lastModified().toSecsSinceEpoch(); | 77 | mTimeChanged = timeInfo.mTime != fileInfo.lastModified().toSecsSinceEpoch(); | ||
74 | bool cTimeChanged = timeInfo.cTime != fileInfo.metadataChangeTime().toSecsSinceEpoch(); | 78 | cTimeChanged = timeInfo.cTime != fileInfo.metadataChangeTime().toSecsSinceEpoch(); | ||
79 | } else { | ||||
80 | mTimeChanged = cTimeChanged = true; | ||||
81 | } | ||||
75 | 82 | | |||
76 | if (!mTimeChanged && !cTimeChanged) { | 83 | if (!mTimeChanged && !cTimeChanged) { | ||
77 | continue; | 84 | continue; | ||
78 | } | 85 | } | ||
79 | 86 | | |||
80 | QString mimetype; | 87 | QString mimetype; | ||
81 | if (fileInfo.isDir()) { | 88 | if (fileInfo.isDir()) { | ||
82 | // The folder ctime changes when the folder is created, when the folder is | 89 | // The folder ctime changes when the folder is created, when the folder is | ||
Show All 26 Lines | |||||
109 | 116 | | |||
110 | BasicIndexingJob job(filePath, mimetype, level); | 117 | BasicIndexingJob job(filePath, mimetype, level); | ||
111 | if (!job.index()) { | 118 | if (!job.index()) { | ||
112 | continue; | 119 | continue; | ||
113 | } | 120 | } | ||
114 | 121 | | |||
115 | // we can get modified events for files which do not exist | 122 | // we can get modified events for files which do not exist | ||
116 | // cause Baloo was not running and missed those events | 123 | // cause Baloo was not running and missed those events | ||
117 | if (tr.hasDocument(job.document().id())) { | 124 | if (isKnownFile && (job.document().id() == fileId)) { | ||
118 | if (cTimeChanged) { | | |||
119 | tr.replaceDocument(job.document(), XAttrTerms | DocumentTime | FileNameTerms | DocumentUrl); | 125 | tr.replaceDocument(job.document(), XAttrTerms | DocumentTime | FileNameTerms | DocumentUrl); | ||
120 | } | 126 | } else { | ||
121 | } | | |||
122 | else { | | |||
123 | tr.addDocument(job.document()); | 127 | tr.addDocument(job.document()); | ||
124 | } | 128 | } | ||
125 | } | 129 | } | ||
126 | 130 | | |||
127 | tr.commit(); | 131 | tr.commit(); | ||
128 | Q_EMIT done(); | 132 | Q_EMIT done(); | ||
129 | } | 133 | } |
const?