The method CreateGroup.

--HG--
branch : feature
This commit is contained in:
Roman Telezhynskyi 2016-04-05 20:53:49 +03:00
parent ada64305c0
commit d73256f119
7 changed files with 66 additions and 11 deletions

View file

@ -1012,10 +1012,7 @@ void MainWindow::ClosedDialogGroup(int result)
DialogGroup *dialog = qobject_cast<DialogGroup*>(dialogTool); DialogGroup *dialog = qobject_cast<DialogGroup*>(dialogTool);
SCASSERT(dialog != nullptr); SCASSERT(dialog != nullptr);
const QString name = dialog->GetName(); doc->AddGroup(pattern->getNextId(), dialog->GetName(), dialog->GetGroup());
const QMap<quint32, quint32> group = dialog->GetGroup();
const quint32 id = pattern->getNextId();
doc->AddGroup(id, name, group);
} }
ArrowTool(); ArrowTool();
} }

View file

@ -2882,7 +2882,7 @@ bool VPattern::IsDefCustom() const
const QDomElement domElement = domNode.toElement(); const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false) if (domElement.isNull() == false)
{ {
return GetParametrBool(domElement, AttrCustom, QStringLiteral("false")); return GetParametrBool(domElement, AttrCustom, falseStr);
} }
else else
{ {
@ -3051,7 +3051,7 @@ bool VPattern::IsReadOnly() const
return false; return false;
} }
return GetParametrBool(pattern, AttrReadOnly, QStringLiteral("false")); return GetParametrBool(pattern, AttrReadOnly, falseStr);
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View file

@ -43,6 +43,8 @@ const QString VAbstractPattern::TagMeasurements = QStringLiteral("measurements")
const QString VAbstractPattern::TagIncrements = QStringLiteral("increments"); const QString VAbstractPattern::TagIncrements = QStringLiteral("increments");
const QString VAbstractPattern::TagIncrement = QStringLiteral("increment"); const QString VAbstractPattern::TagIncrement = QStringLiteral("increment");
const QString VAbstractPattern::TagDraw = QStringLiteral("draw"); const QString VAbstractPattern::TagDraw = QStringLiteral("draw");
const QString VAbstractPattern::TagGroups = QStringLiteral("groups");
const QString VAbstractPattern::TagItem = QStringLiteral("item");
const QString VAbstractPattern::TagPoint = QStringLiteral("point"); const QString VAbstractPattern::TagPoint = QStringLiteral("point");
const QString VAbstractPattern::TagLine = QStringLiteral("line"); const QString VAbstractPattern::TagLine = QStringLiteral("line");
const QString VAbstractPattern::TagSpline = QStringLiteral("spline"); const QString VAbstractPattern::TagSpline = QStringLiteral("spline");
@ -54,6 +56,9 @@ const QString VAbstractPattern::TagSizes = QStringLiteral("sizes");
const QString VAbstractPattern::TagUnit = QStringLiteral("unit"); const QString VAbstractPattern::TagUnit = QStringLiteral("unit");
const QString VAbstractPattern::AttrName = QStringLiteral("name"); const QString VAbstractPattern::AttrName = QStringLiteral("name");
const QString VAbstractPattern::AttrVisible = QStringLiteral("visible");
const QString VAbstractPattern::AttrObject = QStringLiteral("object");
const QString VAbstractPattern::AttrTool = QStringLiteral("tool");
const QString VAbstractPattern::AttrType = QStringLiteral("type"); const QString VAbstractPattern::AttrType = QStringLiteral("type");
const QString VAbstractPattern::AttrAll = QStringLiteral("all"); const QString VAbstractPattern::AttrAll = QStringLiteral("all");
@ -593,7 +598,7 @@ QMap<GHeights, bool> VAbstractPattern::GetGradationHeights() const
const QDomElement domElement = domNode.toElement(); const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false) if (domElement.isNull() == false)
{ {
const QString defValue = QStringLiteral("true"); const QString defValue = trueStr;
switch (gTags.indexOf(domElement.tagName())) switch (gTags.indexOf(domElement.tagName()))
{ {
case 0: // TagHeights case 0: // TagHeights
@ -759,7 +764,7 @@ QMap<GSizes, bool> VAbstractPattern::GetGradationSizes() const
const QDomElement domElement = domNode.toElement(); const QDomElement domElement = domNode.toElement();
if (domElement.isNull() == false) if (domElement.isNull() == false)
{ {
const QString defValue = QStringLiteral("true"); const QString defValue = trueStr;
switch (gTags.indexOf(domElement.tagName())) switch (gTags.indexOf(domElement.tagName()))
{ {
case 0: // TagHeights case 0: // TagHeights
@ -1356,8 +1361,51 @@ QDomElement VAbstractPattern::GetDraw(const QString &name) const
return QDomElement(); return QDomElement();
} }
//---------------------------------------------------------------------------------------------------------------------
QDomElement VAbstractPattern::CreateGroups()
{
QDomElement draw;
if (GetActivDrawElement(draw))
{
QDomElement groups = draw.firstChildElement(TagGroups);
if (groups.isNull())
{
groups = createElement(TagGroups);
draw.appendChild(groups);
}
return groups;
}
return QDomElement();
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void VAbstractPattern::AddGroup(quint32 id, const QString &name, const QMap<quint32, quint32> &group) void VAbstractPattern::AddGroup(quint32 id, const QString &name, const QMap<quint32, quint32> &group)
{ {
if (id == NULL_ID || group.isEmpty())
{
return;
}
QDomElement groups = CreateGroups();
if (groups.isNull())
{
return;
}
groups.setAttribute(AttrId, id);
groups.setAttribute(AttrName, name);
groups.setAttribute(AttrVisible, trueStr);
auto i = group.constBegin();
while (i != group.constEnd())
{
QDomElement item = createElement(TagItem);
item.setAttribute(AttrObject, i.key());
item.setAttribute(AttrTool, i.value());
groups.appendChild(item);
++i;
}
} }

View file

@ -114,6 +114,7 @@ public:
QDomElement GetDraw(const QString &name) const; QDomElement GetDraw(const QString &name) const;
QDomElement CreateGroups();
void AddGroup(quint32 id, const QString &name, const QMap<quint32, quint32> &group); void AddGroup(quint32 id, const QString &name, const QMap<quint32, quint32> &group);
static const QString TagPattern; static const QString TagPattern;
@ -127,6 +128,8 @@ public:
static const QString TagIncrements; static const QString TagIncrements;
static const QString TagIncrement; static const QString TagIncrement;
static const QString TagDraw; static const QString TagDraw;
static const QString TagGroups;
static const QString TagItem;
static const QString TagPoint; static const QString TagPoint;
static const QString TagLine; static const QString TagLine;
static const QString TagSpline; static const QString TagSpline;
@ -138,6 +141,9 @@ public:
static const QString TagUnit; static const QString TagUnit;
static const QString AttrName; static const QString AttrName;
static const QString AttrVisible;
static const QString AttrObject;
static const QString AttrTool;
static const QString AttrType; static const QString AttrType;
static const QString AttrAll; static const QString AttrAll;

View file

@ -255,7 +255,7 @@ bool VDomDocument::GetParametrBool(const QDomElement &domElement, const QString
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
NodeUsage VDomDocument::GetParametrUsage(const QDomElement &domElement, const QString &name) const NodeUsage VDomDocument::GetParametrUsage(const QDomElement &domElement, const QString &name) const
{ {
const bool value = GetParametrBool(domElement, name, QStringLiteral("true")); const bool value = GetParametrBool(domElement, name, trueStr);
if (value) if (value)
{ {
return NodeUsage::InUse; return NodeUsage::InUse;
@ -271,11 +271,11 @@ void VDomDocument::SetParametrUsage(QDomElement &domElement, const QString &name
{ {
if (value == NodeUsage::InUse) if (value == NodeUsage::InUse)
{ {
domElement.setAttribute(name, QStringLiteral("true")); domElement.setAttribute(name, trueStr);
} }
else else
{ {
domElement.setAttribute(name, QStringLiteral("false")); domElement.setAttribute(name, falseStr);
} }
} }

View file

@ -408,6 +408,8 @@ const QString cursorArrowCloseHand = QStringLiteral("://cursor/cursor-arrow-clos
// From documantation: If you use QStringLiteral you should avoid declaring the same literal in multiple places: This // From documantation: If you use QStringLiteral you should avoid declaring the same literal in multiple places: This
// furthermore blows up the binary sizes. // furthermore blows up the binary sizes.
const QString degreeSymbol = QStringLiteral("°"); const QString degreeSymbol = QStringLiteral("°");
const QString trueStr = QStringLiteral("true");
const QString falseStr = QStringLiteral("false");
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
void SetOverrideCursor(const QString &pixmapPath, int hotX, int hotY) void SetOverrideCursor(const QString &pixmapPath, int hotX, int hotY)

View file

@ -584,6 +584,8 @@ extern const QString cursorArrowOpenHand;
extern const QString cursorArrowCloseHand; extern const QString cursorArrowCloseHand;
extern const QString degreeSymbol; extern const QString degreeSymbol;
extern const QString trueStr;
extern const QString falseStr;
void SetOverrideCursor(const QString & pixmapPath, int hotX = -1, int hotY = -1); void SetOverrideCursor(const QString & pixmapPath, int hotX = -1, int hotY = -1);
void RestoreOverrideCursor(const QString & pixmapPath); void RestoreOverrideCursor(const QString & pixmapPath);