mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-06 14:29:54 +08:00
89 lines
3.2 KiB
C++
89 lines
3.2 KiB
C++
#ifndef LOCALNOTEBOOKBACKEND_H
|
|
#define LOCALNOTEBOOKBACKEND_H
|
|
|
|
#include "inotebookbackend.h"
|
|
|
|
#include "../global.h"
|
|
|
|
namespace vnotex
|
|
{
|
|
// Backend to access local file system.
|
|
class LocalNotebookBackend : public INotebookBackend
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit LocalNotebookBackend(const QString &p_name,
|
|
const QString &p_displayName,
|
|
const QString &p_description,
|
|
const QString &p_rootPath,
|
|
QObject *p_parent = nullptr);
|
|
|
|
QString getName() const Q_DECL_OVERRIDE;
|
|
|
|
QString getDisplayName() const Q_DECL_OVERRIDE;
|
|
|
|
QString getDescription() const Q_DECL_OVERRIDE;
|
|
|
|
// Whether @p_dirPath is an empty directory.
|
|
bool isEmptyDir(const QString &p_dirPath) const Q_DECL_OVERRIDE;
|
|
|
|
// Create the directory path @p_dirPath. Create all parent directories if necessary.
|
|
void makePath(const QString &p_dirPath) Q_DECL_OVERRIDE;
|
|
|
|
// Write @p_data to @p_filePath.
|
|
void writeFile(const QString &p_filePath, const QByteArray &p_data) Q_DECL_OVERRIDE;
|
|
|
|
// Write @p_text to @p_filePath.
|
|
void writeFile(const QString &p_filePath, const QString &p_text) Q_DECL_OVERRIDE;
|
|
|
|
// Write @p_jobj to @p_filePath.
|
|
void writeFile(const QString &p_filePath, const QJsonObject &p_jobj) Q_DECL_OVERRIDE;
|
|
|
|
// Read content from @p_filePath.
|
|
QString readTextFile(const QString &p_filePath) Q_DECL_OVERRIDE;
|
|
|
|
// Read file @p_filePath.
|
|
QByteArray readFile(const QString &p_filePath) Q_DECL_OVERRIDE;
|
|
|
|
bool exists(const QString &p_path) const Q_DECL_OVERRIDE;
|
|
|
|
bool existsFile(const QString &p_path) const Q_DECL_OVERRIDE;
|
|
|
|
bool existsDir(const QString &p_path) const Q_DECL_OVERRIDE;
|
|
|
|
bool childExistsCaseInsensitive(const QString &p_dirPath, const QString &p_name) const Q_DECL_OVERRIDE;
|
|
|
|
bool isFile(const QString &p_path) const Q_DECL_OVERRIDE;
|
|
|
|
void renameFile(const QString &p_filePath, const QString &p_name) Q_DECL_OVERRIDE;
|
|
|
|
void renameDir(const QString &p_dirPath, const QString &p_name) Q_DECL_OVERRIDE;
|
|
|
|
// Delete @p_filePath from disk.
|
|
void removeFile(const QString &p_filePath) Q_DECL_OVERRIDE;
|
|
|
|
// Delete @p_dirPath from disk if it is empty.
|
|
bool removeDirIfEmpty(const QString &p_dirPath) Q_DECL_OVERRIDE;
|
|
|
|
void removeDir(const QString &p_dirPath) Q_DECL_OVERRIDE;
|
|
|
|
// Copy @p_filePath to @p_destPath.
|
|
// @p_filePath may beyond this notebook backend.
|
|
void copyFile(const QString &p_filePath, const QString &p_destPath, bool p_move = false) Q_DECL_OVERRIDE;
|
|
|
|
// Copy @p_dirPath to as @p_destPath.
|
|
void copyDir(const QString &p_dirPath, const QString &p_destPath, bool p_move = false) Q_DECL_OVERRIDE;
|
|
|
|
QString renameIfExistsCaseInsensitive(const QString &p_path) const Q_DECL_OVERRIDE;
|
|
|
|
void addFile(const QString &p_path) Q_DECL_OVERRIDE;
|
|
|
|
void removeEmptyDir(const QString &p_dirPath) Q_DECL_OVERRIDE;
|
|
|
|
private:
|
|
Info m_info;
|
|
};
|
|
} // ns vnotex
|
|
|
|
#endif // LOCALNOTEBOOKBACKEND_H
|