New option Reset label position.

This commit is contained in:
Roman Telezhynskyi 2020-12-04 09:24:31 +02:00
parent c476d4b96a
commit 40fb6e6900
10 changed files with 36 additions and 17 deletions

View File

@ -4,6 +4,7 @@
- Fix incorrect nesting status for valid cases. - Fix incorrect nesting status for valid cases.
- Improve crossing check for the layout algorithm. - Improve crossing check for the layout algorithm.
- Fix crash after creating an elliptical arc. - Fix crash after creating an elliptical arc.
- New option Reset label position.
# Version 0.7.40 Nov 23, 2020 # Version 0.7.40 Nov 23, 2020
- New function Warning. - New function Warning.

View File

@ -1175,8 +1175,8 @@ void VPattern::PointsCommonAttributes(const QDomElement &domElement, VToolSingle
void VPattern::PointsCommonAttributes(const QDomElement &domElement, quint32 &id, qreal &mx, qreal &my) void VPattern::PointsCommonAttributes(const QDomElement &domElement, quint32 &id, qreal &mx, qreal &my)
{ {
ToolsCommonAttributes(domElement, id); ToolsCommonAttributes(domElement, id);
mx = qApp->toPixel(GetParametrDouble(domElement, AttrMx, QStringLiteral("10.0"))); mx = qApp->toPixel(GetParametrDouble(domElement, AttrMx, QString::number(labelMX)));
my = qApp->toPixel(GetParametrDouble(domElement, AttrMy, QStringLiteral("15.0"))); my = qApp->toPixel(GetParametrDouble(domElement, AttrMy, QString::number(labelMY)));
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -1184,8 +1184,8 @@ void VPattern::DrawPointsCommonAttributes(const QDomElement &domElement, quint32
QString &notes) QString &notes)
{ {
DrawToolsCommonAttributes(domElement, id, notes); DrawToolsCommonAttributes(domElement, id, notes);
mx = qApp->toPixel(GetParametrDouble(domElement, AttrMx, QStringLiteral("10.0"))); mx = qApp->toPixel(GetParametrDouble(domElement, AttrMx, QString::number(labelMX)));
my = qApp->toPixel(GetParametrDouble(domElement, AttrMy, QStringLiteral("15.0"))); my = qApp->toPixel(GetParametrDouble(domElement, AttrMy, QString::number(labelMY)));
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -2459,13 +2459,13 @@ void VPattern::ParseToolTrueDarts(VMainGraphicsScene *scene, const QDomElement &
initData.dartP3Id = GetParametrUInt(domElement, AttrDartP3, NULL_ID_STR); initData.dartP3Id = GetParametrUInt(domElement, AttrDartP3, NULL_ID_STR);
initData.name1 = GetParametrString(domElement, AttrName1, QChar('A')); initData.name1 = GetParametrString(domElement, AttrName1, QChar('A'));
initData.mx1 = qApp->toPixel(GetParametrDouble(domElement, AttrMx1, QStringLiteral("10.0"))); initData.mx1 = qApp->toPixel(GetParametrDouble(domElement, AttrMx1, QString::number(labelMX)));
initData.my1 = qApp->toPixel(GetParametrDouble(domElement, AttrMy1, QStringLiteral("15.0"))); initData.my1 = qApp->toPixel(GetParametrDouble(domElement, AttrMy1, QString::number(labelMY)));
initData.showLabel1 = GetParametrBool(domElement, AttrShowLabel1, trueStr); initData.showLabel1 = GetParametrBool(domElement, AttrShowLabel1, trueStr);
initData.name2 = GetParametrString(domElement, AttrName2, QChar('A')); initData.name2 = GetParametrString(domElement, AttrName2, QChar('A'));
initData.mx2 = qApp->toPixel(GetParametrDouble(domElement, AttrMx2, QStringLiteral("10.0"))); initData.mx2 = qApp->toPixel(GetParametrDouble(domElement, AttrMx2, QString::number(labelMX)));
initData.my2 = qApp->toPixel(GetParametrDouble(domElement, AttrMy2, QStringLiteral("15.0"))); initData.my2 = qApp->toPixel(GetParametrDouble(domElement, AttrMy2, QString::number(labelMY)));
initData.showLabel2 = GetParametrBool(domElement, AttrShowLabel2, trueStr); initData.showLabel2 = GetParametrBool(domElement, AttrShowLabel2, trueStr);
VToolTrueDarts::Create(initData); VToolTrueDarts::Create(initData);

View File

@ -152,7 +152,7 @@ protected:
virtual void ReadToolAttributes(const QDomElement &domElement) override; virtual void ReadToolAttributes(const QDomElement &domElement) override;
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj) override; virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj) override;
void UpdateNamePosition(quint32 id, const QPointF &pos); virtual void UpdateNamePosition(quint32 id, const QPointF &pos) override;
void SaveSourceDestination(QDomElement &tag); void SaveSourceDestination(QDomElement &tag);
template <typename T> template <typename T>

View File

@ -56,8 +56,8 @@ struct VToolTrueDartsInitData : VDrawToolInitData
dartP2Id(NULL_ID), dartP2Id(NULL_ID),
dartP3Id(NULL_ID), dartP3Id(NULL_ID),
name1(), name1(),
mx1(10), mx1(labelMX),
my1(15), my1(labelMY),
showLabel1(true), showLabel1(true),
name2(), name2(),
mx2(10), mx2(10),

View File

@ -50,8 +50,8 @@ struct VToolBasePointInitData : VToolSinglePointInitData
VToolBasePointInitData() VToolBasePointInitData()
: VToolSinglePointInitData(), : VToolSinglePointInitData(),
nameActivPP(), nameActivPP(),
x(10), x(labelMX),
y(10) y(labelMY)
{} {}
QString nameActivPP; QString nameActivPP;

View File

@ -49,8 +49,8 @@ struct VToolSinglePointInitData : VDrawToolInitData
VToolSinglePointInitData() VToolSinglePointInitData()
: VDrawToolInitData(), : VDrawToolInitData(),
name(), name(),
mx(5), mx(labelMX),
my(10), my(labelMY),
showLabel(true) showLabel(true)
{} {}

View File

@ -68,8 +68,6 @@ public slots:
protected: protected:
void SetPointName(quint32 id, const QString &name); void SetPointName(quint32 id, const QString &name);
virtual void UpdateNamePosition(quint32 id, const QPointF &pos)=0;
template <typename T> template <typename T>
static void InitToolConnections(VMainGraphicsScene *scene, T *tool); static void InitToolConnections(VMainGraphicsScene *scene, T *tool);

View File

@ -185,6 +185,13 @@ QString VDrawTool::MakeToolTip() const
return QString(); return QString();
} }
//---------------------------------------------------------------------------------------------------------------------
void VDrawTool::UpdateNamePosition(quint32 id, const QPointF &pos)
{
Q_UNUSED(id)
Q_UNUSED(pos)
}
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
bool VDrawTool::CorrectDisable(bool disable, const QString &namePP) const bool VDrawTool::CorrectDisable(bool disable, const QString &namePP) const
{ {

View File

@ -52,6 +52,7 @@
#include "../vdatatool.h" #include "../vdatatool.h"
#include "../vgeometry/vpointf.h" #include "../vgeometry/vpointf.h"
#include "../vtools/undocommands/undogroup.h" #include "../vtools/undocommands/undogroup.h"
#include "../toolsdef.h"
struct VDrawToolInitData : VAbstractToolInitData struct VDrawToolInitData : VAbstractToolInitData
{ {
@ -120,6 +121,7 @@ protected:
void SaveOption(QSharedPointer<VGObject> &obj); void SaveOption(QSharedPointer<VGObject> &obj);
virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj); virtual void SaveOptions(QDomElement &tag, QSharedPointer<VGObject> &obj);
virtual QString MakeToolTip() const; virtual QString MakeToolTip() const;
virtual void UpdateNamePosition(quint32 id, const QPointF &pos);
bool CorrectDisable(bool disable, const QString &namePP) const; bool CorrectDisable(bool disable, const QString &namePP) const;
@ -241,6 +243,9 @@ void VDrawTool::ContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 itemI
actionShowLabel->setVisible(false); actionShowLabel->setVisible(false);
} }
QAction *actionRestoreLabelPosition = menu.addAction(VDrawTool::tr("Restore label position"));
actionRestoreLabelPosition->setVisible(itemType == GOType::Point);
QAction *actionRemove = menu.addAction(QIcon::fromTheme(QStringLiteral("edit-delete")), VDrawTool::tr("Delete")); QAction *actionRemove = menu.addAction(QIcon::fromTheme(QStringLiteral("edit-delete")), VDrawTool::tr("Delete"));
if (showRemove == RemoveOption::Enable) if (showRemove == RemoveOption::Enable)
{ {
@ -299,6 +304,10 @@ void VDrawTool::ContextMenu(QGraphicsSceneContextMenuEvent *event, quint32 itemI
{ {
ChangeLabelVisibility(itemId, selectedAction->isChecked()); ChangeLabelVisibility(itemId, selectedAction->isChecked());
} }
else if (selectedAction == actionRestoreLabelPosition)
{
UpdateNamePosition(itemId, QPointF(labelMX, labelMY));
}
else if (selectedAction->actionGroup() == actionsAddToGroup) else if (selectedAction->actionGroup() == actionsAddToGroup)
{ {
quint32 groupId = selectedAction->data().toUInt(); quint32 groupId = selectedAction->data().toUInt();

View File

@ -47,6 +47,10 @@ struct SourceItem
Q_DECLARE_METATYPE(SourceItem) Q_DECLARE_METATYPE(SourceItem)
Q_DECLARE_TYPEINFO(SourceItem, Q_MOVABLE_TYPE); Q_DECLARE_TYPEINFO(SourceItem, Q_MOVABLE_TYPE);
// Default label position
const int labelMX = 10;
const int labelMY = 15;
QVector<quint32> SourceToObjects(const QVector<SourceItem> &source); QVector<quint32> SourceToObjects(const QVector<SourceItem> &source);
QString OriginAlias(quint32 id, const QVector<SourceItem> &source, const QSharedPointer<VGObject> &obj); QString OriginAlias(quint32 id, const QVector<SourceItem> &source, const QSharedPointer<VGObject> &obj);