QtNovelUI/libProjectManager/libProjectManager.h

123 lines
3.5 KiB
C
Raw Normal View History

2022-11-18 23:47:32 +00:00
#ifndef LIBPROJECTMANAGER_H
#define LIBPROJECTMANAGER_H
2022-11-17 08:26:05 +00:00
2022-11-18 23:47:32 +00:00
#include <libConfig.h>
2022-11-17 08:26:05 +00:00
#include <QFileInfo>
#include <QObject>
#include <QStandardItemModel>
namespace Project {
/**
* @brief
*
* ==
* ==
* ==
* ==
*/
class ProjectManager : public QObject
{
public:
ProjectManager(QObject *pins);
virtual ~ProjectManager() = default;
// 项目操作=========================================================
/**
* @brief
* @return
*/
virtual bool isOpen() const = 0;
/**
* @brief
* @param project_file
* @return 0-<0
*/
virtual int openProject(const QString &project_file) = 0;
/**
* @brief
* @param project_dir
* @param name
* @return 0-,<0
*/
virtual int newProject(const QString &project_dir, const QString &name) = 0;
/**
* @brief
*/
virtual void closeProject() = 0;
/**
* @brief save
*/
virtual void save() = 0;
/**
* @brief
* @return
*/
virtual QString projectName() const = 0;
// 项目内容管理=======================================================
/**
* @brief
* @return
*/
virtual Config::Configration* configraions() const = 0;
/**
* @brief
* @return
*/
virtual QStandardItemModel* model() const = 0;
/**
* @brief
* @param path
2022-11-29 03:47:12 +00:00
* @return 0,-1,-2,;-3,
2022-11-17 08:26:05 +00:00
*/
virtual int createFile(const QList<QString> &path, const QString &name, const QString &suffix) = 0;
/**
* @brief
* @param suffix
* @return
*/
virtual QList<std::tuple<QFileInfo, QString>> filesWithEnds(const QString &suffix) const = 0;
2022-11-17 08:26:05 +00:00
/**
* @brief
* @param path
* @return
*/
virtual QStandardItem* newPath(const QList<QString> &path) = 0;
/**
* @brief
* @param item
* @param target_group
* @return
*/
virtual bool moveTo(const QList<QString> &item_path, const QList<QString> &target_group, int index=-1) = 0;
/**
* @brief
* @param path
* @return
*/
virtual bool deletePath(const QList<QString> &path) = 0;
/**
* @brief
* @param path
* @return
*/
virtual QFileInfo queryWith(const QList<QString> &path) = 0;
};
inline ProjectManager::ProjectManager(QObject *pins):QObject(pins){}
}
2022-11-18 23:47:32 +00:00
#endif // LIBPROJECTMANAGER_H