#include <QDateTime>
+#include "accountstate.h"
#include "filedetails.h"
#include "folderman.h"
_filelockState = _fileRecord._lockstate;
updateLockExpireString();
+ updateFileTagModel(file, folder);
Q_EMIT fileChanged();
}
return _fileInfo.isDir();
}
+FileTagModel *FileDetails::fileTagModel() const
+{
+ return _fileTagModel.get();
+}
+
+void FileDetails::updateFileTagModel(const QString &serverRelPath, const Folder * const folder)
+{
+ Q_ASSERT(folder);
+ const auto account = folder->accountState()->account();
+ Q_ASSERT(account);
+
+ _fileTagModel = std::make_unique<FileTagModel>(serverRelPath, account);
+ Q_EMIT fileTagModelChanged();
+}
+
} // namespace OCC
#include "common/syncjournalfilerecord.h"
+#include "gui/filetagmodel.h"
+
namespace OCC {
+class Folder;
+
class FileDetails : public QObject
{
Q_OBJECT
Q_PROPERTY(QString iconUrl READ iconUrl NOTIFY fileChanged)
Q_PROPERTY(QString lockExpireString READ lockExpireString NOTIFY lockExpireStringChanged)
Q_PROPERTY(bool isFolder READ isFolder NOTIFY isFolderChanged)
+ Q_PROPERTY(FileTagModel* fileTagModel READ fileTagModel NOTIFY fileTagModelChanged)
public:
explicit FileDetails(QObject *parent = nullptr);
[[nodiscard]] QString iconUrl() const;
[[nodiscard]] QString lockExpireString() const;
[[nodiscard]] bool isFolder() const;
+ [[nodiscard]] FileTagModel *fileTagModel() const;
public slots:
void setLocalPath(const QString &localPath);
void fileChanged();
void lockExpireStringChanged();
void isFolderChanged();
+ void fileTagModelChanged();
private slots:
void refreshFileDetails();
void updateLockExpireString();
+ void updateFileTagModel(const QString &serverRelPath, const Folder * const folder);
private:
QString _localPath;
QTimer _filelockStateUpdateTimer;
QLocale _locale;
+
+ std::unique_ptr<FileTagModel> _fileTagModel;
};
} // namespace OCC