X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fflag.cpp;fp=src%2Fflag.cpp;h=197db18b7528f6039a79fdc4bec4b9aaaa27c92b;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/flag.cpp b/src/flag.cpp new file mode 100644 index 0000000..197db18 --- /dev/null +++ b/src/flag.cpp @@ -0,0 +1,147 @@ +#include "flag.h" + +#include "file.h" + +#include + +///////////////////////////////////////////////////////////////// +// Flag +///////////////////////////////////////////////////////////////// +Flag::Flag() +{ + // qDebug() << "Const Flag ()"; + init(); +} + +Flag::Flag(const QString &fname) +{ + // qDebug() << "Const Flag (fname)" << fname; + init(); + if (!load(fname)) + qWarning() << "Flag::Flag Failed to load " << fname; +} + +Flag::~Flag() +{ + // qDebug() << "Destr Flag this="<load(fn)) + return false; + + if (fn.contains("svg")) { + image->setWidth(32); // FIXME-3 scale svg of flags + } + + path = fn; + + return true; +} + +void Flag::setName(const QString &n) +{ + name = n; + if (name.contains("/")) + name = basename(name); + + name = name.section('.', 0, 0); +} + +const QString Flag::getName() { return name; } + +const QString Flag::getPath() { return path; } + +void Flag::setVisible(bool b) { visible = b; } + +bool Flag::isVisible() { return visible; } + +void Flag::setGroup(const QString &n) { group = n; } + +const QString Flag::getGroup() { return group; } + +void Flag::unsetGroup() { group.clear(); } + +void Flag::setToolTip(const QString &n) { tooltip = n; } + +const QString Flag::getToolTip() { return tooltip; } + +ImageObj *Flag::getImageObj() +{ + if (image) + return image; + else + return NULL; +} + +void Flag::setAction(QAction *a) { action = a; } + +QAction *Flag::getAction() { return action; } + +void Flag::setUsed(bool b) { used = b; } + +bool Flag::isUsed() { return used; } + +Flag::FlagType Flag::getType() { return type; } + +void Flag::setType(Flag::FlagType t) { type = t; } + +void Flag::setUuid(const QUuid &id) { uuid = id; } + +QUuid Flag::getUuid() { return uuid; } + +QString Flag::getDefinition(const QString &prefix) +{ + if (type == Flag::UserFlag) { + QString url = "flags/" + prefix + uuid.toString() + "-" + name + + image->getExtension(); + QStringList attributes; + attributes << attribut("name", name); + attributes << attribut("href", QString("file:%1").arg(url)); + attributes << attribut("uuid", uuid.toString()); + return singleElement("userflagdef", attributes); + } + else + return QString(); +} + +void Flag::saveDataToDir(const QString &dirPath) +{ + if (image) { + path = dirPath + "/" + uuid.toString() + "-" + name + + image->getExtension(); + image->save(path); + } +} + +QString Flag::saveState() +{ + if (type == Flag::UserFlag) + return singleElement("userflag", attribut("name", name) + + attribut("uuid", uuid.toString())); + else + return valueElement("standardflag", name); +}