From 87451425c7c9d2cc6b6b884f9f27c4d77ea1e7ed Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 23 Jun 2022 21:22:35 +0200 Subject: [PATCH] Spectrum GUI: format update --- sdrgui/gui/glspectrumgui.cpp | 56 +++++- sdrgui/gui/glspectrumgui.h | 5 +- sdrgui/gui/glspectrumgui.ui | 291 +++++++++++++++-------------- sdrgui/resources/bell_fill.png | Bin 0 -> 6623 bytes sdrgui/resources/bell_gradient.png | Bin 0 -> 7355 bytes sdrgui/resources/bell_line.png | Bin 0 -> 6508 bytes sdrgui/resources/bell_red.png | Bin 0 -> 8592 bytes sdrgui/resources/res.qrc | 4 + 8 files changed, 204 insertions(+), 152 deletions(-) create mode 100644 sdrgui/resources/bell_fill.png create mode 100644 sdrgui/resources/bell_gradient.png create mode 100644 sdrgui/resources/bell_line.png create mode 100644 sdrgui/resources/bell_red.png diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index c6c6c105f..cd7793d5e 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -49,15 +49,17 @@ GLSpectrumGUI::GLSpectrumGUI(QWidget* parent) : ui->setupUi(this); // Use the custom flow layout for the 3 main horizontal layouts (lines) + ui->verticalLayout->removeItem(ui->Line5Layout); ui->verticalLayout->removeItem(ui->Line4Layout); ui->verticalLayout->removeItem(ui->Line3Layout); ui->verticalLayout->removeItem(ui->Line2Layout); ui->verticalLayout->removeItem(ui->Line1Layout); FlowLayout *flowLayout = new FlowLayout(nullptr, 1, 1, 1); flowLayout->addItem(ui->Line3Layout); + flowLayout->addItem(ui->Line4Layout); flowLayout->addItem(ui->Line1Layout); flowLayout->addItem(ui->Line2Layout); - flowLayout->addItem(ui->Line4Layout); + flowLayout->addItem(ui->Line5Layout); ui->verticalLayout->addItem(flowLayout); on_linscale_toggled(false); @@ -162,9 +164,16 @@ void GLSpectrumGUI::displaySettings() ui->spectrogramStyle->setCurrentIndex((int) m_settings.m_3DSpectrogramStyle); ui->spectrogramStyle->setVisible(m_settings.m_display3DSpectrogram); ui->colorMap->setCurrentText(m_settings.m_colorMap); - ui->spectrumStyle->setCurrentIndex((int) m_settings.m_spectrumStyle); + ui->currentLine->blockSignals(true); + ui->currentFill->blockSignals(true); + ui->currentGradient->blockSignals(true); + ui->currentLine->setChecked(m_settings.m_displayCurrent && (m_settings.m_spectrumStyle == SpectrumSettings::SpectrumStyle::Line)); + ui->currentFill->setChecked(m_settings.m_displayCurrent && (m_settings.m_spectrumStyle == SpectrumSettings::SpectrumStyle::Fill)); + ui->currentGradient->setChecked(m_settings.m_displayCurrent && (m_settings.m_spectrumStyle == SpectrumSettings::SpectrumStyle::Gradient)); + ui->currentLine->blockSignals(false); + ui->currentFill->blockSignals(false); + ui->currentGradient->blockSignals(false); ui->maxHold->setChecked(m_settings.m_displayMaxHold); - ui->current->setChecked(m_settings.m_displayCurrent); ui->histogram->setChecked(m_settings.m_displayHistogram); ui->invertWaterfall->setChecked(m_settings.m_invertedWaterfall); ui->grid->setChecked(m_settings.m_displayGrid); @@ -464,12 +473,6 @@ void GLSpectrumGUI::on_stroke_valueChanged(int index) applySettings(); } -void GLSpectrumGUI::on_spectrumStyle_currentIndexChanged(int index) -{ - m_settings.m_spectrumStyle = (SpectrumSettings::SpectrumStyle)index; - applySettings(); -} - void GLSpectrumGUI::on_spectrogramStyle_currentIndexChanged(int index) { m_settings.m_3DSpectrogramStyle = (SpectrumSettings::SpectrogramStyle)index; @@ -520,8 +523,41 @@ void GLSpectrumGUI::on_maxHold_toggled(bool checked) applySettings(); } -void GLSpectrumGUI::on_current_toggled(bool checked) +void GLSpectrumGUI::on_currentLine_toggled(bool checked) { + ui->currentFill->blockSignals(true); + ui->currentGradient->blockSignals(true); + ui->currentFill->setChecked(false); + ui->currentGradient->setChecked(false); + ui->currentFill->blockSignals(false); + ui->currentGradient->blockSignals(false); + m_settings.m_spectrumStyle = SpectrumSettings::SpectrumStyle::Line; + m_settings.m_displayCurrent = checked; + applySettings(); +} + +void GLSpectrumGUI::on_currentFill_toggled(bool checked) +{ + ui->currentLine->blockSignals(true); + ui->currentGradient->blockSignals(true); + ui->currentLine->setChecked(false); + ui->currentGradient->setChecked(false); + ui->currentLine->blockSignals(false); + ui->currentGradient->blockSignals(false); + m_settings.m_spectrumStyle = SpectrumSettings::SpectrumStyle::Fill; + m_settings.m_displayCurrent = checked; + applySettings(); +} + +void GLSpectrumGUI::on_currentGradient_toggled(bool checked) +{ + ui->currentLine->blockSignals(true); + ui->currentFill->blockSignals(true); + ui->currentLine->setChecked(false); + ui->currentFill->setChecked(false); + ui->currentLine->blockSignals(false); + ui->currentFill->blockSignals(false); + m_settings.m_spectrumStyle = SpectrumSettings::SpectrumStyle::Gradient; m_settings.m_displayCurrent = checked; applySettings(); } diff --git a/sdrgui/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h index b978fd401..31ba3f2d8 100644 --- a/sdrgui/gui/glspectrumgui.h +++ b/sdrgui/gui/glspectrumgui.h @@ -96,7 +96,6 @@ private slots: void on_decay_valueChanged(int index); void on_decayDivisor_valueChanged(int index); void on_stroke_valueChanged(int index); - void on_spectrumStyle_currentIndexChanged(int index); void on_spectrogramStyle_currentIndexChanged(int index); void on_colorMap_currentIndexChanged(int index); void on_gridIntensity_valueChanged(int index); @@ -111,7 +110,9 @@ private slots: void on_spectrogram_toggled(bool checked); void on_histogram_toggled(bool checked); void on_maxHold_toggled(bool checked); - void on_current_toggled(bool checked); + void on_currentLine_toggled(bool checked); + void on_currentFill_toggled(bool checked); + void on_currentGradient_toggled(bool checked); void on_invertWaterfall_toggled(bool checked); void on_grid_toggled(bool checked); void on_clearSpectrum_clicked(bool checked); diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui index 1fb6d7e7f..d0b6a4fc9 100644 --- a/sdrgui/gui/glspectrumgui.ui +++ b/sdrgui/gui/glspectrumgui.ui @@ -6,8 +6,8 @@ 0 0 - 364 - 137 + 630 + 151 @@ -565,6 +565,54 @@ 1 + + + + Toggle the scale grid + + + Grid + + + + :/grid.png:/grid.png + + + + 16 + 16 + + + + true + + + + + + + + 24 + 24 + + + + ArrowCursor + + + Grid intensity + + + 100 + + + 1 + + + 5 + + + @@ -614,6 +662,29 @@ + + + + Display max hold + + + Max Hold + + + + :/bell_red.png:/bell_red.png + + + + 16 + 16 + + + + true + + + @@ -678,30 +749,30 @@ - - - Display max hold + + + + 0 + 0 + - - Max Hold - - - - :/maxhold.png:/maxhold.png - - + - 16 - 16 + 5 + 22 - - true + + + + + + - + Display live spectrum @@ -710,7 +781,7 @@ - :/current.png:/current.png + :/bell_line.png:/bell_line.png @@ -724,37 +795,49 @@ - - - - 80 - 0 - - - - - 80 - 16777215 - - + - Spectrum Style + Display live spectrum + + + Max Hold + + + + :/bell_fill.png:/bell_fill.png + + + + 16 + 16 + + + + true + + + + + + + Display live spectrum + + + Max Hold + + + + :/bell_gradient.png:/bell_gradient.png + + + + 16 + 16 + + + + true - - - Line - - - - - Fill - - - - - Gradient - - @@ -779,6 +862,25 @@ + + + + + 70 + 0 + + + + + 80 + 16777215 + + + + Color Map + + + @@ -898,96 +1000,10 @@ - - - - - 70 - 0 - - - - - 80 - 16777215 - - - - Color Map - - - - - - - Toggle the scale grid - - - Grid - - - - :/grid.png:/grid.png - - - - 16 - 16 - - - - true - - - - - - - - 24 - 24 - - - - ArrowCursor - - - Grid intensity - - - 100 - - - 1 - - - 5 - - - - - - - - 0 - 0 - - - - - 5 - 22 - - - - - - - - + @@ -1083,11 +1099,6 @@
gui/buttonswitch.h
- - maxHold - invertWaterfall - grid - diff --git a/sdrgui/resources/bell_fill.png b/sdrgui/resources/bell_fill.png new file mode 100644 index 0000000000000000000000000000000000000000..d7430a833195f7d18f20c71c2b736f0a29bacfa2 GIT binary patch literal 6623 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 literal 0 HcmV?d00001 diff --git a/sdrgui/resources/bell_gradient.png b/sdrgui/resources/bell_gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..bcd32374ff15138638ea508ffaf2661d74a04b08 GIT binary patch literal 7355 zcmeHKc{r5o`=>0WvZYO8nv!+QFoT&fLv~|dvmeIHU@$YxVhf=Ng=EQ^ge-?jOxdy~ zk|j&F3S~`2S&|Chq0Tv->-YWVT-WdW-G#Z9h^6EtSaWWaCm4l6@I->Wp-+nTi>`PI?+>Nnsecew8R=*jj`}S;PXap<*V}5iRllKxHj7I3?Xjt`-{rp6W*fIZi{iI z^MkRz=W;Jx3fVY4Yu6^D8<*%KAbsfgLf6sHKvR>lI2&ppSR-TRQ{aZ>PN&?OvN$8- z+cjc$G&Rm@+O(=DKV0EHy8z~@4axeHoY*!Rkh)lHbt)envVV63s<-b&K|_!EndWAU zUtw+5aO=eM3A;u|i|^dxtq&%eeQ;Cq()KG0XL#3;wABfwy&rX1{o7YZ&q*dhCq@`p z9CyuB+3fR?C1Hcv-r)v2l%P|X)`&g!sSTr5i0g~ueexwn1Jmnn^O>6WFI&kfvRuls z2AS}|tg-XM64nmf^6$=*eXAxfiK(9V9J|ZCFzR1+c9=>pw|-iJlC{W+NVTf*XF%_$ z-c1=PX6lCY9SA}cv`6mKHeNN{DNrMq-+tyJ>Dw1G2lTEO4_n8)8$-TV-CZ_gI6`)Q zNRt#X5vw3NaF_}h?CG%K+i}D7;gEa$qyzADz%};5rs}0eMgF@$azoypQQf;wjIT{6 z;8!gr;;_x|#=R#w;tiZFf;da~Ilf_z<20>mIRv7wo-{}h4&H0#a#_m5wB$*F^VPgm z^Y)^=^k80FYKPQ}0~K`JKm1mbjro)OBs<%3jjBaDL8G)&aZF=>pNj$LL9a(^P~dDY z&IG;M`_8+W?@epeiC9#7VV|)fF;WWJ1zVCWmop>HU~LzWY&B+D)`2Rg*RJN3&7JE)h}>rnqh7kb6wOhB?OTZ*dK*#P-#iigGP|l;DJFZM zVEzr<+=O69WE@VeV+s_55-~;M38y$)cPU=vKYQe^j-GxsQNM(bK6Asq2Tid1gHokBK+Qb(&hGX%$JBEnT0ZM5V7y^y^XA~r7|%$B6AaP89{n)8XI}RTO?$_S*NiF; zjdkvl9dV>#PAI&1eeqsfwi3`ptn+t16zX4KX<;u?!os(3)LLf&zGeefM4G&SL+PZBeV#_TZxyXaEmaFJIh~$)D)&m zq9V^YUNqshBgq;#nyu_RU4FbZP*!c^hUunftq4&T&ckdRK{kn$g6-^H&t)2&E19#{ zCwdN^{vx`dyQYPWF>mD{ttb(AIvVR4>0x2MP=JgUvd?j@vZ~hnkpH~Yq68#rLS^5P zYiF`kuOme~i&@j{!@OU(Shy6P;=L0@V%m-s%@vvyb&Y75ke=Dw)ptF;EZPfcy;4!s zeR?TXrce}D$z$s=lGZ9MXz@^1rmPEhveTNs-ot)6Pze0ug? z_`>d@M_yLaCx!Ksdr(<^D*gQrDa$~Q#I+-y5WoACAc28-(x*|udegdq5uPk?vTvo! zll$c^*4mF#YzsivL~S=arj1}uRGmb6U1!c$;kmoZprH>u_K!#bl|0SwCho4mMF$uG zY0%QmxC<3>w7nS(0*&r!vO@#Y5qFeEBb8qDb&4eW7Fg+K?-;?UE=@jM5Wr7en& zuucpQkhbdHx$y?s6%OpXEg*9W-p8xiIx@UhlQ5UQGomDJ^O;A=m78j_VvdHl^$kL^ zorfqjJT-csKISg&*VFWBDM7xurx2K{Ec@iE{)|Xqt7mI^d35?f;ia9i_A2X~H97%) zWao`>ZY>ZZN)y+6x}J7)wI`!P5iPC~AC{`StLET&-76>b_38yYVsAZc+gl~M++n*% z26YLn*%y2LXij~Em5jP<&s?vV!N6d}Zf2YRO%VvCZEPYWCoXLCwQ-R3q?pjoX+Cjb zG%fSO?Lx3fd0lctE7w|#rPAB{XrSkr3kn-H=#;$2Vra#J7s5Az4DXf-n*t*|s)pPp zk0(5Lf)A7#+04u@!fVt|9dW9jvYsD&U*nUjjGvC5;ER+{Mjci^oAUaZv5Z`dL2+iY z={sl7aKuf;4r>ysDAvtLT*`{i?0DWx8s>~{*TX`~N7a$Uq~u)dF(uPU%sof3vgaH6 zulz2S2OOJig=ahnJJWkl`Zr#m{lK?ZllO=Y2?{r@0S{hM(Tjk+zCQ$1?LykT>ic43 zv@E1rA#7kV%qyhDy@PYw^v3ZyYvz@un#=5ElMcHI`3tBV$(fH~oxw9PV|*6kwQE&X zestTxsi}h50|p@m=dEtHUd7#*qevTBOxe8pQU*Qpxm36INJ5#gZY=O>jNKE5{T7@a zhA!7^0$SV?#F%YOZ9;ob8c{DXT}GBXCS z0`?8j1&Na{i-1OGPg1@FlW{}*m5~PfoZLCD@{lV{ol9)lts|0pyP9M3edS0!6Q$3G zs?EAB4QX7BnC=H`cc=JO6pu)cqyG0fs=bHLarM*PTVW+8M<4nOCcZAtw!hcfEHpXkb}=H}xuH6?W!>V%dl@?+oO zv)2sGO6vQMm5nz=zNs`)ORjM^6&62!P2*+{bzeps^fAAIU!~?PJSO2nbg(tgUD928 ztZIL!04KX$xX4>4Mot{Vu8gK7V05;RSeo|;-xO^iV2ms zS93Y~rl2(4AJdqTSyBn*CB+UL`rw?^9ui?Z4b>hi9m-2y&QXmH5cHDBX`}39d>&e< zm`;moetPJj>qgvHGf+n@R9;%b$1M)d%wccx+&qzv4ZhyjKM;-`o1!>(~L6${&sRXdq2K=6ZI|Q$+W-<_fm@o z<#a2B`GV7!*_B5Lt$2*mQOtRKMR%VZzCBuWxyq5zC)}bdzxerlw$OUxg5C^YNSCa1 z4Fq5v)p>#`TZR$6&tV-dJTMEpbAb^1{q~3KZ?O0KYd&g^ef`{gVD?-0;Ow#A3l`(y z>Tv<{hi1RVgH@jxUmy)TewS65TQlFdo{4z7emygwdz8|a*4?{tIde_+Lw8%+oupN1 z#1i^ocOta=^tZi;rP}-;ldf71f2RbfTKPoxWC!Kt8#H3+EchEY9JDs_T@17~Y$I%| z&d0{a9zoR9G{tCY{_&~J`oPW%PC)B5pFSKpcFRM%nD?N7Pn&6$Y}7fp$AK8rTh&!%ZS$dbXCcI?6{I<*s=d&RExuY8KaKH zTRJF=$Qi|~#fYR<=^0R$U0KK6>Lhrt>vA&TcAv1u-b*&&90EM;k~el86&PWd%buJ? zjWnsveif%mO-hF*;Mm38uQ;lG5&J%0nw)ib^=i1;jrA5E)yS|0In&?aU8`ji{l;vY zQ15)@@A=Y@B}`y`PDFg@C~5pnb&k~8hACdiM||6@_xd4r8cKU=vwM{D!|LpBcy_+C zUl%FhJAF0qKs`GzZ&-o|;m!kpKR4RgMrqON0(YV>wW4&b-GkK=2@_epkByNb5=SA) zVeu3ff}B6eo7Ee!v7yxby|Fk?0v+H&a3hk@z=fK6Ab^NR1FaQ}AV%Jr1b3odAeCSd zXl#iK^u!_XKs8k!ls}S1KqAnw0DqDfnTGU71GjmRtmmy^Fc7c}p?ji%Hb$lZO$wC& zfXTt+ARujjqOSr_l?Q;L;$4yES~@=|SZ`>cJDu*01cUwj{N((gauli?SRR2ufFTNC z1qBcb0ip$v=~#adnRa4};s=Kofrg_Jz3D^>8L-8Pb)himXdsX^5BS4BlDCo3pY&wf zPZd~tfc>%FV0k$Rm_!2qx`Ia6_GOX$bm+gXpjon7NU%A9MqyBK1Z`genSSC|3SEqm z>7NW+A-NGr-rGU3#QU2uJnm1NH-qZ6jltu<1TO-KMM`7&C;vA*o#^_PSby_vYi2u~ zUmanY`;-4~=s#lL2D4B`Mo29RjA;P5yQi~z%f5D*9f z1cSH|pvnk>G9Ie5O|_K=q`D~v4OEbW{54|gg{8Yvs3bJdkVt0u|21JrBoQp=*e%iI zl@t|OCSVFMMJOBrhy4XQL!i=F1-Hd150QiZ;Kk#RIxI#kt8j=UtQ!IBO?KN}vXvGj zD;Sor*sVHcF>jBvVnJ$B30OLXYDuAZp@Cbz0=6i(%Nv0DkrX{5jfDujWFcm#xiQ$WD5SQp%O7=NeytS+Uh!_R_KboMn0lyprtaU%e zSjP+Nv;zNmT>aE+OUD1(YwW?V|lQb@dI_{WKSC>9g z9c3wQpPym~(r>Z#X80Ts$&|(OZ?Z|KR1W2wr@wW+_lQ{rR@WyIcN~8CUh%u3QAh6ajB3)Hbe2icpsIuTI7#gEiZpwD z6QsYV$IOjM3VAksR1==faq2t(VCSk+KFm>xV)GY_JiZcm4BFg*1UO@#y&mEZ)xCJ} zVybPD09&lid4JSArusvsjN>i z>PqX=uJ^ZjZwX~z8;L~KFb?~xTAGxikhaM-#aKD%3rrI5ip9wvdBA@UjP?L8>N)BXb*i0~GuRJeXucxort3{#g-n&+d-PE@gTOX+i8k z!UsPVTS}Lem-n66(_0i0?jWbDkYFE8y+%kHa00p=ljyJ*#Iw zGZ@KfX-CY9`tRkLIS(UNTbXJb>@PWoMn|W|$DP|YIneu6(P$&tgF6d%P=F0jJ*#ED d*M5G{=CnJgb&*}-fX-HpVYH34ZfiJ){|9GfGPM8z literal 0 HcmV?d00001 diff --git a/sdrgui/resources/bell_line.png b/sdrgui/resources/bell_line.png new file mode 100644 index 0000000000000000000000000000000000000000..3cb4e8688296f6388d678dff7c5be89aba19b618 GIT binary patch literal 6508 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 literal 0 HcmV?d00001 diff --git a/sdrgui/resources/bell_red.png b/sdrgui/resources/bell_red.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3ca9c147ab5686ec848ba287a7c8abb3037d18 GIT binary patch literal 8592 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 + bell_red.png + bell_fill.png + bell_gradient.png + bell_line.png ruler.png sort.png audio_mic.png