From aa24976f9a568844dd76c6f969281b5d6da52507 Mon Sep 17 00:00:00 2001 From: Valentina Zhuravska Date: Sat, 17 Dec 2016 03:17:29 +0200 Subject: [PATCH] Added elliptical arc tool to MainWindow. --HG-- branch : feature --- src/app/valentina/mainwindow.cpp | 30 ++++++- src/app/valentina/mainwindow.h | 1 + src/app/valentina/mainwindow.ui | 80 ++++++++++++++++++ src/app/valentina/share/resources/cursor.qrc | 2 + .../share/resources/cursor/el_arc_cursor.png | Bin 0 -> 473 bytes .../resources/cursor/el_arc_cursor@2x.png | Bin 0 -> 964 bytes .../valentina/share/resources/toolicon.qrc | 2 + .../share/resources/toolicon/32x32/el_arc.png | Bin 0 -> 579 bytes .../resources/toolicon/32x32/el_arc@2x.png | Bin 0 -> 1178 bytes src/libs/ifc/xml/vabstractpattern.cpp | 8 +- src/libs/vmisc/share/resources/icon.qrc | 2 + .../resources/icon/16x16/toolsectionelarc.png | Bin 0 -> 305 bytes .../icon/16x16/toolsectionelarc@2x.png | Bin 0 -> 736 bytes 13 files changed, 118 insertions(+), 7 deletions(-) create mode 100644 src/app/valentina/share/resources/cursor/el_arc_cursor.png create mode 100644 src/app/valentina/share/resources/cursor/el_arc_cursor@2x.png create mode 100644 src/app/valentina/share/resources/toolicon/32x32/el_arc.png create mode 100644 src/app/valentina/share/resources/toolicon/32x32/el_arc@2x.png create mode 100644 src/libs/vmisc/share/resources/icon/16x16/toolsectionelarc.png create mode 100644 src/libs/vmisc/share/resources/icon/16x16/toolsectionelarc@2x.png diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 9ef669c1b..f67d7ad0a 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -874,6 +874,20 @@ void MainWindow::ToolArc(bool checked) &MainWindow::ApplyDialog); } +//--------------------------------------------------------------------------------------------------------------------- +/** + * @brief ToolEllipticalArc handler tool arc. + * @param checked true - button checked. + */ +void MainWindow::ToolEllipticalArc(bool checked) +{ + ToolSelectPointByRelease(); + SetToolButtonWithApply(checked, Tool::EllipticalArc, ":/cursor/el_arc_cursor.png", + tr("Select point of center of elliptical arc"), + &MainWindow::ClosedDialogWithApply, + &MainWindow::ApplyDialog); +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief ToolSplinePath handler tool splinePath. @@ -1698,6 +1712,7 @@ void MainWindow::InitToolButtons() toolButtonPointerList.append(ui->toolButtonPointerArc); toolButtonPointerList.append(ui->toolButtonPointerDetail); toolButtonPointerList.append(ui->toolButtonPointerOperations); + toolButtonPointerList.append(ui->toolButtonPointerEllipticalArc); for (auto pointer : toolButtonPointerList) { @@ -1746,6 +1761,7 @@ void MainWindow::InitToolButtons() connect(ui->toolButtonMove, &QToolButton::clicked, this, &MainWindow::ToolMove); connect(ui->toolButtonMidpoint, &QToolButton::clicked, this, &MainWindow::ToolMidpoint); connect(ui->toolButtonLayoutExportAs, &QToolButton::clicked, this, &MainWindow::ExportLayoutAs); + connect(ui->toolButtonEllipticalArc, &QToolButton::clicked, this, &MainWindow::ToolEllipticalArc); } //--------------------------------------------------------------------------------------------------------------------- @@ -1773,7 +1789,7 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default") void MainWindow::CancelTool() { // This check helps to find missed tools in the switch - Q_STATIC_ASSERT_X(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 48, "Not all tools was handled."); + Q_STATIC_ASSERT_X(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 49, "Not all tools was handled."); qCDebug(vMainWindow, "Canceling tool."); delete dialogTool; @@ -1922,6 +1938,9 @@ void MainWindow::CancelTool() case Tool::Move: ui->toolButtonMove->setChecked(false); break; + case Tool::EllipticalArc: + ui->toolButtonEllipticalArc->setChecked(false); + break; } // Crash: using CRTL+Z while using line tool. @@ -2972,7 +2991,7 @@ void MainWindow::SetEnableTool(bool enable) } // This check helps to find missed tools - Q_STATIC_ASSERT_X(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 48, "Not all tools were handled."); + Q_STATIC_ASSERT_X(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 49, "Not all tools were handled."); //Drawing Tools ui->toolButtonEndLine->setEnabled(drawTools); @@ -3011,6 +3030,7 @@ void MainWindow::SetEnableTool(bool enable) ui->toolButtonFlippingByAxis->setEnabled(drawTools); ui->toolButtonMove->setEnabled(drawTools); ui->toolButtonMidpoint->setEnabled(drawTools); + ui->toolButtonEllipticalArc->setEnabled(drawTools); ui->actionLast_tool->setEnabled(drawTools); @@ -3292,7 +3312,7 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default") void MainWindow::LastUsedTool() { // This check helps to find missed tools in the switch - Q_STATIC_ASSERT_X(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 48, "Not all tools was handled."); + Q_STATIC_ASSERT_X(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 49, "Not all tools was handled."); if (currentTool == lastUsedTool) { @@ -3470,6 +3490,10 @@ void MainWindow::LastUsedTool() ui->toolButtonMove->setChecked(true); ToolMove(true); break; + case Tool::EllipticalArc: + ui->toolButtonEllipticalArc->setChecked(true); + ToolEllipticalArc(true); + break; } } diff --git a/src/app/valentina/mainwindow.h b/src/app/valentina/mainwindow.h index 8bc530b0c..1739fdd9c 100644 --- a/src/app/valentina/mainwindow.h +++ b/src/app/valentina/mainwindow.h @@ -129,6 +129,7 @@ private slots: void ToolCubicBezier(bool checked); void ToolCutSpline(bool checked); void ToolArc(bool checked); + void ToolEllipticalArc(bool checked); void ToolSplinePath(bool checked); void ToolCubicBezierPath(bool checked); void ToolCutSplinePath(bool checked); diff --git a/src/app/valentina/mainwindow.ui b/src/app/valentina/mainwindow.ui index 27f576e5e..0b44070b6 100644 --- a/src/app/valentina/mainwindow.ui +++ b/src/app/valentina/mainwindow.ui @@ -1058,6 +1058,86 @@ + + + + 0 + 0 + 130 + 56 + + + + + 0 + 0 + + + + Tools for creating elliptical arcs. + + + + :/icon/16x16/toolsectionelarc@2x.png:/icon/16x16/toolsectionelarc@2x.png + + + Elliptical Arc + + + + + + false + + + Tool pointer + + + ... + + + + :/icon/32x32/arrow_cursor.png:/icon/32x32/arrow_cursor.png + + + + 32 + 32 + + + + true + + + + + + + false + + + Arc + + + ... + + + + :/toolicon/32x32/el_arc.png:/toolicon/32x32/el_arc.png + + + + 32 + 32 + + + + true + + + + + diff --git a/src/app/valentina/share/resources/cursor.qrc b/src/app/valentina/share/resources/cursor.qrc index b2631218b..e92f24e13 100644 --- a/src/app/valentina/share/resources/cursor.qrc +++ b/src/app/valentina/share/resources/cursor.qrc @@ -76,5 +76,7 @@ cursor/flipping_axis_cursor@2x.png cursor/move_cursor.png cursor/move_cursor@2x.png + cursor/el_arc_cursor.png + cursor/el_arc_cursor@2x.png diff --git a/src/app/valentina/share/resources/cursor/el_arc_cursor.png b/src/app/valentina/share/resources/cursor/el_arc_cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..03b9d0ef50a234261c5fe5c51335d85e5fbd12af GIT binary patch literal 473 zcmV;~0Ve*5P)Ml$(gFW~_$v@Q45S18LmlBX5DxeYb-;i*;t!Go2E-BQ4xqaueq(U}T^;cY zhXd&52z(Bpiz9v#Z~)C6@q-8l(9{vcI)G-5_)dZYXyS-(BszfVjv&VYL_6XqD}(+Y zPKNORTnt|O85mfwsrgE#18_P5D8cxLiy`GNC&PXq?)$^dkno?Ip%UnjeLy)bboE~- zZ~%rQfCAzmi~n#iBx98MTny4I1iCKu2F zJFsc^h-Ud7Am%62a!w$=4{c+3q4=JIq2)IhgAX=MACN4c2gIxtgt8D)8?zYhdo~75 zVBBxSrRf7yQw^1(8q~y32VzEO&~yCbV%QDL8Irg(TnFMPnzeYj7&iRo7?>tMBQV&P z|6yYYqPxwo6c0>v-gLJd7~Hm?qWBjlgE`$T2bS{zK+7k;XJ8N*^gUt#ZWbVjU}x-O P00000NkvXXu0mjfM|{Ky literal 0 HcmV?d00001 diff --git a/src/app/valentina/share/resources/cursor/el_arc_cursor@2x.png b/src/app/valentina/share/resources/cursor/el_arc_cursor@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..32949c8e22c18f577418fe20cafedb5ceb69dcac GIT binary patch literal 964 zcmV;#13UbQP)*(V2Nj|CI4goe zg@P?A)gmHVwQ5`Y(!SC(yBlX>l(Z(cTw z2#W#$0u4bFKwu%HZ2$-)gaw-b0tdkffIvY=IRp?G2=f&H2n2*m0Z0#F&IJHcLzs05 zfV2?Y1Ry1Z8J7V_2VuGj0HlIYEdbI$_*F#!Qb71wWdOd1PzwOQhA>ql0KSDVSwjH6 zgivb$zJoB~0RYz^EQYb$h~cuK;g+7jLnDDM(ss)0r06lmJp$ku!Z#p6Mqbi2Oq&`^ z(mC4hHyUxDKn&35jG4e3!P(a2)0=r zcg$k|LJ%@h93_KNrQHC$B!Dre&3As+f&< z!23M`LNWkY0%2-LGD%-FWLKk^a{Ia-##y^_g%QP-Y!k8^4dup-`Ut>32xI#at=Tq& z=!@ogV6Br1L36}a5dgzJ1Hk$me>NIeot8)faF0{q0+#`Fq_U{*sx-_try-!`@L6Pxa1&p7_Uw{{KvEVxRDb`-g**}3^%KdSx*^-Pv+nSmoY@5gXJ^dv)NjPHTBFHP<&a!qNA+#fdMcm^B&!k_% zUJiL$=B9?c?@?+e+|wH|oX_1D)$qv5b@D&*@@W%&&hCqm^2(Mxdv0000toolicon/32x32/flipping_axis@2x.png toolicon/32x32/move.png toolicon/32x32/move@2x.png + toolicon/32x32/el_arc.png + toolicon/32x32/el_arc@2x.png diff --git a/src/app/valentina/share/resources/toolicon/32x32/el_arc.png b/src/app/valentina/share/resources/toolicon/32x32/el_arc.png new file mode 100644 index 0000000000000000000000000000000000000000..d2af0b2c424bd98ad5fcb3a319aaaaad59ce7761 GIT binary patch literal 579 zcmV-J0=)f+P)m7q>Xw9Tvw=k+bPqjd#yG*J>rvd_=yk@6cT`;!*U`q^R{ld8^h3$ck7_IZP< zJoc?Bzy~uam3BjG^if9%DsZkMl@%|*pY7sH@I16j_9j|Xu&@0ffctN9f5Q8}#*H~D z0*KKb-UP7s1^BG|N}4EES6D*e6W#h>ML;RpU&+=Bj*0Xtl??qbW4z1>2e_U`uE;|YTQ_wL(l RZ1eyC002ovPDHLkV1ghv7(D<0 literal 0 HcmV?d00001 diff --git a/src/app/valentina/share/resources/toolicon/32x32/el_arc@2x.png b/src/app/valentina/share/resources/toolicon/32x32/el_arc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c97ba7b984a3182e7380e1bf39406b2932729d GIT binary patch literal 1178 zcmV;L1ZDe)P)VR%kYD zDp7^%qIIf7jgZ5tk4{34;{7hwO{?*}JKq2osUE5W$X0+HRTT=UC8W+NGEJynI*8}I zxek1x>Y&{riM}TVomdecp|t8;1YQP9pGgQxq1liEg~&97-`oJe7Fc^93j-+XUPz|T z24yMahxaVc72q@5DWEJHE?f;o!$ZGHdq;D7h2Gl%yhekK@$WEuK;{KKS?Al) z`8a7a$2z-6w1zNz&Mktf!~*Z78r}LR$>LdGqBcGD-E>|o@N73(p&6ZiTe$8>rLldv z3dml_Wk@|`xMINloAuJ?qdq%m^@0; z^|xq*CtUY`vV#%3DPS-~1>8)-_1T`|TRro8sMU_;xibauK}zEc52fx3w+em26k6AxO{Jf z70&zQ7J$3CtpC7nl-KOl-YIUggB^WWiv!+6JM_g)IP32e34E>L_J^0+MOx=^~_qI!Te{^v)gF;Lr;`R?vZ*g=IM%ZIPVU&VI|@*TVrtG8b~tJ9XU0&#jNYI*JQ sq=ya(k>%r(-gdbAabbu}q2)pQ2e+bE7@G33*Z=?k07*qoM6N<$f@t0~^Z)<= literal 0 HcmV?d00001 diff --git a/src/libs/ifc/xml/vabstractpattern.cpp b/src/libs/ifc/xml/vabstractpattern.cpp index c7ed109f2..05076bd9f 100644 --- a/src/libs/ifc/xml/vabstractpattern.cpp +++ b/src/libs/ifc/xml/vabstractpattern.cpp @@ -1422,7 +1422,7 @@ QStringList VAbstractPattern::ListPointExpressions() const { // Check if new tool doesn't bring new attribute with a formula. // If no just increment number - Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 48); + Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 49); QStringList expressions; const QDomNodeList list = elementsByTagName(TagPoint); @@ -1493,7 +1493,7 @@ QStringList VAbstractPattern::ListArcExpressions() const { // Check if new tool doesn't bring new attribute with a formula. // If no just increment number - Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 48); + Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 49); QStringList expressions; const QDomNodeList list = elementsByTagName(TagArc); @@ -1554,7 +1554,7 @@ QStringList VAbstractPattern::ListPathPointExpressions() const { // Check if new tool doesn't bring new attribute with a formula. // If no just increment number - Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 48); + Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 49); QStringList expressions; const QDomNodeList list = elementsByTagName(AttrPathPoint); @@ -1620,7 +1620,7 @@ QStringList VAbstractPattern::ListOperationExpressions() const { // Check if new tool doesn't bring new attribute with a formula. // If no just increment number - Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 48); + Q_STATIC_ASSERT(static_cast(Tool::LAST_ONE_DO_NOT_USE) == 49); QStringList expressions; const QDomNodeList list = elementsByTagName(TagOperation); diff --git a/src/libs/vmisc/share/resources/icon.qrc b/src/libs/vmisc/share/resources/icon.qrc index ee4e61b21..012520e8b 100644 --- a/src/libs/vmisc/share/resources/icon.qrc +++ b/src/libs/vmisc/share/resources/icon.qrc @@ -64,5 +64,7 @@ icon/16x16/allow_detail@2x.png icon/16x16/forbid_detail.png icon/16x16/forbid_detail@2x.png + icon/16x16/toolsectionelarc.png + icon/16x16/toolsectionelarc@2x.png diff --git a/src/libs/vmisc/share/resources/icon/16x16/toolsectionelarc.png b/src/libs/vmisc/share/resources/icon/16x16/toolsectionelarc.png new file mode 100644 index 0000000000000000000000000000000000000000..2178c0aab183e9e11389b8538690e8c3fd8e5b66 GIT binary patch literal 305 zcmV-10nYx3P)oURpOmX?lWdJ4Wfy0t>5_ULuV!`UvIXe;g$xP_95@Zo za!$RVUyBYOnxkZIm`e6IJG|Za}Zeh00000NkvXXu0mjf D@Q!<| literal 0 HcmV?d00001 diff --git a/src/libs/vmisc/share/resources/icon/16x16/toolsectionelarc@2x.png b/src/libs/vmisc/share/resources/icon/16x16/toolsectionelarc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2f66ae8b378e3f6a8e4bb315d556d4593c4b1958 GIT binary patch literal 736 zcmV<60w4W}P)`%qmqOxU^Yj`DYYq4|)jLV&iQ8coC0YEb2`>D5wWT5K&wZ z@gj(VhoTh^Qa#v%^w5Kdh+u8C)kyW=H>npv%uJ#PB@Z(BC-CNb-}k=vGO<`a>QRq{ zA8K<-_t~VnYx#eHPvvY`GW=%(aS#19Mz}PDEM-Nh0*FsCsHF?YC4)jd$-&LH?(b>3l@kRmuMI`Q3PPI10 z(&?5kxq|KiH+&dm%a(DNJc%N*Q)A(0(e5ed9K-Pg)wi-v5{S%AObG`BZw z?yAk!T7aT(T0-t46v9WAo>#n_K)jK8$2&*E$yaDXpOd`qo&s0ll z1a6yuF_~Og#^&uF%=i#kk4R(CJOEd;*6*Kub<@irpXIYH{&+VQKwks~+`O5b*;bhtBkd S2|geI0000