diff --git a/src/app/dialogs/tools/dialogendline.cpp b/src/app/dialogs/tools/dialogendline.cpp index e450a5659..8c25748a5 100644 --- a/src/app/dialogs/tools/dialogendline.cpp +++ b/src/app/dialogs/tools/dialogendline.cpp @@ -64,6 +64,7 @@ DialogEndLine::DialogEndLine(const VContainer *data, const quint32 &toolId, QWid FillComboBoxPoints(ui->comboBoxBasePoint); FillComboBoxTypeLine(ui->comboBoxLineType, VAbstractTool::LineStylesPics()); + FillComboBoxLineColors(ui->comboBoxLineColor); connect(ui->toolButtonPutHereLength, &QPushButton::clicked, this, &DialogEndLine::PutHere); connect(ui->toolButtonPutHereAngle, &QPushButton::clicked, this, &DialogEndLine::PutAngle); diff --git a/src/app/dialogs/tools/dialogendline.ui b/src/app/dialogs/tools/dialogendline.ui index a5e8259f5..93dbd3f8f 100644 --- a/src/app/dialogs/tools/dialogendline.ui +++ b/src/app/dialogs/tools/dialogendline.ui @@ -409,6 +409,9 @@ + + QFormLayout::AllNonFixedFieldsGrow + @@ -477,6 +480,16 @@ + + + + Line color + + + + + + diff --git a/src/app/dialogs/tools/dialogtool.cpp b/src/app/dialogs/tools/dialogtool.cpp index 872a12c20..bcd73eab9 100644 --- a/src/app/dialogs/tools/dialogtool.cpp +++ b/src/app/dialogs/tools/dialogtool.cpp @@ -301,6 +301,50 @@ void DialogTool::FillComboBoxTypeLine(QComboBox *box, const QMap box->setCurrentIndex(1); } +//--------------------------------------------------------------------------------------------------------------------- +void DialogTool::FillComboBoxLineColors(QComboBox *box) const +{ + SCASSERT(box != nullptr); + + const QStringList colorNames = VAbstractTool::Colors(); + + for (int i = 0; i < colorNames.size(); ++i) + { + QString name; + switch (i) + { + case 0: // ColorBlack + name = tr("black"); + break; + case 1: // ColorGreen + name = tr("green"); + break; + case 2: // ColorBlue + name = tr("blue"); + break; + case 3: // ColorDarkRed + name = tr("dark red"); + break; + case 4: // ColorDarkGreen + name = tr("dark green"); + break; + case 5: // ColorDarkBlue + name = tr("dark blue"); + break; + case 6: // ColorYellow + name = tr("yellow"); + break; + default: + name = tr("black"); + break; + } + + QPixmap pix(16, 16); + pix.fill(QColor(colorNames.at(i))); + box->insertItem(i, QIcon(pix), name, QVariant(colorNames.at(i))); + } +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief getTypeLine return type of line @@ -318,6 +362,18 @@ QString DialogTool::GetTypeLine(const QComboBox *box) const return value; } +//--------------------------------------------------------------------------------------------------------------------- +QString DialogTool::GetLineColor(const QComboBox *box) const +{ + SCASSERT(box != nullptr) + QString value = box->currentData().toString(); + if (value.isEmpty()) + { + value = VAbstractTool::ColorBlack; + } + return value; +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief SetupTypeLine setupe type of line diff --git a/src/app/dialogs/tools/dialogtool.h b/src/app/dialogs/tools/dialogtool.h index 7366a862e..b5041d7a2 100644 --- a/src/app/dialogs/tools/dialogtool.h +++ b/src/app/dialogs/tools/dialogtool.h @@ -216,6 +216,7 @@ protected: ComboBoxCutSpline cut = ComboBoxCutSpline::NoCutSpline)const; void FillComboBoxCurves(QComboBox *box)const; void FillComboBoxTypeLine(QComboBox *box, const QMap &stylesPics) const; + void FillComboBoxLineColors(QComboBox *box)const; virtual void CheckState(); QString GetTypeLine(const QComboBox *box)const; template diff --git a/src/app/tools/vabstracttool.cpp b/src/app/tools/vabstracttool.cpp index 9737f9777..7b5034667 100644 --- a/src/app/tools/vabstracttool.cpp +++ b/src/app/tools/vabstracttool.cpp @@ -85,8 +85,8 @@ const QString VAbstractTool::ColorGreen = QStringLiteral("green"); const QString VAbstractTool::ColorBlue = QStringLiteral("blue"); const QString VAbstractTool::ColorDarkRed = QStringLiteral("darkRed"); const QString VAbstractTool::ColorDarkGreen = QStringLiteral("darkGreen"); -const QString VAbstractTool::ColorDarkBlue = QStringLiteral("DarkBlue"); -const QString VAbstractTool::ColorYellow = QStringLiteral("Yellow"); +const QString VAbstractTool::ColorDarkBlue = QStringLiteral("darkBlue"); +const QString VAbstractTool::ColorYellow = QStringLiteral("yellow"); //--------------------------------------------------------------------------------------------------------------------- /** diff --git a/src/app/tools/vabstracttool.h b/src/app/tools/vabstracttool.h index 3667f9377..dca1083a1 100644 --- a/src/app/tools/vabstracttool.h +++ b/src/app/tools/vabstracttool.h @@ -86,6 +86,9 @@ public: static const QString AttrAxisP1; static const QString AttrAxisP2; static const QString AttrCurve; + static const QString AttrLineColor; + static const QString AttrColor; + static const QString TypeLineNone; static const QString TypeLineLine; static const QString TypeLineDashLine; @@ -93,10 +96,20 @@ public: static const QString TypeLineDashDotLine; static const QString TypeLineDashDotDotLine; + static const QString ColorBlack; + static const QString ColorGreen; + static const QString ColorBlue; + static const QString ColorDarkRed; + static const QString ColorDarkGreen; + static const QString ColorDarkBlue; + static const QString ColorYellow; + static const QStringList StylesList(); static Qt::PenStyle LineStyleToPenStyle(const QString &typeLine); static QMap LineStylesPics(); + static const QStringList Colors(); + static void AddRecord(const quint32 id, const Tool &toolType, VPattern *doc); const VContainer *getData() const;