From f60aea18d30ac6cda75800b606634b7eef7f6a0d Mon Sep 17 00:00:00 2001 From: Florian ROMEO Date: Tue, 9 Aug 2016 11:40:44 +0200 Subject: [PATCH] Add manage button in line pattern selector --- lcUI/widgets/linepatternpainter.cpp | 2 +- lcUI/widgets/linepatternpainter.h | 2 +- lcUI/widgets/linepatternselect.cpp | 17 +++++++++++------ lcUI/widgets/linepatternselect.h | 2 ++ unittest/ui/testlinepatterns.cpp | 6 +++--- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/lcUI/widgets/linepatternpainter.cpp b/lcUI/widgets/linepatternpainter.cpp index 871a9e0f3..400881314 100644 --- a/lcUI/widgets/linepatternpainter.cpp +++ b/lcUI/widgets/linepatternpainter.cpp @@ -6,7 +6,7 @@ LinePatternPainter::LinePatternPainter(QPaintDevice *device, lc::DxfLinePattern_ _width(width) { } -LinePatternPainter::LinePatternPainter(QPaintDevice *device, int width, lc::DxfLinePattern_CSPtr linePattern) : +LinePatternPainter::LinePatternPainter(QPaintDevice *device, double width, lc::DxfLinePattern_CSPtr linePattern) : _device(device), _linePattern(linePattern), _width(width) { diff --git a/lcUI/widgets/linepatternpainter.h b/lcUI/widgets/linepatternpainter.h index f4e96ec23..e3cdd7910 100644 --- a/lcUI/widgets/linepatternpainter.h +++ b/lcUI/widgets/linepatternpainter.h @@ -7,7 +7,7 @@ class LinePatternPainter { public: LinePatternPainter(QPaintDevice* device, lc::DxfLinePattern_CSPtr linePattern, int width = 1); - LinePatternPainter(QPaintDevice* device, int width, lc::DxfLinePattern_CSPtr linePattern = nullptr); + LinePatternPainter(QPaintDevice* device, double width, lc::DxfLinePattern_CSPtr linePattern = nullptr); void drawLinePattern(); private: diff --git a/lcUI/widgets/linepatternselect.cpp b/lcUI/widgets/linepatternselect.cpp index c20c9102f..82d03f69e 100644 --- a/lcUI/widgets/linepatternselect.cpp +++ b/lcUI/widgets/linepatternselect.cpp @@ -63,21 +63,26 @@ void LinePatternSelect::onActivated(const QString& text) { auto dialog = new AddLinePatternDialog(_document, this); dialog->show(); } + else if(text == MANAGE_LP) { + auto dialog = new LinePatternManager(_document, this); + dialog->show(); + } } void LinePatternSelect::createEntries() { clear(); if(_document != nullptr) { - if(_showByBlock) { - insertItem(0, BY_BLOCK); - } + addItem(NEW_LP); + addItem(MANAGE_LP); + insertSeparator(2); if(_showByLayer) { - insertItem(0, BY_LAYER); + addItem(BY_LAYER); + } + if(_showByBlock) { + addItem(BY_BLOCK); } - - insertItem(0, NEW_LP); auto linePatterns = _document->linePatterns(); for (auto linePattern : linePatterns) { diff --git a/lcUI/widgets/linepatternselect.h b/lcUI/widgets/linepatternselect.h index 3b7caf741..9b47d6ef8 100644 --- a/lcUI/widgets/linepatternselect.h +++ b/lcUI/widgets/linepatternselect.h @@ -5,11 +5,13 @@ #include #include #include +#include #include #define BY_BLOCK "ByBlock" #define BY_LAYER "ByLayer" #define NEW_LP "New line pattern" +#define MANAGE_LP "Manage line patterns" class LinePatternSelect : public QComboBox { Q_OBJECT diff --git a/unittest/ui/testlinepatterns.cpp b/unittest/ui/testlinepatterns.cpp index 4e0955557..084ab0efe 100644 --- a/unittest/ui/testlinepatterns.cpp +++ b/unittest/ui/testlinepatterns.cpp @@ -68,11 +68,11 @@ TEST(LinePatternTest, Selection) { auto document = createDocument(); auto linePatternSelect = new LinePatternSelect(document); - EXPECT_EQ(1, linePatternSelect->count()) << "Select should contains New"; + EXPECT_EQ(3, linePatternSelect->count()) << "Select should contains New/Manage/Separator"; delete linePatternSelect; linePatternSelect = new LinePatternSelect(document, 0, true, true); - EXPECT_EQ(3, linePatternSelect->count()) << "Select should contains New/ByBlock/ByLayer"; + EXPECT_EQ(5, linePatternSelect->count()) << "Select should contains New/Manage/Separator/ByBlock/ByLayer"; auto linePattern1 = std::make_shared("LP", "Line Pattern", std::vector{1, -1, 0, -1}, 3); auto linePattern2 = std::make_shared("NLP", "New Line Pattern", std::vector{0, -1, 1, -1}, 3); @@ -82,7 +82,7 @@ TEST(LinePatternTest, Selection) { operation = std::make_shared(document, linePattern2); operation->execute(); - EXPECT_EQ(5, linePatternSelect->count()) << "Layers were not added to line pattern select"; + EXPECT_EQ(7, linePatternSelect->count()) << "Line patterns were not added to select"; linePatternSelect->setCurrentText(linePattern1->name().c_str()); EXPECT_EQ(linePattern1, linePatternSelect->linePattern()) << "Selected line pattern wasn't returned";