RedPanda-CPP/RedPandaIDE/autolinkmanager.h

37 lines
790 B
C
Raw Normal View History

2021-09-04 11:37:04 +08:00
#ifndef AUTOLINKMANAGER_H
#define AUTOLINKMANAGER_H
#include <QObject>
#include <QString>
#include <memory>
#include <QVector>
#include <QMap>
struct Autolink {
QString header;
QString linkOption;
};
using PAutolink = std::shared_ptr<Autolink>;
class AutolinkManager
{
public:
explicit AutolinkManager();
PAutolink getLink(const QString& header) const;
void load();
void save();
void setLink(const QString& header,
const QString& linkOption);
void removeLink(const QString& header);
const QMap<QString,PAutolink>& links() const;
void clear();
QJsonArray toJson();
void fromJson(QJsonArray json);
private:
QMap<QString,PAutolink> mLinks;
};
extern AutolinkManager* pAutolinkManager;
#endif // AUTOLINKMANAGER_H