qfilesystemmodel.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/widgets/dialogs/qfilesystemmodel.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3QFileInfo QFileSystemModel::fileInfo(const QModelIndex &index) const-
4{-
5 const QFileSystemModelPrivate * const d = d_func();-
6 return
never executed: return d->node(index)->fileInfo();
d->node(index)->fileInfo();
never executed: return d->node(index)->fileInfo();
0
7}-
8bool QFileSystemModel::remove(const QModelIndex &aindex)-
9{-
10 const QString path = filePath(aindex);-
11 const bool success = QFileInfo(path).isFile()
QFileInfo(path).isFile()Description
TRUEnever evaluated
FALSEnever evaluated
? QFile::remove(path) : QDir(path).removeRecursively();
0
12-
13 if (success
successDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
14 QFileSystemModelPrivate * d = const_cast<QFileSystemModelPrivate*>(d_func());-
15 d->fileInfoGatherer.removePath(path);-
16 }
never executed: end of block
0
17-
18 return
never executed: return success;
success;
never executed: return success;
0
19}-
20-
21-
22-
23-
24QFileSystemModel::QFileSystemModel(QObject *parent)-
25 : QAbstractItemModel(*new QFileSystemModelPrivate, parent)-
26{-
27 QFileSystemModelPrivate * const d = d_func();-
28 d->init();-
29}
never executed: end of block
0
30-
31-
32-
33-
34QFileSystemModel::QFileSystemModel(QFileSystemModelPrivate &dd, QObject *parent)-
35 : QAbstractItemModel(dd, parent)-
36{-
37 QFileSystemModelPrivate * const d = d_func();-
38 d->init();-
39}
never executed: end of block
0
40-
41-
42-
43-
44QFileSystemModel::~QFileSystemModel()-
45{-
46}-
47-
48-
49-
50-
51QModelIndex QFileSystemModel::index(int row, int column, const QModelIndex &parent) const-
52{-
53 const QFileSystemModelPrivate * const d = d_func();-
54 if (row < 0
row < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| column < 0
column < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| row >= rowCount(parent)
row >= rowCount(parent)Description
TRUEnever evaluated
FALSEnever evaluated
|| column >= columnCount(parent)
column >= columnCount(parent)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
55 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
56-
57-
58 QFileSystemModelPrivate::QFileSystemNode *parentNode = (d->indexValid(parent)
d->indexValid(parent)Description
TRUEnever evaluated
FALSEnever evaluated
? d->node(parent) :
0
59 const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&d->root));-
60 ((!(parentNode)) ? qt_assert("parentNode",__FILE__,250) : qt_noop());-
61-
62-
63 const QString &childName = parentNode->visibleChildren.at(d->translateVisibleLocation(parentNode, row));-
64 const QFileSystemModelPrivate::QFileSystemNode *indexNode = parentNode->children.value(childName);-
65 ((!(indexNode)) ? qt_assert("indexNode",__FILE__,255) : qt_noop());-
66-
67 return
never executed: return createIndex(row, column, const_cast<QFileSystemModelPrivate::QFileSystemNode*>(indexNode));
createIndex(row, column, const_cast<QFileSystemModelPrivate::QFileSystemNode*>(indexNode));
never executed: return createIndex(row, column, const_cast<QFileSystemModelPrivate::QFileSystemNode*>(indexNode));
0
68}-
69-
70-
71-
72-
73-
74-
75QModelIndex QFileSystemModel::index(const QString &path, int column) const-
76{-
77 const QFileSystemModelPrivate * const d = d_func();-
78 QFileSystemModelPrivate::QFileSystemNode *node = d->node(path, false);-
79 return
never executed: return d->index(node, column);
d->index(node, column);
never executed: return d->index(node, column);
0
80}-
81-
82-
83-
84-
85-
86-
87QFileSystemModelPrivate::QFileSystemNode *QFileSystemModelPrivate::node(const QModelIndex &index) const-
88{-
89 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
90 return
never executed: return const_cast<QFileSystemNode*>(&root);
const_cast<QFileSystemNode*>(&root);
never executed: return const_cast<QFileSystemNode*>(&root);
0
91 QFileSystemModelPrivate::QFileSystemNode *indexNode = static_cast<QFileSystemModelPrivate::QFileSystemNode*>(index.internalPointer());-
92 ((!(indexNode)) ? qt_assert("indexNode",__FILE__,282) : qt_noop());-
93 return
never executed: return indexNode;
indexNode;
never executed: return indexNode;
0
94}-
95QFileSystemModelPrivate::QFileSystemNode *QFileSystemModelPrivate::node(const QString &path, bool fetch) const-
96{-
97 const QFileSystemModel * const q = q_func();-
98 (void)q;;-
99 if (path.isEmpty()
path.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
|| path == myComputer()
path == myComputer()Description
TRUEnever evaluated
FALSEnever evaluated
|| path.startsWith(QLatin1Char(':'))
path.startsWit...tin1Char(':'))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
100 return
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
0
101-
102-
103 QString absolutePath;-
104-
105-
106-
107 QString longPath = path;-
108-
109 if (longPath == rootDir.path()
longPath == rootDir.path()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
110 absolutePath = rootDir.absolutePath();
never executed: absolutePath = rootDir.absolutePath();
0
111 else-
112 absolutePath = QDir(longPath).absolutePath();
never executed: absolutePath = QDir(longPath).absolutePath();
0
113-
114-
115 QStringList pathElements = absolutePath.split(QLatin1Char('/'), QString::SkipEmptyParts);-
116 if ((
(pathElements.isEmpty())Description
TRUEnever evaluated
FALSEnever evaluated
pathElements.isEmpty())
(pathElements.isEmpty())Description
TRUEnever evaluated
FALSEnever evaluated
0
117-
118 && QDir::fromNativeSeparators(longPath) != QLatin1String("/")
QDir::fromNati...in1String("/")Description
TRUEnever evaluated
FALSEnever evaluated
0
119-
120 )-
121 return
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
0
122 QModelIndex index = QModelIndex();-
123 QString elementPath;-
124 QChar separator = QLatin1Char('/');-
125 QString trailingSeparator;-
126 if (absolutePath[0] == QLatin1Char('/')
absolutePath[0...atin1Char('/')Description
TRUEnever evaluated
FALSEnever evaluated
)
0
127 pathElements.prepend(QLatin1String("/"));
never executed: pathElements.prepend(QLatin1String("/"));
0
128-
129-
130 QFileSystemModelPrivate::QFileSystemNode *parent = node(index);-
131-
132 for (int i = 0; i < pathElements.count()
i < pathElements.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
133 QString element = pathElements.at(i);-
134 if (i != 0
i != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
135 elementPath.append(separator);
never executed: elementPath.append(separator);
0
136 elementPath.append(element);-
137 if (i == pathElements.count() - 1
i == pathElements.count() - 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
138 elementPath.append(trailingSeparator);
never executed: elementPath.append(trailingSeparator);
0
139 bool alreadyExisted = parent->children.contains(element);-
140-
141-
142-
143 if (alreadyExisted
alreadyExistedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
144 if ((
(parent->child....count() == 0)Description
TRUEnever evaluated
FALSEnever evaluated
parent->children.count() == 0)
(parent->child....count() == 0)Description
TRUEnever evaluated
FALSEnever evaluated
0
145 || (parent->caseSensitive()
parent->caseSensitive()Description
TRUEnever evaluated
FALSEnever evaluated
0
146 && parent->children.value(element)->fileName != element
parent->childr...ame != elementDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
147 || (!parent->caseSensitive()
!parent->caseSensitive()Description
TRUEnever evaluated
FALSEnever evaluated
0
148 && parent->children.value(element)->fileName.toLower() != element.toLower()
parent->childr...ment.toLower()Description
TRUEnever evaluated
FALSEnever evaluated
))
0
149 alreadyExisted = false;
never executed: alreadyExisted = false;
0
150 }
never executed: end of block
0
151-
152 QFileSystemModelPrivate::QFileSystemNode *node;-
153 if (!alreadyExisted
!alreadyExistedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
154-
155-
156 QFileInfo info(elementPath);-
157 if (!info.exists()
!info.exists()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
158 return
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
0
159 QFileSystemModelPrivate *p = const_cast<QFileSystemModelPrivate*>(this);-
160 node = p->addNode(parent, element,info);-
161-
162 node->populate(fileInfoGatherer.getInfo(info));-
163-
164 }
never executed: end of block
else {
0
165 node = parent->children.value(element);-
166 }
never executed: end of block
0
167-
168 ((!(node)) ? qt_assert("node",__FILE__,451) : qt_noop());-
169 if (!node->isVisible
!node->isVisibleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
170-
171 if (alreadyExisted
alreadyExistedDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->hasInformation()
node->hasInformation()Description
TRUEnever evaluated
FALSEnever evaluated
&& !fetch
!fetchDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
172 return
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
never executed: return const_cast<QFileSystemModelPrivate::QFileSystemNode*>(&root);
0
173-
174 QFileSystemModelPrivate *p = const_cast<QFileSystemModelPrivate*>(this);-
175 p->addVisibleFiles(parent, QStringList(element));-
176 if (!p->bypassFilters.contains(node)
!p->bypassFilt...contains(node)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
177 p->bypassFilters[node] = 1;
never executed: p->bypassFilters[node] = 1;
0
178 QString dir = q->filePath(this->index(parent));-
179 if (!node->hasInformation()
!node->hasInformation()Description
TRUEnever evaluated
FALSEnever evaluated
&& fetch
fetchDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
180 Fetching f;-
181 f.dir = dir;-
182 f.file = element;-
183 f.node = node;-
184 p->toFetch.append(f);-
185 p->fetchingTimer.start(0, const_cast<QFileSystemModel*>(q));-
186 }
never executed: end of block
0
187 }
never executed: end of block
0
188 parent = node;-
189 }
never executed: end of block
0
190-
191 return
never executed: return parent;
parent;
never executed: return parent;
0
192}-
193-
194-
195-
196-
197void QFileSystemModel::timerEvent(QTimerEvent *event)-
198{-
199 QFileSystemModelPrivate * const d = d_func();-
200 if (event->timerId() == d->fetchingTimer.timerId()
event->timerId...imer.timerId()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
201 d->fetchingTimer.stop();-
202-
203 for (int i = 0; i < d->toFetch.count()
i < d->toFetch.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
204 const QFileSystemModelPrivate::QFileSystemNode *node = d->toFetch.at(i).node;-
205 if (!node->hasInformation()
!node->hasInformation()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
206 d->fileInfoGatherer.fetchExtendedInformation(d->toFetch.at(i).dir,-
207 QStringList(d->toFetch.at(i).file));-
208 }
never executed: end of block
else {
0
209-
210 }
never executed: end of block
0
211 }-
212-
213 d->toFetch.clear();-
214 }
never executed: end of block
0
215}
never executed: end of block
0
216-
217-
218-
219-
220-
221bool QFileSystemModel::isDir(const QModelIndex &index) const-
222{-
223-
224 const QFileSystemModelPrivate * const d = d_func();-
225 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
226 return
never executed: return true;
true;
never executed: return true;
0
227 QFileSystemModelPrivate::QFileSystemNode *n = d->node(index);-
228 if (n->hasInformation()
n->hasInformation()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
229 return
never executed: return n->isDir();
n->isDir();
never executed: return n->isDir();
0
230 return
never executed: return fileInfo(index).isDir();
fileInfo(index).isDir();
never executed: return fileInfo(index).isDir();
0
231}-
232-
233-
234-
235-
236qint64 QFileSystemModel::size(const QModelIndex &index) const-
237{-
238 const QFileSystemModelPrivate * const d = d_func();-
239 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
240 return
never executed: return 0;
0;
never executed: return 0;
0
241 return
never executed: return d->node(index)->size();
d->node(index)->size();
never executed: return d->node(index)->size();
0
242}-
243-
244-
245-
246-
247QString QFileSystemModel::type(const QModelIndex &index) const-
248{-
249 const QFileSystemModelPrivate * const d = d_func();-
250 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
251 return
never executed: return QString();
QString();
never executed: return QString();
0
252 return
never executed: return d->node(index)->type();
d->node(index)->type();
never executed: return d->node(index)->type();
0
253}-
254-
255-
256-
257-
258QDateTime QFileSystemModel::lastModified(const QModelIndex &index) const-
259{-
260 const QFileSystemModelPrivate * const d = d_func();-
261 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
262 return
never executed: return QDateTime();
QDateTime();
never executed: return QDateTime();
0
263 return
never executed: return d->node(index)->lastModified();
d->node(index)->lastModified();
never executed: return d->node(index)->lastModified();
0
264}-
265-
266-
267-
268-
269QModelIndex QFileSystemModel::parent(const QModelIndex &index) const-
270{-
271 const QFileSystemModelPrivate * const d = d_func();-
272 if (!d->indexValid(index)
!d->indexValid(index)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
273 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
274-
275 QFileSystemModelPrivate::QFileSystemNode *indexNode = d->node(index);-
276 ((!(indexNode != 0)) ? qt_assert("indexNode != 0",__FILE__,559) : qt_noop());-
277 QFileSystemModelPrivate::QFileSystemNode *parentNode = indexNode->parent;-
278 if (parentNode == 0
parentNode == 0Description
TRUEnever evaluated
FALSEnever evaluated
|| parentNode == &d->root
parentNode == &d->rootDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
279 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
280-
281-
282 QFileSystemModelPrivate::QFileSystemNode *grandParentNode = parentNode->parent;-
283 ((!(grandParentNode->children.contains(parentNode->fileName))) ? qt_assert("grandParentNode->children.contains(parentNode->fileName)",__FILE__,566) : qt_noop());-
284 int visualRow = d->translateVisibleLocation(grandParentNode, grandParentNode->visibleLocation(grandParentNode->children.value(parentNode->fileName)->fileName));-
285 if (visualRow == -1
visualRow == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
286 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
287 return
never executed: return createIndex(visualRow, 0, parentNode);
createIndex(visualRow, 0, parentNode);
never executed: return createIndex(visualRow, 0, parentNode);
0
288}-
289-
290-
291-
292-
293-
294-
295QModelIndex QFileSystemModelPrivate::index(const QFileSystemModelPrivate::QFileSystemNode *node, int column) const-
296{-
297 const QFileSystemModel * const q = q_func();-
298 QFileSystemModelPrivate::QFileSystemNode *parentNode = (node
nodeDescription
TRUEnever evaluated
FALSEnever evaluated
? node->parent : 0);
0
299 if (node == &root
node == &rootDescription
TRUEnever evaluated
FALSEnever evaluated
|| !parentNode
!parentNodeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
300 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
301-
302-
303 ((!(node)) ? qt_assert("node",__FILE__,586) : qt_noop());-
304 if (!node->isVisible
!node->isVisibleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
305 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
306-
307 int visualRow = translateVisibleLocation(parentNode, parentNode->visibleLocation(node->fileName));-
308 return
never executed: return q->createIndex(visualRow, column, const_cast<QFileSystemNode*>(node));
q->createIndex(visualRow, column, const_cast<QFileSystemNode*>(node));
never executed: return q->createIndex(visualRow, column, const_cast<QFileSystemNode*>(node));
0
309}-
310-
311-
312-
313-
314bool QFileSystemModel::hasChildren(const QModelIndex &parent) const-
315{-
316 const QFileSystemModelPrivate * const d = d_func();-
317 if (parent.column() > 0
parent.column() > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
318 return
never executed: return false;
false;
never executed: return false;
0
319-
320 if (!parent.isValid()
!parent.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
321 return
never executed: return true;
true;
never executed: return true;
0
322-
323 const QFileSystemModelPrivate::QFileSystemNode *indexNode = d->node(parent);-
324 ((!(indexNode)) ? qt_assert("indexNode",__FILE__,607) : qt_noop());-
325 return
never executed: return (indexNode->isDir());
(indexNode->isDir());
never executed: return (indexNode->isDir());
0
326}-
327-
328-
329-
330-
331bool QFileSystemModel::canFetchMore(const QModelIndex &parent) const-
332{-
333 const QFileSystemModelPrivate * const d = d_func();-
334 const QFileSystemModelPrivate::QFileSystemNode *indexNode = d->node(parent);-
335 return
never executed: return (!indexNode->populatedChildren);
(!indexNode->populatedChildren);
never executed: return (!indexNode->populatedChildren);
0
336}-
337-
338-
339-
340-
341void QFileSystemModel::fetchMore(const QModelIndex &parent)-
342{-
343 QFileSystemModelPrivate * const d = d_func();-
344 if (!d->setRootPath
!d->setRootPathDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
345 return;
never executed: return;
0
346 QFileSystemModelPrivate::QFileSystemNode *indexNode = d->node(parent);-
347 if (indexNode->populatedChildren
indexNode->populatedChildrenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
348 return;
never executed: return;
0
349 indexNode->populatedChildren = true;-
350-
351 d->fileInfoGatherer.list(filePath(parent));-
352-
353}
never executed: end of block
0
354-
355-
356-
357-
358int QFileSystemModel::rowCount(const QModelIndex &parent) const-
359{-
360 const QFileSystemModelPrivate * const d = d_func();-
361 if (parent.column() > 0
parent.column() > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
362 return
never executed: return 0;
0;
never executed: return 0;
0
363-
364 if (!parent.isValid()
!parent.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
365 return
never executed: return d->root.visibleChildren.count();
d->root.visibleChildren.count();
never executed: return d->root.visibleChildren.count();
0
366-
367 const QFileSystemModelPrivate::QFileSystemNode *parentNode = d->node(parent);-
368 return
never executed: return parentNode->visibleChildren.count();
parentNode->visibleChildren.count();
never executed: return parentNode->visibleChildren.count();
0
369}-
370-
371-
372-
373-
374int QFileSystemModel::columnCount(const QModelIndex &parent) const-
375{-
376 return
never executed: return (parent.column() > 0) ? 0 : QFileSystemModelPrivate::NumColumns;
(
(parent.column() > 0)Description
TRUEnever evaluated
FALSEnever evaluated
parent.column() > 0)
(parent.column() > 0)Description
TRUEnever evaluated
FALSEnever evaluated
? 0 : QFileSystemModelPrivate::NumColumns;
never executed: return (parent.column() > 0) ? 0 : QFileSystemModelPrivate::NumColumns;
0
377}-
378-
379-
380-
381-
382-
383-
384QVariant QFileSystemModel::myComputer(int role) const-
385{-
386-
387 const QFileSystemModelPrivate * const d = d_func();-
388-
389 switch (role) {-
390 case
never executed: case Qt::DisplayRole:
Qt::DisplayRole:
never executed: case Qt::DisplayRole:
0
391 return
never executed: return QFileSystemModelPrivate::myComputer();
QFileSystemModelPrivate::myComputer();
never executed: return QFileSystemModelPrivate::myComputer();
0
392-
393 case
never executed: case Qt::DecorationRole:
Qt::DecorationRole:
never executed: case Qt::DecorationRole:
0
394 return
never executed: return d->fileInfoGatherer.iconProvider()->icon(QFileIconProvider::Computer);
d->fileInfoGatherer.iconProvider()->icon(QFileIconProvider::Computer);
never executed: return d->fileInfoGatherer.iconProvider()->icon(QFileIconProvider::Computer);
0
395-
396 }-
397 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
398}-
399-
400-
401-
402-
403QVariant QFileSystemModel::data(const QModelIndex &index, int role) const-
404{-
405 const QFileSystemModelPrivate * const d = d_func();-
406 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
|| index.model() != this
index.model() != thisDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
407 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
408-
409 switch (role) {-
410 case
never executed: case Qt::EditRole:
Qt::EditRole:
never executed: case Qt::EditRole:
0
411 case
never executed: case Qt::DisplayRole:
Qt::DisplayRole:
never executed: case Qt::DisplayRole:
0
412 switch (index.column()) {-
413 case
never executed: case 0:
0:
never executed: case 0:
return
never executed: return d->displayName(index);
d->displayName(index);
never executed: return d->displayName(index);
0
414 case
never executed: case 1:
1:
never executed: case 1:
return
never executed: return d->size(index);
d->size(index);
never executed: return d->size(index);
0
415 case
never executed: case 2:
2:
never executed: case 2:
return
never executed: return d->type(index);
d->type(index);
never executed: return d->type(index);
0
416 case
never executed: case 3:
3:
never executed: case 3:
return
never executed: return d->time(index);
d->time(index);
never executed: return d->time(index);
0
417 default
never executed: default:
:
never executed: default:
0
418 QMessageLogger(__FILE__, 701, __PRETTY_FUNCTION__).warning("data: invalid display value column %d", index.column());-
419 break;
never executed: break;
0
420 }-
421 break;
never executed: break;
0
422 case
never executed: case FilePathRole:
FilePathRole:
never executed: case FilePathRole:
0
423 return
never executed: return filePath(index);
filePath(index);
never executed: return filePath(index);
0
424 case
never executed: case FileNameRole:
FileNameRole:
never executed: case FileNameRole:
0
425 return
never executed: return d->name(index);
d->name(index);
never executed: return d->name(index);
0
426 case
never executed: case Qt::DecorationRole:
Qt::DecorationRole:
never executed: case Qt::DecorationRole:
0
427 if (index.column() == 0
index.column() == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
428 QIcon icon = d->icon(index);-
429-
430 if (icon.isNull()
icon.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
431 if (d->node(index)->isDir()
d->node(index)->isDir()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
432 icon = d->fileInfoGatherer.iconProvider()->icon(QFileIconProvider::Folder);
never executed: icon = d->fileInfoGatherer.iconProvider()->icon(QFileIconProvider::Folder);
0
433 else-
434 icon = d->fileInfoGatherer.iconProvider()->icon(QFileIconProvider::File);
never executed: icon = d->fileInfoGatherer.iconProvider()->icon(QFileIconProvider::File);
0
435 }-
436-
437 return
never executed: return icon;
icon;
never executed: return icon;
0
438 }-
439 break;
never executed: break;
0
440 case
never executed: case Qt::TextAlignmentRole:
Qt::TextAlignmentRole:
never executed: case Qt::TextAlignmentRole:
0
441 if (index.column() == 1
index.column() == 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
442 return
never executed: return Qt::AlignRight;
Qt::AlignRight;
never executed: return Qt::AlignRight;
0
443 break;
never executed: break;
0
444 case
never executed: case FilePermissions:
FilePermissions:
never executed: case FilePermissions:
0
445 int p = permissions(index);-
446 return
never executed: return p;
p;
never executed: return p;
0
447 }-
448-
449 return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
450}-
451-
452-
453-
454-
455QString QFileSystemModelPrivate::size(const QModelIndex &index) const-
456{-
457 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
458 return
never executed: return QString();
QString();
never executed: return QString();
0
459 const QFileSystemNode *n = node(index);-
460 if (n->isDir()
n->isDir()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
461-
462-
463-
464 return
never executed: return QLatin1String("");
QLatin1String("");
never executed: return QLatin1String("");
0
465-
466-
467-
468-
469-
470 }-
471 return
never executed: return size(n->size());
size(n->size());
never executed: return size(n->size());
0
472}-
473-
474QString QFileSystemModelPrivate::size(qint64 bytes)-
475{-
476-
477-
478 const qint64 kb = 1024;-
479 const qint64 mb = 1024 * kb;-
480 const qint64 gb = 1024 * mb;-
481 const qint64 tb = 1024 * gb;-
482 if (bytes >= tb
bytes >= tbDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
483 return
never executed: return QFileSystemModel::tr("%1 TB").arg(QLocale().toString(qreal(bytes) / tb, 'f', 3));
QFileSystemModel::tr("%1 TB").arg(QLocale().toString(qreal(bytes) / tb, 'f', 3));
never executed: return QFileSystemModel::tr("%1 TB").arg(QLocale().toString(qreal(bytes) / tb, 'f', 3));
0
484 if (bytes >= gb
bytes >= gbDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
485 return
never executed: return QFileSystemModel::tr("%1 GB").arg(QLocale().toString(qreal(bytes) / gb, 'f', 2));
QFileSystemModel::tr("%1 GB").arg(QLocale().toString(qreal(bytes) / gb, 'f', 2));
never executed: return QFileSystemModel::tr("%1 GB").arg(QLocale().toString(qreal(bytes) / gb, 'f', 2));
0
486 if (bytes >= mb
bytes >= mbDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
487 return
never executed: return QFileSystemModel::tr("%1 MB").arg(QLocale().toString(qreal(bytes) / mb, 'f', 1));
QFileSystemModel::tr("%1 MB").arg(QLocale().toString(qreal(bytes) / mb, 'f', 1));
never executed: return QFileSystemModel::tr("%1 MB").arg(QLocale().toString(qreal(bytes) / mb, 'f', 1));
0
488 if (bytes >= kb
bytes >= kbDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
489 return
never executed: return QFileSystemModel::tr("%1 KB").arg(QLocale().toString(bytes / kb));
QFileSystemModel::tr("%1 KB").arg(QLocale().toString(bytes / kb));
never executed: return QFileSystemModel::tr("%1 KB").arg(QLocale().toString(bytes / kb));
0
490 return
never executed: return QFileSystemModel::tr("%1 bytes").arg(QLocale().toString(bytes));
QFileSystemModel::tr("%1 bytes").arg(QLocale().toString(bytes));
never executed: return QFileSystemModel::tr("%1 bytes").arg(QLocale().toString(bytes));
0
491}-
492-
493-
494-
495-
496QString QFileSystemModelPrivate::time(const QModelIndex &index) const-
497{-
498 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
499 return
never executed: return QString();
QString();
never executed: return QString();
0
500-
501 return
never executed: return node(index)->lastModified().toString(Qt::SystemLocaleDate);
node(index)->lastModified().toString(Qt::SystemLocaleDate);
never executed: return node(index)->lastModified().toString(Qt::SystemLocaleDate);
0
502-
503-
504-
505-
506}-
507-
508-
509-
510-
511QString QFileSystemModelPrivate::type(const QModelIndex &index) const-
512{-
513 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
514 return
never executed: return QString();
QString();
never executed: return QString();
0
515 return
never executed: return node(index)->type();
node(index)->type();
never executed: return node(index)->type();
0
516}-
517-
518-
519-
520-
521QString QFileSystemModelPrivate::name(const QModelIndex &index) const-
522{-
523 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
524 return
never executed: return QString();
QString();
never executed: return QString();
0
525 QFileSystemNode *dirNode = node(index);-
526 if (-
527-
528 fileInfoGatherer.resolveSymlinks()
fileInfoGather...olveSymlinks()Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
529-
530 !resolvedSymLinks.isEmpty()
!resolvedSymLinks.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
&& dirNode->isSymLink( true)
dirNode->isSymLink( true)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
531 QString fullPath = QDir::fromNativeSeparators(filePath(index));-
532 return
never executed: return resolvedSymLinks.value(fullPath, dirNode->fileName);
resolvedSymLinks.value(fullPath, dirNode->fileName);
never executed: return resolvedSymLinks.value(fullPath, dirNode->fileName);
0
533 }-
534 return
never executed: return dirNode->fileName;
dirNode->fileName;
never executed: return dirNode->fileName;
0
535}-
536-
537-
538-
539-
540QString QFileSystemModelPrivate::displayName(const QModelIndex &index) const-
541{-
542-
543-
544-
545-
546-
547 return
never executed: return name(index);
name(index);
never executed: return name(index);
0
548}-
549-
550-
551-
552-
553QIcon QFileSystemModelPrivate::icon(const QModelIndex &index) const-
554{-
555 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
556 return
never executed: return QIcon();
QIcon();
never executed: return QIcon();
0
557 return
never executed: return node(index)->icon();
node(index)->icon();
never executed: return node(index)->icon();
0
558}-
559-
560-
561-
562-
563bool QFileSystemModel::setData(const QModelIndex &idx, const QVariant &value, int role)-
564{-
565 QFileSystemModelPrivate * const d = d_func();-
566 if (!idx.isValid()
!idx.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
0
567 || idx.column() != 0
idx.column() != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
568 || role != Qt::EditRole
role != Qt::EditRoleDescription
TRUEnever evaluated
FALSEnever evaluated
0
569 || (
(flags(idx) & ...Editable) == 0Description
TRUEnever evaluated
FALSEnever evaluated
flags(idx) & Qt::ItemIsEditable) == 0
(flags(idx) & ...Editable) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
570 return
never executed: return false;
false;
never executed: return false;
0
571 }-
572-
573 QString newName = value.toString();-
574 QString oldName = idx.data().toString();-
575 if (newName == idx.data().toString()
newName == idx...a().toString()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
576 return
never executed: return true;
true;
never executed: return true;
0
577-
578 const QString parentPath = filePath(parent(idx));-
579-
580 if (newName.isEmpty()
newName.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
0
581 || QDir::toNativeSeparators(newName).contains(QDir::separator())
QDir::toNative...::separator())Description
TRUEnever evaluated
FALSEnever evaluated
0
582 || !QDir(parentPath).rename(oldName, newName)
!QDir(parentPa...Name, newName)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
583-
584 QMessageBox::information(0, QFileSystemModel::tr("Invalid filename"),-
585 QFileSystemModel::tr("<b>The name \"%1\" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks.")-
586 .arg(newName),-
587 QMessageBox::Ok);-
588-
589 return
never executed: return false;
false;
never executed: return false;
0
590 } else {-
591 QFileSystemModelPrivate::QFileSystemNode *indexNode = d->node(idx);-
592 QFileSystemModelPrivate::QFileSystemNode *parentNode = indexNode->parent;-
593 int visibleLocation = parentNode->visibleLocation(parentNode->children.value(indexNode->fileName)->fileName);-
594-
595 parentNode->visibleChildren.removeAt(visibleLocation);-
596 QFileSystemModelPrivate::QFileSystemNode * oldValue = parentNode->children.value(oldName);-
597 parentNode->children[newName] = oldValue;-
598 oldValue->fileName = newName;-
599 oldValue->parent = parentNode;-
600-
601 oldValue->populate(d->fileInfoGatherer.getInfo(QFileInfo(parentPath, newName)));-
602-
603 oldValue->isVisible = true;-
604-
605 parentNode->children.remove(oldName);-
606 parentNode->visibleChildren.insert(visibleLocation, newName);-
607-
608 d->delayedSort();-
609 fileRenamed(parentPath, oldName, newName);-
610 }
never executed: end of block
0
611 return
never executed: return true;
true;
never executed: return true;
0
612}-
613-
614-
615-
616-
617QVariant QFileSystemModel::headerData(int section, Qt::Orientation orientation, int role) const-
618{-
619 switch (role) {-
620 case
never executed: case Qt::DecorationRole:
Qt::DecorationRole:
never executed: case Qt::DecorationRole:
0
621 if (section == 0
section == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
622-
623-
624 QImage pixmap(16, 1, QImage::Format_Mono);-
625 pixmap.fill(0);-
626 pixmap.setAlphaChannel(pixmap.createAlphaMask());-
627 return
never executed: return pixmap;
pixmap;
never executed: return pixmap;
0
628 }-
629 break;
never executed: break;
0
630 case
never executed: case Qt::TextAlignmentRole:
Qt::TextAlignmentRole:
never executed: case Qt::TextAlignmentRole:
0
631 return
never executed: return Qt::AlignLeft;
Qt::AlignLeft;
never executed: return Qt::AlignLeft;
0
632 }-
633-
634 if (orientation != Qt::Horizontal
orientation != Qt::HorizontalDescription
TRUEnever evaluated
FALSEnever evaluated
|| role != Qt::DisplayRole
role != Qt::DisplayRoleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
635 return
never executed: return QAbstractItemModel::headerData(section, orientation, role);
QAbstractItemModel::headerData(section, orientation, role);
never executed: return QAbstractItemModel::headerData(section, orientation, role);
0
636-
637 QString returnValue;-
638 switch (section) {-
639 case
never executed: case 0:
0:
never executed: case 0:
returnValue = tr("Name");
0
640 break;
never executed: break;
0
641 case
never executed: case 1:
1:
never executed: case 1:
returnValue = tr("Size");
0
642 break;
never executed: break;
0
643 case
never executed: case 2:
2:
never executed: case 2:
returnValue =
0
644-
645-
646-
647 tr("Type", "All other platforms");-
648-
649 break;
never executed: break;
0
650-
651-
652-
653-
654 case
never executed: case 3:
3:
never executed: case 3:
returnValue = tr("Date Modified");
0
655 break;
never executed: break;
0
656 default
never executed: default:
:
never executed: default:
return
never executed: return QVariant();
QVariant();
never executed: return QVariant();
0
657 }-
658 return
never executed: return returnValue;
returnValue;
never executed: return returnValue;
0
659}-
660-
661-
662-
663-
664Qt::ItemFlags QFileSystemModel::flags(const QModelIndex &index) const-
665{-
666 const QFileSystemModelPrivate * const d = d_func();-
667 Qt::ItemFlags flags = QAbstractItemModel::flags(index);-
668 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
669 return
never executed: return flags;
flags;
never executed: return flags;
0
670-
671 QFileSystemModelPrivate::QFileSystemNode *indexNode = d->node(index);-
672 if (d->nameFilterDisables
d->nameFilterDisablesDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->passNameFilters(indexNode)
!d->passNameFilters(indexNode)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
673 flags &= ~Qt::ItemIsEnabled;-
674-
675 return
never executed: return flags;
flags;
never executed: return flags;
0
676 }-
677-
678 flags |= Qt::ItemIsDragEnabled;-
679 if (d->readOnly
d->readOnlyDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
680 return
never executed: return flags;
flags;
never executed: return flags;
0
681 if ((
(index.column() == 0)Description
TRUEnever evaluated
FALSEnever evaluated
index.column() == 0)
(index.column() == 0)Description
TRUEnever evaluated
FALSEnever evaluated
&& indexNode->permissions() & QFile::WriteUser
indexNode->per...ile::WriteUserDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
682 flags |= Qt::ItemIsEditable;-
683 if (indexNode->isDir()
indexNode->isDir()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
684 flags |= Qt::ItemIsDropEnabled;
never executed: flags |= Qt::ItemIsDropEnabled;
0
685 else-
686 flags |= Qt::ItemNeverHasChildren;
never executed: flags |= Qt::ItemNeverHasChildren;
0
687 }-
688 return
never executed: return flags;
flags;
never executed: return flags;
0
689}-
690-
691-
692-
693-
694void QFileSystemModelPrivate::_q_performDelayedSort()-
695{-
696 QFileSystemModel * const q = q_func();-
697 q->sort(sortColumn, sortOrder);-
698}
never executed: end of block
0
699-
700-
701-
702-
703-
704-
705class QFileSystemModelSorter-
706{-
707public:-
708 inline QFileSystemModelSorter(int column) : sortColumn(column)-
709 {-
710 naturalCompare.setNumericMode(true);-
711 naturalCompare.setCaseSensitivity(Qt::CaseInsensitive);-
712 }
never executed: end of block
0
713-
714 bool compareNodes(const QFileSystemModelPrivate::QFileSystemNode *l,-
715 const QFileSystemModelPrivate::QFileSystemNode *r) const-
716 {-
717 switch (sortColumn) {-
718 case
never executed: case 0:
0:
never executed: case 0:
{
0
719-
720-
721 bool left = l->isDir();-
722 bool right = r->isDir();-
723 if (left ^ right
left ^ rightDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
724 return
never executed: return left;
left;
never executed: return left;
0
725-
726 return
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
naturalCompare.compare(l->fileName, r->fileName) < 0;
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
0
727 }-
728 case
never executed: case 1:
1:
never executed: case 1:
0
729 {-
730-
731 bool left = l->isDir();-
732 bool right = r->isDir();-
733 if (left ^ right
left ^ rightDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
734 return
never executed: return left;
left;
never executed: return left;
0
735-
736 qint64 sizeDifference = l->size() - r->size();-
737 if (sizeDifference == 0
sizeDifference == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
738 return
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
naturalCompare.compare(l->fileName, r->fileName) < 0;
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
0
739-
740 return
never executed: return sizeDifference < 0;
sizeDifference < 0;
never executed: return sizeDifference < 0;
0
741 }-
742 case
never executed: case 2:
2:
never executed: case 2:
0
743 {-
744 int compare = naturalCompare.compare(l->type(), r->type());-
745 if (compare == 0
compare == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
746 return
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
naturalCompare.compare(l->fileName, r->fileName) < 0;
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
0
747-
748 return
never executed: return compare < 0;
compare < 0;
never executed: return compare < 0;
0
749 }-
750 case
never executed: case 3:
3:
never executed: case 3:
0
751 {-
752 if (l->lastModified() == r->lastModified()
l->lastModifie...lastModified()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
753 return
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
naturalCompare.compare(l->fileName, r->fileName) < 0;
never executed: return naturalCompare.compare(l->fileName, r->fileName) < 0;
0
754-
755 return
never executed: return l->lastModified() < r->lastModified();
l->lastModified() < r->lastModified();
never executed: return l->lastModified() < r->lastModified();
0
756 }-
757 }-
758 ((!(false)) ? qt_assert("false",__FILE__,1051) : qt_noop());-
759 return
never executed: return false;
false;
never executed: return false;
0
760 }-
761-
762 bool operator()(const QFileSystemModelPrivate::QFileSystemNode *l,-
763 const QFileSystemModelPrivate::QFileSystemNode *r) const-
764 {-
765 return
never executed: return compareNodes(l, r);
compareNodes(l, r);
never executed: return compareNodes(l, r);
0
766 }-
767-
768-
769private:-
770 QCollator naturalCompare;-
771 int sortColumn;-
772};-
773-
774-
775-
776-
777-
778-
779void QFileSystemModelPrivate::sortChildren(int column, const QModelIndex &parent)-
780{-
781 QFileSystemModel * const q = q_func();-
782 QFileSystemModelPrivate::QFileSystemNode *indexNode = node(parent);-
783 if (indexNode->children.count() == 0
indexNode->chi...n.count() == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
784 return;
never executed: return;
0
785-
786 QVector<QFileSystemModelPrivate::QFileSystemNode*> values;-
787 QHash<QString, QFileSystemNode *>::const_iterator iterator;-
788 for(iterator = indexNode->children.constBegin() ; iterator != indexNode->children.constEnd()
iterator != in...ren.constEnd()Description
TRUEnever evaluated
FALSEnever evaluated
; ++iterator) {
0
789 if (filtersAcceptsNode(iterator.value())
filtersAccepts...rator.value())Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
790 values.append(iterator.value());-
791 }
never executed: end of block
else {
0
792 iterator.value()->isVisible = false;-
793 }
never executed: end of block
0
794 }-
795 QFileSystemModelSorter ms(column);-
796 std::sort(values.begin(), values.end(), ms);-
797-
798 indexNode->visibleChildren.clear();-
799-
800 indexNode->dirtyChildrenIndex = -1;-
801 const int numValues = values.count();-
802 indexNode->visibleChildren.reserve(numValues);-
803 for (int i = 0; i < numValues
i < numValuesDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
804 indexNode->visibleChildren.append(values.at(i)->fileName);-
805 values.at(i)->isVisible = true;-
806 }
never executed: end of block
0
807-
808 if (!disableRecursiveSort
!disableRecursiveSortDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
809 for (int i = 0; i < q->rowCount(parent)
i < q->rowCount(parent)Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
810 const QModelIndex childIndex = q->index(i, 0, parent);-
811 QFileSystemModelPrivate::QFileSystemNode *indexNode = node(childIndex);-
812-
813 if (indexNode->isVisible
indexNode->isVisibleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
814 sortChildren(column, childIndex);
never executed: sortChildren(column, childIndex);
0
815 }
never executed: end of block
0
816 }
never executed: end of block
0
817}
never executed: end of block
0
818-
819-
820-
821-
822void QFileSystemModel::sort(int column, Qt::SortOrder order)-
823{-
824 QFileSystemModelPrivate * const d = d_func();-
825 if (d->sortOrder == order
d->sortOrder == orderDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->sortColumn == column
d->sortColumn == columnDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->forceSort
!d->forceSortDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
826 return;
never executed: return;
0
827-
828 layoutAboutToBeChanged();-
829 QModelIndexList oldList = persistentIndexList();-
830 QVector<QPair<QFileSystemModelPrivate::QFileSystemNode*, int> > oldNodes;-
831 const int nodeCount = oldList.count();-
832 oldNodes.reserve(nodeCount);-
833 for (int i = 0; i < nodeCount
i < nodeCountDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
834 const QModelIndex &oldNode = oldList.at(i);-
835 QPair<QFileSystemModelPrivate::QFileSystemNode*, int> pair(d->node(oldNode), oldNode.column());-
836 oldNodes.append(pair);-
837 }
never executed: end of block
0
838-
839 if (!(d->sortColumn == column
d->sortColumn == columnDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->sortOrder != order
d->sortOrder != orderDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->forceSort
!d->forceSortDescription
TRUEnever evaluated
FALSEnever evaluated
)) {
0
840-
841 d->sortChildren(column, index(rootPath()));-
842 d->sortColumn = column;-
843 d->forceSort = false;-
844 }
never executed: end of block
0
845 d->sortOrder = order;-
846-
847 QModelIndexList newList;-
848 const int numOldNodes = oldNodes.size();-
849 newList.reserve(numOldNodes);-
850 for (int i = 0; i < numOldNodes
i < numOldNodesDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
851 const QPair<QFileSystemModelPrivate::QFileSystemNode*, int> &oldNode = oldNodes.at(i);-
852 newList.append(d->index(oldNode.first, oldNode.second));-
853 }
never executed: end of block
0
854 changePersistentIndexList(oldList, newList);-
855 layoutChanged();-
856}
never executed: end of block
0
857-
858-
859-
860-
861-
862QStringList QFileSystemModel::mimeTypes() const-
863{-
864 return
never executed: return QStringList(QLatin1String("text/uri-list"));
QStringList(QLatin1String("text/uri-list"));
never executed: return QStringList(QLatin1String("text/uri-list"));
0
865}-
866QMimeData *QFileSystemModel::mimeData(const QModelIndexList &indexes) const-
867{-
868 QList<QUrl> urls;-
869 QList<QModelIndex>::const_iterator it = indexes.begin();-
870 for (; it != indexes.end()
it != indexes.end()Description
TRUEnever evaluated
FALSEnever evaluated
; ++it)
0
871 if ((*
(*it).column() == 0Description
TRUEnever evaluated
FALSEnever evaluated
it).column() == 0
(*it).column() == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
872 urls << QUrl::fromLocalFile(filePath(*it));
never executed: urls << QUrl::fromLocalFile(filePath(*it));
0
873 QMimeData *data = new QMimeData();-
874 data->setUrls(urls);-
875 return
never executed: return data;
data;
never executed: return data;
0
876}-
877bool QFileSystemModel::dropMimeData(const QMimeData *data, Qt::DropAction action,-
878 int row, int column, const QModelIndex &parent)-
879{-
880 (void)row;;-
881 (void)column;;-
882 if (!parent.isValid()
!parent.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
|| isReadOnly()
isReadOnly()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
883 return
never executed: return false;
false;
never executed: return false;
0
884-
885 bool success = true;-
886 QString to = filePath(parent) + QDir::separator();-
887-
888 QList<QUrl> urls = data->urls();-
889 QList<QUrl>::const_iterator it = urls.constBegin();-
890-
891 switch (action) {-
892 case
never executed: case Qt::CopyAction:
Qt::CopyAction:
never executed: case Qt::CopyAction:
0
893 for (; it != urls.constEnd()
it != urls.constEnd()Description
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
894 QString path = (*it).toLocalFile();-
895 success = QFile::copy(path, to + QFileInfo(path).fileName())
QFile::copy(pa...h).fileName())Description
TRUEnever evaluated
FALSEnever evaluated
&& success
successDescription
TRUEnever evaluated
FALSEnever evaluated
;
0
896 }
never executed: end of block
0
897 break;
never executed: break;
0
898 case
never executed: case Qt::LinkAction:
Qt::LinkAction:
never executed: case Qt::LinkAction:
0
899 for (; it != urls.constEnd()
it != urls.constEnd()Description
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
900 QString path = (*it).toLocalFile();-
901 success = QFile::link(path, to + QFileInfo(path).fileName())
QFile::link(pa...h).fileName())Description
TRUEnever evaluated
FALSEnever evaluated
&& success
successDescription
TRUEnever evaluated
FALSEnever evaluated
;
0
902 }
never executed: end of block
0
903 break;
never executed: break;
0
904 case
never executed: case Qt::MoveAction:
Qt::MoveAction:
never executed: case Qt::MoveAction:
0
905 for (; it != urls.constEnd()
it != urls.constEnd()Description
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
906 QString path = (*it).toLocalFile();-
907 success = QFile::rename(path, to + QFileInfo(path).fileName())
QFile::rename(...h).fileName())Description
TRUEnever evaluated
FALSEnever evaluated
&& success
successDescription
TRUEnever evaluated
FALSEnever evaluated
;
0
908 }
never executed: end of block
0
909 break;
never executed: break;
0
910 default
never executed: default:
:
never executed: default:
0
911 return
never executed: return false;
false;
never executed: return false;
0
912 }-
913-
914 return
never executed: return success;
success;
never executed: return success;
0
915}-
916-
917-
918-
919-
920Qt::DropActions QFileSystemModel::supportedDropActions() const-
921{-
922 return
never executed: return Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
never executed: return Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
0
923}-
924-
925-
926-
927-
928-
929QString QFileSystemModel::filePath(const QModelIndex &index) const-
930{-
931 const QFileSystemModelPrivate * const d = d_func();-
932 QString fullPath = d->filePath(index);-
933 QFileSystemModelPrivate::QFileSystemNode *dirNode = d->node(index);-
934 if (dirNode->isSymLink()
dirNode->isSymLink()Description
TRUEnever evaluated
FALSEnever evaluated
0
935-
936 && d->fileInfoGatherer.resolveSymlinks()
d->fileInfoGat...olveSymlinks()Description
TRUEnever evaluated
FALSEnever evaluated
0
937-
938 && d->resolvedSymLinks.contains(fullPath)
d->resolvedSym...ains(fullPath)Description
TRUEnever evaluated
FALSEnever evaluated
0
939 && dirNode->isDir()
dirNode->isDir()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
940 QFileInfo resolvedInfo(fullPath);-
941 resolvedInfo = resolvedInfo.canonicalFilePath();-
942 if (resolvedInfo.exists()
resolvedInfo.exists()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
943 return
never executed: return resolvedInfo.filePath();
resolvedInfo.filePath();
never executed: return resolvedInfo.filePath();
0
944 }
never executed: end of block
0
945 return
never executed: return fullPath;
fullPath;
never executed: return fullPath;
0
946}-
947-
948QString QFileSystemModelPrivate::filePath(const QModelIndex &index) const-
949{-
950 const QFileSystemModel * const q = q_func();-
951 (void)q;;-
952 if (!index.isValid()
!index.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
953 return
never executed: return QString();
QString();
never executed: return QString();
0
954 ((!(index.model() == q)) ? qt_assert("index.model() == q",__FILE__,1264) : qt_noop());-
955-
956 QStringList path;-
957 QModelIndex idx = index;-
958 while (idx.isValid()
idx.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
959 QFileSystemModelPrivate::QFileSystemNode *dirNode = node(idx);-
960 if (dirNode
dirNodeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
961 path.prepend(dirNode->fileName);
never executed: path.prepend(dirNode->fileName);
0
962 idx = idx.parent();-
963 }
never executed: end of block
0
964 QString fullPath = QDir::fromNativeSeparators(path.join(QDir::separator()));-
965-
966 if ((
(fullPath.length() > 2)Description
TRUEnever evaluated
FALSEnever evaluated
fullPath.length() > 2)
(fullPath.length() > 2)Description
TRUEnever evaluated
FALSEnever evaluated
&& fullPath[0] == QLatin1Char('/')
fullPath[0] ==...atin1Char('/')Description
TRUEnever evaluated
FALSEnever evaluated
&& fullPath[1] == QLatin1Char('/')
fullPath[1] ==...atin1Char('/')Description
TRUEnever evaluated
FALSEnever evaluated
)
0
967 fullPath = fullPath.mid(1);
never executed: fullPath = fullPath.mid(1);
0
968-
969-
970-
971-
972-
973 return
never executed: return fullPath;
fullPath;
never executed: return fullPath;
0
974}-
975-
976-
977-
978-
979QModelIndex QFileSystemModel::mkdir(const QModelIndex &parent, const QString &name)-
980{-
981 QFileSystemModelPrivate * const d = d_func();-
982 if (!parent.isValid()
!parent.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
983 return
never executed: return parent;
parent;
never executed: return parent;
0
984-
985 QDir dir(filePath(parent));-
986 if (!dir.mkdir(name)
!dir.mkdir(name)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
987 return
never executed: return QModelIndex();
QModelIndex();
never executed: return QModelIndex();
0
988 QFileSystemModelPrivate::QFileSystemNode *parentNode = d->node(parent);-
989 d->addNode(parentNode, name, QFileInfo());-
990 ((!(parentNode->children.contains(name))) ? qt_assert("parentNode->children.contains(name)",__FILE__,1300) : qt_noop());-
991 QFileSystemModelPrivate::QFileSystemNode *node = parentNode->children[name];-
992-
993 node->populate(d->fileInfoGatherer.getInfo(QFileInfo(dir.absolutePath() + QDir::separator() + name)));-
994-
995 d->addVisibleFiles(parentNode, QStringList(name));-
996 return
never executed: return d->index(node);
d->index(node);
never executed: return d->index(node);
0
997}-
998-
999-
1000-
1001-
1002QFile::Permissions QFileSystemModel::permissions(const QModelIndex &index) const-
1003{-
1004 const QFileSystemModelPrivate * const d = d_func();-
1005 return
never executed: return d->node(index)->permissions();
d->node(index)->permissions();
never executed: return d->node(index)->permissions();
0
1006}-
1007QModelIndex QFileSystemModel::setRootPath(const QString &newPath)-
1008{-
1009 QFileSystemModelPrivate * const d = d_func();-
1010-
1011-
1012-
1013-
1014-
1015-
1016-
1017 QString longNewPath = newPath;-
1018-
1019 QDir newPathDir(longNewPath);-
1020-
1021 if (!newPath.isEmpty()
!newPath.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1022 longNewPath = QDir::cleanPath(longNewPath);-
1023 newPathDir.setPath(longNewPath);-
1024 }
never executed: end of block
0
1025-
1026 d->setRootPath = true;-
1027-
1028-
1029 if (!newPath.isEmpty()
!newPath.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
&& longNewPath.isEmpty()
longNewPath.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1030 return
never executed: return d->index(rootPath());
d->index(rootPath());
never executed: return d->index(rootPath());
0
1031-
1032 if (d->rootDir.path() == longNewPath
d->rootDir.pat...== longNewPathDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1033 return
never executed: return d->index(rootPath());
d->index(rootPath());
never executed: return d->index(rootPath());
0
1034-
1035 bool showDrives = (longNewPath.isEmpty()
longNewPath.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
|| longNewPath == d->myComputer()
longNewPath == d->myComputer()Description
TRUEnever evaluated
FALSEnever evaluated
);
0
1036 if (!showDrives
!showDrivesDescription
TRUEnever evaluated
FALSEnever evaluated
&& !newPathDir.exists()
!newPathDir.exists()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1037 return
never executed: return d->index(rootPath());
d->index(rootPath());
never executed: return d->index(rootPath());
0
1038-
1039-
1040 if (!rootPath().isEmpty()
!rootPath().isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
&& rootPath() != QLatin1String(".")
rootPath() != ...in1String(".")Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1041-
1042-
1043 d->fileInfoGatherer.removePath(rootPath());-
1044-
1045-
1046-
1047-
1048 d->node(rootPath())->populatedChildren = false;-
1049 }
never executed: end of block
0
1050-
1051-
1052 d->rootDir = newPathDir;-
1053 QModelIndex newRootIndex;-
1054 if (showDrives
showDrivesDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1055-
1056 d->rootDir.setPath(QLatin1String(""));-
1057 }
never executed: end of block
else {
0
1058 newRootIndex = d->index(newPathDir.path());-
1059 }
never executed: end of block
0
1060 fetchMore(newRootIndex);-
1061 rootPathChanged(longNewPath);-
1062 d->forceSort = true;-
1063 d->delayedSort();-
1064 return
never executed: return newRootIndex;
newRootIndex;
never executed: return newRootIndex;
0
1065}-
1066-
1067-
1068-
1069-
1070-
1071-
1072QString QFileSystemModel::rootPath() const-
1073{-
1074 const QFileSystemModelPrivate * const d = d_func();-
1075 return
never executed: return d->rootDir.path();
d->rootDir.path();
never executed: return d->rootDir.path();
0
1076}-
1077-
1078-
1079-
1080-
1081-
1082-
1083QDir QFileSystemModel::rootDirectory() const-
1084{-
1085 const QFileSystemModelPrivate * const d = d_func();-
1086 QDir dir(d->rootDir);-
1087 dir.setNameFilters(nameFilters());-
1088 dir.setFilter(filter());-
1089 return
never executed: return dir;
dir;
never executed: return dir;
0
1090}-
1091-
1092-
1093-
1094-
1095void QFileSystemModel::setIconProvider(QFileIconProvider *provider)-
1096{-
1097 QFileSystemModelPrivate * const d = d_func();-
1098-
1099 d->fileInfoGatherer.setIconProvider(provider);-
1100-
1101 d->root.updateIcon(provider, QString());-
1102}
never executed: end of block
0
1103-
1104-
1105-
1106-
1107QFileIconProvider *QFileSystemModel::iconProvider() const-
1108{-
1109-
1110 const QFileSystemModelPrivate * const d = d_func();-
1111 return
never executed: return d->fileInfoGatherer.iconProvider();
d->fileInfoGatherer.iconProvider();
never executed: return d->fileInfoGatherer.iconProvider();
0
1112-
1113-
1114-
1115}-
1116void QFileSystemModel::setFilter(QDir::Filters filters)-
1117{-
1118 QFileSystemModelPrivate * const d = d_func();-
1119 if (d->filters == filters
d->filters == filtersDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1120 return;
never executed: return;
0
1121 d->filters = filters;-
1122-
1123 setNameFilters(nameFilters());-
1124 d->forceSort = true;-
1125 d->delayedSort();-
1126}
never executed: end of block
0
1127QDir::Filters QFileSystemModel::filter() const-
1128{-
1129 const QFileSystemModelPrivate * const d = d_func();-
1130 return
never executed: return d->filters;
d->filters;
never executed: return d->filters;
0
1131}-
1132void QFileSystemModel::setResolveSymlinks(bool enable)-
1133{-
1134-
1135 QFileSystemModelPrivate * const d = d_func();-
1136 d->fileInfoGatherer.setResolveSymlinks(enable);-
1137-
1138-
1139-
1140}
never executed: end of block
0
1141-
1142bool QFileSystemModel::resolveSymlinks() const-
1143{-
1144-
1145 const QFileSystemModelPrivate * const d = d_func();-
1146 return
never executed: return d->fileInfoGatherer.resolveSymlinks();
d->fileInfoGatherer.resolveSymlinks();
never executed: return d->fileInfoGatherer.resolveSymlinks();
0
1147-
1148-
1149-
1150}-
1151void QFileSystemModel::setReadOnly(bool enable)-
1152{-
1153 QFileSystemModelPrivate * const d = d_func();-
1154 d->readOnly = enable;-
1155}
never executed: end of block
0
1156-
1157bool QFileSystemModel::isReadOnly() const-
1158{-
1159 const QFileSystemModelPrivate * const d = d_func();-
1160 return
never executed: return d->readOnly;
d->readOnly;
never executed: return d->readOnly;
0
1161}-
1162-
1163-
1164-
1165-
1166-
1167-
1168-
1169void QFileSystemModel::setNameFilterDisables(bool enable)-
1170{-
1171 QFileSystemModelPrivate * const d = d_func();-
1172 if (d->nameFilterDisables == enable
d->nameFilterD...bles == enableDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1173 return;
never executed: return;
0
1174 d->nameFilterDisables = enable;-
1175 d->forceSort = true;-
1176 d->delayedSort();-
1177}
never executed: end of block
0
1178-
1179bool QFileSystemModel::nameFilterDisables() const-
1180{-
1181 const QFileSystemModelPrivate * const d = d_func();-
1182 return
never executed: return d->nameFilterDisables;
d->nameFilterDisables;
never executed: return d->nameFilterDisables;
0
1183}-
1184-
1185-
1186-
1187-
1188void QFileSystemModel::setNameFilters(const QStringList &filters)-
1189{-
1190-
1191-
1192 QFileSystemModelPrivate * const d = d_func();-
1193-
1194 if (!d->bypassFilters.isEmpty()
!d->bypassFilters.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1195-
1196 d->bypassFilters.clear();-
1197-
1198 QPersistentModelIndex root(index(rootPath()));-
1199 QModelIndexList persistantList = persistentIndexList();-
1200 for (int i = 0; i < persistantList.count()
i < persistantList.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1201 QFileSystemModelPrivate::QFileSystemNode *node;-
1202 node = d->node(persistantList.at(i));-
1203 while (node
nodeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1204 if (d->bypassFilters.contains(node)
d->bypassFilte...contains(node)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1205 break;
never executed: break;
0
1206 if (node->isDir()
node->isDir()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1207 d->bypassFilters[node] = true;
never executed: d->bypassFilters[node] = true;
0
1208 node = node->parent;-
1209 }
never executed: end of block
0
1210 }
never executed: end of block
0
1211 }
never executed: end of block
0
1212-
1213 d->nameFilters.clear();-
1214 const Qt::CaseSensitivity caseSensitive =-
1215 (
(filter() & QD...CaseSensitive)Description
TRUEnever evaluated
FALSEnever evaluated
filter() & QDir::CaseSensitive)
(filter() & QD...CaseSensitive)Description
TRUEnever evaluated
FALSEnever evaluated
? Qt::CaseSensitive : Qt::CaseInsensitive;
0
1216 for (int i = 0; i < filters.size()
i < filters.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1217 d->nameFilters << QRegExp(filters.at(i), caseSensitive, QRegExp::Wildcard);-
1218 }
never executed: end of block
0
1219 d->forceSort = true;-
1220 d->delayedSort();-
1221-
1222}
never executed: end of block
0
1223-
1224-
1225-
1226-
1227QStringList QFileSystemModel::nameFilters() const-
1228{-
1229 const QFileSystemModelPrivate * const d = d_func();-
1230 QStringList filters;-
1231-
1232 const int numNameFilters = d->nameFilters.size();-
1233 filters.reserve(numNameFilters);-
1234 for (int i = 0; i < numNameFilters
i < numNameFiltersDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1235 filters << d->nameFilters.at(i).pattern();-
1236 }
never executed: end of block
0
1237-
1238 return
never executed: return filters;
filters;
never executed: return filters;
0
1239}-
1240-
1241-
1242-
1243-
1244bool QFileSystemModel::event(QEvent *event)-
1245{-
1246-
1247 QFileSystemModelPrivate * const d = d_func();-
1248 if (event->type() == QEvent::LanguageChange
event->type() ...LanguageChangeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1249 d->root.retranslateStrings(d->fileInfoGatherer.iconProvider(), QString());-
1250 return
never executed: return true;
true;
never executed: return true;
0
1251 }-
1252-
1253 return
never executed: return QAbstractItemModel::event(event);
QAbstractItemModel::event(event);
never executed: return QAbstractItemModel::event(event);
0
1254}-
1255-
1256bool QFileSystemModel::rmdir(const QModelIndex &aindex)-
1257{-
1258 QString path = filePath(aindex);-
1259 const bool success = QDir().rmdir(path);-
1260-
1261 if (success
successDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1262 QFileSystemModelPrivate * d = const_cast<QFileSystemModelPrivate*>(d_func());-
1263 d->fileInfoGatherer.removePath(path);-
1264 }
never executed: end of block
0
1265-
1266 return
never executed: return success;
success;
never executed: return success;
0
1267}-
1268-
1269-
1270-
1271-
1272-
1273-
1274-
1275void QFileSystemModelPrivate::_q_directoryChanged(const QString &directory, const QStringList &files)-
1276{-
1277 QFileSystemModelPrivate::QFileSystemNode *parentNode = node(directory, false);-
1278 if (parentNode->children.count() == 0
parentNode->ch...n.count() == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1279 return;
never executed: return;
0
1280 QStringList toRemove;-
1281 QStringList newFiles = files;-
1282 std::sort(newFiles.begin(), newFiles.end());-
1283 QHash<QString, QFileSystemNode*>::const_iterator i = parentNode->children.constBegin();-
1284 while (i != parentNode->children.constEnd()
i != parentNod...ren.constEnd()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1285 QStringList::iterator iterator = std::lower_bound(newFiles.begin(), newFiles.end(), i.value()->fileName);-
1286 if ((
(iterator == newFiles.end())Description
TRUEnever evaluated
FALSEnever evaluated
iterator == newFiles.end())
(iterator == newFiles.end())Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(i.value()->fi...e < *iterator)Description
TRUEnever evaluated
FALSEnever evaluated
i.value()->fileName < *iterator)
(i.value()->fi...e < *iterator)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1287 toRemove.append(i.value()->fileName);
never executed: toRemove.append(i.value()->fileName);
0
1288-
1289 ++i;-
1290 }
never executed: end of block
0
1291 for (int i = 0 ; i < toRemove.count()
i < toRemove.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i )
0
1292 removeNode(parentNode, toRemove[i]);
never executed: removeNode(parentNode, toRemove[i]);
0
1293}
never executed: end of block
0
1294QFileSystemModelPrivate::QFileSystemNode* QFileSystemModelPrivate::addNode(QFileSystemNode *parentNode, const QString &fileName, const QFileInfo& info)-
1295{-
1296-
1297 QFileSystemModelPrivate::QFileSystemNode *node = new QFileSystemModelPrivate::QFileSystemNode(fileName, parentNode);-
1298-
1299 node->populate(info);-
1300 parentNode->children.insert(fileName, node);-
1301 return
never executed: return node;
node;
never executed: return node;
0
1302}-
1303void QFileSystemModelPrivate::removeNode(QFileSystemModelPrivate::QFileSystemNode *parentNode, const QString& name)-
1304{-
1305 QFileSystemModel * const q = q_func();-
1306 QModelIndex parent = index(parentNode);-
1307 bool indexHidden = isHiddenByFilter(parentNode, parent);-
1308-
1309 int vLocation = parentNode->visibleLocation(name);-
1310 if (vLocation >= 0
vLocation >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& !indexHidden
!indexHiddenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1311 q->beginRemoveRows(parent, translateVisibleLocation(parentNode, vLocation),
never executed: q->beginRemoveRows(parent, translateVisibleLocation(parentNode, vLocation), translateVisibleLocation(parentNode, vLocation));
0
1312 translateVisibleLocation(parentNode, vLocation));
never executed: q->beginRemoveRows(parent, translateVisibleLocation(parentNode, vLocation), translateVisibleLocation(parentNode, vLocation));
0
1313 QFileSystemNode * node = parentNode->children.take(name);-
1314 delete node;-
1315-
1316 if (vLocation >= 0
vLocation >= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1317 parentNode->visibleChildren.removeAt(vLocation);
never executed: parentNode->visibleChildren.removeAt(vLocation);
0
1318 if (vLocation >= 0
vLocation >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& !indexHidden
!indexHiddenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1319 q->endRemoveRows();
never executed: q->endRemoveRows();
0
1320}
never executed: end of block
0
1321void QFileSystemModelPrivate::addVisibleFiles(QFileSystemNode *parentNode, const QStringList &newFiles)-
1322{-
1323 QFileSystemModel * const q = q_func();-
1324 QModelIndex parent = index(parentNode);-
1325 bool indexHidden = isHiddenByFilter(parentNode, parent);-
1326 if (!indexHidden
!indexHiddenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1327 q->beginInsertRows(parent, parentNode->visibleChildren.count() , parentNode->visibleChildren.count() + newFiles.count() - 1);-
1328 }
never executed: end of block
0
1329-
1330 if (parentNode->dirtyChildrenIndex == -1
parentNode->di...renIndex == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1331 parentNode->dirtyChildrenIndex = parentNode->visibleChildren.count();
never executed: parentNode->dirtyChildrenIndex = parentNode->visibleChildren.count();
0
1332-
1333 for (int i = 0; i < newFiles.count()
i < newFiles.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1334 parentNode->visibleChildren.append(newFiles.at(i));-
1335 parentNode->children.value(newFiles.at(i))->isVisible = true;-
1336 }
never executed: end of block
0
1337 if (!indexHidden
!indexHiddenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1338 q->endInsertRows();
never executed: q->endInsertRows();
0
1339}
never executed: end of block
0
1340void QFileSystemModelPrivate::removeVisibleFile(QFileSystemNode *parentNode, int vLocation)-
1341{-
1342 QFileSystemModel * const q = q_func();-
1343 if (vLocation == -1
vLocation == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1344 return;
never executed: return;
0
1345 QModelIndex parent = index(parentNode);-
1346 bool indexHidden = isHiddenByFilter(parentNode, parent);-
1347 if (!indexHidden
!indexHiddenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1348 q->beginRemoveRows(parent, translateVisibleLocation(parentNode, vLocation),
never executed: q->beginRemoveRows(parent, translateVisibleLocation(parentNode, vLocation), translateVisibleLocation(parentNode, vLocation));
0
1349 translateVisibleLocation(parentNode, vLocation));
never executed: q->beginRemoveRows(parent, translateVisibleLocation(parentNode, vLocation), translateVisibleLocation(parentNode, vLocation));
0
1350 parentNode->children.value(parentNode->visibleChildren.at(vLocation))->isVisible = false;-
1351 parentNode->visibleChildren.removeAt(vLocation);-
1352 if (!indexHidden
!indexHiddenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1353 q->endRemoveRows();
never executed: q->endRemoveRows();
0
1354}
never executed: end of block
0
1355-
1356-
1357-
1358-
1359-
1360-
1361-
1362void QFileSystemModelPrivate::_q_fileSystemChanged(const QString &path, const QVector<QPair<QString, QFileInfo> > &updates)-
1363{-
1364-
1365 QFileSystemModel * const q = q_func();-
1366 QVector<QString> rowsToUpdate;-
1367 QStringList newFiles;-
1368 QFileSystemModelPrivate::QFileSystemNode *parentNode = node(path, false);-
1369 QModelIndex parentIndex = index(parentNode);-
1370 for (int i = 0; i < updates.count()
i < updates.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1371 QString fileName = updates.at(i).first;-
1372 ((!(!fileName.isEmpty())) ? qt_assert("!fileName.isEmpty()",__FILE__,1782) : qt_noop());-
1373 QExtendedInformation info = fileInfoGatherer.getInfo(updates.at(i).second);-
1374 bool previouslyHere = parentNode->children.contains(fileName);-
1375 if (!previouslyHere
!previouslyHereDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1376 addNode(parentNode, fileName, info.fileInfo());-
1377 }
never executed: end of block
0
1378 QFileSystemModelPrivate::QFileSystemNode * node = parentNode->children.value(fileName);-
1379 bool isCaseSensitive = parentNode->caseSensitive();-
1380 if (isCaseSensitive
isCaseSensitiveDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1381 if (node->fileName != fileName
node->fileName != fileNameDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1382 continue;
never executed: continue;
0
1383 }
never executed: end of block
else {
0
1384 if (QString::compare(node->fileName,fileName,Qt::CaseInsensitive) != 0
QString::compa...ensitive) != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1385 continue;
never executed: continue;
0
1386 }
never executed: end of block
0
1387 if (isCaseSensitive
isCaseSensitiveDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1388 ((!(node->fileName == fileName)) ? qt_assert("node->fileName == fileName",__FILE__,1798) : qt_noop());-
1389 }
never executed: end of block
else {
0
1390 node->fileName = fileName;-
1391 }
never executed: end of block
0
1392-
1393 if (*
*node != infoDescription
TRUEnever evaluated
FALSEnever evaluated
node != info
*node != infoDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1394 node->populate(info);-
1395 bypassFilters.remove(node);-
1396-
1397 if (filtersAcceptsNode(node)
filtersAcceptsNode(node)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1398 if (!node->isVisible
!node->isVisibleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1399 newFiles.append(fileName);-
1400 }
never executed: end of block
else {
0
1401 rowsToUpdate.append(fileName);-
1402 }
never executed: end of block
0
1403 } else {-
1404 if (node->isVisible
node->isVisibleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1405 int visibleLocation = parentNode->visibleLocation(fileName);-
1406 removeVisibleFile(parentNode, visibleLocation);-
1407 }
never executed: end of block
else {
0
1408-
1409 }
never executed: end of block
0
1410 }-
1411 }-
1412 }
never executed: end of block
0
1413-
1414-
1415 std::sort(rowsToUpdate.begin(), rowsToUpdate.end());-
1416 QString min;-
1417 QString max;-
1418 for (int i = 0; i < rowsToUpdate.count()
i < rowsToUpdate.count()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1419 QString value = rowsToUpdate.at(i);-
1420 max = value;-
1421 min = value;-
1422 int visibleMin = parentNode->visibleLocation(min);-
1423 int visibleMax = parentNode->visibleLocation(max);-
1424 if (visibleMin >= 0
visibleMin >= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
1425 && visibleMin < parentNode->visibleChildren.count()
visibleMin < p...ildren.count()Description
TRUEnever evaluated
FALSEnever evaluated
0
1426 && parentNode->visibleChildren.at(visibleMin) == min
parentNode->vi...bleMin) == minDescription
TRUEnever evaluated
FALSEnever evaluated
0
1427 && visibleMax >= 0
visibleMax >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1428 QModelIndex bottom = q->index(translateVisibleLocation(parentNode, visibleMin), 0, parentIndex);-
1429 QModelIndex top = q->index(translateVisibleLocation(parentNode, visibleMax), 3, parentIndex);-
1430 q->dataChanged(bottom, top);-
1431 }
never executed: end of block
0
1432-
1433-
1434-
1435 }
never executed: end of block
0
1436-
1437 if (newFiles.count() > 0
newFiles.count() > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1438 addVisibleFiles(parentNode, newFiles);-
1439 }
never executed: end of block
0
1440-
1441 if (newFiles.count() > 0
newFiles.count() > 0Description
TRUEnever evaluated
FALSEnever evaluated
|| (sortColumn != 0
sortColumn != 0Description
TRUEnever evaluated
FALSEnever evaluated
&& rowsToUpdate.count() > 0
rowsToUpdate.count() > 0Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0
1442 forceSort = true;-
1443 delayedSort();-
1444 }
never executed: end of block
0
1445-
1446-
1447-
1448-
1449}
never executed: end of block
0
1450-
1451-
1452-
1453-
1454void QFileSystemModelPrivate::_q_resolvedName(const QString &fileName, const QString &resolvedName)-
1455{-
1456 resolvedSymLinks[fileName] = resolvedName;-
1457}
never executed: end of block
0
1458-
1459-
1460-
1461-
1462void QFileSystemModelPrivate::init()-
1463{-
1464 QFileSystemModel * const q = q_func();-
1465 qRegisterMetaType<QVector<QPair<QString,QFileInfo> > >();-
1466-
1467 q->connect(&fileInfoGatherer, qFlagLocation("2""newListOfFiles(QString,QStringList)" "\0" __FILE__ ":" "1889"),-
1468 q, qFlagLocation("1""_q_directoryChanged(QString,QStringList)" "\0" __FILE__ ":" "1890"));-
1469 q->connect(&fileInfoGatherer, qFlagLocation("2""updates(QString,QVector<QPair<QString,QFileInfo> >)" "\0" __FILE__ ":" "1891"),-
1470 q, qFlagLocation("1""_q_fileSystemChanged(QString,QVector<QPair<QString,QFileInfo> >)" "\0" __FILE__ ":" "1892"));-
1471 q->connect(&fileInfoGatherer, qFlagLocation("2""nameResolved(QString,QString)" "\0" __FILE__ ":" "1893"),-
1472 q, qFlagLocation("1""_q_resolvedName(QString,QString)" "\0" __FILE__ ":" "1894"));-
1473 q->connect(&fileInfoGatherer, qFlagLocation("2""directoryLoaded(QString)" "\0" __FILE__ ":" "1895"),-
1474 q, qFlagLocation("2""directoryLoaded(QString)" "\0" __FILE__ ":" "1896"));-
1475-
1476 q->connect(&delayedSortTimer, qFlagLocation("2""timeout()" "\0" __FILE__ ":" "1898"), q, qFlagLocation("1""_q_performDelayedSort()" "\0" __FILE__ ":" "1898"), Qt::QueuedConnection);-
1477-
1478 roleNames.insertMulti(QFileSystemModel::FileIconRole, ([]() -> QByteArray { enum { Size = sizeof("fileIcon") - 1 }; static const QStaticByteArrayData<Size> qbytearray_literal = { { { { -1 } }, Size, 0, 0, sizeof(QByteArrayData) }, "fileIcon" }; QByteArrayDataPtr holder = { qbytearray_literal.data_ptr() }; const QByteArray ba(holder); return
never executed: return ba;
ba;
never executed: return ba;
}()));
0
1479 roleNames.insert(QFileSystemModel::FilePathRole, ([]() -> QByteArray { enum { Size = sizeof("filePath") - 1 }; static const QStaticByteArrayData<Size> qbytearray_literal = { { { { -1 } }, Size, 0, 0, sizeof(QByteArrayData) }, "filePath" }; QByteArrayDataPtr holder = { qbytearray_literal.data_ptr() }; const QByteArray ba(holder); return
never executed: return ba;
ba;
never executed: return ba;
}()));
0
1480 roleNames.insert(QFileSystemModel::FileNameRole, ([]() -> QByteArray { enum { Size = sizeof("fileName") - 1 }; static const QStaticByteArrayData<Size> qbytearray_literal = { { { { -1 } }, Size, 0, 0, sizeof(QByteArrayData) }, "fileName" }; QByteArrayDataPtr holder = { qbytearray_literal.data_ptr() }; const QByteArray ba(holder); return
never executed: return ba;
ba;
never executed: return ba;
}()));
0
1481 roleNames.insert(QFileSystemModel::FilePermissions, ([]() -> QByteArray { enum { Size = sizeof("filePermissions") - 1 }; static const QStaticByteArrayData<Size> qbytearray_literal = { { { { -1 } }, Size, 0, 0, sizeof(QByteArrayData) }, "filePermissions" }; QByteArrayDataPtr holder = { qbytearray_literal.data_ptr() }; const QByteArray ba(holder); return
never executed: return ba;
ba;
never executed: return ba;
}()));
0
1482}
never executed: end of block
0
1483bool QFileSystemModelPrivate::filtersAcceptsNode(const QFileSystemNode *node) const-
1484{-
1485-
1486 if (node->parent == &root
node->parent == &rootDescription
TRUEnever evaluated
FALSEnever evaluated
|| bypassFilters.contains(node)
bypassFilters.contains(node)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1487 return
never executed: return true;
true;
never executed: return true;
0
1488-
1489-
1490 if (!node->hasInformation()
!node->hasInformation()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1491 return
never executed: return false;
false;
never executed: return false;
0
1492-
1493 const bool filterPermissions = ((
(filters & QDi...ermissionMask)Description
TRUEnever evaluated
FALSEnever evaluated
filters & QDir::PermissionMask)
(filters & QDi...ermissionMask)Description
TRUEnever evaluated
FALSEnever evaluated
0
1494 && (
(filters & QDi...PermissionMaskDescription
TRUEnever evaluated
FALSEnever evaluated
filters & QDir::PermissionMask) != QDir::PermissionMask
(filters & QDi...PermissionMaskDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
1495 const bool hideDirs = !(filters & (QDir::Dirs | QDir::AllDirs));-
1496 const bool hideFiles = !(filters & QDir::Files);-
1497 const bool hideReadable = !(!filterPermissions
!filterPermissionsDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(filters & QDir::Readable)Description
TRUEnever evaluated
FALSEnever evaluated
filters & QDir::Readable)
(filters & QDir::Readable)Description
TRUEnever evaluated
FALSEnever evaluated
);
0
1498 const bool hideWritable = !(!filterPermissions
!filterPermissionsDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(filters & QDir::Writable)Description
TRUEnever evaluated
FALSEnever evaluated
filters & QDir::Writable)
(filters & QDir::Writable)Description
TRUEnever evaluated
FALSEnever evaluated
);
0
1499 const bool hideExecutable = !(!filterPermissions
!filterPermissionsDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(filters & QDir::Executable)Description
TRUEnever evaluated
FALSEnever evaluated
filters & QDir::Executable)
(filters & QDir::Executable)Description
TRUEnever evaluated
FALSEnever evaluated
);
0
1500 const bool hideHidden = !(filters & QDir::Hidden);-
1501 const bool hideSystem = !(filters & QDir::System);-
1502 const bool hideSymlinks = (filters & QDir::NoSymLinks);-
1503 const bool hideDot = (filters & QDir::NoDot);-
1504 const bool hideDotDot = (filters & QDir::NoDotDot);-
1505-
1506-
1507 bool isDot = (node->fileName == QLatin1String("."));-
1508 bool isDotDot = (node->fileName == QLatin1String(".."));-
1509 if ( (hideHidden
hideHiddenDescription
TRUEnever evaluated
FALSEnever evaluated
&& !(isDot
isDotDescription
TRUEnever evaluated
FALSEnever evaluated
|| isDotDot
isDotDotDescription
TRUEnever evaluated
FALSEnever evaluated
) && node->isHidden()
node->isHidden()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1510 || (hideSystem
hideSystemDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->isSystem()
node->isSystem()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1511 || (hideDirs
hideDirsDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->isDir()
node->isDir()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1512 || (hideFiles
hideFilesDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->isFile()
node->isFile()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1513 || (hideSymlinks
hideSymlinksDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->isSymLink()
node->isSymLink()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1514 || (hideReadable
hideReadableDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->isReadable()
node->isReadable()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1515 || (hideWritable
hideWritableDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->isWritable()
node->isWritable()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1516 || (hideExecutable
hideExecutableDescription
TRUEnever evaluated
FALSEnever evaluated
&& node->isExecutable()
node->isExecutable()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1517 || (hideDot
hideDotDescription
TRUEnever evaluated
FALSEnever evaluated
&& isDot
isDotDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1518 || (hideDotDot
hideDotDotDescription
TRUEnever evaluated
FALSEnever evaluated
&& isDotDot
isDotDotDescription
TRUEnever evaluated
FALSEnever evaluated
))
0
1519 return
never executed: return false;
false;
never executed: return false;
0
1520-
1521 return
never executed: return nameFilterDisables || passNameFilters(node);
nameFilterDisables
nameFilterDisablesDescription
TRUEnever evaluated
FALSEnever evaluated
|| passNameFilters(node)
passNameFilters(node)Description
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return nameFilterDisables || passNameFilters(node);
0
1522}-
1523-
1524-
1525-
1526-
1527-
1528-
1529bool QFileSystemModelPrivate::passNameFilters(const QFileSystemNode *node) const-
1530{-
1531-
1532 if (nameFilters.isEmpty()
nameFilters.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1533 return
never executed: return true;
true;
never executed: return true;
0
1534-
1535-
1536 if (!(node->isDir()
node->isDir()Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(filters & QDir::AllDirs)Description
TRUEnever evaluated
FALSEnever evaluated
filters & QDir::AllDirs)
(filters & QDir::AllDirs)Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0
1537 for (int i = 0; i < nameFilters.size()
i < nameFilters.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1538 QRegExp copy = nameFilters.at(i);-
1539 if (copy.exactMatch(node->fileName)
copy.exactMatc...ode->fileName)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1540 return
never executed: return true;
true;
never executed: return true;
0
1541 }
never executed: end of block
0
1542 return
never executed: return false;
false;
never executed: return false;
0
1543 }-
1544-
1545 return
never executed: return true;
true;
never executed: return true;
0
1546}-
1547-
1548-
1549-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9