SamGondelmanfix openDirectory0e4ea4a7 years agoHistory
81 lines · 2.5 KB · C
RawDownload
////  Created by Bradley Austin Davis on 2016-01-21//  Copyright 2015 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html//#pragma once#ifndef hifi_ui_FileDialogHelper_h#define hifi_ui_FileDialogHelper_h #include <QtCore/QFileSystemWatcher>#include <QtCore/QObject>#include <QtCore/QStandardPaths>#include <QtCore/QString>#include <QtCore/QStringList>#include <QtCore/QUrl> #include <functional> class FileDialogHelper : public QObject {    Q_OBJECT    Q_ENUMS(StandardLocation) public:    // Do not re-order, must match QDesktopServices    enum StandardLocation {        DesktopLocation,        DocumentsLocation,        FontsLocation,        ApplicationsLocation,        MusicLocation,        MoviesLocation,        PicturesLocation,        TempLocation,        HomeLocation,        DataLocation,        CacheLocation,        GenericDataLocation,        RuntimeLocation,        ConfigLocation,        DownloadLocation,        GenericCacheLocation,        GenericConfigLocation,        AppDataLocation,        AppConfigLocation,        AppLocalDataLocation = DataLocation    };     Q_INVOKABLE QUrl home();    Q_INVOKABLE QStringList standardPath(StandardLocation location);    Q_INVOKABLE QString writableLocation(StandardLocation location);    Q_INVOKABLE QStringList drives();    Q_INVOKABLE QString urlToPath(const QUrl& url);    Q_INVOKABLE bool urlIsDir(const QUrl& url);    Q_INVOKABLE bool urlIsFile(const QUrl& url);    Q_INVOKABLE bool urlExists(const QUrl& url);    Q_INVOKABLE bool urlIsWritable(const QUrl& url);    Q_INVOKABLE bool fileExists(const QString& path);    Q_INVOKABLE bool validPath(const QString& path);    Q_INVOKABLE bool validFolder(const QString& path);    Q_INVOKABLE QUrl pathToUrl(const QString& path);    Q_INVOKABLE QUrl saveHelper(const QString& saveText, const QUrl& currentFolder, const QStringList& selectionFilters);    Q_INVOKABLE QList<QUrl> urlToList(const QUrl& url);     static void setOpenDirectoryOperator(std::function<void(const QString&)> openDirectoryOperator) { _openDirectoryOperator = openDirectoryOperator; }    Q_INVOKABLE void openDirectory(const QString& path);     Q_INVOKABLE void monitorDirectory(const QString& path); signals:    void contentsChanged(); private:    QFileSystemWatcher _fsWatcher;    QString _fsWatcherPath;    static std::function<void(const QString&)> _openDirectoryOperator;};  #endif