Changeset View
Changeset View
Standalone View
Standalone View
krusader/FileSystem/defaultfilesystem.cpp
Context not available. | |||||
362 | QT_DIRENT* dirEnt; | 362 | QT_DIRENT* dirEnt; | ||
---|---|---|---|---|---|
363 | QString name; | 363 | QString name; | ||
364 | const bool showHidden = showHiddenFiles(); | 364 | const bool showHidden = showHiddenFiles(); | ||
365 | QSet<QString> hiddenFiles = filesInDotHidden(path); | ||||
365 | while ((dirEnt = QT_READDIR(dir)) != nullptr) { | 366 | while ((dirEnt = QT_READDIR(dir)) != nullptr) { | ||
366 | name = QString::fromLocal8Bit(dirEnt->d_name); | 367 | name = QString::fromLocal8Bit(dirEnt->d_name); | ||
367 | 368 | | |||
368 | // show hidden files? | 369 | // show hidden files? | ||
369 | if (!showHidden && name.left(1) == ".") continue; | 370 | if (!showHidden && name.left(1) == ".") continue; | ||
371 | // show file in .hidden file? | ||||
372 | if (!showHidden && hiddenFiles.contains(name)) continue; | ||||
370 | // we don't need the "." and ".." entries | 373 | // we don't need the "." and ".." entries | ||
371 | if (name == "." || name == "..") continue; | 374 | if (name == "." || name == "..") continue; | ||
372 | 375 | | |||
Context not available. | |||||
393 | return true; | 396 | return true; | ||
394 | } | 397 | } | ||
395 | 398 | | |||
399 | QSet<QString> DefaultFileSystem::filesInDotHidden(const QString &dir) | ||||
400 | { | ||||
401 | const QString path = dir + QLatin1String("/.hidden"); | ||||
402 | QFile dotHiddenFile(path); | ||||
403 | | ||||
404 | if (dotHiddenFile.exists()) { | ||||
405 | if (dotHiddenFile.open(QIODevice::ReadOnly | QIODevice::Text)) { | ||||
406 | QSet<QString> filesToHide; | ||||
407 | QTextStream stream(&dotHiddenFile); | ||||
408 | while (!stream.atEnd()) { | ||||
409 | QString name = stream.readLine(); | ||||
410 | if (!name.isEmpty()) { | ||||
411 | filesToHide.insert(name); | ||||
412 | } | ||||
413 | } | ||||
414 | return filesToHide; | ||||
415 | } | ||||
416 | } | ||||
417 | | ||||
418 | return QSet<QString>(); | ||||
419 | } | ||||
420 | | ||||
396 | FileItem *DefaultFileSystem::createLocalFileItem(const QString &name) | 421 | FileItem *DefaultFileSystem::createLocalFileItem(const QString &name) | ||
397 | { | 422 | { | ||
398 | return FileSystem::createLocalFileItem(name, _currentDirectory.path()); | 423 | return FileSystem::createLocalFileItem(name, _currentDirectory.path()); | ||
Context not available. |