diff --git a/ChangeLog.txt b/ChangeLog.txt index 4ed206057..a505b4469 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -6,6 +6,7 @@ - Fix crash while synchronize measurements. - Object alias. - Change value for an uninitialized local variable to NAN. +- Independent pen style and color after a group operation. # Version 0.7.36 October 24, 2020 - [#892] Show tooltip for piece node point. diff --git a/src/libs/ifc/ifcdef.cpp b/src/libs/ifc/ifcdef.cpp index ed39c11ec..db035f16e 100644 --- a/src/libs/ifc/ifcdef.cpp +++ b/src/libs/ifc/ifcdef.cpp @@ -138,6 +138,7 @@ const QString AttrAlias = QStringLiteral("alias"); const QString AttrAlias1 = QStringLiteral("alias1"); const QString AttrAlias2 = QStringLiteral("alias2"); +const QString TypeLineDefault = QStringLiteral("default"); const QString TypeLineNone = QStringLiteral("none"); const QString TypeLineLine = QStringLiteral("hair"); const QString TypeLineDashLine = QStringLiteral("dashLine"); @@ -152,10 +153,14 @@ const QString TypeLineDashDotDotLine = QStringLiteral("dashDotDotLine"); */ QStringList StylesList() { - const QStringList styles = QStringList() << TypeLineNone << TypeLineLine << TypeLineDashLine - << TypeLineDotLine << TypeLineDashDotLine - << TypeLineDashDotDotLine; - return styles; + return QStringList{ + TypeLineNone, + TypeLineLine, + TypeLineDashLine, + TypeLineDotLine, + TypeLineDashDotLine, + TypeLineDashDotDotLine + }; } //--------------------------------------------------------------------------------------------------------------------- @@ -210,6 +215,22 @@ QString PenStyleToLineStyle(Qt::PenStyle penStyle) return TypeLineLine; } +//--------------------------------------------------------------------------------------------------------------------- +QIcon PenStylePic(Qt::PenStyle style) +{ + QPixmap pix(80, 14); + pix.fill(Qt::white); + + QBrush brush(Qt::black); + QPen pen(brush, 2.5, style); + + QPainter painter(&pix); + painter.setPen(pen); + painter.drawLine(2, 7, 78, 7); + + return QIcon(pix); +} + //--------------------------------------------------------------------------------------------------------------------- QMap LineStylesPics() { @@ -218,18 +239,7 @@ QMap LineStylesPics() for (auto &s : styles) { - const Qt::PenStyle style = LineStyleToPenStyle(s); - QPixmap pix(80, 14); - pix.fill(Qt::white); - - QBrush brush(Qt::black); - QPen pen(brush, 2.5, style); - - QPainter painter(&pix); - painter.setPen(pen); - painter.drawLine(2, 7, 78, 7); - - map.insert(s, QIcon(pix)); + map.insert(s, PenStylePic(LineStyleToPenStyle(s))); } return map; } @@ -242,6 +252,7 @@ QMap CurvePenStylesPics() return map; } +const QString ColorDefault = QStringLiteral("default"); const QString ColorBlack = QStringLiteral("black"); const QString ColorGreen = QStringLiteral("green"); const QString ColorBlue = QStringLiteral("blue"); diff --git a/src/libs/ifc/ifcdef.h b/src/libs/ifc/ifcdef.h index cd32a74e6..3173145cd 100644 --- a/src/libs/ifc/ifcdef.h +++ b/src/libs/ifc/ifcdef.h @@ -156,6 +156,7 @@ extern const QString AttrAlias; extern const QString AttrAlias1; extern const QString AttrAlias2; +extern const QString TypeLineDefault; extern const QString TypeLineNone; extern const QString TypeLineLine; extern const QString TypeLineDashLine; @@ -166,9 +167,11 @@ extern const QString TypeLineDashDotDotLine; QStringList StylesList(); Qt::PenStyle LineStyleToPenStyle(const QString &typeLine); QString PenStyleToLineStyle(Qt::PenStyle penStyle); +QIcon PenStylePic(Qt::PenStyle style); QMap LineStylesPics(); QMap CurvePenStylesPics(); +extern const QString ColorDefault; extern const QString ColorBlack; extern const QString ColorGreen; extern const QString ColorBlue; diff --git a/src/libs/ifc/schema/pattern/v0.8.10.xsd b/src/libs/ifc/schema/pattern/v0.8.10.xsd index 73dbb01e0..55d5765f8 100644 --- a/src/libs/ifc/schema/pattern/v0.8.10.xsd +++ b/src/libs/ifc/schema/pattern/v0.8.10.xsd @@ -184,6 +184,8 @@ + + @@ -821,6 +823,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -831,6 +855,17 @@ + + + + + + + + + + + diff --git a/src/libs/vformat/vpatternrecipe.cpp b/src/libs/vformat/vpatternrecipe.cpp index f2db3cd7e..61a66245b 100644 --- a/src/libs/vformat/vpatternrecipe.cpp +++ b/src/libs/vformat/vpatternrecipe.cpp @@ -1158,6 +1158,20 @@ QDomElement VPatternRecipe::GroupOperationSource(VAbstractOperation *tool, quint { SetAttribute(node, AttrAlias, obj->GetAlias()); } + + if (obj->getType() != GOType::Point) + { + if (item.penStyle != TypeLineDefault) + { + SetAttribute(node, AttrPenStyle, item.penStyle); + } + + if (item.color != ColorDefault) + { + SetAttribute(node, AttrColor, item.color); + } + } + nodes.appendChild(node); } diff --git a/src/libs/vtools/dialogs/dialogtoolbox.cpp b/src/libs/vtools/dialogs/dialogtoolbox.cpp index 45b950c2e..e77a435ba 100644 --- a/src/libs/vtools/dialogs/dialogtoolbox.cpp +++ b/src/libs/vtools/dialogs/dialogtoolbox.cpp @@ -511,3 +511,16 @@ void SetTabStopDistance(QPlainTextEdit *edit, int tabWidthChar) edit->setTabStopDistance(tabWidthChar * singleCharWidthDouble); #endif } + +//--------------------------------------------------------------------------------------------------------------------- +QIcon LineColor(int size, const QString &color) +{ + // On Mac pixmap should be little bit smaller. +#if defined(Q_OS_MAC) + size -= 2; // Two pixels should be enough. +#endif //defined(Q_OS_MAC) + + QPixmap pix(size, size); + pix.fill(QColor(color)); + return QIcon(pix); +} diff --git a/src/libs/vtools/dialogs/dialogtoolbox.h b/src/libs/vtools/dialogs/dialogtoolbox.h index 97c99b410..ec7b1ee4b 100644 --- a/src/libs/vtools/dialogs/dialogtoolbox.h +++ b/src/libs/vtools/dialogs/dialogtoolbox.h @@ -87,5 +87,6 @@ QString DialogWarningIcon(); QFont NodeFont(QFont font, bool nodeExcluded = false); void CurrentCurveLength(vidtype curveId, VContainer *data); void SetTabStopDistance(QPlainTextEdit *edit, int tabWidthChar=4); +QIcon LineColor(int size, const QString &color); #endif // DIALOGTOOLBOX_H diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp index b45d2a359..673ce7bd0 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.cpp @@ -59,6 +59,7 @@ #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" #include "ui_dialogflippingbyaxis.h" +#include "../../tools/drawTools/operation/vabstractoperation.h" //--------------------------------------------------------------------------------------------------------------------- DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolId, QWidget *parent) @@ -78,6 +79,8 @@ DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolI FillComboBoxPoints(ui->comboBoxOriginPoint); FillComboBoxAxisType(ui->comboBoxAxisType); + FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); ui->comboBoxOriginPoint->setCurrentIndex(-1); @@ -88,6 +91,11 @@ DialogFlippingByAxis::DialogFlippingByAxis(const VContainer *data, quint32 toolI connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogFlippingByAxis::ShowSourceDetails); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogFlippingByAxis::AliasChanged); + connect(ui->comboBoxPenStyle, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogFlippingByAxis::PenStyleChanged); + connect(ui->comboBoxColor, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogFlippingByAxis::ColorChanged); + vis = new VisToolFlippingByAxis(data); @@ -379,6 +387,8 @@ void DialogFlippingByAxis::GroupNameChanged() void DialogFlippingByAxis::ShowSourceDetails(int row) { ui->lineEditAlias->setDisabled(true); + ui->comboBoxPenStyle->setDisabled(true); + ui->comboBoxColor->setDisabled(true); if (ui->listWidget->count() == 0) { @@ -389,15 +399,70 @@ void DialogFlippingByAxis::ShowSourceDetails(int row) const QSharedPointer obj = data->GetGObject(sourceItem.id); - ui->labelAlias->setText(obj->getType() == GOType::Point ? tr("Label:") : tr("Alias:")); + if (obj->getType() == GOType::Point) + { + ui->labelAlias->setText(tr("Label:")); + + ui->comboBoxPenStyle->blockSignals(true); + ui->comboBoxColor->blockSignals(true); + + ui->comboBoxPenStyle->setCurrentIndex(-1); + ui->comboBoxColor->setCurrentIndex(-1); + + ui->comboBoxPenStyle->blockSignals(false); + ui->comboBoxColor->blockSignals(false); + } + else + { + ui->labelAlias->setText(tr("Alias:")); + + auto SetValue = [sourceItem](QComboBox *box, const QString &value, const QString &def) + { + box->blockSignals(true); + + int index = box->findData(value); + if (index != -1) + { + box->setCurrentIndex(index); + } + else + { + index = box->findData(def); + box->setCurrentIndex(index); + } + + box->blockSignals(false); + }; + + SetValue(ui->comboBoxPenStyle, sourceItem.penStyle, TypeLineDefault); + + if (sourceItem.penStyle.isEmpty() || sourceItem.penStyle == TypeLineDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxPenStyle->currentIndex(); + ui->comboBoxPenStyle->setItemText(index, '<' + tr("Default") + '>'); + } + + SetValue(ui->comboBoxColor, sourceItem.color, ColorDefault); + + if (sourceItem.color.isEmpty() || sourceItem.color == ColorDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxColor->currentIndex(); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + } + + ui->comboBoxPenStyle->setEnabled(true); + ui->comboBoxColor->setEnabled(true); + } ui->lineEditAlias->blockSignals(true); ui->lineEditAlias->setText(sourceItem.alias); ui->lineEditAlias->setEnabled(true); ui->lineEditAlias->blockSignals(false); - SetAliasValid(sourceItem.id, SourceAliasValid(sourceItem, obj, data, - OriginAlias(sourceItem.id, sourceObjects, obj))); + SetAliasValid(sourceItem.id, + SourceAliasValid(sourceItem, obj, data, OriginAlias(sourceItem.id, sourceObjects, obj))); } //--------------------------------------------------------------------------------------------------------------------- @@ -419,6 +484,38 @@ void DialogFlippingByAxis::AliasChanged(const QString &text) } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogFlippingByAxis::PenStyleChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.penStyle = GetComboBoxCurrentData(ui->comboBoxPenStyle, TypeLineDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFlippingByAxis::ColorChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.color = GetComboBoxCurrentData(ui->comboBoxColor, ColorDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByAxis::ShowVisualization() { diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.h b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.h index 2128c8048..e64ba3fd4 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.h +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.h @@ -92,6 +92,8 @@ private slots: void GroupNameChanged(); void ShowSourceDetails(int row); void AliasChanged(const QString &text); + void PenStyleChanged(); + void ColorChanged(); protected: virtual void ShowVisualization() override; diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.ui b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.ui index dada02ff6..a05a66251 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.ui +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyaxis.ui @@ -6,15 +6,15 @@ 0 0 - 415 - 464 + 423 + 436 Flipping by axis - + :/icon/64x64/icon64x64.png:/icon/64x64/icon64x64.png @@ -53,6 +53,58 @@ + + + + Pen style: + + + + + + + false + + + + 80 + 0 + + + + + 110 + 16777215 + + + + + 80 + 14 + + + + + + + + Color: + + + + + + + false + + + + 0 + 0 + + + + @@ -203,9 +255,7 @@
vlineedit.h
- - - + buttonBox diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp b/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp index d664e0f2e..a9ae13539 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyline.cpp @@ -59,6 +59,7 @@ #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" #include "ui_dialogflippingbyline.h" +#include "../../tools/drawTools/operation/vabstractoperation.h" //--------------------------------------------------------------------------------------------------------------------- DialogFlippingByLine::DialogFlippingByLine(const VContainer *data, quint32 toolId, QWidget *parent) @@ -78,6 +79,8 @@ DialogFlippingByLine::DialogFlippingByLine(const VContainer *data, quint32 toolI FillComboBoxPoints(ui->comboBoxFirstLinePoint); FillComboBoxPoints(ui->comboBoxSecondLinePoint); + FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); connect(ui->lineEditSuffix, &QLineEdit::textChanged, this, &DialogFlippingByLine::SuffixChanged); connect(ui->lineEditVisibilityGroup, &QLineEdit::textChanged, this, &DialogFlippingByLine::GroupNameChanged); @@ -85,6 +88,10 @@ DialogFlippingByLine::DialogFlippingByLine(const VContainer *data, quint32 toolI this, &DialogFlippingByLine::PointChanged); connect(ui->comboBoxSecondLinePoint, &QComboBox::currentTextChanged, this, &DialogFlippingByLine::PointChanged); + connect(ui->comboBoxPenStyle, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogFlippingByLine::PenStyleChanged); + connect(ui->comboBoxColor, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogFlippingByLine::ColorChanged); vis = new VisToolFlippingByLine(data); @@ -399,6 +406,8 @@ void DialogFlippingByLine::GroupNameChanged() void DialogFlippingByLine::ShowSourceDetails(int row) { ui->lineEditAlias->setDisabled(true); + ui->comboBoxPenStyle->setDisabled(true); + ui->comboBoxColor->setDisabled(true); if (ui->listWidget->count() == 0) { @@ -409,15 +418,70 @@ void DialogFlippingByLine::ShowSourceDetails(int row) const QSharedPointer obj = data->GetGObject(sourceItem.id); - ui->labelAlias->setText(obj->getType() == GOType::Point ? tr("Label:") : tr("Alias:")); + if (obj->getType() == GOType::Point) + { + ui->labelAlias->setText(tr("Label:")); + + ui->comboBoxPenStyle->blockSignals(true); + ui->comboBoxColor->blockSignals(true); + + ui->comboBoxPenStyle->setCurrentIndex(-1); + ui->comboBoxColor->setCurrentIndex(-1); + + ui->comboBoxPenStyle->blockSignals(false); + ui->comboBoxColor->blockSignals(false); + } + else + { + ui->labelAlias->setText(tr("Alias:")); + + auto SetValue = [sourceItem](QComboBox *box, const QString &value, const QString &def) + { + box->blockSignals(true); + + int index = box->findData(value); + if (index != -1) + { + box->setCurrentIndex(index); + } + else + { + index = box->findData(def); + box->setCurrentIndex(index); + } + + box->blockSignals(false); + }; + + SetValue(ui->comboBoxPenStyle, sourceItem.penStyle, TypeLineDefault); + + if (sourceItem.penStyle.isEmpty() || sourceItem.penStyle == TypeLineDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxPenStyle->currentIndex(); + ui->comboBoxPenStyle->setItemText(index, '<' + tr("Default") + '>'); + } + + SetValue(ui->comboBoxColor, sourceItem.color, ColorDefault); + + if (sourceItem.color.isEmpty() || sourceItem.color == ColorDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxColor->currentIndex(); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + } + + ui->comboBoxPenStyle->setEnabled(true); + ui->comboBoxColor->setEnabled(true); + } ui->lineEditAlias->blockSignals(true); ui->lineEditAlias->setText(sourceItem.alias); ui->lineEditAlias->setEnabled(true); ui->lineEditAlias->blockSignals(false); - SetAliasValid(sourceItem.id, SourceAliasValid(sourceItem, obj, data, - OriginAlias(sourceItem.id, sourceObjects, obj))); + SetAliasValid(sourceItem.id, + SourceAliasValid(sourceItem, obj, data, OriginAlias(sourceItem.id, sourceObjects, obj))); } //--------------------------------------------------------------------------------------------------------------------- @@ -439,6 +503,38 @@ void DialogFlippingByLine::AliasChanged(const QString &text) } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogFlippingByLine::PenStyleChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.penStyle = GetComboBoxCurrentData(ui->comboBoxPenStyle, TypeLineDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogFlippingByLine::ColorChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.color = GetComboBoxCurrentData(ui->comboBoxColor, ColorDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + //--------------------------------------------------------------------------------------------------------------------- void DialogFlippingByLine::ShowVisualization() { diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyline.h b/src/libs/vtools/dialogs/tools/dialogflippingbyline.h index 4a4dbf029..fe3d459b3 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyline.h +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyline.h @@ -92,6 +92,8 @@ private slots: void GroupNameChanged(); void ShowSourceDetails(int row); void AliasChanged(const QString &text); + void PenStyleChanged(); + void ColorChanged(); protected: virtual void ShowVisualization() override; diff --git a/src/libs/vtools/dialogs/tools/dialogflippingbyline.ui b/src/libs/vtools/dialogs/tools/dialogflippingbyline.ui index 3596a163c..364a7fc58 100644 --- a/src/libs/vtools/dialogs/tools/dialogflippingbyline.ui +++ b/src/libs/vtools/dialogs/tools/dialogflippingbyline.ui @@ -6,15 +6,15 @@ 0 0 - 387 - 440 + 424 + 436 Flipping by line - + :/icon/64x64/icon64x64.png:/icon/64x64/icon64x64.png @@ -53,6 +53,58 @@ + + + + Pen style: + + + + + + + false + + + + 80 + 0 + + + + + 110 + 16777215 + + + + + 80 + 14 + + + + + + + + Color: + + + + + + + false + + + + 0 + 0 + + + + @@ -203,9 +255,7 @@
vlineedit.h
- - - + buttonBox diff --git a/src/libs/vtools/dialogs/tools/dialogmove.cpp b/src/libs/vtools/dialogs/tools/dialogmove.cpp index 95264f4d8..fe2f207d3 100644 --- a/src/libs/vtools/dialogs/tools/dialogmove.cpp +++ b/src/libs/vtools/dialogs/tools/dialogmove.cpp @@ -64,6 +64,7 @@ #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" #include "ui_dialogmove.h" +#include "../../tools/drawTools/operation/vabstractoperation.h" //--------------------------------------------------------------------------------------------------------------------- DialogMove::DialogMove(const VContainer *data, quint32 toolId, QWidget *parent) @@ -112,6 +113,8 @@ DialogMove::DialogMove(const VContainer *data, quint32 toolId, QWidget *parent) InitOkCancelApply(ui); + FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); FillComboBoxPoints(ui->comboBoxRotationOriginPoint); ui->comboBoxRotationOriginPoint->blockSignals(true); @@ -144,6 +147,9 @@ DialogMove::DialogMove(const VContainer *data, quint32 toolId, QWidget *parent) connect(ui->listWidget, &QListWidget::currentRowChanged, this, &DialogMove::ShowSourceDetails); connect(ui->lineEditAlias, &QLineEdit::textEdited, this, &DialogMove::AliasChanged); + connect(ui->comboBoxPenStyle, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogMove::PenStyleChanged); + connect(ui->comboBoxColor, QOverload::of(&QComboBox::currentIndexChanged), this, &DialogMove::ColorChanged); vis = new VisToolMove(data); @@ -563,6 +569,8 @@ void DialogMove::GroupNameChanged() void DialogMove::ShowSourceDetails(int row) { ui->lineEditAlias->setDisabled(true); + ui->comboBoxPenStyle->setDisabled(true); + ui->comboBoxColor->setDisabled(true); if (ui->listWidget->count() == 0) { @@ -573,15 +581,70 @@ void DialogMove::ShowSourceDetails(int row) const QSharedPointer obj = data->GetGObject(sourceItem.id); - ui->labelAlias->setText(obj->getType() == GOType::Point ? tr("Label:") : tr("Alias:")); + if (obj->getType() == GOType::Point) + { + ui->labelAlias->setText(tr("Label:")); + + ui->comboBoxPenStyle->blockSignals(true); + ui->comboBoxColor->blockSignals(true); + + ui->comboBoxPenStyle->setCurrentIndex(-1); + ui->comboBoxColor->setCurrentIndex(-1); + + ui->comboBoxPenStyle->blockSignals(false); + ui->comboBoxColor->blockSignals(false); + } + else + { + ui->labelAlias->setText(tr("Alias:")); + + auto SetValue = [sourceItem](QComboBox *box, const QString &value, const QString &def) + { + box->blockSignals(true); + + int index = box->findData(value); + if (index != -1) + { + box->setCurrentIndex(index); + } + else + { + index = box->findData(def); + box->setCurrentIndex(index); + } + + box->blockSignals(false); + }; + + SetValue(ui->comboBoxPenStyle, sourceItem.penStyle, TypeLineDefault); + + if (sourceItem.penStyle.isEmpty() || sourceItem.penStyle == TypeLineDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxPenStyle->currentIndex(); + ui->comboBoxPenStyle->setItemText(index, '<' + tr("Default") + '>'); + } + + SetValue(ui->comboBoxColor, sourceItem.color, ColorDefault); + + if (sourceItem.color.isEmpty() || sourceItem.color == ColorDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxColor->currentIndex(); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + } + + ui->comboBoxPenStyle->setEnabled(true); + ui->comboBoxColor->setEnabled(true); + } ui->lineEditAlias->blockSignals(true); ui->lineEditAlias->setText(sourceItem.alias); ui->lineEditAlias->setEnabled(true); ui->lineEditAlias->blockSignals(false); - SetAliasValid(sourceItem.id, SourceAliasValid(sourceItem, obj, data, - OriginAlias(sourceItem.id, sourceObjects, obj))); + SetAliasValid(sourceItem.id, + SourceAliasValid(sourceItem, obj, data, OriginAlias(sourceItem.id, sourceObjects, obj))); } //--------------------------------------------------------------------------------------------------------------------- @@ -603,6 +666,38 @@ void DialogMove::AliasChanged(const QString &text) } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogMove::PenStyleChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.penStyle = GetComboBoxCurrentData(ui->comboBoxPenStyle, TypeLineDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogMove::ColorChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.color = GetComboBoxCurrentData(ui->comboBoxColor, ColorDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + //--------------------------------------------------------------------------------------------------------------------- void DialogMove::ShowVisualization() { diff --git a/src/libs/vtools/dialogs/tools/dialogmove.h b/src/libs/vtools/dialogs/tools/dialogmove.h index f01c87198..d30fb23af 100644 --- a/src/libs/vtools/dialogs/tools/dialogmove.h +++ b/src/libs/vtools/dialogs/tools/dialogmove.h @@ -107,6 +107,8 @@ private slots: void ShowSourceDetails(int row); void AliasChanged(const QString &text); + void PenStyleChanged(); + void ColorChanged(); protected: virtual void ShowVisualization() override; diff --git a/src/libs/vtools/dialogs/tools/dialogmove.ui b/src/libs/vtools/dialogs/tools/dialogmove.ui index c9010c470..6bb6e25d0 100644 --- a/src/libs/vtools/dialogs/tools/dialogmove.ui +++ b/src/libs/vtools/dialogs/tools/dialogmove.ui @@ -9,15 +9,15 @@ 0 0 - 536 - 669 + 456 + 625 Move - + :/icon/64x64/icon64x64.png:/icon/64x64/icon64x64.png @@ -60,6 +60,58 @@ + + + + Pen style: + + + + + + + false + + + + 80 + 0 + + + + + 110 + 16777215 + + + + + 80 + 14 + + + + + + + + Color: + + + + + + + false + + + + 0 + 0 + + + + @@ -138,7 +190,7 @@ ... - + :/icon/24x24/fx.png:/icon/24x24/fx.png @@ -155,7 +207,7 @@ - :/icon/24x24/equal.png + :/icon/24x24/equal.png @@ -318,7 +370,7 @@ ... - + :/icon/24x24/fx.png:/icon/24x24/fx.png @@ -335,7 +387,7 @@ - :/icon/24x24/equal.png + :/icon/24x24/equal.png @@ -498,7 +550,7 @@ ... - + :/icon/24x24/fx.png:/icon/24x24/fx.png @@ -515,7 +567,7 @@ - :/icon/24x24/equal.png + :/icon/24x24/equal.png @@ -750,9 +802,7 @@
vlineedit.h
- - - + buttonBox diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.cpp b/src/libs/vtools/dialogs/tools/dialogrotation.cpp index 2eab16690..a996f4341 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.cpp +++ b/src/libs/vtools/dialogs/tools/dialogrotation.cpp @@ -64,6 +64,7 @@ #include "../vwidgets/vmaingraphicsscene.h" #include "../vwidgets/vmaingraphicsview.h" #include "ui_dialogrotation.h" +#include "../../tools/drawTools/operation/vabstractoperation.h" //--------------------------------------------------------------------------------------------------------------------- DialogRotation::DialogRotation(const VContainer *data, quint32 toolId, QWidget *parent) @@ -93,6 +94,8 @@ DialogRotation::DialogRotation(const VContainer *data, quint32 toolId, QWidget * InitOkCancelApply(ui); FillComboBoxPoints(ui->comboBoxOriginPoint); + FillComboBoxTypeLine(ui->comboBoxPenStyle, OperationLineStylesPics(), TypeLineDefault); + FillComboBoxLineColors(ui->comboBoxColor, VAbstractOperation::OperationColorsList()); connect(ui->lineEditSuffix, &QLineEdit::textChanged, this, &DialogRotation::SuffixChanged); connect(ui->lineEditVisibilityGroup, &QLineEdit::textChanged, this, &DialogRotation::GroupNameChanged); @@ -104,6 +107,10 @@ DialogRotation::DialogRotation(const VContainer *data, quint32 toolId, QWidget * connect(ui->pushButtonGrowLength, &QPushButton::clicked, this, &DialogRotation::DeployAngleTextEdit); connect(ui->comboBoxOriginPoint, &QComboBox::currentTextChanged, this, &DialogRotation::PointChanged); + connect(ui->comboBoxPenStyle, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogRotation::PenStyleChanged); + connect(ui->comboBoxColor, QOverload::of(&QComboBox::currentIndexChanged), this, + &DialogRotation::ColorChanged); vis = new VisToolRotation(data); @@ -638,6 +645,8 @@ void DialogRotation::EvalAngle() void DialogRotation::ShowSourceDetails(int row) { ui->lineEditAlias->setDisabled(true); + ui->comboBoxPenStyle->setDisabled(true); + ui->comboBoxColor->setDisabled(true); if (ui->listWidget->count() == 0) { @@ -648,15 +657,70 @@ void DialogRotation::ShowSourceDetails(int row) const QSharedPointer obj = data->GetGObject(sourceItem.id); - ui->labelAlias->setText(obj->getType() == GOType::Point ? tr("Label:") : tr("Alias:")); + if (obj->getType() == GOType::Point) + { + ui->labelAlias->setText(tr("Label:")); + + ui->comboBoxPenStyle->blockSignals(true); + ui->comboBoxColor->blockSignals(true); + + ui->comboBoxPenStyle->setCurrentIndex(-1); + ui->comboBoxColor->setCurrentIndex(-1); + + ui->comboBoxPenStyle->blockSignals(false); + ui->comboBoxColor->blockSignals(false); + } + else + { + ui->labelAlias->setText(tr("Alias:")); + + auto SetValue = [sourceItem](QComboBox *box, const QString &value, const QString &def) + { + box->blockSignals(true); + + int index = box->findData(value); + if (index != -1) + { + box->setCurrentIndex(index); + } + else + { + index = box->findData(def); + box->setCurrentIndex(index); + } + + box->blockSignals(false); + }; + + SetValue(ui->comboBoxPenStyle, sourceItem.penStyle, TypeLineDefault); + + if (sourceItem.penStyle.isEmpty() || sourceItem.penStyle == TypeLineDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxPenStyle->currentIndex(); + ui->comboBoxPenStyle->setItemText(index, '<' + tr("Default") + '>'); + } + + SetValue(ui->comboBoxColor, sourceItem.color, ColorDefault); + + if (sourceItem.color.isEmpty() || sourceItem.color == ColorDefault) + { + const QSharedPointer curve = data->GeometricObject(sourceItem.id); + int index = ui->comboBoxColor->currentIndex(); + ui->comboBoxColor->setItemIcon(index, LineColor(ui->comboBoxColor->iconSize().height(), curve->GetColor())); + } + + ui->comboBoxPenStyle->setEnabled(true); + ui->comboBoxColor->setEnabled(true); + } ui->lineEditAlias->blockSignals(true); ui->lineEditAlias->setText(sourceItem.alias); ui->lineEditAlias->setEnabled(true); ui->lineEditAlias->blockSignals(false); - SetAliasValid(sourceItem.id, SourceAliasValid(sourceItem, obj, data, - OriginAlias(sourceItem.id, sourceObjects, obj))); + SetAliasValid(sourceItem.id, + SourceAliasValid(sourceItem, obj, data, OriginAlias(sourceItem.id, sourceObjects, obj))); } //--------------------------------------------------------------------------------------------------------------------- @@ -678,6 +742,38 @@ void DialogRotation::AliasChanged(const QString &text) } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogRotation::PenStyleChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.penStyle = GetComboBoxCurrentData(ui->comboBoxPenStyle, TypeLineDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogRotation::ColorChanged() +{ + if (ui->listWidget->count() == 0) + { + return; + } + + if (auto *item = ui->listWidget->currentItem()) + { + auto sourceItem = qvariant_cast(item->data(Qt::UserRole)); + sourceItem.color = GetComboBoxCurrentData(ui->comboBoxColor, ColorDefault); + item->setData(Qt::UserRole, QVariant::fromValue(sourceItem)); + } +} + //--------------------------------------------------------------------------------------------------------------------- void DialogRotation::SetNotes(const QString ¬es) { diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.h b/src/libs/vtools/dialogs/tools/dialogrotation.h index 525911668..63d4e6618 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.h +++ b/src/libs/vtools/dialogs/tools/dialogrotation.h @@ -94,6 +94,8 @@ private slots: void EvalAngle(); void ShowSourceDetails(int row); void AliasChanged(const QString &text); + void PenStyleChanged(); + void ColorChanged(); protected: virtual void ShowVisualization() override; diff --git a/src/libs/vtools/dialogs/tools/dialogrotation.ui b/src/libs/vtools/dialogs/tools/dialogrotation.ui index 7bb65120f..296124517 100644 --- a/src/libs/vtools/dialogs/tools/dialogrotation.ui +++ b/src/libs/vtools/dialogs/tools/dialogrotation.ui @@ -6,15 +6,15 @@ 0 0 - 410 - 485 + 408 + 461 Rotation - + :/icon/64x64/icon64x64.png:/icon/64x64/icon64x64.png @@ -53,6 +53,58 @@ + + + + Pen style: + + + + + + + false + + + + 80 + 0 + + + + + 110 + 16777215 + + + + + 80 + 14 + + + + + + + + Color: + + + + + + + false + + + + 0 + 0 + + + + @@ -131,7 +183,7 @@ ... - + :/icon/24x24/fx.png:/icon/24x24/fx.png @@ -148,7 +200,7 @@ - :/icon/24x24/equal.png + :/icon/24x24/equal.png @@ -374,9 +426,7 @@
vlineedit.h
- - - + buttonBox diff --git a/src/libs/vtools/dialogs/tools/dialogtool.cpp b/src/libs/vtools/dialogs/tools/dialogtool.cpp index 20616e897..a9248548c 100644 --- a/src/libs/vtools/dialogs/tools/dialogtool.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtool.cpp @@ -270,7 +270,7 @@ void DialogTool::FillComboBoxCurves(QComboBox *box) const * @brief FillComboBoxTypeLine fill comboBox list of type lines * @param box comboBox */ -void DialogTool::FillComboBoxTypeLine(QComboBox *box, const QMap &stylesPics) const +void DialogTool::FillComboBoxTypeLine(QComboBox *box, const QMap &stylesPics, const QString &def) const { SCASSERT(box != nullptr) QMap::const_iterator i = stylesPics.constBegin(); @@ -280,7 +280,7 @@ void DialogTool::FillComboBoxTypeLine(QComboBox *box, const QMap ++i; } - const int index = box->findData(QVariant(TypeLineLine)); + const int index = box->findData(QVariant(def)); if (index != -1) { box->setCurrentIndex(index); @@ -289,23 +289,21 @@ void DialogTool::FillComboBoxTypeLine(QComboBox *box, const QMap //--------------------------------------------------------------------------------------------------------------------- void DialogTool::FillComboBoxLineColors(QComboBox *box) const +{ + FillComboBoxLineColors(box, VAbstractTool::ColorsList()); +} + +//--------------------------------------------------------------------------------------------------------------------- +void DialogTool::FillComboBoxLineColors(QComboBox *box, const QMap &lineColors) const { SCASSERT(box != nullptr) box->clear(); - int size = box->iconSize().height(); - // On Mac pixmap should be little bit smaller. -#if defined(Q_OS_MAC) - size -= 2; // Two pixels should be enough. -#endif //defined(Q_OS_MAC) - const QMap map = VAbstractTool::ColorsList(); - QMap::const_iterator i = map.constBegin(); - while (i != map.constEnd()) + QMap::const_iterator i = lineColors.constBegin(); + while (i != lineColors.constEnd()) { - QPixmap pix(size, size); - pix.fill(QColor(i.key())); - box->addItem(QIcon(pix), i.value(), QVariant(i.key())); + box->addItem(LineColor(box->iconSize().height(), i.key()), i.value(), QVariant(i.key())); ++i; } } diff --git a/src/libs/vtools/dialogs/tools/dialogtool.h b/src/libs/vtools/dialogs/tools/dialogtool.h index c13c54651..f045b87e3 100644 --- a/src/libs/vtools/dialogs/tools/dialogtool.h +++ b/src/libs/vtools/dialogs/tools/dialogtool.h @@ -165,8 +165,10 @@ protected: void FillComboBoxSplines(QComboBox *box)const; void FillComboBoxSplinesPath(QComboBox *box)const; void FillComboBoxCurves(QComboBox *box)const; - void FillComboBoxTypeLine(QComboBox *box, const QMap &stylesPics) const; + void FillComboBoxTypeLine(QComboBox *box, const QMap &stylesPics, + const QString &def=TypeLineLine) const; void FillComboBoxLineColors(QComboBox *box)const; + void FillComboBoxLineColors(QComboBox *box, const QMap &lineColors)const; void FillComboBoxCrossCirclesPoints(QComboBox *box) const; void FillComboBoxVCrossCurvesPoint(QComboBox *box) const; void FillComboBoxHCrossCurvesPoint(QComboBox *box) const; diff --git a/src/libs/vtools/tools/drawTools/operation/flipping/vabstractflipping.h b/src/libs/vtools/tools/drawTools/operation/flipping/vabstractflipping.h index fd2893b6c..54257be92 100644 --- a/src/libs/vtools/tools/drawTools/operation/flipping/vabstractflipping.h +++ b/src/libs/vtools/tools/drawTools/operation/flipping/vabstractflipping.h @@ -93,6 +93,16 @@ DestinationItem VAbstractFlipping::CreateItem(quint32 idTool, const SourceItem & rotated.SetAliasSuffix(sItem.alias); } + if (sItem.penStyle != TypeLineDefault) + { + rotated.SetPenStyle(sItem.penStyle); + } + + if (sItem.color != ColorDefault) + { + rotated.SetColor(sItem.color); + } + DestinationItem item; item.id = data->AddGObject(new Item(rotated)); return item; @@ -133,6 +143,16 @@ void VAbstractFlipping::UpdateItem(quint32 idTool, const SourceItem &sItem, cons rotated.SetAliasSuffix(sItem.alias); } + if (sItem.penStyle != TypeLineDefault) + { + rotated.SetPenStyle(sItem.penStyle); + } + + if (sItem.color != ColorDefault) + { + rotated.SetColor(sItem.color); + } + data->UpdateGObject(id, new Item(rotated)); } diff --git a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp index ddb2a3125..10622dfba 100644 --- a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp +++ b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.cpp @@ -208,6 +208,8 @@ QVector VAbstractOperation::ExtractSourceData(const QDomElement &dom SourceItem item; item.id = VDomDocument::GetParametrUInt(element, AttrIdObject, NULL_ID_STR); item.alias = VDomDocument::GetParametrEmptyString(element, AttrAlias); + item.penStyle = VDomDocument::GetParametrString(element, AttrPenStyle, TypeLineDefault); + item.color = VDomDocument::GetParametrString(element, AttrColor, ColorDefault); source.append(item); } } @@ -250,6 +252,14 @@ QVector VAbstractOperation::ExtractDestinationData(const QDomEl return destination; } +//--------------------------------------------------------------------------------------------------------------------- +QMap VAbstractOperation::OperationColorsList() +{ + QMap list = VAbstractTool::ColorsList(); + list.insert(ColorDefault, '<' + tr("default") + '>'); + return list; +} + //--------------------------------------------------------------------------------------------------------------------- void VAbstractOperation::FullUpdateFromFile() { @@ -728,6 +738,8 @@ void VAbstractOperation::SaveSourceDestination(QDomElement &tag) QDomElement item = doc->createElement(TagItem); doc->SetAttribute(item, AttrIdObject, sItem.id); doc->SetAttributeOrRemoveIf(item, AttrAlias, sItem.alias, sItem.alias.isEmpty()); + doc->SetAttributeOrRemoveIf(item, AttrPenStyle, sItem.penStyle, sItem.penStyle == TypeLineDefault); + doc->SetAttributeOrRemoveIf(item, AttrColor, sItem.color, sItem.color == ColorDefault); tagObjects.appendChild(item); } tag.appendChild(tagObjects); diff --git a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h index 29ff7c12c..87c897fda 100644 --- a/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h +++ b/src/libs/vtools/tools/drawTools/operation/vabstractoperation.h @@ -98,6 +98,8 @@ public: static void ExtractData(const QDomElement &domElement, VAbstractOperationInitData &initData); static QVector ExtractSourceData(const QDomElement &domElement); static QVector ExtractDestinationData(const QDomElement &domElement); + + static QMap OperationColorsList(); public slots: virtual void FullUpdateFromFile() override; diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp b/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp index 957d70007..fce7d2458 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp +++ b/src/libs/vtools/tools/drawTools/operation/vtoolmove.cpp @@ -628,6 +628,16 @@ DestinationItem VToolMove::CreateItem(quint32 idTool, const SourceItem &sItem, q moved.SetAliasSuffix(sItem.alias); } + if (sItem.penStyle != TypeLineDefault) + { + moved.SetPenStyle(sItem.penStyle); + } + + if (sItem.color != ColorDefault) + { + moved.SetColor(sItem.color); + } + DestinationItem item; item.id = data->AddGObject(new Item(moved)); return item; @@ -672,6 +682,16 @@ void VToolMove::UpdateItem(quint32 idTool, const SourceItem &sItem, qreal angle, moved.SetAliasSuffix(sItem.alias); } + if (sItem.penStyle != TypeLineDefault) + { + moved.SetPenStyle(sItem.penStyle); + } + + if (sItem.color != ColorDefault) + { + moved.SetColor(sItem.color); + } + data->UpdateGObject(id, new Item(moved)); } diff --git a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp index 7e9687da0..5b6062ba0 100644 --- a/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp +++ b/src/libs/vtools/tools/drawTools/operation/vtoolrotation.cpp @@ -439,6 +439,16 @@ DestinationItem VToolRotation::CreateItem(quint32 idTool, const SourceItem &sIte rotated.SetAliasSuffix(sItem.alias); } + if (sItem.penStyle != TypeLineDefault) + { + rotated.SetPenStyle(sItem.penStyle); + } + + if (sItem.color != ColorDefault) + { + rotated.SetColor(sItem.color); + } + DestinationItem item; item.id = data->AddGObject(new Item(rotated)); return item; @@ -507,6 +517,16 @@ void VToolRotation::UpdateItem(quint32 idTool, const SourceItem &sItem, const QP rotated.SetAliasSuffix(sItem.alias); } + if (sItem.penStyle != TypeLineDefault) + { + rotated.SetPenStyle(sItem.penStyle); + } + + if (sItem.color != ColorDefault) + { + rotated.SetColor(sItem.color); + } + data->UpdateGObject(id, new Item(rotated)); } diff --git a/src/libs/vtools/tools/toolsdef.cpp b/src/libs/vtools/tools/toolsdef.cpp index e76d15dc6..76cde66f3 100644 --- a/src/libs/vtools/tools/toolsdef.cpp +++ b/src/libs/vtools/tools/toolsdef.cpp @@ -28,6 +28,11 @@ #include "toolsdef.h" +#include +#include +#include +#include +#include #include #include @@ -103,3 +108,11 @@ QString OriginAlias(quint32 id, const QVector &source, const QShared return QString(); } + +//--------------------------------------------------------------------------------------------------------------------- +QMap OperationLineStylesPics() +{ + QMap map = LineStylesPics(); + map.insert(TypeLineDefault, QIcon()); + return map; +} diff --git a/src/libs/vtools/tools/toolsdef.h b/src/libs/vtools/tools/toolsdef.h index ce09a70f4..f9743797f 100644 --- a/src/libs/vtools/tools/toolsdef.h +++ b/src/libs/vtools/tools/toolsdef.h @@ -38,6 +38,8 @@ struct SourceItem { quint32 id{0}; QString alias{}; + QString penStyle{}; + QString color{}; }; Q_DECLARE_METATYPE(SourceItem) @@ -50,4 +52,6 @@ QString OriginAlias(quint32 id, const QVector &source, const QShared bool SourceAliasValid(const SourceItem &item, const QSharedPointer &obj, const VContainer *data, const QString &originAlias); +QMap OperationLineStylesPics(); + #endif // TOOLSDEF_H diff --git a/src/libs/vtools/tools/vabstracttool.cpp b/src/libs/vtools/tools/vabstracttool.cpp index 0488f935a..1354397d3 100644 --- a/src/libs/vtools/tools/vabstracttool.cpp +++ b/src/libs/vtools/tools/vabstracttool.cpp @@ -273,13 +273,25 @@ int VAbstractTool::ConfirmDeletion() //--------------------------------------------------------------------------------------------------------------------- const QStringList VAbstractTool::Colors() { - const QStringList colors = QStringList() << ColorBlack << ColorGreen << ColorBlue - << ColorDarkRed << ColorDarkGreen << ColorDarkBlue - << ColorYellow << ColorLightSalmon << ColorGoldenRod - << ColorOrange << ColorDeepPink << ColorViolet - << ColorDarkViolet << ColorMediumSeaGreen << ColorLime - << ColorDeepSkyBlue << ColorCornFlowerBlue; - return colors; + return QStringList { + ColorBlack, + ColorGreen, + ColorBlue, + ColorDarkRed, + ColorDarkGreen, + ColorDarkBlue, + ColorYellow, + ColorLightSalmon, + ColorGoldenRod, + ColorOrange, + ColorDeepPink, + ColorViolet, + ColorDarkViolet, + ColorMediumSeaGreen, + ColorLime, + ColorDeepSkyBlue, + ColorCornFlowerBlue + }; } //---------------------------------------------------------------------------------------------------------------------