Mercurial > dedupe
comparison DataController.cpp @ 10:ec87a79770ee
Use boost find, to work around problems with QDir.
| author | Tom Fredrik Blenning Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 23 Aug 2012 00:26:45 +0200 |
| parents | b5943e4bf676 |
| children | e60d6caceb62 |
comparison
equal
deleted
inserted
replaced
| 9:b5943e4bf676 | 10:ec87a79770ee |
|---|---|
| 26 #include <QtGui/QTreeWidget> | 26 #include <QtGui/QTreeWidget> |
| 27 | 27 |
| 28 #include <iostream> | 28 #include <iostream> |
| 29 #include <memory> | 29 #include <memory> |
| 30 | 30 |
| 31 #include <boost/filesystem.hpp> | |
| 32 | |
| 31 void DataController::findFiles(const QDir& dir, QStringList& list) | 33 void DataController::findFiles(const QDir& dir, QStringList& list) |
| 32 { | 34 { |
| 35 #if USE_BOOST_FIND | |
| 36 namespace fs = boost::filesystem; | |
| 37 fs::path someDir(dir.path().toStdString()); | |
| 38 fs::directory_iterator end_iter; | |
| 39 | |
| 40 if ( fs::exists(someDir) && fs::is_directory(someDir)) { | |
| 41 for( fs::directory_iterator dir_iter(someDir) ; dir_iter != end_iter ; ++dir_iter) { | |
| 42 if (fs::is_directory(dir_iter->status()) ) { | |
| 43 findFiles(QString::fromStdWString(dir_iter->path().wstring())); | |
| 44 } | |
| 45 if (fs::is_regular_file(dir_iter->status()) ) { | |
| 46 list << QString::fromStdWString(dir_iter->path().wstring()); | |
| 47 } | |
| 48 } | |
| 49 } | |
| 50 #else | |
| 33 foreach(QString filename, dir.entryList(QDir::NoDotAndDotDot | QDir::Dirs)) { | 51 foreach(QString filename, dir.entryList(QDir::NoDotAndDotDot | QDir::Dirs)) { |
| 34 filename = dir.absoluteFilePath(filename); | 52 filename = dir.absoluteFilePath(filename); |
| 35 findFiles(QDir(filename), list); | 53 findFiles(QDir(filename), list); |
| 36 } | 54 } |
| 37 | 55 |
| 38 foreach(QString filename, dir.entryList(QDir::Files | QDir::NoSymLinks)) { | 56 foreach(QString filename, dir.entryList(QDir::Files | QDir::NoSymLinks)) { |
| 39 list << dir.absoluteFilePath(filename); | 57 list << dir.absoluteFilePath(filename); |
| 40 } | 58 } |
| 59 #endif | |
| 60 | |
| 41 } | 61 } |
| 42 | 62 |
| 43 QStringList DataController::findFiles(const QDir& dir) | 63 QStringList DataController::findFiles(const QDir& dir) |
| 44 { | 64 { |
| 45 QStringList list; | 65 QStringList list; |
