153 lines
2.1 KiB
C++
Executable File
153 lines
2.1 KiB
C++
Executable File
|
|
|
|
|
|
#pragma once
|
|
|
|
#include <QtCore/QObject>
|
|
#include <QtCore/QString>
|
|
|
|
#include "logging.h"
|
|
|
|
|
|
class QIODevice;
|
|
|
|
|
|
namespace PlanEditor
|
|
{
|
|
class PlanEditor;
|
|
|
|
|
|
|
|
class SymbolFavourites : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
|
|
|
|
SymbolFavourites();
|
|
virtual ~SymbolFavourites() = default;
|
|
|
|
|
|
|
|
|
|
|
|
virtual QStringList sidcList() const = 0;
|
|
|
|
|
|
|
|
virtual QStringList scopeList() const = 0;
|
|
|
|
|
|
|
|
virtual void addScope(const QString &scope) = 0;
|
|
|
|
|
|
|
|
virtual void addSymbolFavourite(const QString &sidc, const QString &scope, const QString &name) = 0;
|
|
|
|
|
|
|
|
virtual bool isFavourite(const QString &sidc) const = 0;
|
|
|
|
|
|
|
|
|
|
virtual QString scope(const QString &sidc) const = 0;
|
|
|
|
|
|
|
|
virtual QString name(const QString &sidc) const = 0;
|
|
|
|
|
|
|
|
virtual void removeSymbolFavourite(const QString &sidc) = 0;
|
|
|
|
|
|
|
|
virtual void removeScope(const QString &scope) = 0;
|
|
|
|
|
|
|
|
|
|
virtual void includeSymbolFavourites(const SymbolFavourites &) = 0;
|
|
|
|
|
|
|
|
virtual QString toString() = 0;
|
|
|
|
|
|
|
|
virtual bool contentFromString(const QString &) = 0;
|
|
|
|
|
|
|
|
|
|
virtual bool contentFromDevice(QIODevice *) = 0;
|
|
|
|
|
|
|
|
virtual bool copyScope(const QString &scope, SymbolFavourites &dest) = 0;
|
|
|
|
|
|
|
|
static SymbolFavourites *create();
|
|
|
|
|
|
|
|
static SymbolFavourites *createFromString(const QString &);
|
|
|
|
|
|
|
|
static SymbolFavourites *createFromDevice(QIODevice *);
|
|
|
|
|
|
|
|
class SymbolVisitor
|
|
{
|
|
public:
|
|
|
|
|
|
|
|
SymbolVisitor() = default;
|
|
virtual ~SymbolVisitor() = default;
|
|
SymbolVisitor(const SymbolVisitor &) = delete;
|
|
SymbolVisitor &operator = (const SymbolVisitor &) = delete;
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
friend class VisitorVisitor;
|
|
|
|
|
|
|
|
virtual bool apply(const QString &scope) const;
|
|
|
|
|
|
|
|
virtual bool apply(const QString &scope, const QString &name, const QString &sidc) const;
|
|
|
|
};
|
|
|
|
|
|
|
|
virtual void traverse(const SymbolVisitor &) = 0;
|
|
|
|
|
|
signals:
|
|
|
|
void signalNewScope(const QString &scope);
|
|
|
|
void signalNewSymbol(const QString &scope, const QString &sidc);
|
|
|
|
void signalDeleteScope(const QString &scope);
|
|
void signalDeleteSymbol(const QString &sidc);
|
|
|
|
};
|
|
|
|
|
|
}
|