mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-23 12:55:44 +03:00
move the subfolder list function to FileUtils
This commit is contained in:
parent
89361db55d
commit
25685de4fd
3 changed files with 42 additions and 38 deletions
|
@ -1,3 +1,32 @@
|
|||
|
||||
#include "mirall/fileutils.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QFileInfoList>
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
QStringList FileUtils::subFoldersList(QString folder,
|
||||
SubFolderListOptions options)
|
||||
{
|
||||
QDir dir(folder);
|
||||
dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
|
||||
QFileInfoList list = dir.entryInfoList();
|
||||
QStringList dirList;
|
||||
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
QFileInfo fileInfo = list.at(i);
|
||||
dirList << fileInfo.absoluteFilePath();
|
||||
if (options & SubFolderRecursive )
|
||||
dirList << subFoldersList(fileInfo.absoluteFilePath(), options);
|
||||
}
|
||||
return dirList;
|
||||
}
|
||||
|
||||
/*
|
||||
Copyright (c) 2009 John Schember <john@nachtimwald.com>
|
||||
|
||||
|
@ -19,17 +48,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE
|
||||
*/
|
||||
|
||||
#include "mirall/fileutils.h"
|
||||
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QFileInfoList>
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
||||
bool FileUtils::removeDir(const QString &path)
|
||||
{
|
||||
bool result = true;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#ifndef MIRALL_FILEUTILS_H
|
||||
#define MIRALL_FILEUTILS_H
|
||||
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
|
||||
namespace Mirall
|
||||
{
|
||||
|
@ -10,9 +10,19 @@ namespace Mirall
|
|||
class FileUtils
|
||||
{
|
||||
public:
|
||||
enum SubFolderListOption {
|
||||
SubFolderNoOptions = 0x0,
|
||||
SubFolderRecursive = 0x1,
|
||||
};
|
||||
Q_DECLARE_FLAGS(SubFolderListOptions, SubFolderListOption)
|
||||
|
||||
static QStringList subFoldersList(QString folder,
|
||||
SubFolderListOptions options = SubFolderNoOptions );
|
||||
static bool removeDir(const QString &path);
|
||||
};
|
||||
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(FileUtils::SubFolderListOptions)
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include "mirall/inotify.h"
|
||||
#include "mirall/folderwatcher.h"
|
||||
#include "mirall/fileutils.h"
|
||||
|
||||
static const uint32_t standard_event_mask =
|
||||
IN_CLOSE_WRITE | IN_ATTRIB | IN_MOVE | IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_MOVE_SELF | IN_UNMOUNT | IN_ONLYDIR | IN_DONT_FOLLOW;
|
||||
|
@ -22,31 +23,6 @@ static const uint32_t standard_event_mask =
|
|||
|
||||
namespace Mirall {
|
||||
|
||||
enum SubFolderListOption {
|
||||
SubFolderNoOptions = 0x0,
|
||||
SubFolderRecursive = 0x1,
|
||||
};
|
||||
Q_DECLARE_FLAGS(SubFolderListOptions, SubFolderListOption)
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(SubFolderListOptions)
|
||||
|
||||
// Forgive me using a bool as a flag
|
||||
static QStringList subFoldersList(QString folder,
|
||||
SubFolderListOptions options = SubFolderNoOptions )
|
||||
{
|
||||
QDir dir(folder);
|
||||
dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
|
||||
QFileInfoList list = dir.entryInfoList();
|
||||
QStringList dirList;
|
||||
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
QFileInfo fileInfo = list.at(i);
|
||||
dirList << fileInfo.absoluteFilePath();
|
||||
if (options & SubFolderRecursive )
|
||||
dirList << subFoldersList(fileInfo.absoluteFilePath(), options);
|
||||
}
|
||||
return dirList;
|
||||
}
|
||||
|
||||
FolderWatcher::FolderWatcher(const QString &root, QObject *parent)
|
||||
: QObject(parent),
|
||||
|
@ -80,7 +56,7 @@ void FolderWatcher::slotAddFolderRecursive(const QString &path)
|
|||
_inotify->addPath(path);
|
||||
QStringList watchedFolders(_inotify->directories());
|
||||
//qDebug() << "currently watching " << watchedFolders;
|
||||
QStringListIterator subfoldersIt(subFoldersList(path, SubFolderRecursive));
|
||||
QStringListIterator subfoldersIt(FileUtils::subFoldersList(path, FileUtils::SubFolderRecursive));
|
||||
while (subfoldersIt.hasNext()) {
|
||||
QDir folder (subfoldersIt.next());
|
||||
if (folder.exists() && !watchedFolders.contains(folder.path())) {
|
||||
|
|
Loading…
Reference in a new issue