From a80a494efee7979c28ab1090734270e5c0515352 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 18 Sep 2022 20:19:47 +0900 Subject: [PATCH] Added main window menubar GUI. The logic of each action has not been implemented yet. Signed-off-by: Michele Calgaro --- CMakeLists.txt | 1 + config.h.cmake | 3 + icons/CMakeLists.txt | 22 + {resources => icons/__TODO}/Icon1.png | Bin {resources => icons/__TODO}/Icons.qrc | 0 .../__TODO}/accessories-text-editor.png | Bin .../__TODO}/applications-system.png | Bin {resources => icons/__TODO}/banner.png | Bin .../__TODO}/edit-select-all.png | Bin .../__TODO}/format-justify-left.png | Bin {resources => icons/__TODO}/help.png | Bin {resources => icons/__TODO}/icon2.ico | Bin {resources => icons/__TODO}/icon2.png | Bin {resources => icons/__TODO}/icon3.png | Bin {resources => icons/__TODO}/language-de.png | Bin {resources => icons/__TODO}/language-en.png | Bin {resources => icons/__TODO}/language-fr.png | Bin {resources => icons/__TODO}/language-ja.png | Bin {resources => icons/__TODO}/language-ru.png | Bin {resources => icons/__TODO}/language-uk.png | Bin .../__TODO}/language-zh_CN.png | Bin .../__TODO}/language-zh_TW.png | Bin .../__TODO}/load_indent_cfg.png | Bin {resources => icons/__TODO}/qt_logo.png | Bin .../__TODO}/save_indent_cfg.png | Bin {resources => icons/__TODO}/shell.png | Bin .../__TODO}/system-software-update.png | Bin {resources => icons/__TODO}/view-refresh.png | Bin {resources => icons}/document-open.png | Bin {resources => icons}/document-properties.png | Bin {resources => icons}/document-save-as.png | Bin {resources => icons}/document-save.png | Bin {resources => icons}/edit-clear.png | Bin {resources => icons}/exporthtml.png | Bin {resources => icons}/exportpdf.png | Bin {resources => icons}/info.png | Bin {resources => icons}/live-preview.png | Bin {resources => icons}/preferences-system.png | Bin {resources => icons}/syntax-highlight.png | Bin {resources => icons}/system-log-out.png | Bin {resources => icons}/tooltip.png | Bin {resources => icons}/universalIndentGUI.ico | Bin {resources => icons}/universalIndentGUI.svg | 0 .../universalIndentGUI_32x32.xpm | 0 .../universalIndentGUI_512x512.png | Bin .../universalIndentGUI_64x64.png | Bin resources/UniversalIndentGUI.icns | Bin 73214 -> 0 bytes resources/programicon.rc | 108 ---- src/CMakeLists.txt | 3 +- src/MainWindow.cpp | 328 ++++++------ src/MainWindow.h | 35 +- src/MainWindow.ui | 488 ------------------ src/MainWindowBase.ui | 383 ++++++++++++++ src/{ => __TODO}/AboutDialog.cpp | 0 src/{ => __TODO}/AboutDialog.h | 0 src/{ => __TODO}/AboutDialog.ui | 0 src/{ => __TODO}/AboutDialogGraphicsView.cpp | 0 src/{ => __TODO}/AboutDialogGraphicsView.h | 0 src/{ => __TODO}/FindDialog.ui | 0 src/{ => __TODO}/IndentHandler.cpp | 0 src/{ => __TODO}/IndentHandler.h | 0 src/__TODO/MainWindow.ui | 157 ++++++ src/{ => __TODO}/SettingsPaths.cpp | 0 src/{ => __TODO}/SettingsPaths.h | 0 src/{ => __TODO}/TemplateBatchScript.cpp | 0 src/{ => __TODO}/TemplateBatchScript.h | 0 src/{ => __TODO}/ToolBarWidget.ui | 0 src/{ => __TODO}/UiGuiErrorMessage.cpp | 0 src/{ => __TODO}/UiGuiErrorMessage.h | 0 src/{ => __TODO}/UiGuiHighlighter.cpp | 0 src/{ => __TODO}/UiGuiHighlighter.h | 0 src/{ => __TODO}/UiGuiIndentServer.cpp | 0 src/{ => __TODO}/UiGuiIndentServer.h | 4 +- src/{ => __TODO}/UiGuiIniFileParser.cpp | 0 src/{ => __TODO}/UiGuiIniFileParser.h | 0 src/{ => __TODO}/UiGuiSettings.cpp | 36 +- src/{ => __TODO}/UiGuiSettings.h | 11 +- src/{ => __TODO}/UiGuiSettingsDialog.cpp | 0 src/{ => __TODO}/UiGuiSettingsDialog.h | 0 src/{ => __TODO}/UiGuiSettingsDialog.ui | 0 src/{ => __TODO}/UiGuiSystemInfo.cpp | 0 src/{ => __TODO}/UiGuiSystemInfo.h | 0 src/{ => __TODO}/UpdateCheckDialog.cpp | 0 src/{ => __TODO}/UpdateCheckDialog.h | 0 src/{ => __TODO}/UpdateCheckDialog.ui | 0 85 files changed, 784 insertions(+), 795 deletions(-) create mode 100644 icons/CMakeLists.txt rename {resources => icons/__TODO}/Icon1.png (100%) rename {resources => icons/__TODO}/Icons.qrc (100%) rename {resources => icons/__TODO}/accessories-text-editor.png (100%) rename {resources => icons/__TODO}/applications-system.png (100%) rename {resources => icons/__TODO}/banner.png (100%) rename {resources => icons/__TODO}/edit-select-all.png (100%) rename {resources => icons/__TODO}/format-justify-left.png (100%) rename {resources => icons/__TODO}/help.png (100%) rename {resources => icons/__TODO}/icon2.ico (100%) rename {resources => icons/__TODO}/icon2.png (100%) rename {resources => icons/__TODO}/icon3.png (100%) rename {resources => icons/__TODO}/language-de.png (100%) rename {resources => icons/__TODO}/language-en.png (100%) rename {resources => icons/__TODO}/language-fr.png (100%) rename {resources => icons/__TODO}/language-ja.png (100%) rename {resources => icons/__TODO}/language-ru.png (100%) rename {resources => icons/__TODO}/language-uk.png (100%) rename {resources => icons/__TODO}/language-zh_CN.png (100%) rename {resources => icons/__TODO}/language-zh_TW.png (100%) rename {resources => icons/__TODO}/load_indent_cfg.png (100%) rename {resources => icons/__TODO}/qt_logo.png (100%) rename {resources => icons/__TODO}/save_indent_cfg.png (100%) rename {resources => icons/__TODO}/shell.png (100%) rename {resources => icons/__TODO}/system-software-update.png (100%) rename {resources => icons/__TODO}/view-refresh.png (100%) rename {resources => icons}/document-open.png (100%) rename {resources => icons}/document-properties.png (100%) rename {resources => icons}/document-save-as.png (100%) rename {resources => icons}/document-save.png (100%) rename {resources => icons}/edit-clear.png (100%) rename {resources => icons}/exporthtml.png (100%) rename {resources => icons}/exportpdf.png (100%) rename {resources => icons}/info.png (100%) rename {resources => icons}/live-preview.png (100%) rename {resources => icons}/preferences-system.png (100%) rename {resources => icons}/syntax-highlight.png (100%) rename {resources => icons}/system-log-out.png (100%) rename {resources => icons}/tooltip.png (100%) rename {resources => icons}/universalIndentGUI.ico (100%) rename {resources => icons}/universalIndentGUI.svg (100%) rename {resources => icons}/universalIndentGUI_32x32.xpm (100%) rename {resources => icons}/universalIndentGUI_512x512.png (100%) rename {resources => icons}/universalIndentGUI_64x64.png (100%) delete mode 100755 resources/UniversalIndentGUI.icns delete mode 100755 resources/programicon.rc delete mode 100755 src/MainWindow.ui create mode 100755 src/MainWindowBase.ui rename src/{ => __TODO}/AboutDialog.cpp (100%) rename src/{ => __TODO}/AboutDialog.h (100%) rename src/{ => __TODO}/AboutDialog.ui (100%) rename src/{ => __TODO}/AboutDialogGraphicsView.cpp (100%) rename src/{ => __TODO}/AboutDialogGraphicsView.h (100%) rename src/{ => __TODO}/FindDialog.ui (100%) rename src/{ => __TODO}/IndentHandler.cpp (100%) rename src/{ => __TODO}/IndentHandler.h (100%) create mode 100755 src/__TODO/MainWindow.ui rename src/{ => __TODO}/SettingsPaths.cpp (100%) rename src/{ => __TODO}/SettingsPaths.h (100%) rename src/{ => __TODO}/TemplateBatchScript.cpp (100%) rename src/{ => __TODO}/TemplateBatchScript.h (100%) rename src/{ => __TODO}/ToolBarWidget.ui (100%) rename src/{ => __TODO}/UiGuiErrorMessage.cpp (100%) rename src/{ => __TODO}/UiGuiErrorMessage.h (100%) rename src/{ => __TODO}/UiGuiHighlighter.cpp (100%) rename src/{ => __TODO}/UiGuiHighlighter.h (100%) rename src/{ => __TODO}/UiGuiIndentServer.cpp (100%) rename src/{ => __TODO}/UiGuiIndentServer.h (97%) rename src/{ => __TODO}/UiGuiIniFileParser.cpp (100%) rename src/{ => __TODO}/UiGuiIniFileParser.h (100%) rename src/{ => __TODO}/UiGuiSettings.cpp (98%) rename src/{ => __TODO}/UiGuiSettings.h (94%) rename src/{ => __TODO}/UiGuiSettingsDialog.cpp (100%) rename src/{ => __TODO}/UiGuiSettingsDialog.h (100%) rename src/{ => __TODO}/UiGuiSettingsDialog.ui (100%) rename src/{ => __TODO}/UiGuiSystemInfo.cpp (100%) rename src/{ => __TODO}/UiGuiSystemInfo.h (100%) rename src/{ => __TODO}/UpdateCheckDialog.cpp (100%) rename src/{ => __TODO}/UpdateCheckDialog.h (100%) rename src/{ => __TODO}/UpdateCheckDialog.ui (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 75375e2..ab6768f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,7 @@ set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" ##### directories +add_subdirectory( icons ) add_subdirectory( src ) diff --git a/config.h.cmake b/config.h.cmake index 33d4bd8..4154741 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -1,5 +1,8 @@ #define VERSION "@VERSION@" +// application icons location +#define APP_ICONS_PATH "@SHARE_INSTALL_PREFIX@/universal-indent-gui-tqt/icons/" + // Defined if you have fvisibility and fvisibility-inlines-hidden support. #cmakedefine __KDE_HAVE_GCC_VISIBILITY 1 diff --git a/icons/CMakeLists.txt b/icons/CMakeLists.txt new file mode 100644 index 0000000..7d86613 --- /dev/null +++ b/icons/CMakeLists.txt @@ -0,0 +1,22 @@ +install( + FILES + document-open.png + document-properties.png + document-save.png + document-save-as.png + edit-clear.png + exporthtml.png + exportpdf.png + info.png + live-preview.png + preferences-system.png + syntax-highlight.png + system-log-out.png + tooltip.png + universalIndentGUI.ico + universalIndentGUI.svg + universalIndentGUI_32x32.xpm + universalIndentGUI_64x64.png + universalIndentGUI_512x512.png + DESTINATION ${SHARE_INSTALL_PREFIX}/universal-indent-gui-tqt/icons +) diff --git a/resources/Icon1.png b/icons/__TODO/Icon1.png similarity index 100% rename from resources/Icon1.png rename to icons/__TODO/Icon1.png diff --git a/resources/Icons.qrc b/icons/__TODO/Icons.qrc similarity index 100% rename from resources/Icons.qrc rename to icons/__TODO/Icons.qrc diff --git a/resources/accessories-text-editor.png b/icons/__TODO/accessories-text-editor.png similarity index 100% rename from resources/accessories-text-editor.png rename to icons/__TODO/accessories-text-editor.png diff --git a/resources/applications-system.png b/icons/__TODO/applications-system.png similarity index 100% rename from resources/applications-system.png rename to icons/__TODO/applications-system.png diff --git a/resources/banner.png b/icons/__TODO/banner.png similarity index 100% rename from resources/banner.png rename to icons/__TODO/banner.png diff --git a/resources/edit-select-all.png b/icons/__TODO/edit-select-all.png similarity index 100% rename from resources/edit-select-all.png rename to icons/__TODO/edit-select-all.png diff --git a/resources/format-justify-left.png b/icons/__TODO/format-justify-left.png similarity index 100% rename from resources/format-justify-left.png rename to icons/__TODO/format-justify-left.png diff --git a/resources/help.png b/icons/__TODO/help.png similarity index 100% rename from resources/help.png rename to icons/__TODO/help.png diff --git a/resources/icon2.ico b/icons/__TODO/icon2.ico similarity index 100% rename from resources/icon2.ico rename to icons/__TODO/icon2.ico diff --git a/resources/icon2.png b/icons/__TODO/icon2.png similarity index 100% rename from resources/icon2.png rename to icons/__TODO/icon2.png diff --git a/resources/icon3.png b/icons/__TODO/icon3.png similarity index 100% rename from resources/icon3.png rename to icons/__TODO/icon3.png diff --git a/resources/language-de.png b/icons/__TODO/language-de.png similarity index 100% rename from resources/language-de.png rename to icons/__TODO/language-de.png diff --git a/resources/language-en.png b/icons/__TODO/language-en.png similarity index 100% rename from resources/language-en.png rename to icons/__TODO/language-en.png diff --git a/resources/language-fr.png b/icons/__TODO/language-fr.png similarity index 100% rename from resources/language-fr.png rename to icons/__TODO/language-fr.png diff --git a/resources/language-ja.png b/icons/__TODO/language-ja.png similarity index 100% rename from resources/language-ja.png rename to icons/__TODO/language-ja.png diff --git a/resources/language-ru.png b/icons/__TODO/language-ru.png similarity index 100% rename from resources/language-ru.png rename to icons/__TODO/language-ru.png diff --git a/resources/language-uk.png b/icons/__TODO/language-uk.png similarity index 100% rename from resources/language-uk.png rename to icons/__TODO/language-uk.png diff --git a/resources/language-zh_CN.png b/icons/__TODO/language-zh_CN.png similarity index 100% rename from resources/language-zh_CN.png rename to icons/__TODO/language-zh_CN.png diff --git a/resources/language-zh_TW.png b/icons/__TODO/language-zh_TW.png similarity index 100% rename from resources/language-zh_TW.png rename to icons/__TODO/language-zh_TW.png diff --git a/resources/load_indent_cfg.png b/icons/__TODO/load_indent_cfg.png similarity index 100% rename from resources/load_indent_cfg.png rename to icons/__TODO/load_indent_cfg.png diff --git a/resources/qt_logo.png b/icons/__TODO/qt_logo.png similarity index 100% rename from resources/qt_logo.png rename to icons/__TODO/qt_logo.png diff --git a/resources/save_indent_cfg.png b/icons/__TODO/save_indent_cfg.png similarity index 100% rename from resources/save_indent_cfg.png rename to icons/__TODO/save_indent_cfg.png diff --git a/resources/shell.png b/icons/__TODO/shell.png similarity index 100% rename from resources/shell.png rename to icons/__TODO/shell.png diff --git a/resources/system-software-update.png b/icons/__TODO/system-software-update.png similarity index 100% rename from resources/system-software-update.png rename to icons/__TODO/system-software-update.png diff --git a/resources/view-refresh.png b/icons/__TODO/view-refresh.png similarity index 100% rename from resources/view-refresh.png rename to icons/__TODO/view-refresh.png diff --git a/resources/document-open.png b/icons/document-open.png similarity index 100% rename from resources/document-open.png rename to icons/document-open.png diff --git a/resources/document-properties.png b/icons/document-properties.png similarity index 100% rename from resources/document-properties.png rename to icons/document-properties.png diff --git a/resources/document-save-as.png b/icons/document-save-as.png similarity index 100% rename from resources/document-save-as.png rename to icons/document-save-as.png diff --git a/resources/document-save.png b/icons/document-save.png similarity index 100% rename from resources/document-save.png rename to icons/document-save.png diff --git a/resources/edit-clear.png b/icons/edit-clear.png similarity index 100% rename from resources/edit-clear.png rename to icons/edit-clear.png diff --git a/resources/exporthtml.png b/icons/exporthtml.png similarity index 100% rename from resources/exporthtml.png rename to icons/exporthtml.png diff --git a/resources/exportpdf.png b/icons/exportpdf.png similarity index 100% rename from resources/exportpdf.png rename to icons/exportpdf.png diff --git a/resources/info.png b/icons/info.png similarity index 100% rename from resources/info.png rename to icons/info.png diff --git a/resources/live-preview.png b/icons/live-preview.png similarity index 100% rename from resources/live-preview.png rename to icons/live-preview.png diff --git a/resources/preferences-system.png b/icons/preferences-system.png similarity index 100% rename from resources/preferences-system.png rename to icons/preferences-system.png diff --git a/resources/syntax-highlight.png b/icons/syntax-highlight.png similarity index 100% rename from resources/syntax-highlight.png rename to icons/syntax-highlight.png diff --git a/resources/system-log-out.png b/icons/system-log-out.png similarity index 100% rename from resources/system-log-out.png rename to icons/system-log-out.png diff --git a/resources/tooltip.png b/icons/tooltip.png similarity index 100% rename from resources/tooltip.png rename to icons/tooltip.png diff --git a/resources/universalIndentGUI.ico b/icons/universalIndentGUI.ico similarity index 100% rename from resources/universalIndentGUI.ico rename to icons/universalIndentGUI.ico diff --git a/resources/universalIndentGUI.svg b/icons/universalIndentGUI.svg similarity index 100% rename from resources/universalIndentGUI.svg rename to icons/universalIndentGUI.svg diff --git a/resources/universalIndentGUI_32x32.xpm b/icons/universalIndentGUI_32x32.xpm similarity index 100% rename from resources/universalIndentGUI_32x32.xpm rename to icons/universalIndentGUI_32x32.xpm diff --git a/resources/universalIndentGUI_512x512.png b/icons/universalIndentGUI_512x512.png similarity index 100% rename from resources/universalIndentGUI_512x512.png rename to icons/universalIndentGUI_512x512.png diff --git a/resources/universalIndentGUI_64x64.png b/icons/universalIndentGUI_64x64.png similarity index 100% rename from resources/universalIndentGUI_64x64.png rename to icons/universalIndentGUI_64x64.png diff --git a/resources/UniversalIndentGUI.icns b/resources/UniversalIndentGUI.icns deleted file mode 100755 index c7f02946471876ee683a13de26c5dd09474c6611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73214 zcmeFa1z1$w*Ef6^hVBqSq(efGFem{*8c_)q1(6UzKtxeMq`MT57U@(Fltw_hyCnpq zyCi3r^PL&>zQH^G&+}c^`(DrYJIcx2;_x|m5Rvxc0HGJ?Gz+ym|J{A@N0N4<= zN~n*ovp*2#7C{&i;twKFC=l6L=~8{Xq6zc{7Z(u7b=A{iqN3u0+MpL0rT`)l)g`6Q z#RLUa&~-G{9EfyBNg$x_Nq`NwvklINhJ^>EK-UQX)+-PJb^!o3a1wKk1E{xx3n8Il zfyvNyA^^t$fF~%>86|=qp9tUr@|C-bucO~Yyu(}rZXoi{@hN~QxVsI`2E2Ib6ARH} zfpPTQMCh@v#GrN6S5!KGrZ1_3);;}g54nEnjJTMXgpfA)b6eFVE@iM!wIF)We*e7Z z?_0Zjf9}}_oEiX8(4NbjO9_f=Kp$|reFxmb?AZsLZ5apm5Xh~m>FKE{h&I#FF$1E& zwWgMqrZ)6-dw2WrI%;QjZflpIKo`28>SNHy;cXUibC-BGk+14>=^1ZFe zsj10H%=j(z+|ZtVz{!4yR9{i$TuJ}A0owEWcf{Vm?%CJNpU^k-2N;V?qbdu ziP+lMb=e`_U4x*6ju?U5+1+v3z(-&H<%D;^#fZqLkTi()f8>OB!TG?TVE+V2{%;NOrzY9%1g{F6aq8t*Bk33kXMo`4Xx=O1N@^Ao{K|h=oEqqi>g9 zy5*xyb?qzq_AWST5C!gm&@);fec4BqN)f}o1J(iDNa!IzfphgOKFuUe8z_hyeH*(K z+zSFB<^6F9*r7!ODAzq;*K>yih5U7&b`C@Zg2X@g>H#?L0Niy0;V7^y<(=DG^7Li& z^gCcZfCU56z#SB{;yq9tz;*{{+kTK504yv3Hxoo4P$0BKX@I~Dmkzt*2eA>rLXUJn zK#%U;Zv)XZ01F%7$%L@@IU(V%37Y^cX8<1y8w=nKg_h_I;{RA;Gl1m^;KOmT0J3y& zd&^^+VDHCXAc6~k5Ah$fYuy4-Uf|I`24H5P3tmUhQlDGoR!CQ{_5&wq5ZYwwEu$^V zZ_9&d(8^yxlt1@H{%cs+AgyZg_D_~*Ga0zf&43#N7GQ3jVudMtH*y7*E0HG^_NYBM(k|(Zjx*u ze%Z>uHK}eWFT|la{hwt{(P#3zDgEgQ>jAVW{du;O8^|AL`_q&{im>B@z(a2SRc8o) z=*&+$iq|h3 z6w&{pWnh9Stt$mr;p!?-r0ITuFndk2Kns3Nt^aqz-1Yyj5d5Gh(0wlqv(5j`qJ7XI zX~`KG7iny%A#m^2KM8>N5Kwgm+Zljk1MfiO4@T|l1vlW@SN8*oVN3&Xow4C~z*7)` zVVqG>Do}>2$oB37_$T8Ji84Q@UVGtJ;13V*o(7@t>*u-t$%ummP(nG+@BvCHfb9an zVZbL4847;d15ke)`mccy84f%H5eLVmp~t~sz?qQ);xMa9lbqz#)**643@jwrG0V4i}0L^lI9z^vY81f##_Cyb{1rY}cS!e<@1iua3>pL(6 zqIjW)T>PDo4Pbkt2~bre0j*)KoaYiw!v+o>KN7^Sp(WRY$au7d-2vbU01TRE|LG&a zj{vq0dY{~j;9eY>&j`Sch2dbsU>$#Dh4}(F*uW)l4;71MH3Z_Exd1Exy#QB;HTvIK^U$ogSa7Haf!urj@4Wc{>?L{y`Unsi z^&eRS0bDpBGXpIFQ)l^S3<>~P5So{<0$M`&zsoHIV8H+$He>`4kl@gNXD$L@uK;`) zHgL8bT`7Rfz`vau#2tdJY5=%4Yv3L-7|s0;x=;+j!Z3mv6OfSPK(u@XpMmA2dG+v*n0sc{pn92^8uMg0QMRn#D)QY zK->mYWT)qx-*h$kEl z6+|9C|Pq&FcO_OM+lSPl~UY3fY#wkfEw8deN{Gu7gm{fY|#BLmWViUKEj5 z(GF%;`3KeoO&$Zm0?Fs_f{M!!@kIF;K1RKQ~3*XFr@f!fbJvu@I(In zp@KvQ0eBF%3i{E8y#2qKH;5TB1CU>GgtX>Am;s3QCBzHhrhtgO$p0w!1%QhUP<)2g z@E=SOBo{J&#JP?;bh5w&~ z$b)ei5`^5V3r0;wejoA?O@U-x0QdF>g_wW@6D>k99u!O>e>W&lyakc5fLai_e;fjY zf;wmPPU#_I83Mw#3UUkcuyded?f$170YV`mCV*D`8Sc&~D-P0ss+M9kd{zHC?0wGy0-LRgTUC6ORE%m?8Zc!jc9!^(ZC6tuy zH!LWy7cBtZ*DwS^kKgav?N9kX7IJVLB+<1S)?2l?KPSaZ1odJ1YN4QOe-4Wg1QB{# zTYe`%g4`fMl^X};e?i}d_tiliko^W61wsV(Zmdp-@MrptnHTEyboEt1XRzNBK$J#^ z|Hs4!2^c|WOrUnket(0R!lN7Bi(c#B5YV&ymfJ!@8hbsVb7*foILAN}bQ>B_1NG7N zdsY+(QM{o6RhubLc)OXfg|&U4t^hGKLJaWUmR1l2WwYQ+Suz00a^)J=mZd}p)($h?r&izq{?V6sApCQb@<|c zvDN+^n_o9hZ(AKymyi2rHfRri-MC$S%?(g;6#LJ7(5(JwzD6`(%s=xDHTDKTeEp4e zP+0NiU-@2O=B@e;LOJr!-Tv)1UUuVk^|hDJLD_uNzc4oR1wxEH-Q@#NIuQBKjKdAR zuex#jY8s$s2P*tO@Zoj!w|*Xl1cv<^V_!%&ephdARsAv~GUT5Rc&MQ-4C3r>tAN_G z=r$sxH1$<=akcRJ5~$*HP#eBB^o4g5cJ=f%RrFz6n=e5uusuRnSpXs)PdX;BRduXwYRUW zs&;q_J$!%eilN7M6GLn4s;lZ)gx&=}9mriV42j)DUEO`X%~kcIP#$<7kHpYZFcWmv zR&}rM&wEkeNJC#5MC#JHO(QWGAmIO^3-;LYb*IHdW@Eyu*QK-KNh=m~QX{>CS#z0nd08wc8Ys{*< z>#BO8@c^picX||bTz%cORYPbzQ2t=bZ*~O|5rH|;+Nu%E0{7>vm>q<56Lj_TH&qOv z-wuJ2RutG#*A&+XZ>oZ9$3ZoMgoQ$2^mUeZK(Bs4-Vdv$J-!p(Qw=q~|ArH{zpe(7 z0eKp%#;*7tc>iAw5F{}eeP-R|y^t;VmnR5f41yT@TPmQ6EmVd2$A=tZ3`84^x_YR5 z@h{Ifh7YH|suRNP^}mXH*^Sd*0lhHyZ>9y3_5!l7<&aVS7lQ_I`J-)j1@r>Nzt~5J z4KlY~{Z&u}{a?&2#0D8}Xs12@YP>OQkY{QB;R!n8yWqWlwT&1qSXcEnlruK=#`nPo z8vf!_ARdhCK|7U15LQ`H6ITtdEBre?FZ4F+p||-UaVt{^Gg#AqHcv4A36ka2jos5( zx3|AIj8RC83$28XIT=hoP(H&v;+~L~Y;Hf8W?~2)-Pm2dm1_q*GBgd^w>NhG?%N?_ z<$;bvz8?%XAPWbD553KuzsD620TXdlF8xk{BtfAI6bt+wxM+({XSX%n(>l z_0GYl1~TbT(A3-9@q5q&IZPLfB*?HIjI$sL6qof>?Hr8DAWsa1c|C1ym@sdDmVp5u z3SZDsVExGN;o%>FBectZ%sYREeOR?fOceSn^Z705gt%JJ;css{6j%L-lm9;a-2=O8 zI-J|!omJ2?_U{4pWOJu;2fVX+^x7=+ zgH6_d6asPn)@DTm{R_>x-vWIEc%ab=vCcpi0<$#q8uxp6H0zJr)2~+RYV$xrKYXAS z%9Z|x5h}rs-~Sx8TK9PnsK0mEYCUYVV%~oI5k&s~wAEU2pbCb0eeJ*2Xzd*; z7=#b??(f%OV(0^%R&-$8kKD-H#MwZMLZ$xw_67kS=(X+-x99&7ZXf8jLacwE2|x=t z&~N=m#vi%T-)0kk_FVtpjQ$tF|JO->WG@Hc#4KZ`XKOWY4QF+0cz?F?9>m)2FN99D z59$v5aa6yWtjH{IpR)XM_t%$y?7>=N{?dW;;a@uVU;DcG;l>XUI7HwOfkOli5jaHP z5P?Gk4iPv+;1GdB1P&26MBosCLj(>HI7HwOfkOli5jaHP5P?Gk4iPv+;1GdB1P&26 zMBosCLj(>HI7HwOfkOli5jaHP5P?Gk4iPv+;1GdB1P&26MBosCLj(>HI7HwOfkOli z5jaHP5P?Gk4iPv+;1GdB1pX%>U}`8J0svxy&~J_r-@n4lOhV{I2z{qEwzhkC|Dg~w z^d0#5=VjmSLi=D9v=D|KxSxZ{s{98Acrnl4UO&^L%(o~{y@JT z^@|&TLI0qCN*DS-;tavd;8g(n)w4gup}%52KgIvLgyUgh{qZlT4iG~GEG+0JL;x&M z2cTlUa^uFGU;o~?a^(i}lSmW*mWsZazR?rDr)T(u_yxg00KGLp^ddCoRa?bzny`9- zl8AHfBiF=gP8Q^QI~@so^0WcyX3F8T_IIIjn7=96)2*y_C*FK`>1#wKtvYY@-9;Lg zozcNh!qp15Wi+zFu#QCE8i}H1`tY4^9rZET$B*83_|0%G$qN$6_)l~#(>{ZDzQ<*_7WBaww@DTvuQ9k|o=X7~G) zip|8k6XlQeo08m~%YA+GikkEzWh@!-bFb4JK3~D}7q`Nib1l111lA1@QUf|!o^_*7 z$a3e%a{FoDj^U=}vA(aYt}StU-%j+rcS-UmjXT1=FIH=D<~`W6 z91z<4D!J8B1ILaYQ(%85bvyjzky%Py;c45gl-_rt_XO)N%fhN0FL@814tt&gYn`n# zZxb+MZI*65L8_A_n`C_Xv*X>xn+APt%}Y|){f>BdXx|gO=)uowLt1o1sl!c81{gfV zU@u24E{8iA%^3}Pz@smhzE%kLdoaSkTwVt!bGg03;GPiIa7{>@`{MS3a^LVrK(5`C zZ(6TY*N_5q-Qi6|(l#lw+f;Z9v$SpykG*({Gw%1oeZ&7HslT$2{iO+qJA3zsKbzg1R@1-jC|;t*>R#m<<;i{yR~U)4 z+MP7&k+$YmDcH6nElm5cG{81-tG_u!5=t_xGlQBI~d;+ltkN{nIr=Jt9YsyJ-2 zjWPy|0vfKuKk-`(bIYGDJz;iK!7N)W5!XtTv$6OwZj-PkrGOC5j1|Kp&`?D>U??;8 znnS=O_RC5Sc1ElLdH9)W*`@&(k;%*(_xxZV=o_sHc^)wNgr;Q6EgpS2CQ_s3d2GeW zzQvcN-MMNpNq@69+ac=?li&ROTFw{7IpvH=VXLgJSk#ERFGqXKl zt{ZAAN#hH;D7Mm`N8+Ot541DHcc=Mp3t1S%B>Vfn>t-K)j1nu;V|w~wNWC{5bnNrI zIK58Pu6qS#gu`S`)tGWatND6UWtmY==a#ilz9A)5#lyQ+jVWPqzC0URH`MP*0#ONR z`9=wSX;054e9Chs$v9R)E1V`jihCPHq<=#sk2{M;f89B*hyx)k6@B{deJ&M6lX9nf zeGa{o+e7!Q8kfk2bm0n)#qL^2{G>N_&xeg9gUP*_&yCJ6N`zI9Q%j${ri0RxdSYtE zd}QUyW{}=oY#--q@5;DPkv6O6p}y5D)NlPcWWpY4qkvZqNuY7G!g z@_i8JJZO8pAGz9u`-N`PFt$-Ows@;rEowMKbOW(`kAq*)jAX^s`54zrURe76$-=-*-CI!^Nttwp2G02x<-}eIy|vg7>YgRmW_@HHIIEmJ z$;W1V7UyOOTRIMb3i&ffR$0~y@QSstNL$uY>$2xIhBVQhUu{Db$#8;dhX{^y)%#2C02n-v{PPYW8PiHyG}f0B4iWayunezI)7f z%y%^qcYXUcs1z2-`O(^2O4_h*$S(Z8!K@yMhRJjJ=>@|D8lmq@QGQiPb)#RH+%lwa z+7F%}t*uYKI#vA<-Yg@JZAB(78zzyN{(>h|+{Uz8-=^b7&!+X5ta9XO@gJ8dIo_PI zYRlot>rg4_(i+j{mOF#fqFEC{Umrnc6Ikv>DVUeSi=*AG!ffZ9P&K60NksAc`8YT= zu~2_C?UCMQA{5{WlFr1fSGH-_IF)!RZi@e_YW>FqPRmCG0u-IBQQqV;Znv=(kO-3i9Cx>=s&8=c=JsdpMks!+4wD zlFK3*JDx!O#))US6R+|~Uuca&My;dYq1cJ6vX-=3WK1qZe#l!;X7qcJ{FukRa_Mye z+c=LD)#%0xex#rsnXFsX6*^?gMjA^iIp2%~K;;h~mpz!kt-tUKe*_rP`8BF0N)t_4skA zFN><%QA+o$ZVVAAe_dNGMkMupgW-7#HuBy%ZUQTox7d9wJBrXFGPb_8jwNmos(+i< z(9X^@HS$yJ*GD}0RF}*rwC47dq;gC4q~bh%P8!;`U|ToT>SDR%2m7Oj@Ds_9g|yD3fVWtA3?W3ag8E}gec z7|+?H{Xis_@s2U`MAOZW8Z~`=8icg0<~bwg)^3U~>RIp~?g$~6TejCVz3}~2IbKYT zVC5ZoBLm`Vr+vP>VN^x^X#Pe?Ii5_xu3uB@-~(cT6i-e|HRxA7MiaoJ>d|vVsTn(= z6}$CBNiQxb8nZsxonoX933+ohE=MB(cPKzfBdv)e=g4jHc2TOLJKSqhdmESDY1*fd zS2{g*@)ca$R3VE&cAaO=G4VL&b{`PnIllQ6u*I&t#SSKW>Jhw57{yXkXE+C6 zF?dh1O2MSzn2X|3F@94PPHMy}^KBx`dyOR~a}s~GYC+O(*Ci%5&kk2X$mAnvG4Uds zwmxknQYp#xQ`hqsUiqgU=PPb(I`kH;i=LLImsgHm^v*Bj`;vbAst@<*ar4v5tig|7 zTkOP1NwXBr-aPr7xNa;?aN86qMMVDU%5o^GJ`R_R8(%zrHhT9NbzBW%W7?~+fiJqq<;MkL6tY(;(oz52s-Jc zSE zPbrP8+#$1C45^I0ZmoTO;l1S)f%Y^h{#Mn={Nn{dP1#ttch&>H(_E`CWVuj3afJ3H zG27Mf4sn%sf;(GOAwjV^v+EIpk7ff1K8Ufbe9Lq*3K$jBynS1AD4+{V+>&JDp*vw( z>B$udtpRdco5$RIw=c~TQs6o>1?NdW{`~s=IUipC?}FenmsFPTo$I*oh?It40tVPz z+Abz045u2p=$tm;_Yt~}y3LMpsUAC~_sp^%nYR`3I=68x&rV?_#F(X`vLfF9 z%-e=Zo7Ud`u!OscX^tlA7DC#+GIAwz^lIGk_O`?EEHm?W7j>H(arhgK$vcv~)FTV) zzmjVgc62OugP5DbBpb&*mA2ju+ccwWrC+5*&DHTqq^?Q3Psa(4mA;tV8W~gzOR>)- z9sxEZ%{H~$SzSZSdqhDOHOe;$3GIf$ci;nXgDolQ@e;4Z5TzY@Mq_oJ%1XrYz~`A$ z=F|jU#TM2D+I(HQ515(kV0XU0onCP!%;voP#G!8Ne%+Xb>`I#S!KcCKakX@JMSW)C z;LWJG8|tYu$fk%?=BH{~cZ&z)9t4AWpGB-U?z7;U(}gOFOa}B#j&-QW?!hWg#=4>+ zc`LpSh2?C5Ot%EaKS$WSY&|LKRQX2Id6;WW&Oj(ON=?DYQKOPZ-*XX$(;_pXR^Q6# zZ!_}^pQ1R~ap%hH>ny|;Pn>Lj0t-i%48G6s04J?Tq2i6Q@#7cny9P5}<~(h$03c2c zx~>mc(2GxT;HD(sX~?=10# z^tW2?nF?~XZ_Z8oAz-tHQQ^LLSbZ9Hr(FF0q=m0WzikMp`m!~HV>TDzL*?&W^wL`1K<`KkNhI!CH|t+Y*3Xi`ZN zUMgJj_z+f^#XwKznZI*Y_|X;m&{cJp871LXB4)mVQ6^JP#af&o^D|eDPm!1;mIx6> z%W`|XR_4hkdg&!RTt4r?+O1Ded)eZ;R>-k%1bjgkPV`?^zGu^01t;|S7ag+rOYXcg z9cXx&PZX|n@y5dX21z0aU(fC`uKZe$yXy;Z=`%7&J!y^saIG>D8SG zNAqt1J1!ZNn@7ive!U#X^xm)h^s{3PPflM3L}qD3@<~4GDqXST(0i>f{B5(|r|Wi8 zl?*=H@r%5qc|jIS3i+BBXhG2!oaf)%v;}erV|h4V=X_l%mv{cAVa&O0~jN>UF==&2pOLH?0c$`SyHImi{`fYsD)Z-RsOE%bj9s^yiaK8d{MME6?k7e!ph?S(MuE z)KOl%f?aoWYItVT`E#+X-;>AvWgJSFRR_6w+&_3MP*SV~Wv3K)kzMBF?zzRuK|CJ# zHq=?Jq7F}w9JMB$fVJkBQ}wD<*Zyv^i{I4hOQz~-w|<&$th!F;15(e(smFVXq&@*o z-j%|k4Mi5QPh!co+DKjZZp-$T=)wc|Q|mnkyem9Izut+sYM_+#X~^XBxX^L`ueavd zqV?TMA1pgg>hJk*htYjV=6Yu~#%P(_eqwVPh$cVrz-H9cpT*Tdv6rVXm7z%w0@L^7!6lb1EkP>xO5c9x zd6}biT;ws-xU?*3A5?`q!{_F1ctn`b@haMKu~2P`O*}HKPC_tf9nl+gG{{5f+Fw21 z#2Yw~WPbVUm07Cx3D{fC5bU&9#@*?0N0Ik+M41GlT6~`%;!T!HwDZg3&J~{0On(6g zya>84X7iXX4;k5V{&UWD+W>u&?4cLSZ!22)EufN5X z?lKsu3=9l>m4G-gij}(iIG_K5m8fkMJsXaN8n&mhGgLU^o-1F_$ng@zThSUW)Ab!! z)?Dj+8SGsg&yOSXI%r;Az*HeXDYt;Rnv@%FzJgOoZ1F_KbjY`90>)2gfe*1CyI=`2 zSB0Hv6?8tQNN=RGh^V}MG*`eU#sN!Kw~%G!a!b4~>eZg)Zp+se90!%$;BUWVDRfr$Bgek^rQ>%5(+T0YFjSDkLT9Bcd;dOp6c7oy4j}jkwFNv2jV_({ z54K~u+oPheohzkODqOoR-7z=u8l+2grO`X?L*g`lr?r&oX-S0IyJuyN6iCLWC3=3^ zvs7P0g9+9XU%Uj*HreN}n07kV~TTaVSqkxM0Lr-fi z=a#&;IxbVzC-+!@`b!7}Xy4pjte`4-?Qyq7r;6}5B08l1(Gp{1_}1q<82K$+i7(@@ zfciv}p5n>U#RzPn^nuUxr8T!-o@Jg9n+_%KI?;=FjgFMSwT(h(nRX<{XicY?7{pJX z`#ehLsf3Tib*@&(*5}PlUpU(lQ>;%J%WgLT5QMO+q2(tzfAmr<8FDVw9(EPl+aI@A^-b zSw1x~VspExaO`cn{N2yCc?EG)H{E^QtB|jk+rNy_E2_N87$s?pLvU1NMT^drvuFpN zICrYHylrAUs(qWrUO}WLafiTb%7FOFN%p!JuCQt@sZ%r;->!AV_&5fwu+KSFbli55 z$L*`?PyB#=544FwExUrOA7eC=TNG61=~Y*62^Aa_Y!>LRM4T9%+>w(YjB2H*0f2}68S zudcEMsVOJXB2AI>cUW$%{&ayM6&vR%pO@afFA#XlH=##;4y&6MYpWBFP25a@LxU~^ zi(xFKJ^IK}?izbpwO@{boJEhTV(KXXF3UXPv=zn9Hh7kxFyO-zM%x(e#hdmzvn#zM zLzdnf%0XhTPS=vS$p`OJrdhP99wWazOm-o_{p?xBrCg)U?Z5>2vjgln4-I1sgZjPv zvFUTW8BV1rZSv!OAf{W~pnt-_^r$m;c`#b|>6|EInz93t9>J#+KW{GYv?3aPrf<<~ z^S%qW?onvJd)qYx9yyovGKN7ygL=dQTUl!2t(6Osif@`JN?M&Lb>2gZK9J%n?0f^$ z3kH$+Lf4(~;g)Q=YVu6SKCwoDnxcFz)ncV+1JQ-J+_T{0q<9#s_{G)KuGogSm$v<| z)$h)Xwrevzt#}m2g3J>E`A^(}{%=XV_?}t|0ZI(FDi{r-6}sfA?(RKUWyBHLDkfn} zC!ZHAOP6RiK@u95@bD{`Yd%u$YdwvLi01+ zj>_Qn4~8Xv6CQ?<+B1V=_$JYN&T7OX79_|!W^%S;koGm@?A-;$H>^Rdmd|cJ+$K%48M>cg zZ{dGAM`dAkYrUm7L?;=WUBW6MUkP>oRQY)g*{29k9-JXPFE~o};`3Pb%hiK8t?Vj9 zI&YpMtw+!3;@6F3T5X$kJ03fJz~D8qH!NO_Bur{dC)t|^*lH++*q54f%fzqeoxj8w z>bk7=x|l3E_N;Arq8Ks`*!uGc4%CM`4Bakr9f0S zyDBHs#E7G38-A~RJ6y&_yX@v2(d*$){F8zWY|Euh2{;uUFT>2(^ZSuoqd{*&apZEU zFLD`2CoyL!MNcQ_B|Rq)i(Rq49^2tkSh#Z~>7*cb3i~HYB&Wpi*p^c75$0eDwNHWO zNtrZ4Sn|u%A5(H3WNpQRlr*hG$y>4cfoCEXc&?f)x$9h^Z_q0)aO7f}y=|nRCw2OA zOVabovo{VHtCPu7xkiFf^I;T6aiidysw;a+TEbh8)w`B#*Ru6c z$OJQLQwH#fq|v(7M^Tovx_)!*{1plp4IZMGJNeFWWL_dq9Q>5B9Udn=Hr=dG>X_g# zdks@Air%v-u50*YMEQYDV!YiS*+Pq#HI}26Ev_lXe&LNV+%vVMvA^V%#MP^KF6BJ( z?(El!y*`m_8&JcU5?P3Gyy|FfHs%t54>owK3O}rRiOsSTky_D)zUb@9vsQzf7MXSr zEY-d`dy71cL%-2%>yF}y$6+FJSt?ICP4A;tN35lG?Q<0$Y9ulwx*|pRGzTI#&Z^Vu zPI;Q+wBZy5a%~jS8^o#$O50~V*ktt`L78%gTuX=R+uy$ZrPHhO{8fevA;P_KZ2Wvz zh`vrgQ@athWyD4Ue{o8Z(rH6%%>7Hvroio2d+%f0i2QP!s*o zzSTZ^$-Ci}?rZXmiC15zl*=(3*>S~+LgN9G`bOdGI~>aLce1R+xD50Q(xYEsnR<^S zIvZ|%4tt*eWwxoOUAApwmyU4eo~zTmBZV$Dft>EMEAI*5q#x2SyDLT84ZZP8HC8DEr+RfK{^qx~p;_?HbQyf*j?{8##;Q zXWp(E8Fm%Z3fSwIiFQk@)UmbRWz)&j3irJ>GQf~=eLC3wL;Gt=$9V%HxiV6Yq*osr zsV@-&#LV$J6Qoip-Y%kd9bYm!+ML&CwXXQ&U?{~~SkKZ`dVw!7IEHYV5^q4&Vatv7 zgcVbiFR62C^0}F}qUJHIbz9#0a*J;+)cNfev3{i6xSn?lYcnkle>oj)?q#UsW5~um zt4Ch%SV@Ricg{=D5N^izq*-Yre%Iehl3i$BG^+La-m?c^^7~moUB|J-R;ZY8rQ*2# zoNbC}UdHZ-L*zI;LEv0K#A_-wMCvrxjJAtQX%&wD_b&aI)pj1md?NSY2<{SJ=v3sd^%=DS1Z1 zldHvNj?!;@NB@IW1-52Gwu>j9GC=hvD0*e*{Rj5%Q+qWhv$&hsc|q(qw)qq#EYitA zK5+l@_p%%aYsQ3eXm{>Q41yjKGlJU)=h^Eld-tEV3Dmv5a+H93iM&8HwYe4P6aP8R znwrk+mxPKTAcKiZ?~G}Bm5Vn32-fQuEVTqOzZzxWDjR~Q zJ|~-HUDhI-8#o(b(5J4pm2$dLcQ)$5F_6te5cgU;f-B(Ysq~ZMdxhFk0y|NsIsI<6 zv>(wDuO8{UNFTECp)X~1QY4R=%cggIBGrRuoh|_*`ii zRO9!U(kf@1TCAFFZhR^zwvm0f?ET<;_4?@;-_%NH z04FA{(bvbWQHiN+)0NWUb^WKlp~1MdUMCaiU$yQ1lA zzUfX6)wRB&>|yWG-2WU;Zd*mDpYw;W0gM{7G8i zvT9M`^$dRTI=$t-he1N9UImuNoELHoNLsLD=~Znk0$VZ9u)F~O}4e% zJm2EHipj9-u-DnE{leFF#2I;pX8I%S23Bgj*QwLi%Jm(?k4RR6w;xf}KkXZmavYcX zM5@1ffvD7-${b%6t^|8{#lQ!PP!Yg#chBd32;fpuhT>MKI9@BwFc~C95zNii<;pR7xe#6vm0Ddeno^YU)kCB?%~YKd8(tVcNYSQjbF=h)Wi&L>5)+s z_^;95T+ZYmt+Z4O5^FDe;gOMS<~^&CDVa?zFU8O6C)}fJ-d!bfKjgxbCp_6sAw&4B zwWEy5xWJwKSf`z-x0mG9t}K=7;qKVA8IbU~z5Py3<yrBl`6U8=-Z_P*7ANltmS)#nO`OGM;Y zBFTaZA8aeow_3gzc&P?jlUH8eJ7O#qa50By;#-0;VTbB$yX!R;epMr>E}4o1J-3(f zxn0NTIqiH5k{9dU&(V2+y0j~J{({k3N-&vIx}QEh2ti(a?%Ba+WUk$xNvt_0`>n!d zJj#Gv89e3ujpMpBA$&&su4EVe(Isje_Qn7ORK1?W3bSmgpt*BVK+e}EWch)%c9zdU zk@l1&ZIJw4sbAI#7uCrDfS8?;eNcy&a-4QY+zW8Vr3ARo%*N3wN=}ag0)f^luh#?{ z2FAD;Y1iFCNNm5JP&87$7ry`4B&$n+c4Br0sv&lErPNM<&$yG`x%e~9jMM9D-8U#Q zj`-nZ^UD@o4BUZAK0iOgy3YzW^NY6JY{dCfr?Ut@s(i0H^W$YW z0H_-Q@_2Y6f7GlngXfz#laAd1a45swDL*HDr}?rYvr%3CS)Rp;`YYFU=MVS03}{2I z6rHw*+KW<#1e?tp#MP#WDwdUANBczRE2cNkb8rwopfHO7_-yqrk;!@&aGe#9q$`g! z9wz)495zC=Z58mbajt|fXo5)SI~*q^+-b!!hZp&(qtB39JlI~9{O-dX+~yN5tW(}< zSy*)BJ}#s!x8H;8Y#Oys5XxVlsArTFVKWS-2Hpj{A}gOqu;r6_@m(~_mwCfx6gOguG~4x+OBH<@S_!qDgT~@TEsSy6(hgPN0>>5Q}^h*0GTQhYWIBWrPf;@ z)6H(JZ(Lm@9M5w@7BckCM2=+jXRY7INFE0Yv)f+^R z@0h>2lynGN4sSg zxlt->G%k24=7h7W2lW&61p#_s`Dl3YvpK|&_}4z``!%i~i<6sQ_@}ID_p*epk_1>Z zKD1?%DO51BD>Rg@m7DW4p(1k5&Q4uw)Maer7~h<=*f`}ld}1%7f3KJi@qlU22{o`q zh7KgN7IQ7r`e*v*Guo%myS}aV z1rYa~2|RAa^RjSE^owubI7(oLHS{2$zLFx){Q>a=bii zH42e@#4a}P&WVg+f|J~=pjJcGyot$)TcMWEaRY~PU-}b^XfI9pj~%z(aFKp(Z;q{I zcq_c*y=vlRlr87dID5t$C*{_YPp`}hZU);XEHpnm|6q&q&0hE?>ht}H7TTY0ZI8#y z3q_;O@WIZW{CG*at<(9^tyLOBj?m%}6MCCb&Wp|tr%^X&M6I|^2D=Fqp8CFFGEr

$U|Lp>vMYof zcgC(ro$}_>Bgd1{zxsfT0ZRc&PpnN`LN;a;2<|<9*ZalliI2{ko2ud0yE~F$b1>%7 zB*{U3&ouO~Tb}xm_pbT}MEuckk_u=quMm( zGm6XW$~p14+q0g#&n{nhqYCWhXr47oSt3q-|9wL;W#Ci5nGIYklfmc)rAPNqz0|Yr ztus?gPmMKsM1Dn>@iv2;-BSuct(g>jlyzyzJYMYcIQ8?l$4grU9X?7wm0h}#ytU5E z{=iPSm_X;Q4d)J>Q<&&dNLjr3PzcuP_Mybi*yy?*|CXE&y<%N!!`#}1Isa98uAO9gjencV zo!6`)xmN0i%$Zj`WQq_>oyOs7{f`+F3Z>6R+l;<_UY^j$=|-cUb~k|T#FN(B!5Z1G z-cv-ok`0e_Wc%Gme0q2~%Db>&-t^UiAsvMzmrY_(Xw_6;z(jL=B@JFE;nk~7l#zR9 zYV0-);+)x(3!J%SjY4)G3exIIZc2YwdEWXkG-m4LtBKER&xo6>w1)WcUf?#mDZ8qhk-USlZXqlv2NyXLBo2r3drs!(lhim|BB!YD-nP z^4L=OwVeyop3!9Y$+$A!wJa;Qa#9K)u*w@L?pkyL&-hRW=8W>Zi3Ip%p{v z8z+4133qi~H!MQY06w+ma>dn&33p28pY9m?gSq_SpBK3Lgd9BTBeuls?0esjp2&E8 zS&X8GQ`#Y1_ZmcsW zQ(1A@znN1>pm0)ZzKL`GsEDTKvKLm+idBhbYp(&BiF^$5l~7I{v4u@4&&$h5r|mWm z*f-krW_ekKd93=HLPpx>qE9}-Zdx1j?RHz^uL<(+w?gc|bc zD<(6<7iRG3sjp_5+t=97w3UBn#fHb8Blp^vg{_Nt`@Gf|Jf)fO0awOIKyq5+7~MUh z9^rQ;&OpbBuU2kS27*G2izQ#aCw{!0qI+{Y;(pmS^tS>qpA4*N?Q05F%S7e#=N!}6 zET`t20a``jj#mMcnriAf)Svb8A9uWyb)zHDm;m%yPG07>TP(^rXaOgI>for`GGm$n%S9-r1~3lV0Ve zk055pGVlf}r6ZGno;f4{*Y>Dh@7fg8Y827zajH4dnG(cF^2vaP8xOC1JW;|hl;-|e zy1r$USWjecsrkl>ah+2aK8KZytH6$2O1*P*>x@y=vplBREz&Y?q?jU+L-KAr6P%DO z)ts~{@$rKq(nb@^HyUUZACXHhVS@ZPsKew4!f&&AsY zGQ^CFRW5};>troDLm`Gs^uTPd!Fnk-$-$zr;K8-)Qhv0%p-K51lf}LdvX&%{c9NZ! zk>*{ow9S$5`~LQ^xJHbQ;S`7LfLI3m)1#EIs~zh-P2Cq|*3-lWh6PGfV{A!Zs|pr8 zsVoyXm+lkhWjupVy4yl`JKzWHt^Yb{; zn4!#!G(~ZVlL)_IHU0k8Tj_o}v5zQDU4~$o6}9By#0}@t;V)}isUw%% zv(AGQEmbnIGZ(wrT?}>H6?Cta#lunOw0pZf{FVUx%*&a!%Pw&fxc>ZaB;el9U;1Z6wwAoZI&VCq)XaS3>MbX+ zHzZ>G*xPprdBSHL#q|x&H=UG@Y9#=sqsql(&P)^_S1t|LDrt+MLZfdi#CP8PFcJT{ zzE`T7io$WzcO}f}KC%I!6+kS(TF+8BAsBGnK8=?y(piC#S5phSSb;NqY)xflcxHZU znfBaGy@$z-g&n1>no&1D+no3>#5t8z0xOZPaQr!i^pXuc1j7X1(Xsil>fdvCthB9{ z-#K5u?$_tuzPHEg7_l*8uZS2s){OO^F=PH_3^9wZ3C?7Fj&bb1&y#a23qK)iv4gJp zpjtx@xKuxcDaFw^rTuY-jzhQxS6K}9?*C#SUb?t;AqckB$tbPjeAW9QqiaLGCZdNE zuffX&$=%jKin`X3#b=L3PLnwRs0l`&_TV8pYn-#e!rQ?0);^jPiT)7|`p>bfBpjGO|yK3&)xN8(vFrDh7zWXLxeU2?-Yj z=N?8(68A#(Sc`+~N=)DLme#Re>oDxS|9|D6)T*REO$o`bm6>0V5G^I2T|0$jKjNWgWx*Qe6icEZ! zi6ux)_Kfe1-z}ua?TeQV)t}5Q6<-lsA*+bU-X+3<$R=iwX?i3YxU-cgM5gD@REv!; z%-S6j5dpMHg3xe}U6uvI3Wj|vV3A|cZ8E){u*yhRQ>~N6K@2gBN=27g22;oSWHCSz z*a|`JFj1aiMfy=~7;@LZSL$nIF~%ht2fR$_6#|2xFdVYp#d2}|lf1toof9YKH0v+n z0K5v2We=w=RW*mE!G{A-)y~lH(W$h7 zf|A}$nM>_Na1!>mL<_(=?eCzFHzug@|3Uj5Vc+5^a{Jg`4<&Qpi;*1D1U$)~@HL&7 zI=cK*ev%t*r3P_FlrMtSI2^9Wv--qxK)n>zdsUepb3-eR2#TA)uz+NR^@u8V3HVZL6sbp=OFkJ>Qv_c z7d>Y!ABU(@>hJr<0RaHgt;wtEOcXoYo<3!5ITh0tQcR#F@v~?enTK83`i_Y(IE;@9 zO}C^H*wv2Q8j6trb2St}p6WJy2@Eg}M!(B(tI;Em^5*iq%{_qZB>;WAO+>pmrTw>Jsj<*4;ifEg8=2v@St-WB)i}nYHStfq~t>YA^#S#+xM=){S<44KQ~#t&)D% zBr5Y_ve$oGcy)8~1wUKW#yJWX{6IV6@+T@Cafld9QcvZgr4%Ev+8IEblCjJC8rDaQ zcndy&!{=D?XN~_|bt{Oz=$N)}(17aIbysW6hU9A7)liS_qW)jSm90G29-@l$#+?m| zya9AF7@2pzEuDzxyQ(7$7%t-q?)v}eZKqc6jaP!@|4wZefH1peOiw-7Fp;o@3G6>H znc61(zSh5iQ4RnAQ{it5`ELTFe}SLhum34v^zY66(^CJr>3^`Le=qnS1V&BN{sD{* zyrOyxvcNv-;hipb>`hmfl}6o|hhVYi7~!OG?)&geacIG;!`ENJPjn%r zX2>H9I!xA@t)k}z5nN#08d;Lr%(pyhafog#5((zX>?gRmU$4~~dER1!0{J|4{Jy0` zHEkftaGNjWoHx0qiMQ*#&h^jGGLBnW<}#X`?P8-?b^vXTJxizC`iPQT25tX|-nmn> z3?M$5M%k0@mp0J0JaYUnGq|)ol7*q!+%*NeZOJi;mG56|b0dP~c8=FC`#a%fTqTS8 zmVZ2RR^~zTRA_~r%m2gpgM`elSjufpAPL+*a~ybmpy0hb#bvz-$iy^YH#^1AKs@5& zutWAS7TQb4<7#`)g#^Tc!1+*}b*Xo|cd)$U&Jh_rUtfym_T{rAQM42?kw1hriMszR z^w0?E*Fa?F%F~m*CN5TKykPXX`gPh#0OiMzh{Q&-(J=cA;^=T|YbI(p;BF=H{``$57i4~z=u z3Jd+4P&J1>1^Ea6QI0NiSUAS$2JBx9?=FtzH@cbsxJvI`i~nDuo4ILmbWAUj-fu`x zSCpELTU6K}Vvhnge#NA;hVG4IW4G_2X>Q0e3wFy5n%olPnR3PyJ{{}BBC-3dF#x~!iVM4P%KV1PW zs9{a#P+qX}BvaG-Qfar!krK|W;;5#HY3x%HqRR_F#tNPgkR}|+b>*mMgb>Y5Cd#+d z6MMY8@(Y+tH0rM)M|@O~PByjp zW{`mPDPkwE-1q&R zy^0x{V{T9AddJ0dIX-LS**KLci^gCosK0fzl}mWp!K>6S?=iD(bWdb-Pkr#(>zn=C znPlkb7$a+G&4@mNX{`m+7}gCCK4!I#SuRZmSr-VO^;Y5~m$0t0Dy^FSeah~g5r^zj zrUWAoTx8xm)-NFh=Pa_aq@jfpfA}TPcGUfZcKu9EsWP!XhTMBo)VY#nNlBs&C1rPQ zS=Q*<(y)J0SA`=n)f6Ds2_9a8uZYtO3ng9dF4WxkHyS8akr^SaW`-X?pF$r3<=|!2 z*w38Cuy|5S)~_?aejwq@EK&!G%e#`STLM=2w7Y(bP-r>4*@qT6PW=KIN zf?#cFS`zFC`4Qg)ZFh`4XfAJe@mxDh7{cXx=W2&ps+Lwc=~s5&!Y4`a`$Tm6-hajl zgI8!f?$!4-)R&Cbe#uO%Ptz8LOWXn62SajN;!0r(muX2f?HPQCYwbD4Ua`M=Mmx_Q8&<#Pm*uE+zhU?K2rB$ohfri zBr(R({~Nq{{hvFqt<15+)Frg3Sa1)t5(m^v#;qSivzRZfAa_NOOWut4pn)HcK!MFv z&_Sk(Q9{V|1i@g)ZbR)xcF=z20wG!ul4ejj{syM4c_JU59*Y>B>M3%Uf$S2nEaTYm zUwWvkDNJtBgX#)w$kon)^l(|rdQk2LcNosyQnU3nj-ln#6LTT*rOOuk!%2?+gPAez zV74I6oUhB6TaHG>dvb(~aj62r*G){%!Pykfhx8(XCGB}r6S8``jlFz8%B0v!bvpQe zeUvXwsw2<@ZPao6JZ=HV`hw;dOzBAvNUA;DHfthcy#qRU-pbZ34NwFc8z@)6P2g09 z0xJsP)D-cw!fGYt7=L7I5G}t-KM5g!lM)MQ-W}<11HEt#0K*F|4h60liA76v;`+fU zMV@;o5W!@Ee%9m^ve?8aQ9$D1$@lzY{g+RbP)R1n6Qm>Z4Yl?hq7j)?6_*F$16i&s zMR>I-gU`Fa_bCgXkgcI5_ns=E&LQBEXF(?YbF?fyd++a%$$z{crY$c=L5r>PLkrip8XainZq)W^`m^M2A*)JVHs0! z8=;(pBnT;9LyM6#QLY%YZXR(~-d==oW|(?P45|Prz!3#$LQ&3}<&U^!^OA%9xM<Fk`os4X@D@>KaV8E>xlkDQf6;{;cv znMYa22wfdM0L>HA`MJxtJc=Ng2%M-< zWrgKC<$?vLQomnz2390@GqP1pFy=a)i^;G!Wb;RxKX*dIe7q#=H%HW#c=#@rtXtNP ziq3FL>#a``EIO?HkZ)K`YIBepKFUj2UVQCV~}0{PA`%9Ar-kZwrG!Og0!t z|Kcog(+b2d(Q|see+strKEZ+fg>jei4Rk8}1L#EmM%XY|h&iAAO{3l}6v*ZB&~gS# z-aT-vf40b+IfHn6K01K8lN0MIMafE#fECLV-e~wC=4pkn116K|ys1T(#9IHZqs?X1 zkWLR8@B$tHz!gC1a6+_{h_v%13 zO$}i9LY5u}Wqya*?FHVu2i3qd1pF$>7X4xWWTl;NENMGpFT5%3 z>1ow2fZf&8Ht*i{rq<3ODZxy29uz=dg+|lGNYoE$H=YArW~@Da|3h)f%WByMFZRe? zY_3}v{*YhPb7`F+@CI8ZRMUsI7xuIRBnlib(Mxyu89>jPU}p781uaLpae`^3lSF`w zv}Z++v@?WNc%A_W93MytLiZD>o0R|2Y0p1QL~7B!XVE>#-)wL%0pOB}%0Z{jW8lAJN<8 zH$GyoY3p5slFke!s8@nEZ9>S#A;wYHkMazgaI(7tm>jleF~ zMvQ+LAf%0A>=D3;xg%!w*F50Et7sQrx*wO+d-QX>m$Ht;F~P`-uOp)g+AdR@E}M@L zaA|B#jr&*{!Dl*t|E7!QPUR_*)`&5$4&znOi(9b_F$#4*oNljIy9i#P9uzGgY$AcE zqLB-Jq&&)ZW5+d8&*}>%*)g107Mi;1-dv3z-Lw3j2d~Qk{__dZ;>)Zq{xTrK=;$p5*g%0sE9=rz>0kfo4qGJH&WLXmc z>oeL4xjyxr(y8__jG=Cu7si+?$`Y}Ba}U3Y>c{N=+RBwyfH?{fjF%DJ%K5ZNe=6*D z)1^>4BIK#i^}8hNT_|I#3P^=S8BD`-vdwS}6wlj-H^8NKz%OW??EM)0A!=K;eUoTb zBxkgIk@L6%6wti9OUey&S zAwqqvR&?y3=p3F0Dkv>Dr(7H3|K9oxAleV%KKZtm?B607` z-&wfir26hGUovxpge#uJe5k6Gz1@1gR^n*oc-z12$EFuxg4I9)Yyu<5W^k#Ki`MQ?7G(4E+?TMoaevC@%x=c4|JI`5S_J;=-rH`LG4zqe;xuuaIsrZyvOpNjf} zZ1#=9>(~>2W}x6I1R@wr_yldlNNwTmofI(a!{BCuD-8vu^ z;oNdZN1sG>2X!7}P3GijOef)=U|1{n(Jkt5=K#6=k}@2{@M#9*D%-#X%Bt#^?oMRK zGCF4O8~F=rS4b+}4J8r~Rw`aa_LO9%WkRPQ?c|1#wlJv@N6pIsaT z+PRCEKr~fR1Zcn#Oc}_YaphU>(jbYlQ$csP6Q!zx?c#zLNBEWOOBQXgKk~16K_vf1 zJmZRU{ZaZ{g3@OAcz?mjL}XQYu-tORBo_O#I$+HdI2L!>uh_Vf&#;)-1jKMaI#i*U zR)|C@68*{0fuh4VQENrDiYu9M)1>~yHo}nC^t1m-Qy_>-JAL12V^_^*qnn~d9&+9ms2;jp>pPdXu?hEu_W?Ja@3$`tvI-$*BWFh@Fqd?SFk=k9ida#%uSH#z z5U#v!Vw2=whCPRk3P9n5R0CiO7i%m0BWNSXrLo}y3MwTisn~CTryc@0+^P)}Y?_vs z8Bau~56WdrP|W-Xp0e_?I!UDlv}H5h=*&*=R#)3fF{)^bs)9~ z@-x&atSg)da-f^II0r4IA1cCb3TQ!doj4A|!~FF1H6m>bF)s_H6TQJ>SiwGj&LLDAQMgbAV;O1b08hnr<7D=l<&rBt^rJ$>BeBi|pt zLlZ^FU@!l3ubc@Oaw8X1XjpZ`us}*boc?TqFeWF0e14Z-kahEv@3Pizt#Y+WK)664 zv>iXDEp8Ok(tdFX-+a#O?o_QI7s7(N+Uy#J2A^pbe7w zC&&HU=EmI@WB3@6LQ8P^!IZyIPx&b(VKJ(6T#Dih_T$cd;J2E;Oy^}e^ASsvLN58# zG&>4VyC8|zcIj*=MwWp4y29DmZ8;$~;mo>mSO|&Fi8}){7BYq1kesMTdwb8ViZy7u zP&BEy@3ZF?mt?)odzR(u@x&iIvHhbA2v7KUji>1=W#apxN4QB}7M^?CmApomDf%tJ z5HZ2vy4R6K9n)wKlSDk7HIkp$-7lw4k zC!@uBSQ$dRmSzM~IQ>E*KT8bTU~mQY+i)o`DGB;H`-?HoKME{tO+pT2xK~6q`L+em z?m2nJIJ$^{DShipV1xKo+b~F3pz%n%&$dFeJduG*$fEWSdg>y^^H24|t>|!iyJ)Tl z^>WcK(EeQ$9MlmRBqjEMKFr9u$PoBz%!y6#qCFS1(e@KV>{q9x1B^Ik2>T$AycT94 zv`MC==P#gHwT}adAvK~|q*vqu?G(2KECk~?Ogx~&4+Of9pJ&8%2d)a2Vkt%wlF6{f zn8DA>83L27zltgJs{t_zZyaWCd0&~17-z6t@2nW>=@^dP&E-nJbYP3yK*B{vQO}KTG;C*BT+D9$n{!)P zowU3Kpk8RcIWFOOO6wTU`P@GnT@sHx_UPE4@5x5BdPH?`073|^`#0zlY zO|07p{&B7 zT!`dyG6DCeo=H2~3L+KwquRdt$5h6@CQ7L*ds}#rsQJ^nFs=j9ul*R|;EZ6s zGgR_q6TlFhKVW_xwiAyh%T9bmeOOI~Q>Pc#@P5W#0zjw_?ua%|A9wz;ELwkI!Qt^l z8qsU?qpRB}T*3FLK3?oB{w^{7i zVrS2Ir2roQ5H}eorj$E2Nf7mL2iT~*DukrCqq0-@Vq0_syUel>zA^Sxq6=YKg-VFp29aEn zL>I6zPMa3?k#>uhlGX)g;6RlBAehjAo1o#k+>cEVgxebUFue{10z0ScTH~{v!D)GQoFoal1bn#EV=E7^@ULt!C8Nj6`IKYJ`8JTu^n6Z8FheGXkGx%=PcA>+NiFgto(Ot>FM0^FT_o>1$D zx``6J7;r&OO6H|C(CQn8Om@vyg8AApXeyEnWt^g21VO3@nu1bC_v+%Gt(5s-(Es-% zqXNKF6l+WYMi#nP3SNUv`fldg zKfdfTHwNRx9mm|7GlSfWg+ z6=S@wCnD_v{Bg`VU4tb?^C|{gMtu5&hSJpq$GhEqXwvpf*7A+6=0+7Do-iX6+;E3K zKEVS=O_Ielv2iVFogo-)?F0y07621vSV@4GEA+_3j>Rs6@zm~C3@~N*uhvjmD2BtvMgwxH81JYFkvl!*8T z-TycqwW(b=23-IAy+7yntL;Nquv&glP3bJ(LOJDlTy=ZX3K&xnUJQX=SUolw>ay3u zCcJ94lD8QF008{H?A)2-(5nExRWx#b{PCsNU<~+pS~qp8tsw|OZ!u!sdS1A7(_V8k zKYznpgJf`7&<*ukj77N`y1q?3pFG(MbVk6gjccvb?zyaejSVW++t0U;XxdPw_W$RQ z!p5vqA;KKL849MF3O%cI*s?aFDq9WwS)(+z=<_3`?m>TQwb1V4mfe0^VQt=oJLVc=ye5}CsP7WsJ9Kx2JxlO-gHy~+QYXyr>p({{;V8KBPKQd*1 z0xAm>)N}DhzhwzPPT--2i-k@xyrdumNh2DMrevf_j6nGqbY^1RgA7>yJwr=6ZMEMc-6ZUZ(u!FVeBu!lz)#r zu!Zi0M(-pVZm}l4u%t@2xLz*^?h#8LD^CO7i%Jw5aCDq{1^cXOf3M@E$96CXcMvL| zEF0m$S1#3PbyT(jy_Hw}O53?c9>cRa!tD7P%?jTPJDq;~6ppo|;qKGmqLxHP z9tIOZIlKjr+uTb}Oph~(xeqDj87IYe8@Gpid(Cu47n&YLY2Nxv^USl2a+ZkPhiBWbMV-BQojw2kf` zI4OwUvsJMp%d9CQthPS z+B7oFA9Z#BW&P=LpL?H!*2(FG@7orHZv-|aqcg}<*sMU}CV5$;ocH_K+ZD(b=Pz_$ zlG7_|I=rBnKkHJ`9)46XJbdQ+xPT`Fxeq48X`SlbozrS{`Ie+)6o}(_l?F96r6v-~{HkoppI{oU^5)ub`DW+6%EQ*yyK)x6xu$?M_8H+6YyFM8swmZCMLO zq+2R$#uA;-7dq?C?zpo@TgiJwgvy%)Q6OTB@LdLVow=8rOF)!F+;>It$=3EF{9TuW zU9zY16Rj?eDd7DNi}z>}^)9NWZw)YU_bv0rEfcGZG$SFy|W=tLGj zLPm>5p}^QCCws+ngF-H*<44umsfmv-RM9K$^Yy;%Z=w`-^(T-cFIXTnCzfmQXS*Ri zDVK;egJrcG>(rm;sKMgO)Kd90MPPy!5)-VQt{FspCrui|w>H(f;hKVkm67y+?LSB+R$198ffuRK_eCPnqnYI zXGtM15bw?Jy03kU2T*-eu!tIb>2u%FiJl-^n+;?@iRit)MJkZ}i8s<5CW`J|a%F|? zECZ-_Tws&wT6%yyqsgk=;i})pu@LJ!u^$)K?jQ=)Y1Uls3ILa7xz1)i9qB z$LxsqXG@ubRc$-4He>ws%AI{pUvK?H{jc4>2AZ(gr8*KZ3)agM*Cc&I)mQ)YwO?bZ5bMqeoh z;@#`%GA$1{qoZqsI0O%CFXX?Y641ox5^2c3wKmgRYRTa%M$3OiDuM!me27VuYAKDX z{kmkSV0?drY#l)q5?IPP^MfM7oE#y-4L#Sz5lijiyNP7F^R-{%xV5g}{{@tKfFiETh5ZGk?oz1wj17|TfA0(chKk}JpWkWi z7C}Ds0Z9H(#o$=hak#GeHL3WM>(+DMnR&J`J%81e`g>Ar1m*3={-#*tge+Mrtz`_X zqN&3qB7H1UnYa9p!jpu7#=07B@7UPauy7W+0QI1^OKiQg&bG)h8oqw;-mzMfP zv8b^I5a=8eLaTudZtm4(4+?n9r`18gt)hX#HTZB#auC_n(QwT5+ejl#yUp?-q&>$@ z7JvLnJ;f$Wv1AYGy+NbTp4)!T(^d_^o8AcpHNr_ad_ag(ZbEovd{n`29@A63wvt|tYhWm9~Y-hY?xhIU^OPsH0KwCN(CIye)I zZEvW_j4AXCRCChx%GPbSTWw6*5^C|M6iqIT@bzR04u)>3g-4LkkKd7`YE$6O{TuiV@jgKFM!umHU_6^(*9hAkxKJv zVxRnG%J#rD_#?kkFon?$_xXHh_+#mA7ZT=$=8q$T^TfMo9$8RR?@sm*qHG?+{)#H( zm3Y-}2ZQjXTcXDml`VDH?8GPIF80@5NYE~Mb+!y~(xi^}aMl#{K*)xvy54OJCHlt# zp(`@+iv9}S)A}c^JTiTP8bxBv)}B?-!cZ+2NlQ+Ko5ou&Kn{g_-TnP0BlG zu)>w#O^&^yY3i)neB(ICga9fhzUeV6_rTBM#@t(|jCR~TXeVN`giX`mO&;RUxk|2Q zp35IxYCx7-XcZWy(B8$lR20VaiX2r2zC;nyc*cOI_D?j6T)K>daW#VkAJi(<`BSpU zJe01{7oplMP%z?|?nOZd&*sICwYoORyOy|oA;G)W?(cMw7Y+6AH02MNzED5CMg6WL z&(nDg+xD!Cqt4?V8f<^~h29Hr#RAtRldM~#RH2;|Y2vKA|8)A2=c9JaqaRKpM{>Q^ z)axCE)6u%@cH8s5K9mZKP}iy%fcf05R+&BhBgi1P3H`-CIqe@uW|8!83aPrZ>IBM8 zOfSZT^h8$;mE|UTe&$3`gu|&9O6s~DW-Qnja%^jWQW`z^OAFuW3l#I4B~Syqeabe-7m78_QtF3 z&P$L7@@TZ)N&v0AhUX*Q6{of_a(GvEOb>6u@U0-GiVPW|raoC%9J=WzD(p}BzZi}l zhHNPc2kUa@)dEy;t-SVt+KCxyw;_64pbV!oT=r)+jdT$0KyF2Dn+1N=11)p!q_?Fs*_gIaxDQ zmny#)R>LKNBv?TOt=HbmL!iE74s(u@>F(p0fHU)26DZKNH^Li&4?(*Qe;hhRARdmu zk>S#s6&QH-JLJei4T>&132vVT9A=UbZp}Ifk7XNL568>lRZtO$E(&^M34BSWi>Eb+ zvF~IK3K6ZTp&Ag!kj+>TNIyOGkJ{^v0Dctc>-9TWLy2gh{r+Lgs%XVWCSU<288W(U z$pl+Ft@dL1Zm|gK&~_~JzO$R_^(;(3{xYI955B{z>P85+!SS7_b{8t1PnOvrrV7@FysX%?&|6yVK=-hAuSJ-S50He|I-Y2L zgcZWByi27R>jr}lZ31@W1Gkwt4XnMN6Oybhy8*Gs8XRPMhy7@Z4pa4mJKgz1r+ZJH zL;3!fq>P54<&TpB$W`L25q^FACMQlbX?^Q+;@HIlk0G((R@!vakcb-apz2*IvB1Tk z-roxi^@ZVn7P^B)z>B6yCf1~Ny!48X*$#bWsn%Cf=~>w@KkLYjIrl17Ey9ez=HxrpHf( zim?#Vh5>xTfaE3DzhKO|H_O-?z5a+N?Owr+efvNl>0j>eKKmuDy`>Q1{Aquwq!lAN zG%-LyLmZuS+7O8{ypNtZo!m}+Ybb2*xN{Mb;j<9ZBQWWmxKzaGJ?lT}Z2m(_Va8Gk zD606=2KWZf2sxdb-}a&zB&CmHwQ*xGWX%S)yvTYN=*RzZ_Wqi{5d9ztw8(369ocR1 zs?x%mjHph)4+}hDA~Da-YjV6;%`Bs? zLDA*w({O}gH`=6L(P;Ak*?EMo&=sW^k!br%O>4U{vZ z=rXpNU_lj2z#X7JTrGuA(|KT*RIW8OraFr*Y{#ij^ zX`w;F@7q+S?kP{BzWrjq2MOn?-(|GTmSYR#oiIm+A@Rc#mI*54d!l%^05_MM$Y^r` zWwKGo!@w1_$z8-Y+m&m<*U6pUAMBUNyLP&42z@28X?MGF&!MLYJyKZ#n$N9nY3ixJ zv{&);fv1H0HS9eLLl1Hs02#}?fkT)>(y&r-F3J@5UM)>*gPH2>`q@Z>&Av1n*6WcM zQy99hWA99#|I`Y|1BtTDzyBg>W*?<`WBk*FDq?y~JM}-v!|pLzCie+hLjXiqFEzNICCsq{n%9X->$V{mtfb1*vElu@xHpoZ2Y$h zW|_|;()wQ3bS!Ro1CGE;h#CEonL6uj3l}vc+6Ry}4EA;54;3S$S)X48))x;Eju7A1VamEKif`sTXU zD6xBHvt^~v8jYtkfB85P{qdglddWDG+@x%C0Jsj*HBDR89>ayhH=1i_Uc{TiM!u4&BOcr+JpW z7eDkfc%CcI90|-^GccwIF&xVLd^>!Z`Rt4kyj)#Axq9KtHjf;+uf;`idanJoCwo179H=ib2(F;srN#|WmF`^}XISem= zk_ap!tQ7Rc=+?;H)}qD{kuVM+OH3Hv1MYzfnR|_sgtsVtFt!U^98%$Ta`y}cd?|u0 z^>KixNf+v9A9M8Zh}O{9?*nUmx#D!wpgKG9|9eN~b&2W+gM(G=v>(7oheip>iAY7Z z*S(MLLbdW>R*hMjJ^%mGZQ0axM}b+xu|$Y^-D^fwQFv0S*6;dw%a$4eE^%5{f}SiJv)Bja>tfo2 zG)mMYJve5tTQNc|kAf;BaKj@d88bg}lx zP~3FI-|q?5ke{3Vg?88Ze#3L&LY1J_*SSp>KZXM?DPn~-RTufJ4zW%&YOyziVK#u? zR)cdFd8y~XimR{)uc+whwb;n$8a7966f{Lh-b=s=oKx=F#QP2^IhmY5j)2X!q=m>8 zvCoEWR+>KQ4OCIX(bJor)s;!^b>d)if%H3%*6eE>+_7h3gWdWsdNP7;G3=HJMK*pD zMs;`)T5NXw3l&Ok81D`{S18&IqE7%MTiCmzDW{h3CIG09&)Aq(S|co^;>w1vcDZeJ zGnHhPz77N9PqVd zN+d%q%mwZ~V`5}iJ4lK?W@ysVrOWeQAMZT^kM^QVXdJ<)3e;$MH$pgz)JLl7d$(JrRRV-CcBO47A#P+DCV#}^waLQwv9u7QqGIfkW)}z}hx`Aym0Og>kYmOulg zVgtMWca?YsUwsaVj2>7WC?x2xi_x6A;g5t%l}u+}s2kvUh@$D{8W#If{2HTM@82p+ zF<=oCa2kx7OX#sjQeL%$haA@2*`@PPz@51j3aOmCH!;X1l`3x#w(#o-k=2P-7W-{0 zQs9EfaEjr1om2(UZ~{qpgnH-HorZV-P~36Y&!OANWQ6l2^N3C><)x~ zBIBVvkj`d#`^@ugWWHHvo|5OXZ+nY=X<0d*(#2-kUKr%EA73MV-^Kb;C|-c}^4!nY zpm_FoLvQGF#0#L;W`Y!yE#!m4wMZ!|LL}z5yfcjc%u>jcC0Gf>)hC7^GcULWXrj15 zuhwbFwc*OkLV64d1w(KvU^99{y25oG%nsEtk zev`F;^yUx4n!3-=$qojS4GMRFeoseJKwL%G`NBuB{Z(Oc#6#8HoP02QQ(oWS4`ZoL z(_bu4u|~Eo9O{h2zdY<-)XS- zaTxShpqk`84Q^WoJu@viKwoIQFRlLc4iH^T?iWNp{=5o-9`9;8lx^nG_szL~du!+4 z^x9>cM#c<$^|$tcx}4my)EbUbqHOs|M0!{UxL3;5rs^P=N5*c;36MJV&fr^M9fTi* z45Www6@P?5+z^%$*ZgDlR}#|vzH78yEGqR-3M=phm;*tf&aTL~)oPP0ecDWUJsD@? z=d(!lPIP1@32jEryLih}7FM6n@O>aIz$=S9;}4^Os`QoKy)$5_yx3A^P9>vLvpU^! z6vq`^zJtxX`su?LNhv{-JWtfdp$g&(1A z54+$DGmAglXA3Nu=tSdCC)YPD3zFN{5Tq22>-Vkh%u1VnjZv6`-=q|6zg^0T7+^rL z-W}SOh&u*p6Rw#XnT|(*2PO@eBTx78xb?V40OqFY2xMNv?Za#kughCHr5DE7G z!^$osZO}{-T{TP&)U`vskuqGqR&ec&;TBwr_Zv{EyPd2GPfp=5l`YTZM7DwL02ks? zw|r5xo?C=o2W8S{84smZmu>p4ypmrvbIKBWJy6aNd`(z5h#k9FBNYmv;t2JhJ!_Ne zxHw!b2FSO1=$m$V0xLEoOf*_qv_Gay56^w9uljgwpGjOQGIWVTR z=;`!*(Docyuoke+_`j3r!uEyVi6(1xD%!e(pLPGk9LVgbAQ{#Sc=!9hf-?V?k&gA8 z1eRVF`U9!J&3T>WbzuQ%r{|qp2;cI;pVz}ZK<|UmNA~GJ$n6&7Z8u_D9vM{mK)85( z3uZ3elG|-B4cN_QT(mIws~D)gj_E~tk7~pEa5cYh@;z?nsH3(t3M6)wF}HKsfUGvA z*scDX<{r9cD_eLAe3xRbu0AO)t!%f1W)y5>V~;0~aNV&zOh59p8f|lS<03}?VIt&RW_HOp^&m2G z3PZXp2|IO$#epmXi~yWyxBhJvK$3|(!s2l_mVUNBkynZw8g9R*vq=lTs%~p=R9c8= z%?_P&=mI2})$Rno@1FZU_v!x4Q0^Eh5VgMzr5a3eGB@(c{4a7Jjh*|u$#*;6=ura2 zi?zl-0ZU|Vgx+Y>6;uabxO{hGz$Zkt=i2^w)d&ojBZ{}FNnIt7{E05@)C^X$7d}R! zcz@Z+PsIug!eHxFWGo+hZ=WF;XjE%? zIyslz6cLUUAKVigw*OCiUl|ow@2@*(f#R;ktvH3^3{c$Ni&MNf#idAbcXxMpD^Lb+ zvEuGfq`1u)+P>@mo^{U0d+&$4nh$%jldSB_PO_8d$!|SBZ_wkGN|XS7Uc7N+jq5so zV_e$HR!v`~ceqYn^}&(vxzR#*r`-nA4Z>K$>hg8>8rhA|de+%3zL+Oyv^!Jk%k3g> z^Hx7vjrgyvh^@ovifdM@ z*q}J}xYMoCjVzxzp)Y6iH)s{#XDF%w2wjLb_z)2hPyk)u40OpTKeWg4W7NHf&NbZ! zfxg&=PMw5tc;8SHrnB6Q0V`x|;)mLvbaN$oDsb>DgIyLL=g5Qr$dq1R4*Sfy1uI9% zd0IVjm8)X17M*DO_)US{xkV5KUC(V!KsLlpw>FY51olPyrq>Eu>eDTJwieZ)u@^urSjr%ZW;<)Ru=Gu@a8xI<)zjx}M-mN^qe4k$Hih zLn8ZKG14&FN?(x!Y0dLbM}{c-s)|&Ho&9ms^en{KLXy^ZsA4C}6Oqs8}rf{rvi+fW9H+TJ= zQV9Xg4q*OSW&Mf`bcWX7CR6Z&Ea@=DuZC!Kjy@wHR_06FL1kwyiERWk%pPwyd3yql ze5-cBcn9b3^Vb%Qj4%R*Yb1d)-n0Y7gL*$SnqORqF3l9u!%#(wNS}1Kw^R%Gc?L@Q ziJ#XMzN@9%`Nk1$;ck29s>2EWU8?CLJn0;{^I$)tL=X1>VY*H&+H$pLz(z?=v7Ujj znqX@%QsBi0S&foITk?GFhl8}L`gY6WO>!W%V@7Duu{@vl7WTFHl^*6?Ko4@Im1yjV z0k;|7q1p3Y7e71YRSE+L!3Se#4B$j7djLzv_Q@RjR(zMFD6EdQGtChWS&s2aXVy}) zi&jQ$sMV|ue;Wh8Lhk$f%>y6=ow*_}h1Ndh)Vz*Ick&P>h6fQa+x>`MO-=Q~I=0gO zHugqhvUrmd|M3j8aAF`CgzhD6Jb5j9*Di@y$Qn&{=Yc(B+$Aff9|B#NWh#@V|A()o zt8G>Lm?XD^1;P-gMhN>p_W(0%A)T`10}FGx!D0>#r61hj`}2$D0PFKg@2{U3xcas4 zm5`J62(NdA##N98z=XBMmWQ3gmIKKBa)^uGdNEm}*$Q3dR4<9tDb`srEcm@l1Gl_br&`BN^KK_JD)Ja$h@C)6xg?td|o)+1Ok4O4yk(} zwnbkk;lZ4E#%9zC7oXDejh;WP;MpF-ceDzm9K|=ygat4q$S+(zYtgiDLv+;kWj#_K zoXS1J8{R%^JXhg~HP6oDaP}|g%>;sVQ{TE8jh`sk8ZQuY^@Vj+rA1pNh&d(|U?{vC z-V6fDYGx7LcH^DQU@a_-5csy(X?Uad-a68Dbx)*=(63L_yNI}sz80HL*lYlM_u)8Z zt!Eo16VG^VJg?g{HL!kj4yI@t)c7H|Mvj5cQ_fLID2C(*fO~OGZNFMh1rdG?o%nR& z$OsmFH}YX4VBjC7Jm+%xaq?3h@Ctb`Rkrz`t_HxYz*fn&strys$R9TEQDpzlfK^T= z`%?sdBSliacXF0d|FEVe8CO#~#FsVt1G(TT0Knvu6uOTe?YS$B2ybGX%JRFHp`xMP zY?#mfaP%mab6Ak$dgRJ_m|y<90DxCdU!h+C?pjH?R1(YxmT(gfDC9ZwJ?);uH_xPb z8SPWoJx2f-qpES#yen~RAX~=iu8Z0Nij;mbr13e%TjZm|DSw>-O?7EMJ2`&NY@(YL zuEc_{`Z|JYroqI6Oh;g0D+v}Cx6>8mX2bDm;yJSf=3P2p<~p7(L0c)&Gk3URf<74* z)#<7!PEUH#bD}ni#~3MkduceKKTZ4fgVDKNZ1`2H1 z_jJH=mR!XqkSnjcBc!K@A{+N0DPiVU`=6tcry7fOpf~w^z!p>{FZYi{3J=u&6UhG= z82?KvAW1O48e(8op!GGe8%CB)6S5M-1?64w!cPET5FXGUx*^)0z&Rh=3-35fbw&Vd z)Sdt^f&i@8V?pq;2NPHq7dSo<9a$sVdGkj`6q)LqhGeRk%O^8@5$j90yLR#oun*Yh z62R&Ey9psQMSo(y?_sW^1hj~>XWm3U?gN8EgBNlH*Z0IH9e;SEIhE?bzKuEQzMPvJ zKcQq1Lt_I}+udfCqW7ZQL<``u~pSU0+$+ROx z^~bBw_30feiNlRGq@&?FVMhJ&e1Gx5Yg?u%xX8>n+4i$+^_Qf+EGP7n?qgfl)Xhw4 zgRL5u{){b>hy#I4yfE)`7o56!sol<`K0L~2931WuWiLkKWaUzJF4cG+ z_Y%N9#+&7DFv7}VERR(42vecdBBHXy_9=#C1xI2KZ z(L-0=P0J6(H{2WkdXac`1_O+u3!rpWhNDJ4$4|3DaRH-kxhX#ee<9FQL<*H9FU`#~~J3M`x_am9quTvr+SS4T4WR=qK?KYqa$+%!X z=2Rji1Nn0Krh={mAQQj2)3OReOIoLP`-l>UFS9>9$t22$O-0;A#moe}nHzIMCCFcLgtIrT;NH8CX z^3Ia?uyh$-8*gNCy)mxxjUmHUWH*y5iSXmKmF`2^^SZOr zZv(ix?4f|FyNM8T!G6h;w8SpSpPNh~Z9KM&_;w-9O>>A0e)^Dbi?65*PpD-)Vn01f z(ZMYJJ?uJdn?s#0(bfYPkfYsZAjw|$6aHF}1t(LOok3SXg{cBDso`x>_U_i0@7)h} zBO5c8lBnD;+UM9G!$F?a} zwof0*ucicSi_#s zYx^0|>E8b{+}qywTq^;ULZ5G~uc`S)v`8pOjVZBY*SbB9gmbgTBQHiN@gTRT!Nin{ z7^A}W)yt_xbBt$IY0DKK7Z@hubW!fv$f=> zaj2*{@*LxB(9~A}gD{<{G+q0T<^EueRQ{EMd=QA#g+0ZzQr8MkU@byc2<@x;nYb_H zQwP@Ofd%Z+YOHQ5Oobpo{M>1&9DWaM4DRYhiRsbb1qjFbXJ0>f9upIWsP#nbvw=(p z+l?X&^ySpGGY@t+gZ(ad^o`J_y6cJL20z9f%4{K#J}9(QXZ={vEGPVe$)boR*M;r^%cISrzS~Mo`ju%TaW8J>4XhnI*pF^S=eWG?Rdn6d2ytEI7`2ybacEF% z*452s96x)qkLsHXlK$ix0jcWY3p{9=_LR=3yK;0zqS-h7ekKmDRP}eA4PUJsrR-OI zAs{c(EzuBkhGk}e5%y%2BF*NuMPX_j7dGYWX*xUh{hlnp} zA25EW+WWa2Udsf_hT@?w*4Va5zl1q~u!x#Jfm+VwI#)V5Bzl&mX?V`-G4~V?j7etH;H=NRpPg zRUw}qy{u`|QO1y7?lA-n3k%Pwz74X$>S1blssK0VdqC=8XE^qy(>D> zQLNJVSy?x2OX&S!ZrXjJT6^Y9@gk!yk0*u_17dN@R6a#Tve%BozdbhF9F8Mw^_%_h$HofsK5UU*27qQ&NJe!OZ@wR0YAFXD1gG2F?zblb?j|Na6uibcM`7LDJeQfNB z(c8Mp_S$fJ99Pwx_|`Nzo7m(6zwKQ(jt)%ue(Y8vI?IxXieKEiodp>H6(2TR^50Ps)$Hx}j z>oRhIxPw_V4qQD2A@FTSh({&e+bY5GHMaQ_#;Jgq#{~6kaf}qNctdoyyAbTG{AfcI zra6eiUtAtyFss!&h}|-B`9;+3-qn*s9NH&v05&CM3$hJ1KKQjywNT7{+NXj=Z$H#p{&*8zHc3K%=46z0Wb() z=fq)riOaqarYsPft}uf*ChX|JA1QIEc;g42)J2Iume>eXlsC?dXMZe<5Gxl~ip#yA zY8=vhJM0#5;pCYj+v=f%BucMkr;>0fiu!9sJ0)t>c-U!bqFTfg-f&o^Td4c=%@k+* zH%vVUe|9V#T!Ie)d?sHK+%ld zE!RBQhav+?^JCkCBO%9p3VArtW`U~R(;(_$e%T0T({356;hv8DA&dujL)t^t#RU&HBzVlSI^%@+z zd>>z-Op~X-WskXAm- zvhM2O)+j)KQvrV9Ug<_EJwSl7zX?edqoWQ1-lPR$q3=V2}+cvx@&`RsgWNK{)co zZX>(GYoKKW2+UOX*jtxrS^o?Jrt^K8nUFy4>)9Y&)-mzcv&4VXh*Qq}Bw^p+Ug?(; za7gw>9;1xT-rjAFl}U9}o&wqAg!RThI25r`7pvhma}MYK$*)2gH6bh3haRmW1vf(RV;!AY#21;66OymV!?y^*`KuUR*ja%C zjP_$xK6G5^lz`B?&)nfDI-2)O)~44(7y8mA3@UIt5<}Q6@!S8glahW(^c$fhq zaNM4L1btGn(Hr~VVY`*wN*2y*vi*kTnM52N3Z+O0D(TkoCs{2~2bFKK+*V@4mZIye z5Ab6{{1UN9t}_@b=!8&1V8)=&V05NMl{3#1nqm@;Vusz)tyc%#R8`0~?wK#@O0}(k z#G9{yVa?D6ej{f_Gco-E8^wyC;=E#;0TBg=Lm<%CBOUS2RKTW*IflgfQ_A#@GeTrL zbZ^TAJh>K$%hFoBH4IKVStENZg5Ll5M#AgS3o1+tLm2-o;LrE&wa?%PLy3Qu5Q)jW zULO1c2LXBPt9z;le)c>VdD~kjiXXwqoq7iXJXlsq1tto>yP=>d0@BYq)4BcGeOXIo zZ$&=OR-Yu9OHqqJ+18y%+r{oB&wG)LMn$I*A=jmtGMZCOcuXeRK;+-b;^D0SQc+0@=iW=W^&&U z0>PlzT2ZLils~p%T;1^)_No-T{xlMZ0$*pWVyX68r|wz?)yI4hD!YGNLgLZEF0K8- zX$xoGR8kqYC1X5p9apezo}cCph5j5nr9W{)N0BadUmBwX$IFcEyrkLE zG4P$#(2EuXZVhmvw?p?6$GC0rMWXR>tV zH{8<#Z*WxAEshm8lrr=6AWqfB2q(f@?n&aNE%L9y7?J#ic#Kr3yc&4;phJrHv^MhI z!vx=R{rd3xNv^z(1Sz#D-EmxAt*L8)5k=rLx~(2E1aG+5T`2+`8^f zr5d8#x(Ndjaj8V~zEcKp5TM&xm znyQc6$$4B*xYMpGKFHz&F4%x|B)z8>_DzXNr=qh;XfL#YQ!0YOUHe=Q>hkvoUEB*h z<$(W3Q1ma1{0k%h!pOfc^1s8#|9c?tFFg7SkN(1=zwqdP!lVCFz~nFd_zOS&KZPH^ QeCWJaf8qp0P5^-a0tj*Y3jhEB diff --git a/resources/programicon.rc b/resources/programicon.rc deleted file mode 100755 index 03b1e8e..0000000 --- a/resources/programicon.rc +++ /dev/null @@ -1,108 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2012 by Thomas Schweitzer * - * thomas-schweitzer(at)arcor.de * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License version 2.0 as * - * published by the Free Software Foundation. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program in the file LICENSE.GPL; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include "..\src\UiGuiVersion.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "windows.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Deutsch (Deutschland) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) -#ifdef _WIN32 -LANGUAGE LANG_GERMAN, SUBLANG_GERMAN -#pragma code_page(1252) -#endif //_WIN32 - - -#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS - #define PROGRAM_TITLE "UniversalIndentGUI Notepad++ Plugin" - #define INTERNALNAME "UiGUI NPP Plugin" - #define ORIGINALFILENAME "UniversalIndentGUI_NPP.dll" -#else - #define PROGRAM_TITLE "UniversalIndentGUI" - #define INTERNALNAME "UiGUI" - #define ORIGINALFILENAME "UniversalIndentGUI.exe" -#endif - - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION RESOURCE_VERSION - PRODUCTVERSION RESOURCE_VERSION - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040704b0" - BEGIN - VALUE "Comments", "\0" - VALUE "CompanyName", "Thomas Schweitzer\0" - VALUE "FileDescription", PROGRAM_TITLE "\0" - VALUE "FileVersion", RESOURCE_VERSION_STRING - VALUE "InternalName", INTERNALNAME "\0" - VALUE "LegalCopyright", "Copyright © Thomas Schweitzer 2012\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", ORIGINALFILENAME "\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", PROGRAM_TITLE "\0" - VALUE "ProductVersion", RESOURCE_VERSION_STRING - VALUE "SpecialBuild", "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x407, 1200 - END -END - -#endif // !_MAC - -#endif // #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_ICON1 ICON DISCARDABLE "universalIndentGUI.ico" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 253a779..a911d9c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,9 +26,8 @@ link_directories( set( target universal-indent-gui-tqt ) set( ${target}_SRCS - main.cpp + MainWindowBase.ui MainWindow.cpp main.cpp UiGuiVersion.cpp - MainWindow.cpp ) tde_add_executable( ${target} AUTOMOC diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 1aa68a3..242797d 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -17,10 +17,10 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include "config.h" #include "MainWindow.h" -///-- #include "ui_MainWindow.h" -///-- -///-- #include "UiGuiVersion.h" +#include "UiGuiVersion.h" + ///-- #include "debugging/TSLogger.h" ///-- #include "SettingsPaths.h" ///-- @@ -33,25 +33,28 @@ ///-- #include "IndentHandler.h" ///-- #include "UpdateCheckDialog.h" ///-- -///-- #include -///-- #include -///-- #include -///-- #include +#include +#include +#include +///-- #include +///-- #include +///-- #include +///-- #include ///-- #include -///-- #include -///-- #include +///-- #include +///-- #include ///-- #include -///-- #include -///-- #include +///-- #include +///-- #include ///-- #include ///-- #include -///-- #include -///-- #include -///-- #include -///-- #include +///-- #include +///-- #include +///-- #include +///-- #include ///-- #include -///-- #include -///-- #include +///-- #include +///-- #include ///-- #include ///-- ///-- #include @@ -75,7 +78,7 @@ \brief Constructs the main window. */ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : - TQMainWindow(parent) + MainWindowBase(parent) ///- , _mainWindowForm(NULL), _qSciSourceCodeEditor(NULL), _settings(NULL), ///- _highlighter(NULL), _textEditVScrollBar(NULL), _aboutDialog(NULL), _aboutDialogGraphicsView( ///- NULL), _settingsDialog(NULL), _encodingActionGroup(NULL), _saveEncodedActionGroup(NULL), @@ -93,7 +96,7 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- initApplicationLanguage(); ///-- ///-- // Creates the main window and initializes it. -///-- initMainWindow(); + initMainWindow(); ///-- ///-- // Create toolbar and insert it into the main window. ///-- initToolBar(); @@ -116,12 +119,11 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- _aboutDialog = new AboutDialog(this, TQt::SplashScreen); ///-- _aboutDialogGraphicsView = new AboutDialogGraphicsView(_aboutDialog, this); ///-- connect(_toolBarWidget->pbAbout, SIGNAL(clicked()), this, SLOT(showAboutDialog())); -///-- connect(_mainWindowForm->actionAbout_UniversalIndentGUI, SIGNAL(triggered()), this, -///-- SLOT(showAboutDialog())); + connect(actionAboutUniversalIndentGUITQt, SIGNAL(activated()), this, SLOT(showAboutDialog())); ///-- ///-- // Generate settings dialog box ///-- _settingsDialog = new UiGuiSettingsDialog(this, _settings); -///-- connect(_mainWindowForm->actionShowSettings, SIGNAL(triggered()), _settingsDialog, +///-- connect(actionShowSettings, SIGNAL(activated()), _settingsDialog, ///-- SLOT(showDialog())); ///-- ///-- // If a file that should be opened on start has been handed over to the constructor exists, load @@ -153,12 +155,37 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- /*! ///-- \brief Initializes the main window by creating the main gui and make some _settings. ///-- */ -///-- void MainWindow::initMainWindow() -///-- { -///-- // Generate gui as it is build in the file "mainwindow.ui" -///-- _mainWindowForm = new Ui::MainWindowUi(); -///-- _mainWindowForm->setupUi(this); -///-- +void MainWindow::initMainWindow() +{ + // Setup icons + TQString ICONS_PATH(APP_ICONS_PATH); + // Application icon + setIcon(TQPixmap(ICONS_PATH + "universalIndentGUI_64x64.png")); + // Menu icons + // - File menu + actionOpenSourceFile->setIconSet(TQPixmap(ICONS_PATH + "document-open.png")); + actionMenuRecentlyOpenedFiles->setIconSet(TQPixmap(ICONS_PATH + "document-open.png")); + actionClearRecentlyOpenedList->setIconSet(TQPixmap(ICONS_PATH + "edit-clear.png")); + actionMenuEncoding->setIconSet(TQPixmap(ICONS_PATH + "document-open.png")); + actionSaveSourceFile->setIconSet(TQPixmap(ICONS_PATH + "document-save.png")); + actionSaveSourceFileAs->setIconSet(TQPixmap(ICONS_PATH + "document-save-as.png")); + actionMenuSaveEncoded->setIconSet(TQPixmap(ICONS_PATH + "document-save-as.png")); + actionMenuExport->setIconSet(TQPixmap(ICONS_PATH + "exporthtml.png")); + actionExportPDF->setIconSet(TQPixmap(ICONS_PATH + "exportpdf.png")); + actionExportHTML->setIconSet(TQPixmap(ICONS_PATH + "exporthtml.png")); + actionExit->setIconSet(TQPixmap(ICONS_PATH + "system-log-out.png")); + // - Setting menu + actionLiveIndentPreview->setIconSet(TQPixmap(ICONS_PATH + "live-preview.png")); + actionEnableSyntaxHighlighting->setIconSet(TQPixmap(ICONS_PATH + "syntax-highlight.png")); + actionIndenterParameterTooltipsEnabled->setIconSet(TQPixmap(ICONS_PATH + "tooltip.png")); + actionShowSettings->setIconSet(TQPixmap(ICONS_PATH + "preferences-system.png")); + // - Help menu + actionShowLog->setIconSet(TQPixmap(ICONS_PATH + "document-properties.png")); + actionAboutUniversalIndentGUITQt->setIconSet(TQPixmap(ICONS_PATH + "info.png")); + // Menu ids + _actionClearRecentlyOpenedListId = popupMenuRecentlyOpenedFiles->idAt( + popupMenuRecentlyOpenedFiles->count() - 1); + ///-- // Handle last opened window size ///-- // ------------------------------ ///-- bool maximized = _settings->getValueByName("maximized").toBool(); @@ -194,39 +221,36 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- _updateCheckDialog = new UpdateCheckDialog(_settings, this); ///-- ///-- // Register the load last file setting in the menu to the _settings object. -///-- _settings->registerObjectProperty(_mainWindowForm->loadLastOpenedFileOnStartupAction, "checked", +///-- _settings->registerObjectProperty(actionLoadLastOpenedFileOnStartup, "checked", ///-- "loadLastSourceCodeFileOnStartup"); ///-- ///-- // Tell the TQScintilla editor if it has to show white space. -///-- connect(_mainWindowForm->whiteSpaceIsVisibleAction, SIGNAL(toggled(bool)), this, +///-- connect(_mainWindowForm->actionWhiteSpaceIsVisible, SIGNAL(acivated(bool)), this, ///-- SLOT(setWhiteSpaceVisibility(bool))); ///-- // Register the white space setting in the menu to the _settings object. -///-- _settings->registerObjectProperty(_mainWindowForm->whiteSpaceIsVisibleAction, "checked", +///-- _settings->registerObjectProperty(actionWhiteSpaceIsVisible, "checked", ///-- "whiteSpaceIsVisible"); ///-- ///-- // Connect the remaining menu items. -///-- connect(_mainWindowForm->actionOpen_Source_File, SIGNAL(triggered()), this, -///-- SLOT(openSourceFileDialog())); -///-- connect(_mainWindowForm->actionSave_Source_File_As, SIGNAL(triggered()), this, -///-- SLOT(saveasSourceFileDialog())); -///-- connect(_mainWindowForm->actionSave_Source_File, SIGNAL(triggered()), this, -///-- SLOT(saveSourceFile())); -///-- connect(_mainWindowForm->actionExportPDF, SIGNAL(triggered()), this, SLOT(exportToPDF())); -///-- connect(_mainWindowForm->actionExportHTML, SIGNAL(triggered()), this, SLOT(exportToHTML())); + connect(actionOpenSourceFile, SIGNAL(activated()), this, SLOT(openSourceFileDialog())); + connect(actionSaveSourceFile, SIGNAL(activated()), this, SLOT(saveSourceFile())); + connect(actionSaveSourceFileAs, SIGNAL(activated()), this, SLOT(saveasSourceFileDialog())); + connect(actionExportPDF, SIGNAL(activated()), this, SLOT(exportToPDF())); + connect(actionExportHTML, SIGNAL(activated()), this, SLOT(exportToHTML())); ///-- connect(_mainWindowForm->actionCheck_for_update, SIGNAL(triggered()), _updateCheckDialog, ///-- SLOT(checkForUpdateAndShowDialog())); -///-- connect(_mainWindowForm->actionShowLog, SIGNAL(triggered()), +///-- connect(actionShowLog, SIGNAL(activated()), ///-- debugging::TSLogger::getInstance(), SLOT(show())); ///-- -///-- // Init the menu for selecting one of the recently opened files. -///-- updateRecentlyOpenedList(); -///-- connect(_mainWindowForm->menuRecently_Opened_Files, SIGNAL(triggered(TQAction*)), this, -///-- SLOT(openFileFromRecentlyOpenedList(TQAction*))); + // Init the menu for selecting one of the recently opened files. + updateRecentlyOpenedList(); + connect(popupMenuRecentlyOpenedFiles, SIGNAL(activated(int)), + this, SLOT(openFileFromRecentlyOpenedList(int))); ///-- //connect( _settings, SIGNAL(recentlyOpenedListSize(int)), this, SLOT(updateRecentlyOpenedList()) ///-- // ); ///-- _settings->registerObjectSlot(this, "updateRecentlyOpenedList()", "recentlyOpenedListSize"); -///-- } -///-- +} + ///-- /*! ///-- \brief Creates and inits the tool bar. It is added to the main window. ///-- */ @@ -249,8 +273,8 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- connect(_toolBarWidget->cbLivePreview, SIGNAL(toggled(bool)), this, ///-- SLOT(previewTurnedOnOff(bool))); ///-- connect(_toolBarWidget->cbLivePreview, SIGNAL(toggled( -///-- bool)), _mainWindowForm->actionLive_Indent_Preview, SLOT(setChecked(bool))); -///-- connect(_mainWindowForm->actionLive_Indent_Preview, SIGNAL(toggled( +///-- bool)), actionLiveIndentPreview, SLOT(setChecked(bool))); +///-- connect(actionLiveIndentPreview, SIGNAL(toggled( ///-- bool)), _toolBarWidget->cbLivePreview, SLOT(setChecked(bool))); ///-- } ///-- @@ -323,11 +347,11 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- _highlighter = new UiGuiHighlighter(_qSciSourceCodeEditor); ///-- ///-- // Connect the syntax highlighting setting in the menu to the turnHighlightOnOff function. -///-- connect(_mainWindowForm->enableSyntaxHighlightingAction, SIGNAL(toggled(bool)), this, +///-- connect(actionEnableSyntaxHighlighting, SIGNAL(activated(bool)), this, ///-- SLOT(turnHighlightOnOff(bool))); ///-- ///-- // Register the syntax highlighting setting in the menu to the _settings object. -///-- _settings->registerObjectProperty(_mainWindowForm->enableSyntaxHighlightingAction, "checked", +///-- _settings->registerObjectProperty(actionEnableSyntaxHighlighting, "checked", ///-- "SyntaxHighlightingEnabled"); ///-- } ///-- @@ -421,7 +445,7 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- _previewToggled = true; ///-- ///-- // Handle if indenter parameter tool tips are enabled -///-- _settings->registerObjectProperty(_mainWindowForm->indenterParameterTooltipsEnabledAction, +///-- _settings->registerObjectProperty(actionIndenterParameterTooltipsEnabled, ///-- "checked", "indenterParameterTooltipsEnabled"); ///-- ///-- // Add the indenters context menu to the mainwindows menu. @@ -459,14 +483,13 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- } ///-- return fileContent; ///-- } -///-- -///-- /*! -///-- \brief Calls the source file open dialog to load a source file for the formatting preview. -///-- -///-- If the file was successfully loaded the indenter will be called to generate the formatted source code. -///-- */ -///-- void MainWindow::openSourceFileDialog(TQString fileName) -///-- { + +/*! + \brief Calls the source file open dialog to load a source file for the formatting preview. + If the file was successfully loaded the indenter will be called to generate the formatted source code. + */ +void MainWindow::openSourceFileDialog(TQString fileName) +{ ///-- // If the source code file is changed and the shown dialog for saving the file ///-- // is canceled, also stop opening another source file. ///-- if (!maybeSave()) @@ -509,15 +532,14 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- _qSciSourceCodeEditor->setModified(false); ///-- setWindowModified(false); ///-- } -///-- } -///-- -///-- /*! -///-- \brief Calls the source file save as dialog to save a source file under a chosen name. -///-- -///-- If the file already exists and it should be overwritten, a warning is shown before. -///-- */ -///-- bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction) -///-- { +} + +/*! + \brief Calls the source file save as dialog to save a source file under a chosen name. + If the file already exists and it should be overwritten, a warning is shown before. + */ +bool MainWindow::saveasSourceFileDialog(TQAction *chosenEncodingAction) +{ ///-- TQString encoding; ///-- TQString fileExtensions = tr("Supported by indenter") + " (" + ///-- _indentHandler->getPossibleIndenterFileExtensions() + ");;" + tr("All files") + " (*.*)"; @@ -561,17 +583,16 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- setWindowModified(false); ///-- ///-- updateWindowTitle(); -///-- return true; -///-- } -///-- -///-- /*! -///-- \brief Saves the currently shown source code to the last save or opened source file. -///-- -///-- If no source file has been opened, because only the static example has been loaded, -///-- the save as file dialog will be shown. -///-- */ -///-- bool MainWindow::saveSourceFile() -///-- { + return true; +} + +/*! + \brief Saves the currently shown source code to the last save or opened source file. + If no source file has been opened, because only the static example has been loaded, + the save as file dialog will be shown. + */ +bool MainWindow::saveSourceFile() +{ ///-- if (_currentSourceFile.isEmpty()) ///-- { ///-- return saveasSourceFileDialog(); @@ -593,9 +614,9 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- _qSciSourceCodeEditor->setModified(false); ///-- setWindowModified(false); ///-- } -///-- return true; -///-- } -///-- + return true; +} + ///-- /*! ///-- \brief Shows a file open dialog. ///-- @@ -946,12 +967,12 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- this->setWindowTitle("UniversalIndentGUI " + TQString( ///-- PROGRAM_VERSION_STRING) + " [*]" + _currentSourceFile); ///-- } -///-- -///-- /*! -///-- \brief Opens a dialog to save the current source code as a PDF document. -///-- */ -///-- void MainWindow::exportToPDF() -///-- { + +/*! + \brief Opens a dialog to save the current source code as a PDF document. + */ +void MainWindow::exportToPDF() +{ ///-- TQString fileExtensions = tr("PDF Document") + " (*.pdf)"; ///-- ///-- TQString fileName = _currentSourceFile; @@ -969,13 +990,13 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- printer.setOutputFileName(fileName); ///-- printer.printRange(_qSciSourceCodeEditor); ///-- } -///-- } -///-- -///-- /*! -///-- \brief Opens a dialog to save the current source code as a HTML document. -///-- */ -///-- void MainWindow::exportToHTML() -///-- { +} + +/*! + \brief Opens a dialog to save the current source code as a HTML document. + */ +void MainWindow::exportToHTML() +{ ///-- TQString fileExtensions = tr("HTML Document") + " (*.html)"; ///-- ///-- TQString fileName = _currentSourceFile; @@ -1002,8 +1023,8 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- outSrcFile.write(sourceCodeAsHTML.toAscii()); ///-- outSrcFile.close(); ///-- } -///-- } -///-- +} + ///-- /*! ///-- \brief Loads the last opened file if this option is enabled in the _settings. ///-- @@ -1107,7 +1128,7 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- { ///-- if (event->type() == TQEvent::ToolTip) ///-- { -///-- if (_mainWindowForm->indenterParameterTooltipsEnabledAction->isChecked()) +///-- if (actionIndenterParameterTooltipsEnabled->isOn()) ///-- { ///-- return TQMainWindow::eventFilter(obj, event); ///-- } @@ -1220,11 +1241,11 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- encodingName); ///-- } ///-- -///-- _mainWindowForm->encodingMenu->addActions(_encodingActionGroup->actions()); +///-- _mainWindowForm->popupMenuEncoding->addActions(_encodingActionGroup->actions()); ///-- connect(_encodingActionGroup, SIGNAL(triggered(TQAction*)), this, ///-- SLOT(encodingChanged(TQAction*))); ///-- -///-- _mainWindowForm->saveEncodedMenu->addActions(_saveEncodedActionGroup->actions()); +///-- _mainWindowForm->popupMenuSaveEncoded->addActions(_saveEncodedActionGroup->actions()); ///-- connect(_saveEncodedActionGroup, SIGNAL(triggered(TQAction*)), this, ///-- SLOT(saveAsOtherEncoding(TQAction*))); ///-- } @@ -1301,9 +1322,9 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- highlighterAction->setStatusTip(tr("Set the syntax highlightning to ") + highlighterName); ///-- highlighterAction->setCheckable(true); ///-- } -///-- _mainWindowForm->highlighterMenu->addActions(_highlighterActionGroup->actions()); -///-- _mainWindowForm->menuSettings->insertMenu(_mainWindowForm->indenterParameterTooltipsEnabledAction, -///-- _mainWindowForm->highlighterMenu); +///-- _mainWindowForm->popupMenuHighlighter->addActions(_highlighterActionGroup->actions()); +///-- _mainWindowForm->menuSettings->insertMenu(actionIndenterParameterTooltipsEnabled, +///-- _mainWindowForm->popupMenuHighlighter); ///-- ///-- connect(_highlighterActionGroup, SIGNAL(triggered(TQAction*)), _highlighter, ///-- SLOT(setHighlighterByAction(TQAction*))); @@ -1378,7 +1399,7 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- } ///-- ///-- // Translate the _highlighter menu. -///-- TQList actionList = _mainWindowForm->highlighterMenu->actions(); +///-- TQList actionList = _mainWindowForm->popupMenuHighlighter->actions(); ///-- i = 0; ///-- foreach(TQString highlighterName, _highlighter->getAvailableHighlighters()) ///-- { @@ -1397,17 +1418,16 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- TQWidget::changeEvent(event); ///-- } ///-- } -///-- -///-- /*! -///-- \brief Updates the list of recently opened files. -///-- -///-- Therefore the currently open file is set at the lists first position -///-- regarding the in the _settings set maximum list length. Overheads of the -///-- list will be cut off. The new list will be updated to the _settings and -///-- the recently opened menu will be updated too. -///-- */ -///-- void MainWindow::updateRecentlyOpenedList() -///-- { + +/*! + \brief Updates the list of recently opened files. + Therefore the currently open file is set at the lists first position + regarding the in the _settings set maximum list length. Overheads of the + list will be cut off. The new list will be updated to the _settings and + the recently opened menu will be updated too. + */ +void MainWindow::updateRecentlyOpenedList() +{ ///-- TQString fileName; ///-- TQString filePath; ///-- TQStringList recentlyOpenedList = @@ -1484,22 +1504,22 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- // Write the new recently opened list to the _settings. ///-- _settings->setValueByName("lastSourceCodeFile", recentlyOpenedList.join("|")); ///-- -///-- // Enable or disable "actionClear_Recently_Opened_List" if list is [not] emtpy +///-- // Enable or disable "actionClearRecentlyOpenedList" if list is [not] emtpy ///-- if (recentlyOpenedList.isEmpty()) ///-- { -///-- _mainWindowForm->actionClear_Recently_Opened_List->setEnabled(false); +///-- _mainWindowForm->actionClearRecentlyOpenedList->setEnabled(false); ///-- } ///-- else ///-- { -///-- _mainWindowForm->actionClear_Recently_Opened_List->setEnabled(true); +///-- _mainWindowForm->actionClearRecentlyOpenedList->setEnabled(true); ///-- } -///-- } -///-- -///-- /*! -///-- \brief This slot empties the list of recently opened files. -///-- */ -///-- void MainWindow::clearRecentlyOpenedList() -///-- { +} + +/*! + \brief This slot empties the list of recently opened files. + */ +void MainWindow::clearRecentlyOpenedList() +{ ///-- TQStringList recentlyOpenedList = ///-- _settings->getValueByName("lastSourceCodeFile").toString().split("|"); ///-- TQList recentlyOpenedActionList = @@ -1515,24 +1535,24 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- // Write the new recently opened list to the _settings. ///-- _settings->setValueByName("lastSourceCodeFile", recentlyOpenedList.join("|")); ///-- -///-- // Disable "actionClear_Recently_Opened_List" -///-- _mainWindowForm->actionClear_Recently_Opened_List->setEnabled(false); -///-- } -///-- -///-- /*! -///-- \brief This slot is called if an entry from the list of recently opened files is -///-- being selected. -///-- */ -///-- void MainWindow::openFileFromRecentlyOpenedList(TQAction *recentlyOpenedAction) -///-- { -///-- // If the selected action from the recently opened list menu is the clear action -///-- // call the slot to clear the list and then leave. -///-- if (recentlyOpenedAction == _mainWindowForm->actionClear_Recently_Opened_List) -///-- { -///-- clearRecentlyOpenedList(); -///-- return; -///-- } -///-- +///-- // Disable "actionClearRecentlyOpenedList" +///-- _mainWindowForm->actionClearRecentlyOpenedList->setEnabled(false); +} + +/*! + \brief This slot is called if an entry from the list of recently opened files is + being selected. + */ +void MainWindow::openFileFromRecentlyOpenedList(int recentlyOpenedActionId) +{ + // If the selected action from the recently opened list menu is the clear action + // call the slot to clear the list and then leave. + if (recentlyOpenedActionId == _actionClearRecentlyOpenedListId) + { + clearRecentlyOpenedList(); + return; + } + ///-- TQString fileName = recentlyOpenedAction->text(); ///-- int indexOfSelectedFile = _mainWindowForm->menuRecently_Opened_Files->actions().indexOf( ///-- recentlyOpenedAction); @@ -1558,8 +1578,8 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- // any of these actions in updateRecentlyOpenedList() causes an error. ///-- TQTimer::singleShot(0, this, SLOT(updateRecentlyOpenedList())); ///-- } -///-- } -///-- +} + ///-- /*! ///-- \brief If the dragged in object contains urls/paths to a file, accept the drag. ///-- */ @@ -1584,19 +1604,19 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- ///-- event->acceptProposedAction(); ///-- } -///-- -///-- /*! -///-- \brief If the dropped in object contains urls/paths to a file, open that file. -///-- */ -///-- void MainWindow::showAboutDialog() -///-- { + +/*! + \brief Show the About dialog. +*/ +void MainWindow::showAboutDialog() +{ ///-- //TQPixmap originalPixmap = TQPixmap::grabWindow(TQApplication::desktop()->screen()->winId()); ///-- //tqDebug("in main pixmap width %d, numScreens = %d", originalPixmap.size().width(), ///-- // TQApplication::desktop()->availableGeometry().width()); ///-- //_aboutDialogGraphicsView->setScreenshotPixmap( originalPixmap ); ///-- _aboutDialogGraphicsView->show(); -///-- } -///-- +} + ///-- /*! ///-- \brief Sets the label in the status bar to show the \a line and \a column number. ///-- */ @@ -1604,3 +1624,5 @@ MainWindow::MainWindow(TQString file2OpenOnStart, TQWidget *parent) : ///-- { ///-- _textEditLineColumnInfoLabel->setText(tr("Line %1, Column %2").arg(line + 1).arg(column + 1)); ///-- } + +#include "MainWindow.moc" diff --git a/src/MainWindow.h b/src/MainWindow.h index acb399a..e0d9320 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -20,7 +20,8 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H -#include +#include "MainWindowBase.h" +#include "ntqobjectdefs.h" /// #include "UiGuiSettings.h" /// @@ -33,7 +34,6 @@ /// namespace Ui /// { /// class ToolBarWidget; -/// class MainWindowUi; /// } /// /// class TQLabel; @@ -44,9 +44,9 @@ /// class QsciScintilla; -class MainWindow : public TQMainWindow +class MainWindow : public MainWindowBase { -///--Q_OBJECT + TQ_OBJECT public: //! Constructor @@ -61,11 +61,11 @@ class MainWindow : public TQMainWindow ///-- void closeEvent(TQCloseEvent *event); ///-- bool eventFilter(TQObject *obj, TQEvent *event); ///-- -///-- private slots: -///-- void openSourceFileDialog(TQString fileName = ""); -///-- bool saveasSourceFileDialog(TQAction *chosenEncodingAction = NULL); + private slots: + void openSourceFileDialog(TQString fileName = ""); + bool saveSourceFile(); + bool saveasSourceFileDialog(TQAction *chosenEncodingAction = NULL); ///-- void saveAsOtherEncoding(TQAction *chosenEncodingAction); -///-- bool saveSourceFile(); ///-- void callIndenter(); ///-- void updateSourceView(); ///-- void turnHighlightOnOff(bool turnOn); @@ -74,20 +74,18 @@ class MainWindow : public TQMainWindow ///-- void sourceCodeChangedSlot(); ///-- void indentSettingsChangedSlot(); ///-- void previewTurnedOnOff(bool turnOn); -///-- void exportToPDF(); -///-- void exportToHTML(); + void exportToPDF(); + void exportToHTML(); ///-- void languageChanged(int languageIndex); ///-- void encodingChanged(TQAction *encodingAction); ///-- void numberOfLinesChanged(); -///-- void updateRecentlyOpenedList(); -///-- void openFileFromRecentlyOpenedList(TQAction *recentlyOpenedAction); -///-- void clearRecentlyOpenedList(); -///-- void showAboutDialog(); + void updateRecentlyOpenedList(); + void openFileFromRecentlyOpenedList(int recentlyOpenedActionId); + void clearRecentlyOpenedList(); + void showAboutDialog(); ///-- void setStatusBarCursorPosInfo(int line, int column); ///-- -///-- private: -///-- Ui::MainWindowUi *_mainWindowForm; -///-- + private: ///-- TQString loadFile(TQString filePath); ///-- TQString openFileDialog(TQString dialogHeaderStr, TQString startPath, TQString fileMaskStr); ///-- void updateWindowTitle(); @@ -97,7 +95,7 @@ class MainWindow : public TQMainWindow ///-- void createEncodingMenu(); ///-- void createHighlighterMenu(); ///-- bool initApplicationLanguage(); -///-- void initMainWindow(); + void initMainWindow(); ///-- void initToolBar(); ///-- void initTextEditor(); ///-- void initSyntaxHighlighter(); @@ -118,6 +116,7 @@ class MainWindow : public TQMainWindow ///-- AboutDialog *_aboutDialog; ///-- AboutDialogGraphicsView *_aboutDialogGraphicsView; ///-- UiGuiSettingsDialog *_settingsDialog; + int _actionClearRecentlyOpenedListId; ///-- int _textEditLastScrollPos; ///-- int _currentIndenterID; ///-- bool _loadLastSourceCodeFileOnStartup; diff --git a/src/MainWindow.ui b/src/MainWindow.ui deleted file mode 100755 index cc73e47..0000000 --- a/src/MainWindow.ui +++ /dev/null @@ -1,488 +0,0 @@ - - - Thomas_-_S - MainWindowUi - - - - 0 - 0 - 949 - 633 - - - - UniversalIndentGUI - - - - :/mainWindow/universalIndentGUI.svg:/mainWindow/universalIndentGUI.svg - - - - - 6 - - - 0 - - - - - 0 - - - 2 - - - - - - - - - - 0 - 0 - 949 - 21 - - - - - Indenter - - - - - File - - - - Export - - - - - - - Recently Opened Files - - - - - - - Reopen File with other Encoding - - - - - Save Source File As with other Encoding - - - - - - - - - - - - - - - - Settings - - - - Set Syntax Highlighter - - - - - - - - - - - - - Help - - - - - - - - - - - - - - - 0 - 0 - - - - TQDockWidget::DockWidgetFloatable|TQDockWidget::DockWidgetMovable - - - TQt::LeftDockWidgetArea|TQt::RightDockWidgetArea - - - Indenter Settings - - - 1 - - - - - 6 - - - 0 - - - - - 0 - - - 0 - - - - - - - - - TQt::PreventContextMenu - - - Main Toolbar - - - TQt::Horizontal - - - - 16 - 16 - - - - TQt::ToolButtonTextBesideIcon - - - TopToolBarArea - - - false - - - - - - :/mainWindow/document-open.png:/mainWindow/document-open.png - - - Open Source File - - - Opens a dialog for selecting a source code file. - - - Ctrl+O - - - - - - :/mainWindow/document-save.png:/mainWindow/document-save.png - - - Save Source File - - - Saves the currently shown source code to the last opened or saved source file. - - - Ctrl+S - - - - - - :/mainWindow/document-save-as.png:/mainWindow/document-save-as.png - - - Save Source File As... - - - Save Source File As... - - - Save Source File As... - - - Opens a file dialog to save the currently shown source code. - - - Ctrl+Shift+S - - - - - - :/mainWindow/info.png:/mainWindow/info.png - - - About UniversalIndentGUI - - - Shows info about UniversalIndentGUI. - - - - - - :/mainWindow/system-log-out.png:/mainWindow/system-log-out.png - - - Exit - - - Quits the UniversalIndentGUI. - - - Ctrl+Q - - - - - - :/mainWindow/exportpdf.png:/mainWindow/exportpdf.png - - - PDF - - - Export the currently visible source code as PDF document - - - - - - :/mainWindow/exporthtml.png:/mainWindow/exporthtml.png - - - HTML - - - Export the currently visible source code as HTML document - - - - - true - - - true - - - - :/mainWindow/tooltip.png:/mainWindow/tooltip.png - - - Parameter Tooltips - - - If checked, tool tips will show up if the mouse cursor remains over an indenter parameter for a while. - - - DONOTTRANSLATE:indenterParameterTooltipsEnabled - - - - - true - - - - :/mainWindow/live-preview.png:/mainWindow/live-preview.png - - - Live Indent Preview - - - Ctrl+L - - - false - - - - - true - - - true - - - - :/mainWindow/syntax-highlight.png:/mainWindow/syntax-highlight.png - - - Syntax Highlighting - - - Syntax Highlighting - - - Enables or disables syntax highlighting for the source code. - - - By enabling special key words of the source code are highlighted. - - - Ctrl+H - - - DONOTTRANSLATE:SyntaxHighlightingEnabled - - - - - true - - - White Space Visible - - - White Space Visible - - - Set white space visible - - - Enables or disables diplaying of white space characters in the editor. - - - false - - - DONOTTRANSLATE:whiteSpaceIsVisible - - - - - true - - - true - - - Auto Open Last File - - - Auto open last source file on startup - - - If selected opens last source code file on startup - - - false - - - DONOTTRANSLATE:loadLastSourceCodeFileOnStartup - - - - - - :/mainWindow/preferences-system.png:/mainWindow/preferences-system.png - - - Settings - - - Settings - - - Opens the settings dialog - - - Opens the settings dialog, to set language etc. - - - - - - :/mainWindow/system-software-update.png:/mainWindow/system-software-update.png - - - Check for update - - - Checks online whether a new version of UniversalIndentGUI is available. - - - Checks online whether a new version of UniversalIndentGUI is available. - - - - - - :/mainWindow/edit-clear.png:/mainWindow/edit-clear.png - - - Clear Recently Opened List - - - - - - :/mainWindow/document-properties.png:/mainWindow/document-properties.png - - - Show Log - - - Displays logging information. - - - Displays logging info about the currently running UiGUI application. - - - - - - - - - actionExit - triggered() - MainWindowUi - close() - - - -1 - -1 - - - 399 - 299 - - - - - diff --git a/src/MainWindowBase.ui b/src/MainWindowBase.ui new file mode 100755 index 0000000..56256f0 --- /dev/null +++ b/src/MainWindowBase.ui @@ -0,0 +1,383 @@ + + Thomas_-_S + MainWindowBase + + + MainWindowBase + + + + 0 + 0 + 949 + 633 + + + + UniversalIndentGUI (TQt) + + + + centralWidget + + + 6 + + + 0 + + + + + + menuBar + + + + 0 + 0 + 949 + 21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + actionOpenSourceFile + + + Open Source File + + + Opens a dialog for selecting a source code file. + + + Ctrl+O + + + + + actionMenuRecentlyOpenedFiles + + + Recently Opened Files + + + Open a recently used file. + + + + + actionClearRecentlyOpenedList + + + Clear Recently Opened List + + + Clears the list of recently open files. + + + + + actionMenuEncoding + + + Reopen File with other Encoding + + + Reopen the current file using a specified encoding. + + + + + actionSaveSourceFile + + + Save Source File + + + Saves the currently shown source code to the last opened or saved source file. + + + Ctrl+S + + + + + actionSaveSourceFileAs + + + Save Source File As... + + + Opens a file dialog to save the currently shown source code. + + + Ctrl+Shift+S + + + + + actionMenuSaveEncoded + + + Save Source File As with other Encoding + + + Save the current source file using a specified encoding. + + + + + actionMenuExport + + + Export + + + Export the currently visible source + + + + + actionExportHTML + + + HTML + + + Export the currently visible source code as HTML document + + + + + actionExportPDF + + + PDF + + + Export the currently visible source code as PDF document + + + + + actionExit + + + Exit + + + Quits the UniversalIndentGUI. + + + Ctrl+Q + + + + + actionLiveIndentPreview + + + true + + + Live Indent Preview + + + Ctrl+L + + + false + + + + + actionEnableSyntaxHighlighting + + + true + + + true + + + Syntax Highlighting + + + By enabling this, special keywords of the source code are highlighted. + + + Ctrl+H + + + + + actionWhiteSpaceIsVisible + + + true + + + White Space Visible + + + Set white space visible + + + Enables or disables diplaying of white space characters in the editor. + + + false + + + + + actionMenuHighlighter + + + Set Syntax Highlighter + + + Set the syntax highlighter to use + + + + + actionIndenterParameterTooltipsEnabled + + + true + + + true + + + Parameter Tooltips + + + If checked, tooltips will show up if the mouse cursor remains over an indenter parameter for a while. + + + + + actionLoadLastOpenedFileOnStartup + + + true + + + true + + + Auto Open Last File + + + Auto open last source file on startup + + + If selected opens last source code file on startup + + + false + + + + + actionShowSettings + + + Settings + + + Opens the settings dialog + + + Opens the settings dialog, to set language etc. + + + + + actionShowLog + + + Show Log + + + Displays logging information. + + + Displays logging info about the currently running UiGUI application. + + + + + actionAboutUniversalIndentGUITQt + + + About UniversalIndentGUI TQt + + + Shows info about UniversalIndentGUI TQt. + + + + + + actionExit + activated() + MainWindowBase + close() + + + -1 + -1 + + + 399 + 299 + + + + + diff --git a/src/AboutDialog.cpp b/src/__TODO/AboutDialog.cpp similarity index 100% rename from src/AboutDialog.cpp rename to src/__TODO/AboutDialog.cpp diff --git a/src/AboutDialog.h b/src/__TODO/AboutDialog.h similarity index 100% rename from src/AboutDialog.h rename to src/__TODO/AboutDialog.h diff --git a/src/AboutDialog.ui b/src/__TODO/AboutDialog.ui similarity index 100% rename from src/AboutDialog.ui rename to src/__TODO/AboutDialog.ui diff --git a/src/AboutDialogGraphicsView.cpp b/src/__TODO/AboutDialogGraphicsView.cpp similarity index 100% rename from src/AboutDialogGraphicsView.cpp rename to src/__TODO/AboutDialogGraphicsView.cpp diff --git a/src/AboutDialogGraphicsView.h b/src/__TODO/AboutDialogGraphicsView.h similarity index 100% rename from src/AboutDialogGraphicsView.h rename to src/__TODO/AboutDialogGraphicsView.h diff --git a/src/FindDialog.ui b/src/__TODO/FindDialog.ui similarity index 100% rename from src/FindDialog.ui rename to src/__TODO/FindDialog.ui diff --git a/src/IndentHandler.cpp b/src/__TODO/IndentHandler.cpp similarity index 100% rename from src/IndentHandler.cpp rename to src/__TODO/IndentHandler.cpp diff --git a/src/IndentHandler.h b/src/__TODO/IndentHandler.h similarity index 100% rename from src/IndentHandler.h rename to src/__TODO/IndentHandler.h diff --git a/src/__TODO/MainWindow.ui b/src/__TODO/MainWindow.ui new file mode 100755 index 0000000..6377823 --- /dev/null +++ b/src/__TODO/MainWindow.ui @@ -0,0 +1,157 @@ + + Thomas_-_S + MainWindowUi + + + MainWindowUi + + + + + 6 + + + 0 + + + + + 0 + + + 2 + + + + + + + + + + 0 + 0 + + + + TQDockWidget::DockWidgetFloatable|TQDockWidget::DockWidgetMovable + + + TQt::LeftDockWidgetArea|TQt::RightDockWidgetArea + + + Indenter Settings + + + 1 + + + + + 6 + + + 0 + + + + + 0 + + + 0 + + + + + + + + + TQt::PreventContextMenu + + + Main Toolbar + + + TQt::Horizontal + + + + 16 + 16 + + + + TQt::ToolButtonTextBesideIcon + + + TopToolBarArea + + + false + + + + + + + + :/mainWindow/document-save-as.png:/mainWindow/document-save-as.png + + + Save Source File As... + + + Save Source File As... + + + Save Source File As... + + + Opens a file dialog to save the currently shown source code. + + + Ctrl+Shift+S + + + + + + :/mainWindow/system-software-update.png:/mainWindow/system-software-update.png + + + Check for update + + + Checks online whether a new version of UniversalIndentGUI is available. + + + Checks online whether a new version of UniversalIndentGUI is available. + + + + + + + + + + + actionExit + triggered() + MainWindowUi + close() + + + -1 + -1 + + + 399 + 299 + + + + + diff --git a/src/SettingsPaths.cpp b/src/__TODO/SettingsPaths.cpp similarity index 100% rename from src/SettingsPaths.cpp rename to src/__TODO/SettingsPaths.cpp diff --git a/src/SettingsPaths.h b/src/__TODO/SettingsPaths.h similarity index 100% rename from src/SettingsPaths.h rename to src/__TODO/SettingsPaths.h diff --git a/src/TemplateBatchScript.cpp b/src/__TODO/TemplateBatchScript.cpp similarity index 100% rename from src/TemplateBatchScript.cpp rename to src/__TODO/TemplateBatchScript.cpp diff --git a/src/TemplateBatchScript.h b/src/__TODO/TemplateBatchScript.h similarity index 100% rename from src/TemplateBatchScript.h rename to src/__TODO/TemplateBatchScript.h diff --git a/src/ToolBarWidget.ui b/src/__TODO/ToolBarWidget.ui similarity index 100% rename from src/ToolBarWidget.ui rename to src/__TODO/ToolBarWidget.ui diff --git a/src/UiGuiErrorMessage.cpp b/src/__TODO/UiGuiErrorMessage.cpp similarity index 100% rename from src/UiGuiErrorMessage.cpp rename to src/__TODO/UiGuiErrorMessage.cpp diff --git a/src/UiGuiErrorMessage.h b/src/__TODO/UiGuiErrorMessage.h similarity index 100% rename from src/UiGuiErrorMessage.h rename to src/__TODO/UiGuiErrorMessage.h diff --git a/src/UiGuiHighlighter.cpp b/src/__TODO/UiGuiHighlighter.cpp similarity index 100% rename from src/UiGuiHighlighter.cpp rename to src/__TODO/UiGuiHighlighter.cpp diff --git a/src/UiGuiHighlighter.h b/src/__TODO/UiGuiHighlighter.h similarity index 100% rename from src/UiGuiHighlighter.h rename to src/__TODO/UiGuiHighlighter.h diff --git a/src/UiGuiIndentServer.cpp b/src/__TODO/UiGuiIndentServer.cpp similarity index 100% rename from src/UiGuiIndentServer.cpp rename to src/__TODO/UiGuiIndentServer.cpp diff --git a/src/UiGuiIndentServer.h b/src/__TODO/UiGuiIndentServer.h similarity index 97% rename from src/UiGuiIndentServer.h rename to src/__TODO/UiGuiIndentServer.h index 0a8f069..3f8c996 100644 --- a/src/UiGuiIndentServer.h +++ b/src/__TODO/UiGuiIndentServer.h @@ -20,7 +20,7 @@ #ifndef UIGUIINDENTSERVER_H #define UIGUIINDENTSERVER_H -#include +#include class TQTcpServer; class TQTcpSocket; @@ -49,7 +49,7 @@ class UiGuiIndentServer : public TQObject TQByteArray _dataToSend; bool _readyForHandleRequest; TQTcpSocket *_currentClientConnection; - tquint32 _blockSize; + TQ_UINT32 _blockSize; }; #endif // UIGUIINDENTSERVER_H diff --git a/src/UiGuiIniFileParser.cpp b/src/__TODO/UiGuiIniFileParser.cpp similarity index 100% rename from src/UiGuiIniFileParser.cpp rename to src/__TODO/UiGuiIniFileParser.cpp diff --git a/src/UiGuiIniFileParser.h b/src/__TODO/UiGuiIniFileParser.h similarity index 100% rename from src/UiGuiIniFileParser.h rename to src/__TODO/UiGuiIniFileParser.h diff --git a/src/UiGuiSettings.cpp b/src/__TODO/UiGuiSettings.cpp similarity index 98% rename from src/UiGuiSettings.cpp rename to src/__TODO/UiGuiSettings.cpp index 11cc4c2..ebac977 100644 --- a/src/UiGuiSettings.cpp +++ b/src/__TODO/UiGuiSettings.cpp @@ -21,16 +21,16 @@ #include "SettingsPaths.h" -#include -#include -#include -#include +#include +#include +#include +#include #include -#include +#include #include #include #include -#include +#include //! \defgroup grp_Settings All concerning the settings. @@ -628,21 +628,21 @@ void UiGuiSettings::setValueByName(const TQString &settingName, const TQVariant } } -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include -#include +#include #if TQT_VERSION >= 0x040600 #include #include diff --git a/src/UiGuiSettings.h b/src/__TODO/UiGuiSettings.h similarity index 94% rename from src/UiGuiSettings.h rename to src/__TODO/UiGuiSettings.h index 14376ad..5068d52 100644 --- a/src/UiGuiSettings.h +++ b/src/__TODO/UiGuiSettings.h @@ -20,10 +20,9 @@ #ifndef UIGUISETTINGS_H #define UIGUISETTINGS_H -#include -#include -#include -#include +#include +#include +/////#include class TQSettings; @@ -35,10 +34,10 @@ class UiGuiSettings : public TQObject private: UiGuiSettings(); - static TQWeakPointer _instance; + static UiGuiSettings *_instance; public: - static TQSharedPointer getInstance(); + static UiGuiSettings* getInstance(); ~UiGuiSettings(); diff --git a/src/UiGuiSettingsDialog.cpp b/src/__TODO/UiGuiSettingsDialog.cpp similarity index 100% rename from src/UiGuiSettingsDialog.cpp rename to src/__TODO/UiGuiSettingsDialog.cpp diff --git a/src/UiGuiSettingsDialog.h b/src/__TODO/UiGuiSettingsDialog.h similarity index 100% rename from src/UiGuiSettingsDialog.h rename to src/__TODO/UiGuiSettingsDialog.h diff --git a/src/UiGuiSettingsDialog.ui b/src/__TODO/UiGuiSettingsDialog.ui similarity index 100% rename from src/UiGuiSettingsDialog.ui rename to src/__TODO/UiGuiSettingsDialog.ui diff --git a/src/UiGuiSystemInfo.cpp b/src/__TODO/UiGuiSystemInfo.cpp similarity index 100% rename from src/UiGuiSystemInfo.cpp rename to src/__TODO/UiGuiSystemInfo.cpp diff --git a/src/UiGuiSystemInfo.h b/src/__TODO/UiGuiSystemInfo.h similarity index 100% rename from src/UiGuiSystemInfo.h rename to src/__TODO/UiGuiSystemInfo.h diff --git a/src/UpdateCheckDialog.cpp b/src/__TODO/UpdateCheckDialog.cpp similarity index 100% rename from src/UpdateCheckDialog.cpp rename to src/__TODO/UpdateCheckDialog.cpp diff --git a/src/UpdateCheckDialog.h b/src/__TODO/UpdateCheckDialog.h similarity index 100% rename from src/UpdateCheckDialog.h rename to src/__TODO/UpdateCheckDialog.h diff --git a/src/UpdateCheckDialog.ui b/src/__TODO/UpdateCheckDialog.ui similarity index 100% rename from src/UpdateCheckDialog.ui rename to src/__TODO/UpdateCheckDialog.ui