From 7cedecd28125477c4b7dbc711c3a3f246a3a9172 Mon Sep 17 00:00:00 2001 From: SimplifiedPrivacy Date: Fri, 3 Jul 2026 06:51:07 -0400 Subject: [PATCH] Tweaks to Forced Sync Popup Style and CSS. Also enabled forced sync for relevant database situations. --- gui/__main__.py | 2 +- gui/__pycache__/__main__.cpython-312.pyc | Bin 0 -> 4888 bytes gui/__pycache__/main_ui.cpython-312.pyc | Bin 0 -> 45525 bytes gui/main_ui.py | 29 +++++++++++++++++++---- gui/v2/ui/pages/menu_page.py | 2 +- gui/v2/ui/styles/css/main_ui_css.py | 22 +++++++++++++++++ 6 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 gui/__pycache__/__main__.cpython-312.pyc create mode 100644 gui/__pycache__/main_ui.cpython-312.pyc create mode 100644 gui/v2/ui/styles/css/main_ui_css.py diff --git a/gui/__main__.py b/gui/__main__.py index 2b23078..66319fc 100644 --- a/gui/__main__.py +++ b/gui/__main__.py @@ -106,7 +106,7 @@ if is_compatable: # If the user lacks a database, we want to force them to sync the new data, to avoid NoneType errors when enabling existing profiles, if reason == "no_database": logger.info(f"[DB MANAGEMENT] User had no database to begin with, so now we're entering GUI with sync on..") - force_sync = False + force_sync = True else: logger.info(f"[DB MANAGEMENT] Launcher is now passing it off to launch the main GUI window WITHOUT force sync..") force_sync = False diff --git a/gui/__pycache__/__main__.cpython-312.pyc b/gui/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2398983e2e6d8bde626b885a37118b9917741e9c GIT binary patch literal 4888 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 literal 0 HcmV?d00001 diff --git a/gui/__pycache__/main_ui.cpython-312.pyc b/gui/__pycache__/main_ui.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55972e6fe99619031c88804d11ba0ca2b591808d GIT binary patch literal 45525 zcmdVD33Oc7c_vteTJQ?>uoC-P*a#FsEChEDq_~2lM1mVcNzhU%;1$RMs|xU|0+$M4 z(;c4(wB?Aj;|PrG5IlAwXzXq?8FxZ=GO-*d)6R7FaXl8$1wBI(dZNr}&h(i>lX7fp z=1kA`-?vp29!W{|%sF#G-goQn>wo|I|Ns5(f5^|zv%p;X>cR0#QH$lD=!a%734$fy{5D!n#;UZM8|GLqxQ1Q$=7jRX?qPSBALhgP!};NY;ev4CaACM; zxF}paTpTVLE(xz0Uc=JbLZ#ud;j(b~aCx|5xFTFRT*>_Hp{j88a5Zx~LN(#q;o5NB za9y~5xSshrLk(fiu!p&GLyh64;U?zhLe1fp;TGn0g<8XFhuh%J3$*##l^R>9#_o_e zyl!|Mi^YdJ!t00EGk1QdGu$=Y#oPsxIMs=r_nY6ASXZAvc;pB8Gr zU>SbylGR&xkGuxGE}1{EXL2$W9QDV76A{^c;;26uc`g_cCN9VYCr-uuqvry`b3x%u zASOFc9Py6?LWp#HDtdPBR4j%RxhM7q{h^67@IAeE;^GnirHQE+ejG~waWoK(`p*R5 z<+UTl@!-X506enyjD132d9Ewo1Alk${q@a10uc$ z&Ickf1iSW4M4~Z&Bo@Vw3j7!go|zI^Gw>rOPJ}`M5kb|@M$SbhE=1rN35-%Jhb~P9 z4v69eg*s97GXZe`PTPbS#>X}2KOa2fkFnswXdpH<>6;jd2E_9Lk%}rdGCJyypjDI& z|J;OlE+7t_6$5?&zspA9hy{Ej6X>L{FRB!bfD$zzHZhszTNI20W4`F6XeipVVFpNfp0Mf-}W z->E`l!BD^_U@ple7sMb&Ak%L&ga&5#A+d+`VJwKL9`j+8gJbG)K=HxQlo*g3F#Uax zi_oZK{Fo>h`*QT)R7miR1khWkw>S|A#sh*k2SX9NgnEaSWrA6AQC`FPhK;fq_KmQ` zHmX50`l^fC@(_@~@*1|JfMwV!ScY?ijkA_9t6=?tYuF~_V8Po38*GPQhwT&`uyX|` zY);69?GiZHd4dbJTgZdW3vSr?0uQ@D$cJ4h6u>SL3Sk!uMX*bRV%Teh64<4}8rWq* zDeQ8g40eT34!csQfL$e2!mbvoVAl{x8m<*;VAnBVR4>%Q-N0&G{{?Q?BQ)T5qu_zv zBs9Wq7B&e@U$73h2%Cjwd|QPU_^uUNVYdluVYdryu)V@Yp&jAt1TTJd2oGxu$hQ zOt4dD%{XITJzfr64+|pq4^qLL9chlxbzz_G?z9bXY!`=#-GxBjjtZ=j_uKW5p$pB zHojWS@dJjR=F-BZ-Eo37>Uu}d=(G4^=YCkr)A&9z_f{>A;0juTR+OiY*Ar%q$x4q6 zYPpRc*IdR|$kWy)O3_!)Cocsv#^(z>(hR*anvCZD@}(s7@yzK;u&9IjZmuf9L8uy3z;SiM9_X2 zUoGxTKEgk1_-n55&ucE@JDsn=8tgh{sILyg1giaBEhcN34%38kgzeYDVqel+)9H|F z!0;V^U2_}X@iz>&<`V4qqgLA$AGG?K7RFjVqWvnmG@Bs9{Gg{v8t5p4tr1@2;en->%s#QN7Rw8YU>UT_!XEE)un_9T>)mnv~ z`ljZKc70288(*yjsP`$&7ct+_+{V|)6XDtqBiJI;YI(8U^^ekmROk42O#HsP+7J2P zTJ4*W`ya0k{{*@J`Rde0?rHeg_e|ocUgLkcI?R~otOvet7Gr#JwQpM4f2DiCu%op_?phnA8X;p z_Yt-GpNtrqE2DP*N%J+nM(t4hpBVm{%Lr$X^{nO}OKPr1!4C~;qJ?@Yl(D3xGrn3G z=CB`WQbt_O1>eWdgZH$U+WY?if zg6KaT2!>?Wag{=|LAHU26?ZFCtgi9sL?oUIpDxgxWNz=!pzrvep+mAW7zTkYDs%fz zol<=mr6f8a+dvNsdTbU;un)z{mV1N+%RDH8u_@5H7@?9w9A7MO5j4gah+m+vD0CE= z1q4yJ>?TT#>V1!>_3=)qf!=k#@*{Z zR47roc79~_dLyzUIyDKxCFk=oBA-t#_MP=d1XLz)aWpW=$gVa})#NIwktp*)k&GPXlkMXZ z!H7s_L{ul{7h_@pxl8$oZ2Zrh|Ct6iBFnh+HHD&Id;Wpd|-FCyDGU+fXmr9!1S$2MCntlj5@z zpb|z|0-xgLJR1m}IUAEp(t}h#2csN{L@SXC4xRSxJ2p6Q_@M95v7-m%LWAh)J3E1H zPWPa0mh&mao_&W7C}ViBJ* zilfn};>sJFz&d2KL%9G1T_V&HJs8Unbmb{g#KhETn?XUWp$tom+35=_^lI6S#M&&C zdHnE4(6cehr$BX1U?gLKNtvI-0`#55FcSHhqx!R2(L@+P*9&YS)Kf{AZbEQ0=JUzU zsY#Gv12T`{`pi@ypsc|n?bqZ)G{~lXq2{9zcX8TM#iz-7 z2A1p;{lRF!Clc{W&R4371{3U%T{^X2=G71ehU6j?Pm@Wnp_~h7KnxN%6c`}8RX{@k z0CN$*MdpHxPca$*6`ow75MyBs1Vb^vg?ybMKmbZCp$ZimgAij}k6ii?Uqu}r^eBU8 zNX@9>Dy3c|)KGRsGzNxTpw5bYm}F;AO=UDk)n9g^=*zhbEKLPvJ24(aBDl%rMDNyS zlre#n9#C6Iy%mrF!NmY$Euby-U}S8L&Ar~01MVWraZzOUmD_nLk_K&d^(rS+FVp4W0>=@bQ^Noi5 zSXRDh5i04)G?zcx+)XRI+uwcq_+a-aMzVYVfz#d5$t9 zT$7hX!pP%g>15+B4d~PHC;Amk=wDs7tZ?~PawV>Ek*i*=s!LUMOI6*k+g>kN=J*s> zBXKof-+SZe^`oiU9;voxk=yV=N$Hzy*V^9fzSjM%rnlQ}w!Phbv-^AP$)+92lK$D; zmD2Jz4_-U?=8`TYux=^@BH#TtBi6H@uXS@+7C%DI~4n$}rv znJY?hbrM%MH?qhzu5hI(u2$k|=bm5W*538B%-R>Zx|OP$8x_|pZq#0{oe$n>NLKBc zEm(2qzp?eo);D%t*)`X-==QGEw5MuzNHsfd4<>7#nLV;xSTiTyDQsM6-<)bcDzzW| zaVXjTV&bKjrS?~@+82vj?^3r^NnF*}n^M*5rRw#m>b+9+-bHSo-eGgkEOPB16xXGS zJEY={WO3)LbGfKIRn#UGwIz$ZvyPRuGideg11TO4Pt=}!J-~Dc9vf;QASns)U=K7f%q3faV zY)^IUl{)smdmvf=GzHeIq>WQ)%G)n_`)>!6wTCFMYPqqQzV#n)HOqWaif@qkhWXM| z<7TOG^Q~BF>od~UXFjx9T}Q1Lc?^T=x@&&jcSgQ@=AAR&4ZRau=GR<(alZYb&Dy>G zp~YI&iFV|FP+9%4;@x*zYFd$?aJimUqGq`X{eVtcY1)`<+RU7H>lzc7&o!O5%A}et zTPty!+ESAJL4QtA4*&Na_P7rEvS3Ow_r^Rc&QZq6hNHqY8Hx^LuP z$ycY@DNMS%S_U4LaoutQn|8I!wRJ4x531W2N|V)Htg1*|c%?AKHA`Ic{GR#GEHp2m zl#L%0uSNgi-y27-99`kdQhb-hcdhVENxtQw%Tbay>%7lfT={85pI+ozmTQ~lcS*Iq zY6I%$;!@>0YQ=J0^ZYTXZW9GmFIT1o)HKd_N;N$cP)TiJwW*i5`bEz3K^1D6^6rql zJCarX$frQ>4eBVG@ocI25toHjOI&q|Ym&I86t_;|)-7yGb?lHjb}VxJEOsT}Ns9AG zoF~P#OB{0lZq++gXfIo+lvk2#NO8Rq*L!QzBDYP?bZ%3srbDXfSmf5PG_<~Tk*ZtE zvZU3W;#wrGCB?0mxb+J|sm|R}=k7&r4-2O%A?^oNP4k=H!U(fAD6L#8acfgtm&A1~ z#8Tb6rEW@uA{BUq)Nk-tc*HNQL^9V(Y0Lc3!lv);d}n8}bUXQAGNtOaNp;(jb$!{h zij~beM@ZFoN%dWeT=xguniNM}uw1a?uMemCUy=G>N$l|5w^(1bRxektPgHd-ym-4b zwf(TP{cvL2(?4#!Z?onfwf@3pbLBk*Xts>f=|M9@Pa@RzAtX(}SH)>5JyeaQo$th2 zgwp{i%ZwBDl4S&|adN#x`F`AVIYzoiq%sjS(rU=44qR4M@KbDzxi#N$UUL~=!G^Nv zoRDR-GqBZi34dPupqzUl5E><%*d7iEb-0rhnM)SyBR(Mi+qP3r(NRP7x{I|g=^mU+!sH$ zLc2+$RMa@%I6stX?U!2nmx^}Yw^@oBM56eZPoF=)@Paw4Pad=3)&^3ZGFq~jkJj)*aUmX5q8elFd=L+cBCuJN`#*Vs}r$u#_8Od zWduiz76>!rgsx^8Ggh-UWo8`H4pX)>9Zi`TCyYGHjMrv);Ah%`Ft4Ta3ALmnOP0}V z>6~`{zfjA@tm5!fNF%qPx0_eT(B=mljn+qpPdkXcAc9FT-uCENShCzD&g+W*Q=W$N z9-o+;ngq?l6Nrq0&V$pQM+}4~VgV0H(U3%zhfXnhdV+nx$3ar*(>*9BO?t~i%Q_%> zf)S4o$4#KdKF=gD?Ld^gVrK)MHnyk*c8YEDocD`Cl15sek=x-hPfVN&fRuuRr)QGY zP_JH;)rV^AKR*!^JcARF0FgvI0TStocIi3AOQ=?!XW3cQGl&yqK!}USApwLoX=i6v zr%2!eYps!~nwRH=i7C%nNLYDPF`_8q`(vI6GGi&Jk0{j`HP@0X zXdooio#F`7Nz`;Nay|I@hWm>9evUQYv+P+nH%)j%=ZCf&SJy9qH6FDtm#v@8V~Oa* zGPiD#YX$aPQT=B4T6q5H@3~Vw15(dGs^^5%b0S%Oa@M^}s0*PpUmv*{1khq3#<-A>RvmoW!BYE~La(h|1bby@O2fUH$ z%3a}J&%5g`NV#hzcWu&LKi_f3-AS9=;VXx~{0ufQzUwg?7!ji(>I{jTkR@!Lu>uHL z&F~rxNYQpB)&m4Nkub}cZc^BizF^V7u8L1M2DJrKw2#qR3E&XT1#9x(A=8Y#mJp~l z`2Vm8){{`RQ}bM-kzn*}KzPS0TPM?SjE}hfkUu;k_;-k^e4|8U6udUJhD4S`3-zCe1S0|1C?T|1By54m zrDhF?H$JhA_o+pjS&QE129|3&QZ;>2O<%I6KfzW0%uPpA1;y%+fJ+sXOO?BRffcgb zN;9oinQ63IHA7e_!?ep`zgF;CA%@TvEx`=ZktQuFHp>j`S;!G=A!|5iCKtTu9H2I~ zuziNZ47H3CCnC#?6ZJaFq)S^pB9$3}lqRF~h*Ty>({vglmSdUb40(oWy;a{<+dSjS zilL{~W8}qXXJE!izu)qP`wf27cE&QA^D^4|5*Ejd8~mr-X@1%@?Iz;jnC)85>xFj9 zsBMOyaeuKeEg!uUmQVhweDaY`{&e1|eDaYGamUNm3Z;F8zh}5o6nL3Z9c7Mv$Jjud-s#;V3m>{-BUY9UtR&`V^Xm0fE1&gnV%4jHm#aRVoD=+!ugFKR6VDPyh!(2{}pAuqqeEiXp>gRZ>3Qs>5am!u~TZ=nb>tY+4P*&sNAy< zz6U$zx7Q}|e@DZ9!@(#`ueUxJ&n6pBYxU-UL&qjYCqfw&|Aad@n{+h26_yd9bu3Q} z7Zhb`3e8-VOz_F4RXMf9*tT~_Ahb8_R9nGN5O0C_`zS#!Jbvj!Y)jV(uxjaoOq8uX zd5wyU``L*g+C|4F@t+W1B%v%h4_Glf{eT}+NNhD?pD4353Z5tP&{m0T3xU(=0#OBb zUucyRIYs;x43-kpECW^xTaw^P0*=5v< z2hU26$QsGoBbR7V4Dccst94KFvIfzPiBVwm;sx=)Pz(MmEECqt?%fJ{qA}!@g&(he zG*I{zWki7L*Ox8t6_x@2Nb&U&U!Q0=u*eTA^Ckbxb-&L&#mJq6F>BOQhRcJ>s`zzF zT=y;4BG<==i;5pnFB9E_R{yMS)Avp#wjW7uKANl>1U>S-+Ku1a2Qp%E(=*B1BjBZg zOPWxgy~@hs8%pR*EOH7%e#S@|3V zypSD$6sIZR`Ro8-X*(%^ddbLX!FkJ`>KT%HhL*TzfBmo-760`^4z-CAsqk-GN)9~b z{1I0&;BaQ#jUXZx!{{z!P|}HC)3}kM?RR1k&Jh$V%V_5aNEOivW(MhU^mKoSbUN`# zi(#?sx4is&z;zx$EYotGu>rTVzFt0UGdqjKbgWUwvh34#~SLJaKdC-QJWd!|xg4Oc+3wF!vvv!3x>ll>F#K0Itc+L`}Bryeu z4bbhVT!>=e`d;)N2|EmV^Wr{Y`ivcI%;Dh(d3KZRxb4kW6D+aH?JSMP3Cr2DpU=*z2 z*Z7@<6+8j(RiS|BpCB1Ht?rVm+Y|Mh7u{R1Vp2SvN*4J}<~avQr0R|b z7H59%Rp)Y5!;QM@b#FCXb;@h1mc88y8}6@POnMI|O4lxXdLLMF%6jMQ%QX!*c3$84 z)>EmP9x!>5HNCe+k~Q0I5B=cf@4x(4zSPcB(#})KozEs-crm&2#pPPhjbqo3E$m;a z-SBe5sfOOJ8IV#YTxTMaRNcAJrmV>Ahw`M9SDlx%`e<3va31dP@m?Q2EL zOwWZTq~&oEfygrKewq{K2DP6anV%;sA%2?WhuSo)j`_sgA432p>WMdZFkbmAPdM=X0%h*h3xoT7L&r|ac5;1`PpgihBVCh`Go$Hs(lN6Z_|lO8l~$Xd9!;B8 z>Vd#(6@P|c@dvON9+r;YH)rhRgcz;H>TwZU!3}`bU)`T7?UYJ8lcn94RkFz%k=C~O zr)1F~So{%LG>mfo1$GJ77h|_@6;dIQNDrflA_;nkgw=_s$pTcjh%b_L5thsW#4!?( z_*MF;NCiURW^yVfI#40;C5o!I=~V?d5$Q5sysAyD)Pf%(3@upESd)pWjf>o-6?aq0 zy+LwsNV+%Pn!4leUuo=I7*95CpWVO2*MEQ?W68$Nv-=nMdWMS_eBE!AyNJmW6Xw;l4#PDl0`{MN;}AXV z)>C^lm+{42mmK7v;$#e#aNz5za%JpDlYM`DD2|);qy8xfQ+jks*1kMq#q@dNT;6Fq zwZp~d4T&HMj6i^|FHbyxGQGueUN9P+8eu|MA`y<5Xdf=xGqwm@p|XRR1?R;R6bjMU zz~~g%QD9Hl{oS=)=x^n0bPQCfcwO771`gY`IB+;_)Y5B%&mj5#8in_42Q~a+e6(;s~Fu|xHeU|St{I|EZmylwyv%%0X0_J za=2czyyi-;@f96`_##B;%#JGQXcuCb06F7|w;58I4QpZJM9K-^Uem!&gTmXB>iS z#yM>_|jR`Jjcc0dH?98wy0+$7z%-b?orgsbj3H4v~wq2Vd(R0=$*W{!vhg{Xl?0K zB$xXD!TzbH(b@aq%lwQvtHHMQxn&%{C>2Ho(rjkD-Dw ztP#?HPDMq~K)jb7MR6AZ0wL(4Hg%e|=?eq*r$|J`GX`-#Ma<`&Tvg_Uh~&n`E`Aoh zAbyLiKOu`wf3nlhcu>{0Zed$Wc@lN?OkGZ5bFFB57Et zaWXYeNr&6$UQ~omd3%IP`oQ^>;ah`H|`?TsaeGB)TK0YwLvSP zt_MdXeZV$-yaCHfWja`!7y0eW4b54D)w0O9r4826MSgJAV0mjqIpbt zOO!g1NTckW1YKjob0QR|(Iu=sq2QSaaa-kl-AQ)_WjFh|4_->C_c(o^mL1h7{#)4&`=bzCu^RT}wsfo3^-cb4|{r?k5MY zMq(md;tm>RXvMRLeKa6cp;y&i%ClRcsdx|&uYA-P@26yc3Jd(6mD=X{{cjxw|7Dr0 zQpDa9-o8a{hyL?BCEu-kr!M8)DS3DPUCzJH|6zV=_lSgl-jNk=hZ6R*y>16^Z*)%~q*qD`fFm2#IYi^LvO+ zvyWZjXn8AtHva?MI`JmU*W)5iN!?r^S<*6_d*5DI$i{yTjG?ivn2p3t0YC zFXa+NqDAT3LPf@(xMT@WFRmD{?$ItbJn7g)2PFb-4~Jo;?`ojG=zA7|R0Cf+sAU=W z(qhOm>C_8_O>7rEh$F_x`V3hjSy{(RxfF`{284&4{sT znym4y)~p!!WOnlE7+;|(x|J#xHYN+36I}CS`nM~qZjV?MdjA@;fkuYS1_<3y@8XJU zAPPN@idctANufyb&Wt)gN%!H`r~$MU&_wAbp74IDXaBon$wENhqpQ1_x|ntIr=8Yx zbTgmU6q3aYBs$PzlrGMt&vJGdX`j@+FIl)h!R>!c)j!@SXe%;(j`u#Y@)Q#9%INwh z>WqAgs!yaCn%~}qmejgk(z;zs+*6OKJ25IACB3E1bdXqRh?p_t2ifHT6GE1jirT5I zW*dVsVhggsbsYnKY8R1DQO(nqw)l0#%o60txVrqulz=E0xU*ASmMUH=6|YSex6e9P z+;wwfi|$qiU+Lz~65mRkQx$1OGTr>fQ;#S#=2MSC;_VruXXrIur4sd<)EEu8vb%au zNgYom3wI~D-H#c%Pe1M2A6anS0F;Cv<3A3wTLTDk#(Ld+B?M|va;teZoiY(UP2SpX`Zz`We2}Qok>RmTE4Y& zL#ethsjiDaC|v?r>Mv32KoFvyS@!tCm3tzH& z9_gr+fFeKbfS?l}gIYoDjSe_8P+%8ZsoxlqWprZ}k|n-`zR13ku?lSbIdzx<1Xdb* zGcc-Nsj>Ig{?w+YrA<#0yYq;3*1p8mukHnXT0)Vw0tivNY$J9U%t|u^(`@pgXXwb6 zWelOF8Ea(SZ!K3{UXSc^Q5j! ztXyW0U93c=^1(UDw1#J1WS|o;BM?x$cvS|ROAq=Bnpx*iwt6MB=8n5&1=rtmujk(2 zuk-UmZ@+x=WzvmMdGN|%x)+}na3ooIboTH{aphc9vbY)Q1t2QNE~nEmXx@pFlkP+E zc?+1Eoyy$QK^h9DmBm2j{|px;or z)G^x_;eeRMgZGHtc#qb*c%3X7fqQfexJP|-j|M4zDNiGR(N}q2;bZX<9?OK$St#4G zSttf0L(Vxic#k%;doG#8foE6e&gJGVLOsTAEtPGpHowUzw&S^&tlA5_H)v zs>*q=eM;t(+W0P#Xa^W;QQ3Jx5$GqBiVcuLo1DYX>_d$5&Vy3$4``S95-bR#SG8R0 zU1)^f9K!9|rQ-I5nq={2&SyeGwz;(-+3Bk?`A zN>dy5OB)b=;Df4$d3(y!D|vd8RU1jy25mP?>YLFeH_ZDNN)}EMH4^$r_NQ95NG)5E zbz2p!B&1G65$j@P%Zs;)Z|%LE!w98%2q_J@Z*i>SKeRYp`5zWosv72Eg#T}qTDK-E zx1mhjJ5@J5Ms#ePKe3Rr06je2R6ECfEY-GMYTKTy>RVmEUg%$GT7cr94Rez^Q|1E)hW+0$#ZOpKaLBxh=Dt` zE|61M+qW!o>)vyN@Cy1{9WdrazJUq4QQ#8SvU(S$`ObFXb#SEb!fZdbVLyh*mPpEF z9bdPd!d|OBWD;Ngh?;GV^K*m zY_?^biqB)NWMjpv7Tf`?+tH_Y< z1&5gkmw|p`re`ASW;0etagBT#N=YwGsH=pn7`G9wxlkt^5!C!Z(a>*OejEKwhNah$ zV8xH@4AjFuC2qH1HyUBawDZ?JhY> z^;vjioVpkzKAZNz&S6Z)DpL$-MHffMkTWJo4bv7zO0cwjs8!-x=g%#2y~Z|a1e$G9 z3imD5+$S~n-QJOGKDfvoV)+q&ZHcQBBL4Jfe;`k@lL? zp1WzWh$kU&XY_5UJ}|mN$o<%T3+c7YzD0d>$wfUwI$M~GxKYO!@Kno;{j>H<>i2^6 zg5{#^1FK0&gC1DiT3M;?1j5p~5VRULV}G{Ty`+9igB~HM$44Y9Y(TAk&{vz@L)!`()9P zUfhZflwAjO)yghiHeHb)x=fLXNur5*JA9C^i{fO04}h3@`?UZ%fzqT-M0Tem>p1WS z$R$fuK|O%but1B0B}!rrD#@w#j=NSPsHa-@Liyxk>;7d=D;)sp?iQ{|6?*OzLaR(m z%F`oxAgE0DEeFaf)XWNu7&)56WVNFE=p}n1-}d$XbbC zJ1>#~G`>XFu9v7fw#XgV!FZx(_Y$|~S0C0{O6wk298_9Os;E^eYF#cr^5a($M_z&! z&qV1fkZCA>)q1z6G*#3j6*VPVx7{wgottRhy;!tonS3e9ypUSEMOwRMv1lult^J?( z-N^5wD4}{k+)=i#*YcxY*MWT7k9O?g4sf===N$NvagAKZZRe5XQQ+PjP{CK-osm>G z=8GA=CPd&d2Z$CRhY(-FjEtsj9UwuJ(#=eT&+L4pdSda*sD_54UB(p3z|m$1L}cP< zrf1w%nt;2J6DD9qO{$_@s%T$m`EKVsoumr!8EN}7KOQ21m&8l2rd|q3FNG52VLE`- zvhx?|$Ncg!h{3p2y)ATP(hT(%J3`T|f2J)W=W$oVot-H`E@|NUZQP_{mFf8)Fgi_zd8#}J=P=uE5xVPRu@Pi}YKk`?D|8e9ek$;G!2G2-?XYTZ$fxg64 zVT)AQGXLyiAv6GCb$g^D&tg#%rr=6p>6HsoVblDU1zgM6kl;2v26O)-R56o@Ww2Vr zYK)=U*Qlm$%y4*Z)S}i)ImS&|oJIB5-^2#2+Q)Dk&A5tMt}{6iy36j?tDrlK7^ths z{4{R?d`;%;OcA53&-}*)4v9GRjlZladLM0Z4Uzt8y+hd9n^D*=wkWCOIJx zB-a9x+?;Q*u=CbXYV$#9^TE{S6Vm1rilWP|%T@KMs!pk@Gg;N0 zs@f`5ZB15fzw-3ms`?uZ*P-ru-R#qt=5Nkio1yJ&o3wV@?Uo;Oe!nwOehBx*8DK3e zOBFUqg$+xEjfTSMehJ#9Pp5XCkal8se<`{1<)yW+yjM|k-+@FR>lBrlpKlllzKVvB zk~VBUrUad7>p4*0uUbV?=Zf}bn`vtt)0c6eOqP_GPl~ptbLgSDIFiob{>}_2V>6Bj zPZt%{kUSRRK!_d65==K#vn6I==*DS8-~^Z8dg6iEKJ5U&RW~Kvp)p-#W>?X1c5&iN z<<2@&nea?ZQ}Zavte+f0KKcUv5Wz-({0p-3H{q6iqWq!UB4XFdSe^extJ&BJ`Ei^T zM{|sm8@uRgavCx_&uBmc3fAzfX~uca3DOvb(+zkX zY1Ba?42q0I$j(}J5@%7)UW_E9s_1kN9UIzn#CK}w!0}TusdPF+XpHQj^U_6#r!)P| zENjwRBq*ieIg>MrYqhdY;uytiGDwcfnNfS>qMsl&A^X5a$}6BUlXN=QOQg&)31yaq z+OCr-)-Aj!RcxC*#7OJ;SL@N*nm4G z{~0_HYM#PkYL$3gNNLl~o;v4biC48*(`Kp}LeAMfa~_V@Y_BT=rYPSoB4wfo{z@XKk~&WAq#~XUH)aGA8?V0;ZN5Zbkya6V(OCv|}*itVh)& zocbYQz@#C?Trq`lC+dq9qfn;F1Jw|KQ)wVeD-=c92S2hlXOu>m;YKQLFRZUwp8*Y) z&X+HPi3{NzOiRUFfx>NIm28u&CS8^4Ch>>XH?27LRT9?puWcap*zQpXBby9DtvRhr z;uv-Hh|mBCl<92XqPkS5+clK^BUe8u^t(7I?usACSS+iSv~h8XvWiXk#4{s?pPo&K zmQ^!~_|<@(K$A{moZ9wf6qR(Fv zteAv_$IG1|+_4W%;(GklWGDdrAO8;iO!ddBjBP6C8TE+we)780cFW}K={Qo^n5t}- zD%%&Eri2+WIw{K7Nf^_ji#rVeq4-^WK8%v^$i=zj6vzzY&j3^?MqsypDade2Gx zD+I?keB7?lhwwAhGu!ncd|8pBK{4< zaF41t@TrCGlJ^f`MTtP-@pxYKcvO9EBK2C9YJ^p@Hb`xuL&HaxEe~>XTnDW`=PYFn zbH9@;?U;4FS5iCoLb9Z7Hur<_nqN>mKPao7+wj%rKXkzT&|<5|n{`7;T1nZ}7q1>o z6gDL|Re1@r)eS8u2Fw0$IMNT7W*D6TJ|K5Q$P6>46kauqF=tH3Lr*v!=7_DpDa~m5 zIxHpj)8~tE(0l^x2iV=mjOVot#_P;qx*HAQEC=fB?&GS)Fb`xdRI;o}dd6+eb|Dy5 ze|g426BnR`G$Jr9@B7Y9Mb3G)d%G}q=zyhAXe-I}9hxLFaH%g$DTM3*)RU@3DTLf@ zh^Dci*l|yL#4Igl21g2t!%=BP93)kKMugMX19SuQM1fLL2p_9lOg|5^bA(u*3|L2Z@q zY7z&{B{mE1!hu-`TQO#{(CoO6*y*vjGxI#J6-8B2_yt_MOY^D&p4B@ znGHagZOrClx<&?^1TfF+ic~0Prg=#f2&H*JyRInE(5rN;B0T>U@B<7%r7Tkg3AHiw z9wd7*OdLZ@jjW{}`>&#YSwf(imTXG*8cl!`h=U1GR`KR@*PeUxrE4$Ex4hkXvoo=2 ze`4c-cZU)io=%oM0~PQP^{h@7wYAL2~ULqFoW)w_-kYSyE? zbWme{eAM<8<33L((uosf{Qwr*PL)>Di=5DWLt6aeSY)Pv&23$8(30CbUIMS=F;dD5#>hX<=b|bcVuL6Q#u9?-( z2>2@1k7#)`f!dN~-dX#X^Hz7MzQFggx?#le%{Hd;Ex;hLh;!0O2g(v^F%FsSJ;n*s zyF)o3DheawHpq)$1P-DsCh(z+hVu3vMameGGP<~+4E79EY^Z)oIj+FXht!> z$cS-ITzFM8X+iI;?YBB^pGxq1=;q@-_2wgum1fAz#_l7G5J_iT-ibcaM@x&Asqx)> z-I#&LbO3}@g#Tq3ZH~|s#)}1=ztz&yq@%#-1s180%^p#IS60>VQ>z_BU`?2P7_Mg9JyT;yH?fXJ5r& zoXE(bJ;Hg~KjZ>cU$mM?Q&4JWuLC>S5{Fu_Dd;(7KG6Ba^21Y{x~62vgvQRUQc(K) zC@@PVRNZrc?W0wHL`!8Ek%*U4INQ$EH)RMMO(>6S{mlO-EwbC;{@6-}q9>J3u$hGg}| zTO(5Sw%NkF?vj+dMRK>yzmRly-|D{O-ouJx4-DFI*^UtoNU+kZic7qTW~Z-SeSLr0 zy^qqF-@~JjEP+Yw2@er3{f7K_hv)1q>T)6w(Dv6j-;!$DA~kJ!lp?U-xVGL$)|Nuz zZ5eyCacgkQj|!8ZfciAef1h4!{jz7W@TtUO?|ahLo4)^Emru%eEzM`|6$1j#v!x|0c*rhgNTGd&4Q40D_Rd zxrr1jYb&GO&S-*~==)TABF*nyNV6Rl)d+Xp5*S{L8)9e2qk$_1Vq|bZ!kl1 z$ofaJvN7`d$JZg=@d+yY*Hk?sY+}D4W_p)Yh`R!`DHx9zCR(;E@muxR3)RPV-YXjU z(2JTF*$^q@ygS+ zlVhei2IDr6hZr4kDEJ{p86>mcqi%hTtXWvZ`Bfhdr{}K~aV=G81nHg4Sm-~6M;8Ae zbFcq<>QTCPgC4E*%x}KV9_p=H)?bljkJ>7ao*LS3=hrN8t*apbtu6+^2H+qzBo$B-2n0JVb}F8)`V^o&Z9HOItdYG!T5M9M;h{sXm>_-bgU_A;&^RZABY zm$=5&Euv9mEoz6&U>ZEK4WuVXypdX;Wggc$CJ$u-wUCnunM~WGh!qWXCh*v7gLHhh zA9@9(3$QqKd=#y2E zNN&&k(|6om%PmX>w()Lxb*j8gDsNk8l*&71-FK@z#D1!RB7llSWjpkpL&zqtIn=Z**cM6>HR~Ury0U40-!i0b^XsMj z`uU1fW1rO6ce^jyI3VSN2V-qLWc|6tT6qYyy~~x(@t`P@OQ)$Q`n{I8?$sMO%|8aX z345gtJbf$DNM2Tv=9`8oJED_#xin+@yoTT`Q7J|h8l@)}eJuX}LDPUhDs7;6dVPtj zT3s7`8~IlNuIZ?uw$+Kd3?{6Zz-^3jV8(27Fe7?k@tSN01|n)~D3P82AC;|B-;J_S zOOvg_Oi0fVL1p9yQS=PS*sTQOfgAECo;O2zjg&Yh(}HZssn1M2QxG|4zQv2Gp?~ zDGFE$BCVPANTJaq5qhoJEKYi_X+0c8T(f!9nBH58TgbdQ)3iFq_>)t$n51f3?FX#@ z#X^a&CPQAYeRVvuTlYe#P$rZMz*+9JMS2 zD=3p+75R~X&Oor1em@V(TOpDx&*NW%VK2vsRg~KoDe`4q}%kP1X!@fWBg|Gb4ib*0lpFUjr8*6hh-eBPH{iJOz6&D<7(* z&j+F90PIe@pQQ(~K{EpB=PE2uyn#})IH8n_511o_I)tC2($PU!AbPnQ7v0S(m324V z*WKUR`}V<`2j4z&^9V%u=?RHM1KzB&wr+iBu~u!nau|$q$U2)vockQb>!ElXW)A~x zqWk&A>oxOLq?8o0(Vx5aIaQ7>kgV7=%QIAvu14W#t{`L!BU0^#D@X6vdS;J)P*FcO zy>R;0P_m+LmS3rCn9pB0e=C-(?4QlQ>#msFa>w1ssMU1;X)dQW z>bd@fy2UkHmrFgV()Cj5`lZsY<@~C-=kMez+T@gn0-svscasG8^!&?)`khB(?;?mygo@Jb+eNO0+OYEuUQMH16pjGP`K2X3 z?J+a2bwJgl3C$j25X$TQA@3G(EiHjOA5pxgz`XIvywCTUDSwFOug@nQqh)fFtiK`a zXJoO5mwrvIuaR|}tZ$O#L0;l|zbAR(3^3{3GU~0NQKBACq;Je*PzNCCIu%7GqH{m_Q5)g=V;p zTmi?9j$IE*>K&C2PFkIg-PQ+14UW^+2Yan~j@}2AZb$Qj>U_tJ z2lZCRwg=9=WFN}OaU8Wi;H-|#51dxV7P4B%8nlvqfZ52%X>+W7kY{!5VIDgkICCBA z9+c!bjv#HWqw7IQqoeh~fYpIo6qGyiAM`jKwGWD_9eb@0w&gf#Kja*!K|!9Q>_KIR z!}DO+n(t_SSfB4`cvx?DbUfg#j!r6%S?eA+a~%7u54loQcs;ADl^TQaKC*UF>FXbq z*ij`u$IV-3 zWE*x5(n~{n!ZT%`IE8dD6%@+>(c6$+lx877dtUh;MBlu4?P4;|b9vtiK-juue(U9d z6?^V$hdzI3_S75CUwQsZ!%Ox`)`8yV6#<A<#WNK&?EtG31a;aKFE%F%D;YZW<0WW21fM;4Pa!pnmRUnbc1Brxhi(O=q z{E%Fi6<1Y2O!w(|S`eN?sDfM+@t5_}^8_UhtUaUuet8-byvdNVNw>?O2lm-_aY zZ)D=4xQS}8nJl&?&}tW7qgD5pL5X7w3pITf$wdCC` zDSfl;THBl5*ShDM-fp|u_ICHp?psZN+4g5`f7$(K-S4(1d!I=*9Z8lPybYtAn%uppKT7iY2VOj`Qiw^aP2 zr9-lG{IjLyean&eExqqsHr=hPyX;=Hl>M`%^?l3c_bq$gw+t}HzV|IV-?!}eWsbv| z^Uwn8m%QDY^K%QVU*_df{$v#yewynSc^2zo>pxnKedzSNtsAfI_|QV%hleU`R)t9Q F{{Xus(`f(z literal 0 HcmV?d00001 diff --git a/gui/main_ui.py b/gui/main_ui.py index 34bedc6..a12679d 100755 --- a/gui/main_ui.py +++ b/gui/main_ui.py @@ -12,7 +12,7 @@ from PyQt6.QtWidgets import ( QApplication, QMainWindow, QStackedWidget, QLabel, QPushButton, QDialog, QVBoxLayout, QHBoxLayout, QMessageBox ) -from PyQt6.QtGui import QPixmap, QFont, QFontDatabase +from PyQt6.QtGui import QPixmap, QFont, QFontDatabase, QIcon from PyQt6 import QtGui from PyQt6.QtCore import Qt, QTimer, QEvent @@ -196,21 +196,40 @@ class CustomWindow(QMainWindow): if self.force_sync: QTimer.singleShot(0, self._prompt_force_sync) + def _prompt_force_sync(self): + """ + Popup to encourage remote database sync + + Context: + Database loader in __main__ passes in the 'forced_sync' variable, + If true, this popup encourages sync to avoid NoneType errors. + """ connection = ConfigurationController.get_connection() box = QMessageBox(self) box.setWindowTitle("Data Update Needed") box.setText( "Please download the new data to avoid errors. You have profiles that need the data to function.\n\n" f"Connection type: {connection}") - style_message_box(box) - sync_button = box.addButton("Sync", QMessageBox.ButtonRole.AcceptRole) - mark_confirm_button(sync_button) - box.addButton("Cancel", QMessageBox.ButtonRole.RejectRole) + + # Apply styling + # import it inside the function to reduce load on non-display flows. + from gui.v2.ui.styles.css.main_ui_css import forced_sync_popup_style + stylesheet = forced_sync_popup_style + box.setStyleSheet(stylesheet) + + # Add styled buttons + sync_button = box.addButton("Ok Fetch", QMessageBox.ButtonRole.AcceptRole) + sync_button.setCursor(Qt.CursorShape.PointingHandCursor) + cancel_button = box.addButton("Cancel", QMessageBox.ButtonRole.RejectRole) + cancel_button.setCursor(Qt.CursorShape.PointingHandCursor) + box.setMinimumWidth(450) # button size box.exec() + if box.clickedButton() == sync_button: self.sync() + def perform_update_check(self): from core.controllers.ClientController import ClientController update_available = ClientController.can_be_updated() diff --git a/gui/v2/ui/pages/menu_page.py b/gui/v2/ui/pages/menu_page.py index 5904cea..2bca999 100755 --- a/gui/v2/ui/pages/menu_page.py +++ b/gui/v2/ui/pages/menu_page.py @@ -219,7 +219,7 @@ class MenuPage(Page): protocol = profile.connection.code - # print(f"DEBUG: the type is = {type(profile.location)}, value = {profile.location}") + print(f"DEBUG: the type is = {type(profile.location)}, value = {profile.location}") if isinstance(profile.location, dict): # Fake/missing data — show placeholders from data, diff --git a/gui/v2/ui/styles/css/main_ui_css.py b/gui/v2/ui/styles/css/main_ui_css.py new file mode 100644 index 0000000..c2b4fab --- /dev/null +++ b/gui/v2/ui/styles/css/main_ui_css.py @@ -0,0 +1,22 @@ + + +forced_sync_popup_style = """ + QPushButton { + background-color: #3498db; + color: white; + border: none; + border-radius: 5px; + padding: 8px 20px; + font-weight: bold; + min-width: 80px; + } + QPushButton:hover { + background-color: #2980b9; + } + QPushButton[text="Cancel"] { + background-color: #e74c3c; + } + QPushButton[text="Cancel"]:hover { + background-color: #c0392b; + } +"""