39 lines
831 B
C++
39 lines
831 B
C++
#ifndef AUTOLINKMANAGER_H
|
|
#define AUTOLINKMANAGER_H
|
|
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include <memory>
|
|
#include <QVector>
|
|
#include <QMap>
|
|
|
|
#define AUTOLINK_CONFIG "autolink.json"
|
|
|
|
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
|