From b3a08555fafdce6c14000953c4fccc97655ce6b6 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 16 Aug 2022 21:06:49 +0200 Subject: [PATCH 01/11] Fix flight config buttons still enabled when no motor mount --- .../FlightConfigurationPanel.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java index 2e37fb14d..767c8b29e 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java @@ -21,6 +21,8 @@ import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.document.Simulation; import net.sf.openrocket.gui.dialogs.flightconfiguration.RenameConfigDialog; import net.sf.openrocket.gui.main.BasicFrame; +import net.sf.openrocket.gui.main.RocketActions; +import net.sf.openrocket.gui.util.Icons; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.rocketcomponent.ComponentChangeEvent; import net.sf.openrocket.rocketcomponent.FlightConfigurableComponent; @@ -95,19 +97,23 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe tabs.add(trans.get("edtmotorconfdlg.lbl.Stagetab"), separationConfigurationPanel); //// New configuration - newConfButton = new SelectColorButton(newConfigAction); + newConfButton = new SelectColorButton(); + RocketActions.tieActionToButton(newConfButton, newConfigAction); this.add(newConfButton,"skip 1,gapright para"); //// Rename configuration - renameConfButton = new SelectColorButton(renameConfigAction); + renameConfButton = new SelectColorButton(); + RocketActions.tieActionToButton(renameConfButton, renameConfigAction); this.add(renameConfButton,"gapright para"); //// Remove configuration - removeConfButton = new SelectColorButton(removeConfigAction); + removeConfButton = new SelectColorButton(); + RocketActions.tieActionToButton(removeConfButton, removeConfigAction); this.add(removeConfButton,"gapright para"); //// Duplicate configuration - duplicateConfButton = new SelectColorButton(duplicateConfigAction); + duplicateConfButton = new SelectColorButton(); + RocketActions.tieActionToButton(duplicateConfButton, duplicateConfigAction); this.add(duplicateConfButton, "wrap"); tabs.addChangeListener(new ChangeListener() { @@ -261,9 +267,10 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe private void updateButtonState() { FlightConfigurationId currentId = rocket.getSelectedConfiguration().getFlightConfigurationID(); // Enable the remove/rename/duplicate buttons only when a configuration is selected. - removeConfButton.setEnabled(currentId.isValid()); - renameConfButton.setEnabled(currentId.isValid()); - duplicateConfButton.setEnabled(currentId.isValid()); + boolean enabled = currentId.isValid() && !currentId.isDefaultId(); + removeConfButton.setEnabled(enabled); + renameConfButton.setEnabled(enabled); + duplicateConfButton.setEnabled(enabled); // Count the number of motor mounts int motorMountCount = rocket.accept(new ListMotorMounts()).size(); @@ -326,6 +333,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe private class NewConfigAction extends AbstractAction { public NewConfigAction() { putValue(NAME, trans.get("edtmotorconfdlg.but.Newconfiguration")); + putValue(LARGE_ICON_KEY, Icons.FILE_NEW); } @Override @@ -337,6 +345,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe private class RenameConfigAction extends AbstractAction { public RenameConfigAction() { putValue(NAME, trans.get("edtmotorconfdlg.but.Renameconfiguration")); + putValue(SMALL_ICON, Icons.EDIT_RENAME); } @Override @@ -348,6 +357,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe private class RemoveConfigAction extends AbstractAction { public RemoveConfigAction() { putValue(NAME, trans.get("edtmotorconfdlg.but.Removeconfiguration")); + putValue(SMALL_ICON, Icons.EDIT_DELETE); } @Override @@ -359,6 +369,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe private class DuplicateConfigAction extends AbstractAction { public DuplicateConfigAction() { putValue(NAME, trans.get("edtmotorconfdlg.but.Duplicateconfiguration")); + putValue(SMALL_ICON, Icons.EDIT_DUPLICATE); } @Override From 685a1b0342dd68f071ec1af806be3d344fd2ab17 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 16 Aug 2022 22:23:43 +0200 Subject: [PATCH 02/11] Add icons to buttons --- core/resources/pix/icons/down.png | Bin 912 -> 1863 bytes core/resources/pix/icons/up.png | Bin 906 -> 1879 bytes .../FlightConfigurationId.java | 3 +- .../sf/openrocket/gui/main/BasicFrame.java | 17 +++++++--- .../sf/openrocket/gui/main/RocketActions.java | 30 ++++++++++++++++++ .../openrocket/gui/main/SimulationPanel.java | 10 +++--- .../src/net/sf/openrocket/gui/util/Icons.java | 1 + 7 files changed, 49 insertions(+), 12 deletions(-) diff --git a/core/resources/pix/icons/down.png b/core/resources/pix/icons/down.png index f3bc4cd0932ce493d38a058dabf802a9c111277e..29cc3aa67be14416645f573069e72d1db76a9a42 100644 GIT binary patch literal 1863 zcmbVNeQeZZ81JUcu{onr6c*90hY4T3_U+y6uFZ~R?xx$^&260H^bf+@_U&D_>xXT3 zcbgdJB1QuQg}*>t03}93P=qN9!u(9+4BKez$v;m*MNfzfD1Wn{PHhZ4*T0z3y2;?AW=G zAm)9h#^O#q+9pVb=7q8$B5zhRF`6Li>a!-4dXYnlD52_M>eA6Mid5w=wI&c{qh=#Y zs?7ryT0PJnlLmSvUZ(0-k#$)C6KKeRWL8V*wvY`|IbH#;-Pa67<{(aQm}+nxlJRH< z*=SgZ40-`Au`Ejld9TPSArbNHN|IwazyOW`0h$8>7Z5;z%pVl?XUU4t6?rW04L^mc zq~n+Z!(=iUZ^q{}tONsio@ZE&;W!#2XuDr`V3yWxPk|wVY{^nhM>TZPWrU*9=Y%P& zbvg*mEYj+BK2bPjOct69@Um`DIiM^Rab};D$~l)M2BnaObjQY6P{f)^!!hinaRch& z=YKfB$&E&fK4#UTX+;;d)0D z3Z?2ONG3U-mm`-(p`_|=5X)wmpa^tOn8J1AXco{u5Cgmr@C$x!1q%e0orXpYSylRH zLPIpDjd3i-2>?U6zoEEoWaz;E1zUrt3d zDzxaf19b_tM8Xt~+N-Lv5DbX5Fc3mCtN0b#@0WQx1Ok9YK9Peyf2|}2#e#jrkow%( z7VKqguPCAjMLs|WfsdvAKoqe(QfMUC`T#^e;1`SjpR`oGyI|^;dE7ncHigiv+PGZ( z`8}~3J)2*pR5I5G0+ihT4pWj_SR_;V*Xk@8m|FzXw3#Hrq&F$|G|V;>Cj%|ikiglR zLqjn)l5fNG&Bf2HeE$_cYXjbz_iAKG8@+`jFj_VMq1 zqn`aE7ruGM8|;X8FJ15k{mImKAHLZ7(V9QTZd>+9S1a+tl)UlSTioEKf%f&oRq>~u z@DO*_Q$wRCZkN;K;ZJuwI7s?mYE6{hPc2#d(B7)$lM_E&>k;u>CdSXL9obqzOn!cv zyDEL{KU4R7vZC{gw6^WaS09`&ufB48>g;Qq$h&$Lml+lOw{eXfzkGS$kwqtyXRZ@e z<>1f!9((;+MBahdmP~^+lT(Y+*`HUHnNQUjKc2 r>zB&Mn>LR9cp>yoX?N#D=bxpM*M_F~M&X delta 889 zcmV-<1BU#^4v+_sB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0009bNkl*6RSU?1${&XP02o_*sVyHFJ6l;hk`)yJRAC$GGo{_o$vEU-eLz5g#{FaQJ)*na?qU;h{we*OU)!phF9 z*PLa-;9)Jt{N?w5hJSzmG4OFPGn~Hmior2@z2?{Nf1y@GECdK3hzq!w8UBN8`v(^L z$;JGi;rL4ihJ|Ms7`}h`!QiFF%%I5uvVh?i!+)stY|LQA00G1Va}EO&Bg|WWKmu<* zGca6v@}1$z!+&oKk6wRg06HD0A7ll{?f)TqfB+zXz%Kaz@4qC&_dg;GfBygc`STC& zuirp*|Nb&C{`}7H|JQe*k?ahAfMVai{NiNz_D2oqRW=4rmXAQKj{yP*YyclG`!-!2 zF{!++2_|l zt(pJ<1U7)-$e2{=xA6!#@T|K{19I&DQLk zY>YB*KmTC}DcTPX1b_enhrz3tpOdF8z4TjyS324P+nhS{rbGCX+jF%zU0Ab=o&$i{qN&HC%}mTkGo;Hbt547e{0 zx1WAx`1kV%!{1*&8SX#*#BlQR8-`#jQHDe3-!d#(duuHNGt+vIR)7Fvf~KB7e;Jt? z3OkSAVgL1op}~Wj;rr+B3}1lw>z8i~AK!gpsDFu+V=&baU?}Q2`}F&-Ka~vZOg}+d z0RjjSja)1*UOoFeEDWlCv`*91!aXPCJ94nxDlb88tmSaKQA@*Y3{ zv0!8`P>SSW%IcnT`NffouS(cinOP4Ue>MeZOC?YaBkKYL5F@4886dy_0S`NUs78Az P00000NkvXXu0mjfm?)`x diff --git a/core/resources/pix/icons/up.png b/core/resources/pix/icons/up.png index 184c118b63424218e82ea1a7d8acf4aa7f4741dc..b5b342aba7b9323c401d4d858b9e4ce1dc262a9c 100644 GIT binary patch literal 1879 zcmbVN4{X#_81Lp#*<4(h2F8??E|5*=wS9NDyVl*v*bVM*x6N_LLHM(G?Yp~XcWrIE z?KWJDix@$cm|+kmpkWvd0a0U!#^8_`Bw>a~gkZoWYC;APO;|FrM3}F)yL0Nmg{Hl} zw!iQ9{k}i%yB*Dqs|)iN<`V=_==XVB@V&^o9(@@9mW@q9e4DHJHW&m^P;6Z}#K8Uq z1Tp8d91NMEK!YHv2^*BuFtQ~R8b%XD^@^kh#WrM;VHA}W5B0~FLlh}X9%{Wazy`EB z6q9}3I$GP^7!A@N_)dk z9x7&*`-+{wOCuByn5$w_s(}E1OT^CV(2bNiGMWYFII)bLE z2URtmDOGbuG70Q9Kvo2xC@WSFmD5a+7n;aJ;kp5uQNh}SeFrXpJxx*3%Sk~pp*f;4i-d!;Mz&zHTvzkKi z$p$W0S9(vZMK7jTahXi@fdECTzde*_6&6WU`n5bm24)w*6m4e=Vbc4QdkSW#5wjEO zs5XkTHH(H~?j_%V9rqVMyYl^4{EQ9wVB*uM6=P6|B0Mq~$_j_EM$1%Tn19zS^=;Z1 z%E0k#vzFPhiXXCr87Y`r$7A>PADVU&M9#B*Z*9=scdY;9nune*+CH?oZ=s4fa{+`=&q$NMTd-a{R-G!0$ zmwfwwAK|0dhKIS&F6}D57K*om%6;e8)pe~J+)xsDr6_lC-o&PL#}CY}ICwO7^yE*E zyjnCgpQw2IM)#dVr{22MFc{)PXHGob({phr>>Hgo_QjEr&zE1gKJKgBQRb`J0vO26IJe_nZGc)$Z*`=;=TgU8SA9hfM&T(gB(aAU#d@J;iBuS#n6jMLRkxAd{R zQ)1cfVC%V0FA$ec40^WyylozFZcXW($;B%VJ)XPumu=6?1xMfe{^(ueV%e)C=J zV9%B+{z)dOup(+WQxKe{}Ky delta 883 zcmV-(1C0FF4vGhmB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0009VNkl*6RSU?0LV;7q6e?|s|e zOf1KaKj{IgYGPnu`i-LMe;ETn05L&~0aC0?Ad`Tce?a`ZJAW_Nr0d|mFrNMU!#S#| ztZIPb(;;$Ttx(Ls01!Z67cj6h12u#6{$*hJ`?okP)uedh1ZRd-cbOPI{a|2dZMA3k z`-dU9v+L+fpew2wI9P#}GJ>@N1P}|{KoI!*$KJtNxoP?o7lu{0nHc7s{m=0I>ko$S z@Bc8gwOcXVxqthcFoL_$g1VwnJ%$n@Nb>RaG!;%aC z894s^V&MG$gJI#(PYmnMd}NqD*^Wh4L8zVK`)^5DH~<6?)BpxXrvLw{y1MLic$GvL zS`RTW{P^*k;m?mB41d0VXZZW`2SerZrwk9i{%4px!GBJfot3$T;n!cV>j44?V!-!5 zre6LUxycE7414b|FbJ~zW)NZi&hYi?cZP4De}ehaybKJBcRge9bdzQXi&T#X8sG}j z3J?H60KWeK|Ns907bcj~$IR#d_xb$)^!NM!|NHm0R%CC7vYd!ObmCM=Urq_ zmgN5X?;j-X1GO+bdGnq52Mg0f25uIloWQ^U5I~HSW@mr^0|3XRFs?|=gJ%E$002ov JPDHLkV1jAsv+V!? diff --git a/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java b/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java index bea02944f..cdf63e201 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java +++ b/core/src/net/sf/openrocket/rocketcomponent/FlightConfigurationId.java @@ -83,12 +83,11 @@ public final class FlightConfigurationId implements Comparable Date: Tue, 16 Aug 2022 23:25:45 +0200 Subject: [PATCH 03/11] Whoops, forgot to push this one --- core/resources/pix/icons/edit-rename.png | Bin 0 -> 1779 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 core/resources/pix/icons/edit-rename.png diff --git a/core/resources/pix/icons/edit-rename.png b/core/resources/pix/icons/edit-rename.png new file mode 100644 index 0000000000000000000000000000000000000000..d88fa4147a2356ee9072c04107e3c45b60b7fb69 GIT binary patch literal 1779 zcmcIlTZr6L7|v=hyNg8&;tjDO+m^01lbmESlZ4LJ+0C{yxY-V~15QDqCpl+kvOCF% zNp@#;Ybof13Ko3uscKP6^-XIFwYbGf`(m-K;^o0NA6if;Rjh@gcsZGyMcQRv44mYg z?4Z{x&GYqpKpEHW|c~3kB*U|f?Ykx!f81i#_Lx#C;OFRbh#m&Dk z%-S!VQaLJ{Q@Tyu1VqHbiKgpQG{fxJ+4P}3ha=X)RmaP4KQEuDIkaZ)Ug_uTJOjYk^~1kZ3N$Wn+VE*(|UV zB*1Js0eD*!MK-M^EU}_mSQ8&(B~bzbkOZLc63`_@2MXJ{IBG9I6}@Qe>R6+z3|EUH zUl)W%qmgLH2@+HVplO;QN`fTu6v2m!UId%G7mjop3>?~l<3|qh*q9MoWIoDpRBPJ_ z*YDAKVJA>DWI_}A0!WClQ(d5Gt`2qG9y*LB7pRqv-dhrfr9~eLMI4g(z{Zmc*o#KG z#*p3H>(2-EmZ!)Ta2>l87E)oLXUeaUh=etA8$WuVd*1l^M1WyLf)XM1ZmJ4h7FLoI z61&ZWw&TUTqp_yW7Hq%>XE>TSi5FEKq)L*c15F3&c2Uwru?;n8Eg%@d{=ft|mBoIb zrm5$>FoK?q^G1fFq7sgS^puoNLdycYf-vHfYD(i(%@TQ}0U6sMX-Nuf>7x4$V$a6` zjQ6)o7ZICs^kSrANt8u^Q#_D?&C5zs<6(-D%a*8Ua?%ndt;e<}aOmlQ^_y8^RfsaG z*rLYZ&%@@hIIOGrT=nNm3x*?NTpE~J&>xUh-^->Y)$ziK8(odhO9 zH0E+#&y<~dk#jcm7NalxY{$E9j6&1uJhWtMfCd9*`{sOFeP0j z`E6K8Dp3OlI9sKW?xVbf+sO~%!s_DtOa1>Uz7txz2E8h#4OHM_cZ9gnv=bxzH)pMH zH#Ma$oOZf++H10O(QDJ#qtpRy!i6h)4$%gFA#Y?$>Y-yZ%Nx(LcOAHKX7cbAxHUIC zyYj^8z%(y!QD^VJum;_oKJt9>-1@Ql$#$SA3UfN&1{^#}q z=0n*&|G^vIT4z&VKecP$JK8s&RthIJ9r*m-oRKm#h?Tw2~dFvK$Dxs~-_+<1HMsaKaT zzBcm0$&a>jqvL~D Date: Tue, 16 Aug 2022 23:40:49 +0200 Subject: [PATCH 04/11] Update delete icon --- core/resources/pix/icons/edit-delete.png | Bin 860 -> 2102 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/resources/pix/icons/edit-delete.png b/core/resources/pix/icons/edit-delete.png index d33c344545a9bba40df8bf3defcc44197e245274..34b7d76a5099c7a47918263ce51f19da90e96964 100644 GIT binary patch literal 2102 zcmbVN3sBQ`91i%}tUShh?4}_)2SS^)h0+F#JPLwRURH%EgES3opiN2>Xp0W<4Tw{m z=L6JDnR=+`xG{A;K$)AzKgsw1e!uVcN_lGX zRF~2IqX7VLNlZ|rb9Z<9`Nl}@I#RB2^h|hB67o zX@daM&}u?pF&H^C08E}@F=BW=!GdZ+OHy*E^Kdf+k{UTQJ4}fvjj@D|Oei)HGm4W{ zcyT^1(?C-q!O0esBQOvw23ibyia{-MsGk?**7nyh1olJNd^r?tHwb1ZQ^8o;M1bJ} zAs`ng$%Y}Mp!67?4tUC8r*?17Mk?^#x*!h=m`Tsu?&Y5I35MuV}~zk)S5noFAu7$=!DU|Iq;Qd$Uf z1QLy<^|XmI%y}p7_d=;e6DfwpD4a-C$RSR(fFw1jSR)Bj%VgnvbvP#Fhlb@Md`vA3 z=Ob!~RIQeVN)bG4XupES3+=fb+OPSa`%_FL*Ik(YwR!A4XDOJSqFP!22n7$ z(vx6+9iSL)uWvbo+Y?J@puyMVYe!&!)~q8q(tk+z0F0q?Suo-{Zw)m0G#h7Dxy`=mD@j=p5&S4 zwX83Kp|zJbVo}Q~Le~a1Ew)up)TLG~(;>Q+vEw4bsVf)jFCP*X+)2)=(S_P{WfPj# zP)J2poVQ}vx^$j0o4Hf4k2mIvJNlHzpLQ+ilPRW^*L#g9J-uq&jTI|)MNC-`|DfZ{ z$lbwimIe!~s^euXpH?^a-rXZR{2PL|HLk6?D&Lnlf8N3S-vk7k1Cu?jaT)n+d5TU))S*f-RzA#J$<_ktdfpt8^-r4 zzN8#xdr`8dRHaa))7*;90fd9KI&6+si)^KRdeZp>jDRjwm`J$Fu*e;zw9_h5FDy3Q8E-z-SH+*;Zz zd+W4ISxj1h-(nB(XQ^&iy3_bR0h1OuZEKn7)zdU;+r8D*uCCtc&)wXC;kf&Ld0_rm zA=W2>V{0}#eSX5D`_W0m@#Rat?(u9e)3%W^0;!R zZ1aW>r933C@u*T=fEYD|Ww1LefE}qw$k5CJdbpaop>MfbH)H`dcd~>|T)HA}? zSg?(}b+f(P_w4yJ)qByk5etu%UthmAR}$j>xI%$nZ^2Kh=*}1UEu!p}P`cLEqgdpA zqLDiAv0IwC?FBQz|M2^7ALZpxT|vXBe5Ykky?R|;Z_?H^A?qVs8h?0_)m?j+ofwxQ pI$q+t#iMP`>X<#h?SIzV2QX2Y&+~`Roo)ZKC&nc!_QvEa`W+%z{@nlo delta 837 zcmV-L1G@aS5ZnfkB!2{FK}|sb0I$e51&Zka000?uMObuGZ)S9NVRB^vL1b@YWgtmy zVP|DhWnpA_ami&o0008+NklO=aM|euLrW#EA@dfPBuACm2+t zA{p5B9b)+W;33#+Z@)wI00a<<0elh?44j393{RSx7^M068F)8rVBlJ`kU>^dnBi6b zM24?k9t`Y?iVVMiF~tOp5r6<((3?PB<7nExLurLVQS^>ql8UFqP8t@Aw#?HWHV+V{n z4u*d)%}_l60mK50KUNSI=uHMDppAb)Ne!6Zng2mz29*9mV$2+n=wssoXGySLfB*s$ zCq9m!Ivzip-;5EMoBx1xfTHt1EM}lt`9H#DMrJ0alZTI8W5_XP00=Muxe`crJJQ#V P00000NkvXXu0mjfrPO=k From 3fca78c87b41e1683d949c68769f1201be8396e3 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 16 Aug 2022 23:41:15 +0200 Subject: [PATCH 05/11] Unify delete icon --- core/resources/pix/icons/delete.png | Bin 3595 -> 0 bytes .../gui/simulation/SimulationOptionsPanel.java | 2 +- .../gui/simulation/SimulationPlotPanel.java | 2 +- swing/src/net/sf/openrocket/gui/util/Icons.java | 2 -- 4 files changed, 2 insertions(+), 4 deletions(-) delete mode 100644 core/resources/pix/icons/delete.png diff --git a/core/resources/pix/icons/delete.png b/core/resources/pix/icons/delete.png deleted file mode 100644 index 869be8b4cfdd25edf8d2f118c195af1719e64021..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3595 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 RK*|6B002ovPDHLkV1kjB$x;9S diff --git a/swing/src/net/sf/openrocket/gui/simulation/SimulationOptionsPanel.java b/swing/src/net/sf/openrocket/gui/simulation/SimulationOptionsPanel.java index a84d08f82..00cdb5e35 100644 --- a/swing/src/net/sf/openrocket/gui/simulation/SimulationOptionsPanel.java +++ b/swing/src/net/sf/openrocket/gui/simulation/SimulationOptionsPanel.java @@ -375,7 +375,7 @@ class SimulationOptionsPanel extends JPanel { this.add(button, "right"); } - button = new SelectColorButton(Icons.DELETE); + button = new SelectColorButton(Icons.EDIT_DELETE); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { diff --git a/swing/src/net/sf/openrocket/gui/simulation/SimulationPlotPanel.java b/swing/src/net/sf/openrocket/gui/simulation/SimulationPlotPanel.java index 87a37b849..9d458b787 100644 --- a/swing/src/net/sf/openrocket/gui/simulation/SimulationPlotPanel.java +++ b/swing/src/net/sf/openrocket/gui/simulation/SimulationPlotPanel.java @@ -464,7 +464,7 @@ public class SimulationPlotPanel extends JPanel { this.add(axisSelector); - JButton button = new SelectColorButton(Icons.DELETE); + JButton button = new SelectColorButton(Icons.EDIT_DELETE); //// Remove this plot button.setToolTipText(trans.get("simplotpanel.but.ttip.Removethisplot")); button.setBorderPainted(false); diff --git a/swing/src/net/sf/openrocket/gui/util/Icons.java b/swing/src/net/sf/openrocket/gui/util/Icons.java index 9f133a222..fb315d0df 100644 --- a/swing/src/net/sf/openrocket/gui/util/Icons.java +++ b/swing/src/net/sf/openrocket/gui/util/Icons.java @@ -82,8 +82,6 @@ public class Icons { public static final Icon PREFERENCES = loadImageIcon("pix/icons/preferences.png", "Preferences"); - public static final Icon DELETE = loadImageIcon("pix/icons/delete.png", "Delete"); - public static final Icon EDIT = loadImageIcon("pix/icons/pencil.png", "Edit"); public static final Icon CONFIGURE = loadImageIcon("pix/icons/configure.png", "Configure"); public static final Icon HELP = loadImageIcon("pix/icons/help-about.png", "Help"); public static final Icon UP = loadImageIcon("pix/icons/up.png", "Up"); From 779b1c6554f73edb0e1422d8d996656f8473b6b1 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 16 Aug 2022 23:41:21 +0200 Subject: [PATCH 06/11] Unify edit icon --- core/resources/pix/icons/pencil.png | Bin 713 -> 0 bytes .../customexpression/CustomExpressionPanel.java | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 core/resources/pix/icons/pencil.png diff --git a/core/resources/pix/icons/pencil.png b/core/resources/pix/icons/pencil.png deleted file mode 100644 index 5b8cc893d0e50c0e15cf10fbbb08706f81ec224a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)R)!_m*FeI9eJ0Gxq#H zf0_XxfS9lv%LmkKB8}kx16siJFV!*nd7pOS69ERhSDg(18DcA(#PsQ(DfoWDDC{a=@>nto>xWzb;o zP$*;Aa%nq5TlT(fKhM4o2P*mk(g_ei5CcqsHvff2=RY9k`aMC~Kn&o76a{330bLQrJ&U26`M=Sy3)uqGxWf%F0d5QMO1 v>|l^)2n34pz-1YUGXNlf7%9!p009O71V-RMzjpE=00000NkvXXu0mjfxvf2L diff --git a/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java b/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java index a26222798..d828c2ebf 100644 --- a/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java +++ b/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java @@ -197,7 +197,7 @@ public class CustomExpressionPanel extends JPanel { //unitSelector = setLabelStyle(unitSelector); //unitSelector.setBackground(Color.WHITE); - JButton editButton = new SelectColorButton(Icons.EDIT); + JButton editButton = new SelectColorButton(Icons.EDIT_EDIT); editButton.setToolTipText(trans.get("customExpression.Units.but.ttip.Edit")); editButton.setBorderPainted(false); editButton.addActionListener(new ActionListener() { @@ -234,7 +234,7 @@ public class CustomExpressionPanel extends JPanel { }); - JButton deleteButton = new SelectColorButton(Icons.DELETE); + JButton deleteButton = new SelectColorButton(Icons.EDIT_DELETE); //// Remove this expression deleteButton.setToolTipText(trans.get("customExpression.Units.but.ttip.Remove")); deleteButton.setBorderPainted(false); From e98f864bb1e14ad10aeb613e7616e92be8688248 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 17 Aug 2022 01:04:38 +0200 Subject: [PATCH 07/11] Increase gap between button icon and text --- .../sf/openrocket/gui/main/BasicFrame.java | 12 +++--- .../sf/openrocket/gui/main/RocketActions.java | 1 + .../openrocket/gui/main/SimulationPanel.java | 11 +++--- .../FlightConfigurationPanel.java | 9 +++-- .../sf/openrocket/gui/widgets/IconButton.java | 37 +++++++++++++++++++ 5 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 swing/src/net/sf/openrocket/gui/widgets/IconButton.java diff --git a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java index eee8d5dcb..499ce66ef 100644 --- a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java +++ b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java @@ -69,7 +69,7 @@ import net.sf.openrocket.gui.util.Icons; import net.sf.openrocket.gui.util.OpenFileWorker; import net.sf.openrocket.gui.util.SaveFileWorker; import net.sf.openrocket.gui.util.SwingPreferences; -import net.sf.openrocket.gui.widgets.SelectColorButton; +import net.sf.openrocket.gui.widgets.IconButton; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.logging.Markers; import net.sf.openrocket.rocketcomponent.AxialStage; @@ -412,29 +412,29 @@ public class BasicFrame extends JFrame { // Buttons - JButton button = new SelectColorButton(); + JButton button = new IconButton(); button.setHorizontalAlignment(SwingConstants.LEFT); RocketActions.tieActionToButton(button, actions.getMoveUpAction()); panel.add(button, "sizegroup buttons, aligny 65%"); - button = new SelectColorButton(); + button = new IconButton(); button.setHorizontalAlignment(SwingConstants.LEFT); RocketActions.tieActionToButton(button, actions.getMoveDownAction()); panel.add(button, "sizegroup buttons, aligny 0%"); - button = new SelectColorButton(); + button = new IconButton(); button.setHorizontalAlignment(SwingConstants.LEFT); RocketActions.tieActionToButton(button, actions.getEditAction()); button.setMnemonic(0); panel.add(button, "sizegroup buttons, gaptop 20%"); - button = new SelectColorButton(); + button = new IconButton(); button.setHorizontalAlignment(SwingConstants.LEFT); RocketActions.tieActionToButton(button, actions.getDuplicateAction()); button.setMnemonic(0); panel.add(button, "sizegroup buttons"); - button = new SelectColorButton(); + button = new IconButton(); button.setHorizontalAlignment(SwingConstants.LEFT); RocketActions.tieActionToButton(button, actions.getDeleteAction()); button.setMnemonic(0); diff --git a/swing/src/net/sf/openrocket/gui/main/RocketActions.java b/swing/src/net/sf/openrocket/gui/main/RocketActions.java index 25a4f4f63..bb5792771 100644 --- a/swing/src/net/sf/openrocket/gui/main/RocketActions.java +++ b/swing/src/net/sf/openrocket/gui/main/RocketActions.java @@ -25,6 +25,7 @@ import net.sf.openrocket.gui.components.StyledLabel; import net.sf.openrocket.gui.configdialog.ComponentConfigDialog; import net.sf.openrocket.gui.dialogs.ScaleDialog; import net.sf.openrocket.gui.util.Icons; +import net.sf.openrocket.gui.widgets.IconButton; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.logging.Markers; import net.sf.openrocket.rocketcomponent.ComponentChangeEvent; diff --git a/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java b/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java index 6b5316c6b..cda01919d 100644 --- a/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java @@ -38,6 +38,7 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableCellRenderer; +import net.sf.openrocket.gui.widgets.IconButton; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -124,31 +125,31 @@ public class SimulationPanel extends JPanel { //////// The simulation action buttons //////// //// New simulation button - JButton newButton = new SelectColorButton(); + JButton newButton = new IconButton(); RocketActions.tieActionToButton(newButton, newSimulationAction, trans.get("simpanel.but.newsimulation")); newButton.setToolTipText(trans.get("simpanel.but.ttip.newsimulation")); this.add(newButton, "skip 1, gapright para"); //// Edit simulation button - editButton = new SelectColorButton(); + editButton = new IconButton(); RocketActions.tieActionToButton(editButton, editSimulationAction, trans.get("simpanel.but.editsimulation")); editButton.setToolTipText(trans.get("simpanel.but.ttip.editsim")); this.add(editButton, "gapright para"); //// Run simulations - runButton = new SelectColorButton(); + runButton = new IconButton(); RocketActions.tieActionToButton(runButton, runSimulationAction, trans.get("simpanel.but.runsimulations")); runButton.setToolTipText(trans.get("simpanel.but.ttip.runsimu")); this.add(runButton, "gapright para"); //// Delete simulations button - deleteButton = new SelectColorButton(); + deleteButton = new IconButton(); RocketActions.tieActionToButton(deleteButton, deleteSimulationAction, trans.get("simpanel.but.deletesimulations")); deleteButton.setToolTipText(trans.get("simpanel.but.ttip.deletesim")); this.add(deleteButton, "gapright para"); //// Plot / export button - plotButton = new SelectColorButton(); + plotButton = new IconButton(); RocketActions.tieActionToButton(plotButton, plotSimulationAction, trans.get("simpanel.but.plotexport")); this.add(plotButton, "wrap para"); diff --git a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java index 767c8b29e..8da46e31b 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java @@ -23,6 +23,7 @@ import net.sf.openrocket.gui.dialogs.flightconfiguration.RenameConfigDialog; import net.sf.openrocket.gui.main.BasicFrame; import net.sf.openrocket.gui.main.RocketActions; import net.sf.openrocket.gui.util.Icons; +import net.sf.openrocket.gui.widgets.IconButton; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.rocketcomponent.ComponentChangeEvent; import net.sf.openrocket.rocketcomponent.FlightConfigurableComponent; @@ -97,22 +98,22 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe tabs.add(trans.get("edtmotorconfdlg.lbl.Stagetab"), separationConfigurationPanel); //// New configuration - newConfButton = new SelectColorButton(); + newConfButton = new IconButton(); RocketActions.tieActionToButton(newConfButton, newConfigAction); this.add(newConfButton,"skip 1,gapright para"); //// Rename configuration - renameConfButton = new SelectColorButton(); + renameConfButton = new IconButton(); RocketActions.tieActionToButton(renameConfButton, renameConfigAction); this.add(renameConfButton,"gapright para"); //// Remove configuration - removeConfButton = new SelectColorButton(); + removeConfButton = new IconButton(); RocketActions.tieActionToButton(removeConfButton, removeConfigAction); this.add(removeConfButton,"gapright para"); //// Duplicate configuration - duplicateConfButton = new SelectColorButton(); + duplicateConfButton = new IconButton(); RocketActions.tieActionToButton(duplicateConfButton, duplicateConfigAction); this.add(duplicateConfButton, "wrap"); diff --git a/swing/src/net/sf/openrocket/gui/widgets/IconButton.java b/swing/src/net/sf/openrocket/gui/widgets/IconButton.java new file mode 100644 index 000000000..96a7d9f41 --- /dev/null +++ b/swing/src/net/sf/openrocket/gui/widgets/IconButton.java @@ -0,0 +1,37 @@ +package net.sf.openrocket.gui.widgets; + +import javax.swing.Action; +import javax.swing.Icon; + +/** + * Button specifically for displaying an icon. + */ +public class IconButton extends SelectColorButton { + private static final int ICON_GAP = 10; + public static final double ICON_SCALE = 0.8; + + public IconButton() { + setIconTextGap(ICON_GAP); + } + + public IconButton(Icon icon) { + super(icon); + setIconTextGap(ICON_GAP); + } + + public IconButton(String text) { + super(text); + setIconTextGap(ICON_GAP); + } + + public IconButton(Action a) { + super(a); + setIconTextGap(ICON_GAP); + } + + public IconButton(String text, Icon icon) { + super(text, icon); + setIconTextGap(ICON_GAP); + } + +} From 659512489a9073463b9c062d021a7c9d4aac7db2 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 17 Aug 2022 01:05:24 +0200 Subject: [PATCH 08/11] Remove NewStageAction This is an artifact from an old OR version --- .../sf/openrocket/gui/main/RocketActions.java | 47 ------------------- 1 file changed, 47 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/main/RocketActions.java b/swing/src/net/sf/openrocket/gui/main/RocketActions.java index bb5792771..c0c4d64a2 100644 --- a/swing/src/net/sf/openrocket/gui/main/RocketActions.java +++ b/swing/src/net/sf/openrocket/gui/main/RocketActions.java @@ -76,7 +76,6 @@ public class RocketActions { private final RocketAction duplicateAction; private final RocketAction editAction; private final RocketAction scaleAction; - private final RocketAction newStageAction; private final RocketAction moveUpAction; private final RocketAction moveDownAction; private static final Translator trans = Application.getTranslator(); @@ -101,7 +100,6 @@ public class RocketActions { this.duplicateAction = new DuplicateAction(); this.editAction = new EditAction(); this.scaleAction = new ScaleAction(); - this.newStageAction = new NewStageAction(); this.moveUpAction = new MoveUpAction(); this.moveDownAction = new MoveDownAction(); @@ -135,7 +133,6 @@ public class RocketActions { duplicateAction.clipboardChanged(); editAction.clipboardChanged(); scaleAction.clipboardChanged(); - newStageAction.clipboardChanged(); moveUpAction.clipboardChanged(); moveDownAction.clipboardChanged(); } @@ -179,10 +176,6 @@ public class RocketActions { return scaleAction; } - public Action getNewStageAction() { - return newStageAction; - } - public Action getMoveUpAction() { return moveUpAction; } @@ -1038,46 +1031,6 @@ public class RocketActions { } } - - - - - /** - * Action to add a new stage to the rocket. - */ - private class NewStageAction extends RocketAction { - private static final long serialVersionUID = 1L; - - public NewStageAction() { - //// New stage - this.putValue(NAME, trans.get("RocketActions.NewStageAct.Newstage")); - //// Add a new stage to the rocket design. - this.putValue(SHORT_DESCRIPTION, trans.get("RocketActions.NewStageAct.Newstage")); - clipboardChanged(); - } - - @Override - public void actionPerformed(ActionEvent e) { - - ComponentConfigDialog.disposeDialog(); - - RocketComponent stage = new AxialStage(); - - //// Add stage - document.addUndoPosition("Add stage"); - rocket.addChild(stage); - rocket.getSelectedConfiguration().setAllStages(); - selectionModel.setSelectedComponent(stage); - ComponentConfigDialog.showDialog(parentFrame, document, stage); - - } - - @Override - public void clipboardChanged() { - this.setEnabled(true); - } - } - From 186232518912a1caf5aadb303e693b16b48fb8a2 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 17 Aug 2022 01:47:17 +0200 Subject: [PATCH 09/11] Scale down button icon size --- core/resources/pix/icons/sim-plot.png | Bin 1745 -> 1945 bytes .../openrocket/gui/main/SimulationPanel.java | 2 - .../FlightConfigurationPanel.java | 1 - .../src/net/sf/openrocket/gui/util/Icons.java | 32 ++++++++++++++++ .../sf/openrocket/gui/widgets/IconButton.java | 35 +++++++++++++++++- 5 files changed, 66 insertions(+), 4 deletions(-) diff --git a/core/resources/pix/icons/sim-plot.png b/core/resources/pix/icons/sim-plot.png index 32f27ca7b4890bd32c584e02b4e58a830ce500f6..268f75a7bfc127c05c0145afabef4ccb8d0ff83d 100644 GIT binary patch delta 407 zcmcb}JClEc1ryuEjaJ=ERu;O3<{<`#RwkxarsmoPMpgy}N(vRZ1y;VPC5b7CC5bMH zC8@SbMg~Skx&|nUC;w*(P%%qRGP6vxNYOPlH%!$vNis^)O)^LZ63G^ZX{pJH2B}6y zn~RxEm?qy~G4miswUR<{iECMjRe45g9#(sSj+{J`#d`8Y*8KWYZ(m+vU|?A1>Eak- z(K~n2M!`b{Jg)ZTIgXiP2~5*YvMu8>4cXA>p1|opfm6fy`0@^(ZJkpr{`>j*y}ud8 zGHF6ZPA7*AL*7&si>X?Lir>72O!bc3YhCee29xl*v#T|Y_g5YT)dBJTDndRxo}A+}Gw wYyUZA|Eyt~E~>uVX32lfNoS|7^B0o8le{qNQ2T#dyRf09Jq~#Xg!S`ERrhiiARPK+_%S)gtrcLB^+DVzD zOw$daGeAu+gPU&97H~zd2V4;(WdJ2*CFK}2t$npf3r>ascy{5}uUIU80xHf6+A=w^ Q-~a#s07*qoM6N<$g12yPlK=n! diff --git a/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java b/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java index cda01919d..83fc2824e 100644 --- a/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/SimulationPanel.java @@ -10,7 +10,6 @@ import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; @@ -72,7 +71,6 @@ import net.sf.openrocket.startup.Application; import net.sf.openrocket.startup.Preferences; import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.util.AlphanumComparator; -import net.sf.openrocket.gui.widgets.SelectColorButton; @SuppressWarnings("serial") public class SimulationPanel extends JPanel { diff --git a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java index 8da46e31b..e33335488 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/FlightConfigurationPanel.java @@ -36,7 +36,6 @@ import net.sf.openrocket.rocketvisitors.ListComponents; import net.sf.openrocket.rocketvisitors.ListMotorMounts; import net.sf.openrocket.startup.Application; import net.sf.openrocket.util.StateChangeListener; -import net.sf.openrocket.gui.widgets.SelectColorButton; @SuppressWarnings("serial") public class FlightConfigurationPanel extends JPanel implements StateChangeListener { diff --git a/swing/src/net/sf/openrocket/gui/util/Icons.java b/swing/src/net/sf/openrocket/gui/util/Icons.java index fb315d0df..cf91c65b0 100644 --- a/swing/src/net/sf/openrocket/gui/util/Icons.java +++ b/swing/src/net/sf/openrocket/gui/util/Icons.java @@ -7,6 +7,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.swing.*; +import java.awt.Component; +import java.awt.Graphics; +import java.awt.Image; import java.net.URL; import java.util.Collections; import java.util.HashMap; @@ -123,4 +126,33 @@ public class Icons { } return new ImageIcon(url, name); } + + /** + * Scales an ImageIcon to the specified scale. + * @param icon icon to scale + * @param scale the scale to scale to (1 = no scale, < 1 = smaller, > 1 = bigger) + * @return scaled down icon. If is not an ImageIcon, the original icon is returned. + */ + public static Icon getScaledIcon(Icon icon, final double scale) { + if (!(icon instanceof ImageIcon)) { + return icon; + } + final Image image = ((ImageIcon) icon).getImage(); + return new ImageIcon(image) { + @Override + public int getIconWidth() { + return (int)(image.getWidth(null) * scale); + } + + @Override + public int getIconHeight() { + return (int)(image.getHeight(null) * scale); + } + + @Override + public void paintIcon(Component c, Graphics g, int x, int y) { + g.drawImage(image, x, y, getIconWidth(), getIconHeight(), c); + } + }; + } } diff --git a/swing/src/net/sf/openrocket/gui/widgets/IconButton.java b/swing/src/net/sf/openrocket/gui/widgets/IconButton.java index 96a7d9f41..a48da582b 100644 --- a/swing/src/net/sf/openrocket/gui/widgets/IconButton.java +++ b/swing/src/net/sf/openrocket/gui/widgets/IconButton.java @@ -1,14 +1,18 @@ package net.sf.openrocket.gui.widgets; +import net.sf.openrocket.gui.util.Icons; + import javax.swing.Action; import javax.swing.Icon; /** * Button specifically for displaying an icon. + * + * @author Sibo Van Gool */ public class IconButton extends SelectColorButton { private static final int ICON_GAP = 10; - public static final double ICON_SCALE = 0.8; + private static final double ICON_SCALE = 0.9; public IconButton() { setIconTextGap(ICON_GAP); @@ -34,4 +38,33 @@ public class IconButton extends SelectColorButton { setIconTextGap(ICON_GAP); } + @Override + public Icon getIcon() { + return Icons.getScaledIcon(super.getIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getSelectedIcon() { + return Icons.getScaledIcon(super.getSelectedIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getDisabledIcon() { + return Icons.getScaledIcon(super.getDisabledIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getDisabledSelectedIcon() { + return Icons.getScaledIcon(super.getDisabledSelectedIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getRolloverIcon() { + return Icons.getScaledIcon(super.getRolloverIcon(), IconButton.ICON_SCALE); + } + + @Override + public Icon getRolloverSelectedIcon() { + return Icons.getScaledIcon(super.getRolloverSelectedIcon(), IconButton.ICON_SCALE); + } } From 3603ff78a1963abba1bdb79c875042aee7b29b86 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Wed, 17 Aug 2022 11:53:24 +0200 Subject: [PATCH 10/11] Scale down sim run icon --- core/resources/pix/icons/sim-run.png | Bin 1563 -> 2010 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/resources/pix/icons/sim-run.png b/core/resources/pix/icons/sim-run.png index 495d6d432a0aad9ca6ac4f37c1e9e0d02da3aebb..5dab7afe8a664ae043bcf3441571b08ceb5ffdb5 100644 GIT binary patch delta 696 zcmbQubBlk11ryuEjaJ=ERu;O3<{^fLR;EB?qHSPgWniGBP?1|;<(pcPn37nM=#p5H zYO7>qU}U6gfTDQvf2IHxGb2m$L{sBLT~m`Z6I~ONL_=K*6ANSAv{VxVgTzz=!_?%I z&Be^AjP*q+X;wLz3dJR^WhGXL$t9WjdA3T$iDjuNN>IVfyyB9?yyR3*7h5Hu3-mHG zQ>@a`3=K_FQY>^03=@-dO%f9mbuBE6Om&l!3`{MPQ%sD_QY>Nm%QI4eMxwgZ#KOwh z0OYO7vskR^p%x`)B<7{3rr0X!E9u)Q*pTNkVtkI~GEvMx1UhZ zce;fv0|Uc*PZ!4!i{7P|_iG;wlsNwJdZ{kkQk_XWYN{t6$Qzten|v{T$r_{IQ>))U zNLOl>=RUe@isQth@F~Bf&i$O${kwGE-ScIBw(p;RwwYh76*=vt%ia6@#@e4>M;ubM z>*gvKGp}PdXt!JQh(mv=%mVJq5=TU`E}nJQVyIswaoFJ4#@^aH%bAM4x|uJY;Ub%! zv5bjBnKzM9_{JekxersAPFz)flftq&;&9Qug+0Go@A5nmU&;4Cklo@)spJ9aa~mZY zbu<64?{Idm;13tPwy3NjJm$!{>WaMU5A_f93S8IA`xuwz{q}zr aFM4dMYA|mG?;fD%89ZJ6T-G@yGywp+M)=qO delta 325 zcmcb`KbvQQ1ry8XjaJ=ER;Ief1|dd9Rz?O^hKAY(Mpgy}N(vRZ1y;VPC5b7CC5bMH zC8@SbMg~Skx&|nUC;w*(m>kHWwz-r!nQ?L%TV(ybb(4%37#PlZx;Tbd^e(+@>&N6M zaqOeKMuB2l)&3a97gO}O6rIyd1_qZP5x0~{#*RkFtQf0~# T$4{z2uQ7PK`njxgN@xNAz|DGu From 0f8622a34aa4b6c4f0d5d1c21b2ebe01c56c6045 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 23 Aug 2022 15:59:05 +0200 Subject: [PATCH 11/11] Resolve merge conflicts --- .../sf/openrocket/gui/main/DesignPanel.java | 27 ++++++++++++------- .../gui/main/FlightConfigurationPanel.java | 2 -- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/main/DesignPanel.java b/swing/src/net/sf/openrocket/gui/main/DesignPanel.java index 72065c9ed..900ecfcc6 100644 --- a/swing/src/net/sf/openrocket/gui/main/DesignPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/DesignPanel.java @@ -4,9 +4,8 @@ import net.miginfocom.swing.MigLayout; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.gui.configdialog.ComponentConfigDialog; import net.sf.openrocket.gui.main.componenttree.ComponentTree; -import net.sf.openrocket.gui.scalefigure.RocketPanel; import net.sf.openrocket.gui.util.GUIUtil; -import net.sf.openrocket.gui.widgets.SelectColorButton; +import net.sf.openrocket.gui.widgets.IconButton; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.rocketcomponent.AxialStage; import net.sf.openrocket.rocketcomponent.PodSet; @@ -23,6 +22,7 @@ import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.KeyStroke; import javax.swing.ScrollPaneConstants; +import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.border.TitledBorder; import javax.swing.event.TreeSelectionEvent; @@ -183,24 +183,31 @@ public class DesignPanel extends JSplitPane { // Buttons - JButton button = new SelectColorButton(parent.getRocketActions().getMoveUpAction()); + JButton button = new IconButton(); + button.setHorizontalAlignment(SwingConstants.LEFT); + RocketActions.tieActionToButton(button, parent.getRocketActions().getMoveUpAction()); panel.add(button, "sizegroup buttons, aligny 65%"); - button = new SelectColorButton(parent.getRocketActions().getMoveDownAction()); + button = new IconButton(); + button.setHorizontalAlignment(SwingConstants.LEFT); + RocketActions.tieActionToButton(button, parent.getRocketActions().getMoveDownAction()); panel.add(button, "sizegroup buttons, aligny 0%"); - button = new SelectColorButton(parent.getRocketActions().getEditAction()); - button.setIcon(null); + button = new IconButton(); + button.setHorizontalAlignment(SwingConstants.LEFT); + RocketActions.tieActionToButton(button, parent.getRocketActions().getEditAction()); button.setMnemonic(0); panel.add(button, "sizegroup buttons, gaptop 20%"); - button = new SelectColorButton(parent.getRocketActions().getDuplicateAction()); - button.setIcon(null); + button = new IconButton(); + button.setHorizontalAlignment(SwingConstants.LEFT); + RocketActions.tieActionToButton(button, parent.getRocketActions().getDuplicateAction()); button.setMnemonic(0); panel.add(button, "sizegroup buttons"); - button = new SelectColorButton(parent.getRocketActions().getDeleteAction()); - button.setIcon(null); + button = new IconButton(); + button.setHorizontalAlignment(SwingConstants.LEFT); + RocketActions.tieActionToButton(button, parent.getRocketActions().getDeleteAction()); button.setMnemonic(0); panel.add(button, "sizegroup buttons"); diff --git a/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java b/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java index e94289377..2a417ed11 100644 --- a/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java +++ b/swing/src/net/sf/openrocket/gui/main/FlightConfigurationPanel.java @@ -24,8 +24,6 @@ import net.sf.openrocket.gui.main.flightconfigpanel.FlightConfigurablePanel; import net.sf.openrocket.gui.main.flightconfigpanel.MotorConfigurationPanel; import net.sf.openrocket.gui.main.flightconfigpanel.RecoveryConfigurationPanel; import net.sf.openrocket.gui.main.flightconfigpanel.SeparationConfigurationPanel; -import net.sf.openrocket.gui.main.BasicFrame; -import net.sf.openrocket.gui.main.RocketActions; import net.sf.openrocket.gui.util.Icons; import net.sf.openrocket.gui.widgets.IconButton; import net.sf.openrocket.l10n.Translator;