Control: tags -1 moreinfo On 2023-03-30 13:31:28 +1100, David Bannon wrote: > Package: release.debian.org > Severity: normal > User: release.debian....@packages.debian.org > Usertags: unblock > > > Please unblock package tomboy-ng v0.36a > > [ Reason ] > Poor testing on my part lead to the use of bad colors for dark > themes with version 0.36 currently in Bookworm. This relates to > tomboy-ng's recent move to using Qt5 instead of gtk2 and, > perhaps, my own person preference to not use dark themes. > V0.36a is now uploaded and my sponsor requested I apply for an > unblock. > > [ Impact ] > As several users of the version currently in Testing have advised > me, with some dark themes, the existing version might display > some text with the same color as the background. Not good. > > [ Tests ] > I have personally tested the proposed new version, 0.36a extensively. > Similarly, some testing by end users has also taken place. > > [ Risks ] > All changes relate to text colors. No other application logic > has changed. > As no package depends on tomboy-ng, effects beyond tomboy-ng approach > zero. In every case identified, the 0.36a delivers the same or better > user experience. > > [ Checklist ] > [x] all changes are documented in the d/changelog > [x] I initiated and reviewed all changes and I approve them > [x] attach debdiff against the package in testing > > [ Other info ] > Attached is a debdiff between 0.36 and 0.36a, quite a lot of its > content relates to the Lazarus IDE's making inconsequential of > changes to po and form files. Of significance is changes to > man pages (better description of how to manage it's Qt5 colors) > and editbox.pas where the means of determining appropriate > colors has been changed. Changes to settings.pas to inform user > of non-standard colors and save preferences. > Some related minor change to loadnote.pas and mainform.pas > > Thanks for your consideration, David Bannon > > unblock tomboy-ng 0.36a > >
> diff -Nru tomboy-ng-0.36/debian/changelog tomboy-ng-0.36a/debian/changelog > --- tomboy-ng-0.36/debian/changelog 2023-02-22 20:45:26.000000000 +1100 > +++ tomboy-ng-0.36a/debian/changelog 2023-03-19 10:08:23.000000000 +1100 > @@ -1,19 +1,12 @@ > -tomboy-ng (0.36-1) unstable; urgency=medium > +tomboy-ng (0.36a-1) unstable; urgency=medium > > - * Release of new version > - * From 0.35 to 0.36 - > - * New Feature export as PDF. > - * New Feature insert a symbol or accented character. > - * Bug fix in column mode of calculator. > - * Warn user about setting non mono font. > - * All Tomdroid functionality removed. > - * A fix for SWYT not finding some text in a brand new note. > - * Can set colour of a link, more suitable default. > - * Use of TextHint to better indicate EditSearch role. > - * Revised note button colors for better dark theme use. > - * Please see github for further change details > + * Release of new version. > + * More uniform colors when used with qt5ct. > + * Man page added info re colors. > + * Indicator that custom colors being used. > + * Please see github for further change details. > > - -- David Bannon <tomboy...@bannons.id.au> Wed, 22 Feb 2023 20:45:26 +1100 > + -- David Bannon <tomboy...@bannons.id.au> Sun, 19 Mar 2023 10:08:23 +1100 Why are you removing the old changelog entry? Cheers > > tomboy-ng (0.35-2) unstable; urgency=medium > > diff -Nru tomboy-ng-0.36/doc/tomboy-ng.1 tomboy-ng-0.36a/doc/tomboy-ng.1 > --- tomboy-ng-0.36/doc/tomboy-ng.1 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/doc/tomboy-ng.1 2023-03-19 10:01:36.000000000 +1100 > @@ -11,7 +11,7 @@ > tomboy\-ng \- manage a collection of notes using a simple GUI markup > > .SH SYNOPSIS > -tomboy\-ng [\-h \-\-help] [\-\-debug\-sync] [\-\-debug\-index] > [\-\-debug\-log=LOGFILE] [\-l \-\-lang=CC] [\-\-config\-dir=PATH_to_DIR] [\-o > PATH_to_NOTE] [\-\-open\-note=PATH_to_NOTE] [PATH_to_NOTE] [\-t > \-\-import\-txt=PATH_to_FILE] [\-m \-\-import\-md=PATH_to_FILE] [\-n > \-\-import\-note=PATH_to_NOTE] [\-\-title\-fname] > +tomboy\-ng [\-h \-\-help] [\-\-dark\-theme] [\-\-debug\-sync] > [\-\-debug\-index] [\-\-debug\-log=LOGFILE] [\-l \-\-lang=CC] > [\-\-config\-dir=PATH_to_DIR] [\-o PATH_to_NOTE] > [\-\-open\-note=PATH_to_NOTE] [PATH_to_NOTE] [\-t > \-\-import\-txt=PATH_to_FILE] [\-m \-\-import\-md=PATH_to_FILE] [\-n > \-\-import\-note=PATH_to_NOTE] [\-\-title\-fname] > > .SH DESCRIPTION > tomboy\-ng is a rewrite of the much loved Tomboy Notes. It runs on Linux, > Windows and MacOS. It is file compatible with Tomdroid and GNote > (>=v0.30). Tomboy\-ng notes support Bold, Italic, Strikethrough, Highlight > and Underline in four sizes. It will sync notes with other systems using > Tomboy's File Sync model and to remote servers using sshfs. It will Sync with > a Github account, either all your notes or just ones in the SyncGithub > notebook. You can edit notes, from almost any device with a browser in > markdown format. > @@ -24,6 +24,20 @@ > > While options below are familiar to Linux users, Mac and Windows users may > like to look at some examples further down to see how to use them. > > +.SH DARK THEME > +The GTK2 version follows the system colour theme. However, the Qt5 version > (eg Bookworm and later) requires some instruction from the user. Using the > \-\-dark\-theme is simplest and probably the least satisfactory approach, the > note edit screen is a dark theme, other windows vary. A better Qt5 approach > is to set an environment variable that instructs the app to follow the > existing (generally gtk2) theme. You may need to install qt5\-style\-plugins > package. Either add the variable ahead of the tomboy\-ng command line like > this \- > + > +QT_QPA_PLATFORMTHEME=gtk2 tomboy\-ng > + > +or, a more general solution, applying to all Qt5 apps, add that var to > either /etc/environment (requires root or, simpler in a .xsessionrc file in > your home dir. > + > +cd ; echo "export QT_QPA_PLATFORMTHEME=gtk2" >> .xsessionrc > + > +Probably need to log out and back in again. A more comprehensive approach is > to install the qt5ct package and give your Qt5 applications the same > environment variable as above but set to qt5ct (instead of gtk2). This will > allow you to choose one of the qt5ct colour themes or alter a copy with > colours of your choice. The qt5ct command has a nice GUI. > + > +On Windows, tomboy\-ng will follow the system for Dark Theme but only for > the note edit window. Using the \-\-dark\-theme switch is not recommended. > + > +On MacOS, tomboy\-ng is believed to follow the system theme. > > .SH OPTIONS > .TP > @@ -35,6 +49,10 @@ > Print the tomboy\-ng version and exit. > > .TP > +\-\-dark\-theme > +Makes the note edit windows a reasonable dark theme (but you the system > theme). Other part of the app are not dark. This option may be removed in > future releases. > + > +.TP > \-\-no\-splash > Do not show the small tomboy\-ng splash screen at startup. However, if an > error is detected the splash screen is always shown. > > diff -Nru tomboy-ng-0.36/package/version tomboy-ng-0.36a/package/version > --- tomboy-ng-0.36/package/version 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/package/version 2023-03-19 10:01:36.000000000 +1100 > @@ -1 +1 @@ > -0.36 > +0.36a > diff -Nru tomboy-ng-0.36/po/tomboy-ng.es.po tomboy-ng-0.36a/po/tomboy-ng.es.po > --- tomboy-ng-0.36/po/tomboy-ng.es.po 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/po/tomboy-ng.es.po 2023-03-19 10:01:36.000000000 > +1100 > @@ -5,7 +5,7 @@ > msgstr "" > "Project-Id-Version: tomboy-ng v0.35\n" > "POT-Creation-Date: \n" > -"PO-Revision-Date: 2022-11-13 10:56+0100\n" > +"PO-Revision-Date: 2023-03-16 16:59+0100\n" > "Last-Translator: RWR\n" > "Language-Team: \n" > "Language: es\n" > @@ -13,29 +13,29 @@ > "Content-Type: text/plain; charset=UTF-8\n" > "Content-Transfer-Encoding: 8bit\n" > "Plural-Forms: nplurals=2; plural=(n != 1);\n" > -"X-Generator: Poedit 3.2\n" > +"X-Generator: Poedit 3.2.2\n" > > #: editbox.rsunabletoevaluate > msgid "Unable to find an expression to evaluate" > -msgstr "No encontró ninguna expresión para calcular" > +msgstr "No encuentra ninguna expresión para calcular" > > #: fpttf.rsmissingfontfile > #, object-pascal-format > msgid "The font file <%s> can't be found." > -msgstr "" > +msgstr "No encuentra el archivo del fuente <%s>" > > #: fpttf.rsnofontfilename > msgid "The FileName property is empty, so we can't load font data." > -msgstr "" > +msgstr "No podemos cargar la fuente porque la propiedad FileName es vacía." > > #: fpttf.rsnosearchpathdefined > msgid "No search path was defined" > -msgstr "" > +msgstr "Falta la ruta de búsqueda" > > #: fpttf.serrfontnotfound > #, object-pascal-format > msgid "The font <%s> can't be found" > -msgstr "" > +msgstr "No encuentra la fuente <%s>" > > #: mainunit.rsabout > msgid "tomboy-ng notes - cross platform, sync and manage notes." > @@ -59,7 +59,7 @@ > > #: mainunit.rsfailedtoindex > msgid "Failed to index one or more notes." > -msgstr "tomboy-ng no pudo indizar una nota o más." > +msgstr "Fallo en indizar una nota o más." > > #: resourcestr.rsaddnotestonotebook > msgid "Add notes to this Notebook" > @@ -170,7 +170,7 @@ > #: resourcestr.rsenterhexvalue > msgctxt "resourcestr.rsenterhexvalue" > msgid "Enter the Hexadecimal value for a UTF8 character" > -msgstr "" > +msgstr "Escribe el valor hexidecimal para el carácter UTF8" > > #: resourcestr.rsenternewnotebook > msgctxt "resourcestr.rsenternewnotebook" > @@ -251,7 +251,7 @@ > #: resourcestr.rshelpdelay > msgctxt "resourcestr.rshelpdelay" > msgid "Delay startup 2 sec to allow OS to settle" > -msgstr "Retrasar arranque 2 segs para dejar asentarse el SO" > +msgstr "Retrasar el arranque 2 segs para dejar asentarse el SO" > > #: resourcestr.rshelphelp > msgctxt "resourcestr.rshelphelp" > @@ -293,7 +293,7 @@ > > #: resourcestr.rshexcharrequired > msgid "2, 4, 6 or 8 Hex Characters Required" > -msgstr "" > +msgstr "Hacen falta 2, 4, 6 o 8 carácteres hexadecimal" > > #: resourcestr.rslastchange > msgctxt "resourcestr.rslastchange" > @@ -435,7 +435,7 @@ > #: resourcestr.rsrecoverok > msgctxt "resourcestr.rsrecoverok" > msgid "OK, File recovered." > -msgstr "Archivo recuperado." > +msgstr "OK, archivo recuperado." > > #: resourcestr.rsrenamefailed > msgctxt "resourcestr.rsrenamefailed" > @@ -488,7 +488,7 @@ > #: resourcestr.rssnapshotcreated > msgctxt "resourcestr.rssnapshotcreated" > msgid "created, do you want to copy it elsewhere ?" > -msgstr "creada. ¿Quiere copiarla en otro sitio?" > +msgstr "creada. ¿Quiere copiarla a otro sitio?" > > #: resourcestr.rssyncerror > msgctxt "resourcestr.rssyncerror" > @@ -544,7 +544,7 @@ > > #: resourcestr.rsutf8charlist > msgid "Click here to browse to full list" > -msgstr "" > +msgstr "Haga clic aquí para ver la lista completa" > > #: resourcestr.rswarnnossystray > msgid "WARNING, your Desktop might not display SysTray" > @@ -629,10 +629,10 @@ > msgid "Downloads " > msgstr "Descargas" > > -# ¿Editar las notas, la lista, cual? > +# ¿Revisar las notas, la lista, cual? > #: syncutils.rsedituploads > msgid "Edit Uploads " > -msgstr "Notas cambiadas a subir" > +msgstr "Revisar notas subidas" > > #: syncutils.rslocaldeletes > msgid "Local Deletes " > @@ -660,7 +660,7 @@ > # ¿Y el sujeto? > #: syncutils.rsnotrecommend > msgid "Generally not recommended." > -msgstr "En general, poco aconsejable" > +msgstr "En general, no aconsejable" > > #: syncutils.rsremotedeletes > msgid "Remote Deletes " > @@ -675,9 +675,10 @@ > msgid "Menu" > msgstr "Menú" > > +# ¿Texto a traducir o un variabe? > #: teditboxform.editfind.text > msgid "EditFind" > -msgstr "Término" > +msgstr "RevisarBuscar" > > #: teditboxform.label2.caption > msgid "Read Only" > @@ -762,7 +763,7 @@ > > #: teditboxform.menuitemexportpdf.caption > msgid "Export PDF" > -msgstr "" > +msgstr "Exportar PDF" > > #: teditboxform.menuitemexportplaintext.caption > msgid "Export Plain Text" > @@ -859,7 +860,7 @@ > > #: teditboxform.speedrollback.hint > msgid "Roll Back" > -msgstr "Volver a la anterior" > +msgstr "Restaurar" > > #: tformbackupview.buttondelete.caption > msgctxt "tformbackupview.buttondelete.caption" > @@ -922,9 +923,10 @@ > msgid "Cancel" > msgstr "Cancelar" > > +# Colores "por defecto", pero poco espacio en el botón > #: tformcolours.speeddefault.caption > msgid "Default" > -msgstr "Defecto" > +msgstr "Predets." > > #: tformcolours.speedhighlight.caption > msgctxt "tformcolours.speedhighlight.caption" > @@ -933,7 +935,7 @@ > > #: tformcolours.speedlinks.caption > msgid "Links" > -msgstr "" > +msgstr "Enlaces" > > #: tformcolours.speedok.caption > msgctxt "tformcolours.speedok.caption" > @@ -959,7 +961,7 @@ > > #: tformkmemo2pdf.caption > msgid "PDF Issues" > -msgstr "" > +msgstr "Problemas de PDF" > > #: tformrecover.buttondeletebadnotes.caption > msgid "Delete Bad Notes" > @@ -1083,9 +1085,10 @@ > msgid "Local" > msgstr "Local" > > +# ¿Demasiado largo? > #: tformsdiff.buttallnewest.caption > msgid "Newest" > -msgstr "Más reciente" > +msgstr "La más reciente" > > #: tformsdiff.buttalloldest.caption > msgid "Oldest" > @@ -1162,20 +1165,18 @@ > > #: tformsymbol.bitbtnrevert.caption > msgid "Revert" > -msgstr "" > +msgstr "Deshacer" > > #: tformsymbol.caption > msgid "Symbol" > -msgstr "" > +msgstr "Símbolo" > > #: tformsymbol.stringgrid1.columns[0].title.caption > -#, fuzzy > msgctxt "tformsymbol.stringgrid1.columns[0].title.caption" > msgid "Title" > msgstr "Título" > > #: tformsymbol.stringgrid1.columns[1].title.caption > -#, fuzzy > msgctxt "tformsymbol.stringgrid1.columns[1].title.caption" > msgid "Title" > msgstr "Título" > @@ -1208,9 +1209,10 @@ > msgid "Title" > msgstr "Título" > > +# ¿Demasiado largo? > #: tformsync.listviewreport.columns[2].caption > msgid "Note ID" > -msgstr "ID nota" > +msgstr "ID de la nota" > > #: tmainform.bitbtnhide.caption > msgid "Hide" > @@ -1232,15 +1234,16 @@ > > #: tmainform.caption > msgid "tomboy-ng" > -msgstr "Bienvenida a tomboy-ng" > +msgstr "tomboy-ng" > > #: tmainform.checkboxdontshow.caption > msgid "Don't Show for normal startup" > msgstr "No mostrar al inicio" > > +# Creo > #: tmainform.checkboxdontshow.hint > msgid "You can reverse this from Settings" > -msgstr "You can reverse this from Settings" > +msgstr "Puede invertirlo desde las Preferencias" > > #: tmainform.hint > msgid "If the yellow tomboy-ng icon is visible in your System Tray, you can > dismiss this window." > @@ -1714,4 +1717,3 @@ > msgctxt "tsett.tabsync.caption" > msgid "Sync" > msgstr "Sync" > - > diff -Nru tomboy-ng-0.36/po/tomboy-ng.fr.po tomboy-ng-0.36a/po/tomboy-ng.fr.po > --- tomboy-ng-0.36/po/tomboy-ng.fr.po 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/po/tomboy-ng.fr.po 2023-03-19 10:01:36.000000000 > +1100 > @@ -1320,6 +1320,12 @@ > msgid "Set Notes" > msgstr "Définir Notes" > > +#: tsearchform.bitbtnmenu.caption > +#, fuzzy > +msgctxt "tsearchform.bitbtnmenu.caption" > +msgid "Menu" > +msgstr "Menu" > + > #: tsearchform.buttonclearfilters.caption > #, fuzzy > #| msgid "Clear Filters" > @@ -1327,10 +1333,17 @@ > msgid "Clear" > msgstr "Effacer les filtres" > > -#: tsearchform.buttonmenu.caption > -msgctxt "tsearchform.buttonmenu.caption" > -msgid "Menu" > -msgstr "Menu" > +#: tsearchform.buttonclearsearch.caption > +#, fuzzy > +msgctxt "tsearchform.buttonclearsearch.caption" > +msgid "Clear" > +msgstr "Effacer" > + > +#: tsearchform.buttonsearchoptions.caption > +#, fuzzy > +msgctxt "tsearchform.buttonsearchoptions.caption" > +msgid "Options" > +msgstr "Options" > > #: tsearchform.caption > msgid "tomboy-ng_Search" > @@ -1384,19 +1397,6 @@ > msgid "Notebooks" > msgstr "Carnets" > > -#: tsearchform.speedbuttonclearsearch.caption > -msgctxt "tsearchform.speedbuttonclearsearch.caption" > -msgid "Clear" > -msgstr "Effacer" > - > -#: tsearchform.speedsearchotions.caption > -msgid "Options" > -msgstr "Options" > - > -#: tsearchform.speedsearchotions.hint > -msgid "Search Options" > -msgstr "Options de recherche" > - > #: tsett.buttdefaultnotedir.caption > msgid "Use Default Notes Location" > msgstr "Emplacement par défaut" > diff -Nru tomboy-ng-0.36/po/tomboy-ng.nl.po tomboy-ng-0.36a/po/tomboy-ng.nl.po > --- tomboy-ng-0.36/po/tomboy-ng.nl.po 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/po/tomboy-ng.nl.po 2023-03-19 10:01:36.000000000 > +1100 > @@ -1298,15 +1298,28 @@ > msgid "Set Notes" > msgstr "Notities instellen" > > +#: tsearchform.bitbtnmenu.caption > +#, fuzzy > +msgctxt "tsearchform.bitbtnmenu.caption" > +msgid "Menu" > +msgstr "Menu" > + > #: tsearchform.buttonclearfilters.caption > msgctxt "tsearchform.buttonclearfilters.caption" > msgid "Clear" > msgstr "Wissen" > > -#: tsearchform.buttonmenu.caption > -msgctxt "tsearchform.buttonmenu.caption" > -msgid "Menu" > -msgstr "Menu" > +#: tsearchform.buttonclearsearch.caption > +#, fuzzy > +msgctxt "tsearchform.buttonclearsearch.caption" > +msgid "Clear" > +msgstr "Wissen" > + > +#: tsearchform.buttonsearchoptions.caption > +#, fuzzy > +msgctxt "tsearchform.buttonsearchoptions.caption" > +msgid "Options" > +msgstr "Opties" > > #: tsearchform.caption > msgid "tomboy-ng_Search" > @@ -1358,19 +1371,6 @@ > msgid "Notebooks" > msgstr "Notitieboeken" > > -#: tsearchform.speedbuttonclearsearch.caption > -msgctxt "tsearchform.speedbuttonclearsearch.caption" > -msgid "Clear" > -msgstr "Wissen" > - > -#: tsearchform.speedsearchotions.caption > -msgid "Options" > -msgstr "Opties" > - > -#: tsearchform.speedsearchotions.hint > -msgid "Search Options" > -msgstr "Zoekopties" > - > #: tsett.buttdefaultnotedir.caption > msgid "Use Default Notes Location" > msgstr "Standaard notitielocatie gebruiken" > diff -Nru tomboy-ng-0.36/po/tomboy-ng.pot tomboy-ng-0.36a/po/tomboy-ng.pot > --- tomboy-ng-0.36/po/tomboy-ng.pot 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/po/tomboy-ng.pot 2023-03-19 10:01:36.000000000 +1100 > @@ -1280,14 +1280,24 @@ > msgid "Set Notes" > msgstr "" > > +#: tsearchform.bitbtnmenu.caption > +msgctxt "tsearchform.bitbtnmenu.caption" > +msgid "Menu" > +msgstr "" > + > #: tsearchform.buttonclearfilters.caption > msgctxt "tsearchform.buttonclearfilters.caption" > msgid "Clear" > msgstr "" > > -#: tsearchform.buttonmenu.caption > -msgctxt "tsearchform.buttonmenu.caption" > -msgid "Menu" > +#: tsearchform.buttonclearsearch.caption > +msgctxt "tsearchform.buttonclearsearch.caption" > +msgid "Clear" > +msgstr "" > + > +#: tsearchform.buttonsearchoptions.caption > +msgctxt "tsearchform.buttonsearchoptions.caption" > +msgid "Options" > msgstr "" > > #: tsearchform.caption > @@ -1340,19 +1350,6 @@ > msgid "Notebooks" > msgstr "" > > -#: tsearchform.speedbuttonclearsearch.caption > -msgctxt "tsearchform.speedbuttonclearsearch.caption" > -msgid "Clear" > -msgstr "" > - > -#: tsearchform.speedsearchotions.caption > -msgid "Options" > -msgstr "" > - > -#: tsearchform.speedsearchotions.hint > -msgid "Search Options" > -msgstr "" > - > #: tsett.buttdefaultnotedir.caption > msgid "Use Default Notes Location" > msgstr "" > diff -Nru tomboy-ng-0.36/po/tomboy-ng.uk.po tomboy-ng-0.36a/po/tomboy-ng.uk.po > --- tomboy-ng-0.36/po/tomboy-ng.uk.po 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/po/tomboy-ng.uk.po 2023-03-19 10:01:36.000000000 > +1100 > @@ -1297,15 +1297,28 @@ > msgid "Set Notes" > msgstr "Вказати нотатки" > > +#: tsearchform.bitbtnmenu.caption > +#, fuzzy > +msgctxt "tsearchform.bitbtnmenu.caption" > +msgid "Menu" > +msgstr "Меню" > + > #: tsearchform.buttonclearfilters.caption > msgctxt "tsearchform.buttonclearfilters.caption" > msgid "Clear" > msgstr "Очистити" > > -#: tsearchform.buttonmenu.caption > -msgctxt "tsearchform.buttonmenu.caption" > -msgid "Menu" > -msgstr "Меню" > +#: tsearchform.buttonclearsearch.caption > +#, fuzzy > +msgctxt "tsearchform.buttonclearsearch.caption" > +msgid "Clear" > +msgstr "Очистити" > + > +#: tsearchform.buttonsearchoptions.caption > +#, fuzzy > +msgctxt "tsearchform.buttonsearchoptions.caption" > +msgid "Options" > +msgstr "Параметри" > > #: tsearchform.caption > msgid "tomboy-ng_Search" > @@ -1357,19 +1370,6 @@ > msgid "Notebooks" > msgstr "Записники" > > -#: tsearchform.speedbuttonclearsearch.caption > -msgctxt "tsearchform.speedbuttonclearsearch.caption" > -msgid "Clear" > -msgstr "Очистити" > - > -#: tsearchform.speedsearchotions.caption > -msgid "Options" > -msgstr "Параметри" > - > -#: tsearchform.speedsearchotions.hint > -msgid "Search Options" > -msgstr "Параметри пошуку" > - > #: tsett.buttdefaultnotedir.caption > msgid "Use Default Notes Location" > msgstr "Викор. типове розташування нотаток" > diff -Nru tomboy-ng-0.36/prepare.md tomboy-ng-0.36a/prepare.md > --- tomboy-ng-0.36/prepare.md 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/prepare.md 2023-03-19 10:01:36.000000000 +1100 > @@ -58,6 +58,9 @@ > cd ../"Build""$DebVer" > dput mentors *.changes > > +Find it at - > + https://mentors.debian.net/package/tomboy-ng/ > + > If you don't get a response, did you include 'mentors' in the dput line ? > > ***REMEMBER to feed changlog back to github tree !*** > diff -Nru tomboy-ng-0.36/scripts/prepare.debian > tomboy-ng-0.36a/scripts/prepare.debian > --- tomboy-ng-0.36/scripts/prepare.debian 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/scripts/prepare.debian 2023-03-19 10:01:36.000000000 > +1100 > @@ -376,14 +376,14 @@ > > cd "$APP"_"$VER""$DEBVER" > > - dch -v "$VER""$DEBVER" -D"$DISTRO1" "$DISTRO2" "Release of new version" > > + dch -v "$VER""$DEBVER" -D"$DISTRO1" "$DISTRO2" "Release of new > version." > if [ -f whatsnew ]; then > echo "---------- Including whatsnew in changelog" > while IFS= read -r Line; do > dch --append "$Line" > done < whatsnew > fi > - dch --append "Please see github for further change details" > + dch --append "Please see github for further change details." > > #cp debian/control.debian debian/control # thats > the GTK2 version > #if [ "$WIDGET" = "Qt5" ]; then > diff -Nru tomboy-ng-0.36/source/cli.pas tomboy-ng-0.36a/source/cli.pas > --- tomboy-ng-0.36/source/cli.pas 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/source/cli.pas 2023-03-19 10:01:36.000000000 +1100 > @@ -81,7 +81,7 @@ > debugln(rsMachelp1); > debugln(rsMacHelp2); > {$endif} > - debugln(' --dark-theme'); > + debugln(' --dark-theme ' + 'Does not work for > GTK2'); > debugln(' -l --lang=CCode ' + rsHelpLang); // > syntax depends on bugfix https://bugs.freepascal.org/view.php?id=35432 > debugln(' -h --help ' + rsHelpHelp); > debugln(' --version ' + rsHelpVersion); > diff -Nru tomboy-ng-0.36/source/editbox.lfm tomboy-ng-0.36a/source/editbox.lfm > --- tomboy-ng-0.36/source/editbox.lfm 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/source/editbox.lfm 2023-03-19 10:01:36.000000000 > +1100 > @@ -14,7 +14,7 @@ > OnCreate = FormCreate > OnDestroy = FormDestroy > OnShow = FormShow > - LCLVersion = '2.3.0.0' > + LCLVersion = '2.2.0.2' > object PanelReadOnly: TPanel > AnchorSideLeft.Control = Owner > AnchorSideTop.Control = KMemo1 > diff -Nru tomboy-ng-0.36/source/editbox.pas tomboy-ng-0.36a/source/editbox.pas > --- tomboy-ng-0.36/source/editbox.pas 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/source/editbox.pas 2023-03-19 10:01:36.000000000 > +1100 > @@ -235,6 +235,9 @@ > we can be sure the note has been added to NoteLister first. > 2023/02/12 Set the default font name from Sett in OnShow(), issue #263 > 2023/02/14 Fixed bug in column calculater, was ignoring negitive terms. > + 2023/03/11 Allow Qt to set Text and Background colour, force Gray for > Inactive > + background (in LoadNote) cos Kmemo get it wrong > + > } > > > @@ -465,6 +468,7 @@ > // The thread keeps going after the method > returns doing above and then > // free-ing the List. > function SaveStringList(const SL: TStringList; Loc: TNoteUpdateRec): > boolean; > + procedure SetTheColors; > function SimpleCalculate(out AStr: string): boolean; > procedure ClearLinks(const StartScan : longint =0; EndScan : > longint = 0); > { Looks around current block looking for > link blocks. If invalid, 'unlinks' them. > @@ -1967,6 +1971,27 @@ > - Existing Note from eg Tray Menu, Searchbox yes yes > no R1 > ImportNote() > } > + > + > +procedure TEditBoxForm.SetTheColors; > +begin > + KMemo1.Blocks.LockUpdate; > + {$ifdef windows} > + // Color:= Sett.textcolour; > + if Sett.DarkTheme then Color := Sett.BackGndColour; > + {$endif} > + PanelFind.Color := Sett.AltColour; > + Panel1.Color := Sett.AltColour; > + KMemo1.Colors.SelTextFocused := Sett.TextColour; > + KMemo1.Colors.SelText := Sett.TextColour; // when looses > focus > + KMemo1.Colors.BkGnd:= Sett.BackGndColour; > + KMemo1.Colors.SelBkGnd := Sett.AltBackGndColor; // Selected > backgnd when looses focus > + KMemo1.Colors.SelBkGndFocused := Sett.AltBackGndColor; // Selected > backgnd with focus > + Kmemo1.Blocks.DefaultTextStyle.Font.Color := Sett.TextColour; > + Kmemo1.Blocks.DefaultTextStyle.Brush.Color := Sett.BackGndColour; > + KMemo1.Blocks.UnLockUpdate; > +end; > + > procedure TEditBoxForm.FormShow(Sender: TObject); > var > ItsANewNote : boolean = false; > @@ -1977,6 +2002,7 @@ > TimerSave.Enabled := False; > KMemo1.Font.Size := Sett.FontNormal; > KMemo1.Font.Name := Sett.UsualFont; > +// KMemo1.Colors.SelBkGnd := Sett.BackGndColour; > {$ifdef LCLGTK2} > KMemo1.ExecuteCommand(ecPaste); // this to deal with a "first copy" > issue on Linux. > // above line generates a gtk2 assertion but only in single note mode. > I suspect > @@ -1985,6 +2011,9 @@ > // as we select some text so may as well get it over with. No need to do > it in Qt5, Win, Mac > {$endif} > Kmemo1.Clear; > +// SetTheColors; > + > + > if SingleNoteMode then > ItsANewNote := LoadSingleNote() // Might not be Tomboy XML > format > else > @@ -2022,17 +2051,7 @@ > KMemo1.executecommand(ecEditorTop); > KMemo1.ExecuteCommand(ecDown); > end; > - KMemo1.Blocks.LockUpdate; > - {$ifdef windows} > - // Color:= Sett.textcolour; > - if Sett.DarkTheme then Color := Sett.BackGndColour; > - {$endif} > - PanelFind.Color := Sett.AltColour; > - Panel1.Color := Sett.AltColour; > - KMemo1.Colors.BkGnd:= Sett.BackGndColour; > - Kmemo1.Blocks.DefaultTextStyle.Font.Color := Sett.TextColour; > - Kmemo1.Blocks.DefaultTextStyle.Brush.Color := Sett.BackGndColour; > - KMemo1.Blocks.UnLockUpdate; > + SetTheColors; > Ready := true; > Dirty := False; > end; > diff -Nru tomboy-ng-0.36/source/kmemo2pdf.lfm > tomboy-ng-0.36a/source/kmemo2pdf.lfm > --- tomboy-ng-0.36/source/kmemo2pdf.lfm 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/kmemo2pdf.lfm 2023-03-19 10:01:36.000000000 > +1100 > @@ -1,7 +1,7 @@ > object FormKMemo2pdf: TFormKMemo2pdf > - Left = 143 > + Left = 80 > Height = 461 > - Top = 213 > + Top = 570 > Width = 571 > ActiveControl = Memo1 > Caption = 'PDF Issues' > @@ -9,7 +9,7 @@ > ClientWidth = 571 > OnCreate = FormCreate > OnShow = FormShow > - LCLVersion = '2.3.0.0' > + LCLVersion = '2.2.0.2' > object BitBtn1: TBitBtn > AnchorSideRight.Control = Owner > AnchorSideRight.Side = asrBottom > diff -Nru tomboy-ng-0.36/source/loadnote.pas > tomboy-ng-0.36a/source/loadnote.pas > --- tomboy-ng-0.36/source/loadnote.pas 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/loadnote.pas 2023-03-19 10:01:36.000000000 > +1100 > @@ -1,5 +1,5 @@ > unit LoadNote; > -{ Copyright (C) 2017-2022 David Bannon > +{ Copyright (C) 2017-2023 David Bannon > > License: > This code is licensed under BSD 3-Clause Clear License, see file > License.txt > @@ -7,7 +7,7 @@ > > ------------------ > > - This unit is responsible for loading a note into the passed Richmemo. The > + This unit is responsible for loading a note into the passed Kmemo. The > note is expected to be in Tomboy's XML format. > Note that the class expects a few things to be passed to it, after > creation > that it will need before you call LoadNote(). > @@ -35,6 +35,7 @@ > 2021/08/27 Extensive changes to support multilevel bullets, use Tomboy > or Conboy model > 2022/10/31 Force default background colour while loading, it shows up > ok without > doing it here but blocks do not always report the correct > color when asked. > + 2023/03/11 Allow Qt to set Text and Background colour, force Gray for > Inactive Background cos Kmemo get it wrong > } > > {$mode objfpc}{$H+} > @@ -42,7 +43,7 @@ > interface > > uses > - Classes, SysUtils, KMemo; > + Classes, SysUtils, KMemo, Graphics; > > > type > @@ -103,7 +104,7 @@ > > implementation > > -uses Graphics, // For some font style defs > +uses // For some font style defs > LazUTF8, > Settings, // User settings and some defines > across units. > TB_Utils, > @@ -168,7 +169,7 @@ > FT.Size:= FontSize; > end; > TB := KM.Blocks.AddTextBlock(RestoreBadXMLChar(InStr)); > - TB.TextStyle.Brush.Color := Sett.BackGndColour; > + TB.TextStyle.Brush.Color := Sett.BackGndColour; //LocalBackGndColour; > if Bold then FT.Style := FT.Style + [fsBold]; > if Italic then FT.Style := FT.Style + [fsItalic]; > if HighLight then TB.TextStyle.Brush.Color := Sett.HiColour; > @@ -178,7 +179,7 @@ > if FixedWidth then FT.Pitch := fpFixed; > if not FixedWidth then FT.Name := Sett.UsualFont; // Because > 'FixedWidth := false;' does not specify a font to return to > // if Sett.DarkTheme then Ft.Color:=Sett.DarkTextColour; > - Ft.Color:=Sett.TextColour; > + Ft.Color := Sett.TextColour; > TB.TextStyle.Font := Ft; > FT.Free; > end; > diff -Nru tomboy-ng-0.36/source/mainunit.lfm > tomboy-ng-0.36a/source/mainunit.lfm > --- tomboy-ng-0.36/source/mainunit.lfm 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/mainunit.lfm 2023-03-19 10:01:36.000000000 > +1100 > @@ -1,8 +1,8 @@ > object MainForm: TMainForm > - Left = 195 > + Left = 452 > Height = 294 > Hint = 'If the yellow tomboy-ng icon is visible in your System Tray, you > can dismiss this window.' > - Top = 208 > + Top = 303 > Width = 565 > Caption = 'tomboy-ng' > ClientHeight = 294 > @@ -13,7 +13,7 @@ > OnKeyDown = FormKeyDown > OnResize = FormResize > OnShow = FormShow > - LCLVersion = '2.3.0.0' > + LCLVersion = '2.2.0.2' > object ImageNotesDirTick: TImage > AnchorSideTop.Control = LabelNotesFound > Left = 24 > diff -Nru tomboy-ng-0.36/source/mainunit.pas > tomboy-ng-0.36a/source/mainunit.pas > --- tomboy-ng-0.36/source/mainunit.pas 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/mainunit.pas 2023-03-19 10:01:36.000000000 > +1100 > @@ -78,6 +78,7 @@ > 2022/08/10 Added an about Lazarus to splash screen and simplified the > About screen. > 2022/10/20 To Avoid calling IndexNotes() from Import, now function, > IndexNewNote() > 2022/11/14 ShowNotifications() now cross platform. > + 2023/03/17 Provide better support for dark theme, particularly for Qt5 > in qt5ct mode > > CommandLine Switches > > @@ -182,6 +183,8 @@ > > procedure StartIPCServer(); > procedure CommMessageReceived(Sender: TObject); > + // Attempt to detect we are in a dark theme, sets relevent colours, > if main form > + // is dark, then rest of app will be too except for the KMemo. > procedure TestDarkThemeInUse(); > {$ifdef LINUX} > function CheckGnomeExtras(): boolean; > @@ -544,24 +547,32 @@ > end; > {$endif} // hides CheckForSystemTray() and > CheckGnomeExtras() from non Linux > > + > + > procedure TMainForm.FormShow(Sender: TObject); > var > NoteID, NoteTitle : string; > - {$ifndef LCLGTK2}Lab : TLabel; {$endif} > +(* {$ifndef LCLGTK2} {$endif} *) Lab : TLabel; Butt : TBitBtn; > begin > TestDarkThemeInUse(); > - {$ifndef LCLGTK2} // GTK2 seems only one we can be sure is > auto colours ! > +// {$ifndef LCLGTK2} // GTK2 seems only one we can be sure > is auto colours ! > // We honour --dark-theme for most and if we can guess its dark we'll > // act accordingly. > - color := Sett.AltColour; > - font.color := Sett.TextColour; // These do not work > for Windows, so for just bullseye, just temp.... > - ButtMenu.Color := Sett.AltColour; > - BitBtnQuit.Color := Sett.AltColour; > - BitBtnHide.Color := Sett.AltColour; > - for Lab in [Label5, LabelNotesFound, Label3, Label4, > LabelBadNoteAdvice, LabelError] do > - TLabel(Lab).Font.Color:= Sett.TextColour; > - CheckBoxDontShow.Font.color := Sett.TextColour; > - {$endif} > + > + if Sett.DarkThemeSwitch then begin // If Qt is doing its > own colours, let it ! > + color := Sett.AltColour; > + font.color := Sett.TextColour; // These do not > work for Windows ? > + for Butt in [ButtMenu, BitBtnQuit, BitBtnHide, ButtSysTrayHelp] > do > + Butt.Color := Sett.AltColour; > + //ButtMenu.Color := Sett.AltColour; > + //BitBtnQuit.Color := Sett.AltColour; > + //BitBtnHide.Color := Sett.AltColour; > + // ButtSysTrayHelp.Color := Sett.AltColour; > + for Lab in [Label5, LabelNotesFound, Label3, Label4, > LabelBadNoteAdvice, LabelError] do > + TLabel(Lab).Font.Color:= Sett.TextColour; > + CheckBoxDontShow.Font.color := Sett.TextColour; > + end; > +// {$endif} > if SingleNoteFileName() <> '' then begin // That reads the global > in CLI Unit > SingleNoteMode(SingleNoteFileName); > exit; > @@ -691,7 +702,7 @@ > ButtSysTrayHelp.width := MN; > end; > > - // Attempt to detect we are in a dark theme, sets relevent colours. > + > procedure TMainForm.TestDarkThemeInUse(); > > {$ifdef WINDOWS} function WinDarkTheme : boolean; // we also need to > test in High Contrast mode, its not a colour theme. > @@ -721,10 +732,11 @@ > {$endif} > > begin > - if Application.HasOption('dark-theme') then // Manual override always > wins ! > - Sett.DarkTheme := True > + if Application.HasOption('dark-theme') then // Manual override always > wins unless its GTK2 (GTK3 ?) ! > + {$ifndef LCLGTK2} Sett.DarkThemeSwitch := True {$endif} > else begin > Sett.DarkTheme := false; > + Sett.DarkThemeSwitch := false; > {$ifdef WINDOWS} > Sett.DarkTheme := WinDarkTheme(); > {$else} > @@ -733,7 +745,7 @@ > Sett.DarkTheme := (Col[3] < 'A') and (Col[5] < 'A') and (Col[7] < > 'A'); > {$endif} > end; > - Sett.SetColours; > + Sett.SetColours; > end; > > { ------------- M E N U M E T H O D S ----------------} > diff -Nru tomboy-ng-0.36/source/searchunit.lfm > tomboy-ng-0.36a/source/searchunit.lfm > --- tomboy-ng-0.36/source/searchunit.lfm 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/searchunit.lfm 2023-03-19 10:01:36.000000000 > +1100 > @@ -16,17 +16,16 @@ > OnKeyDown = FormKeyDown > OnResize = FormResize > OnShow = FormShow > - LCLVersion = '2.3.0.0' > + LCLVersion = '2.2.0.2' > object EditSearch: TEdit > - AnchorSideLeft.Control = ButtonMenu > + AnchorSideLeft.Control = BitBtnMenu > AnchorSideLeft.Side = asrBottom > AnchorSideTop.Control = Owner > - AnchorSideBottom.Control = ButtonMenu > AnchorSideBottom.Side = asrBottom > - Left = 126 > + Left = 142 > Height = 32 > Top = 0 > - Width = 222 > + Width = 148 > Anchors = [akTop, akLeft, akBottom] > BorderSpacing.Left = 2 > OnChange = EditSearchChange > @@ -39,7 +38,6 @@ > end > object Panel1: TPanel > AnchorSideLeft.Control = Owner > - AnchorSideTop.Control = ButtonMenu > AnchorSideTop.Side = asrBottom > AnchorSideRight.Control = Owner > AnchorSideRight.Side = asrBottom > @@ -162,16 +160,39 @@ > OnKeyPress = ListViewNotesKeyPress > end > end > - object ButtonMenu: TSpeedButton > + object StatusBar1: TStatusBar > + Left = 0 > + Height = 23 > + Top = 378 > + Width = 824 > + Panels = <> > + end > + object ButtonClearSearch: TButton > + AnchorSideLeft.Control = EditSearch > + AnchorSideLeft.Side = asrBottom > + AnchorSideTop.Control = Owner > + AnchorSideBottom.Control = EditSearch > + AnchorSideBottom.Side = asrBottom > + Left = 292 > + Height = 32 > + Top = 0 > + Width = 99 > + Anchors = [akTop, akLeft, akBottom] > + BorderSpacing.Left = 2 > + Caption = 'Clear' > + OnClick = ButtonClearSearchClick > + TabOrder = 3 > + end > + object BitBtnMenu: TBitBtn > AnchorSideLeft.Control = Owner > AnchorSideTop.Control = Owner > + AnchorSideBottom.Control = EditSearch > AnchorSideBottom.Side = asrBottom > - Left = 3 > + Left = 0 > Height = 32 > Top = 0 > - Width = 120 > - BorderSpacing.Left = 3 > - BorderSpacing.Right = 3 > + Width = 140 > + Anchors = [akTop, akLeft, akBottom] > Caption = 'Menu' > Glyph.Data = { > 36090000424D3609000000000000360000002800000018000000180000000100 > @@ -249,47 +270,23 @@ > 0000000000000000000000000000000000000000000000000000000000000000 > 0000000000000000000000000000000000000000000000000000 > } > - OnClick = ButtonMenuClick > + OnClick = BitBtnMenuClick > + TabOrder = 4 > end > - object StatusBar1: TStatusBar > - Left = 0 > - Height = 23 > - Top = 378 > - Width = 824 > - Panels = <> > - end > - object SpeedSearchOtions: TSpeedButton > - AnchorSideTop.Control = EditSearch > + object ButtonSearchOptions: TButton > + AnchorSideTop.Control = Owner > AnchorSideRight.Control = Owner > AnchorSideRight.Side = asrBottom > - AnchorSideBottom.Control = ButtonMenu > + AnchorSideBottom.Control = EditSearch > AnchorSideBottom.Side = asrBottom > - Left = 699 > + Left = 680 > Height = 32 > - Hint = 'Search Options' > Top = 0 > - Width = 120 > - Anchors = [akTop, akRight, akBottom] > - BorderSpacing.Right = 5 > + Width = 144 > + Anchors = [akTop, akLeft, akRight, akBottom] > Caption = 'Options' > - OnClick = SpeedSearchOtionsClick > - ShowHint = True > - ParentShowHint = False > - PopupMenu = PopupMenuSearchOptions > - end > - object SpeedButtonClearSearch: TSpeedButton > - AnchorSideLeft.Control = EditSearch > - AnchorSideLeft.Side = asrBottom > - AnchorSideTop.Control = EditSearch > - AnchorSideBottom.Control = ButtonMenu > - AnchorSideBottom.Side = asrBottom > - Left = 348 > - Height = 32 > - Top = 0 > - Width = 120 > - Anchors = [akTop, akLeft, akBottom] > - Caption = 'Clear' > - OnClick = SpeedButtonClearSearchClick > + OnClick = ButtonSearchOptionsClick > + TabOrder = 5 > end > object SelectDirectoryDialog1: TSelectDirectoryDialog > Left = 344 > diff -Nru tomboy-ng-0.36/source/searchunit.lrj > tomboy-ng-0.36a/source/searchunit.lrj > --- tomboy-ng-0.36/source/searchunit.lrj 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/searchunit.lrj 2023-03-19 10:01:36.000000000 > +1100 > @@ -4,10 +4,9 @@ > > {"hash":4860802,"name":"tsearchform.buttonclearfilters.caption","sourcebytes":[67,108,101,97,114],"value":"Clear"}, > > {"hash":78352483,"name":"tsearchform.listboxnotebooks.hint","sourcebytes":[82,105,103,104,116,32,67,108,105,99,107,32,116,111,32,109,97,110,97,103,101,32,78,111,116,101,98,111,111,107,115],"value":"Right > Click to manage Notebooks"}, > > {"hash":179900739,"name":"tsearchform.panel2.caption","sourcebytes":[78,111,116,101,98,111,111,107,115],"value":"Notebooks"}, > -{"hash":343125,"name":"tsearchform.buttonmenu.caption","sourcebytes":[77,101,110,117],"value":"Menu"}, > -{"hash":233995187,"name":"tsearchform.speedsearchotions.hint","sourcebytes":[83,101,97,114,99,104,32,79,112,116,105,111,110,115],"value":"Search > Options"}, > -{"hash":108725763,"name":"tsearchform.speedsearchotions.caption","sourcebytes":[79,112,116,105,111,110,115],"value":"Options"}, > -{"hash":4860802,"name":"tsearchform.speedbuttonclearsearch.caption","sourcebytes":[67,108,101,97,114],"value":"Clear"}, > +{"hash":4860802,"name":"tsearchform.buttonclearsearch.caption","sourcebytes":[67,108,101,97,114],"value":"Clear"}, > +{"hash":343125,"name":"tsearchform.bitbtnmenu.caption","sourcebytes":[77,101,110,117],"value":"Menu"}, > +{"hash":108725763,"name":"tsearchform.buttonsearchoptions.caption","sourcebytes":[79,112,116,105,111,110,115],"value":"Options"}, > > {"hash":89337013,"name":"tsearchform.menueditnotebooktemplate.caption","sourcebytes":[69,100,105,116,32,78,111,116,101,98,111,111,107,32,84,101,109,112,108,97,116,101],"value":"Edit > Notebook Template"}, > > {"hash":73518027,"name":"tsearchform.menudeletenotebook.caption","sourcebytes":[68,101,108,101,116,101,32,78,111,116,101,98,111,111,107],"value":"Delete > Notebook"}, > > {"hash":36354507,"name":"tsearchform.menurenamenotebook.caption","sourcebytes":[82,101,110,97,109,101,32,78,111,116,101,66,111,111,107],"value":"Rename > NoteBook"}, > diff -Nru tomboy-ng-0.36/source/searchunit.pas > tomboy-ng-0.36a/source/searchunit.pas > --- tomboy-ng-0.36/source/searchunit.pas 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/searchunit.pas 2023-03-19 10:01:36.000000000 > +1100 > @@ -23,7 +23,7 @@ > current title list. > 20171005 - Added an ifdef Darwin to RecentNotes() to address a OSX bug > that prevented > the recent file names being updated. > - 2017/10/10 - added a refresh button, need to make it auto but need to > look at > + 2017/10/10 - added a refresh ButtonSMenu, need to make it auto but need > to look at > timing implication for people with very big note sets first. > > 2017/10/10 - added the ability to update the stringlist when a new note > is > @@ -33,7 +33,7 @@ > 2017/11/07 - switched over to using NoteLister, need to remove a lot of > unused code. > > 2017/11/28 - fixed a bug I introduced while restructuring OpenNote to > better > - handle a note being auto saved. This bug killed the Link button in > EditNote > + handle a note being auto saved. This bug killed the Link ButtonSMenu in > EditNote > 2017/11/29 - check to see if NoteLister is still valid before passing > on updates to a Note's status. If we are quiting, it may not be. > 2017/12/03 Added code to clear Search box when it gets focus. Issue #9 > @@ -71,11 +71,11 @@ > 2018/12/29 Small improvements in time to save a file. > 2019/02/01 OpenNote() now assignes a new note to the notebook if one is > open (ie ButtonNotebookOptions is enabled) > 2019/02/09 Move autosize stringgrid1 (back?) into UseList() > - 2019/02/16 Clear button now calls UseList() to ensure autosize happens. > + 2019/02/16 Clear ButtonSMenu now calls UseList() to ensure autosize > happens. > 2019/03/13 Now pass editbox the searchterm (if any) so it can move > cursor to first occurance in note > 2019/04/07 Restructured Main and Popup menus. Untested Win/Mac. > 2019/04/13 Don't call note_lister.GetNotes more than absolutly > necessary. > - 2019/04/15 One Clear Filters button to replace Clea and Show All Notes. > Checkboxes Mode instead of menu > + 2019/04/15 One Clear Filters ButtonSMenu to replace Clea and Show All > Notes. Checkboxes Mode instead of menu > 2019/04/16 Fixed resizing atifacts on stringGrids by turning off 'Flat' > property, Linux ! > 2019/08/18 Removed AnyCombo and CaseSensitive checkboxes and replaced > with SearchOptionsMenu, easier translations > 2019/11/19 When reshowing an open note, bring it to current workspace, > Linux only. Test on Wayland ! > @@ -88,7 +88,7 @@ > Better ctrl of Search Term highlight (but still highlit when > makeing form re-visible). > Drop Create Date and Filename from Search results string > grid. > But I still cannot control the little green triangles in > stringgrid headings indicating sort. > - 2020/02/01 Do not refresh the string grids automatically, turn on the > refresh button for user to do it. > + 2020/02/01 Do not refresh the string grids automatically, turn on the > refresh ButtonSMenu for user to do it. > 2020/02/19 hilight selected notebook name. > 2020/03/09 Make sure 'x' (put in by a bug) is not a valid sync repo > path. > 2020/05/10 Faster search > @@ -121,6 +121,7 @@ > 2022/12/31 EditSearch now uses TestHint. > 2023/01/11 Qt5 - ListViewNotesKeyPress now forces keypress to EditSearch > 2023/01/11 Added Windows to above, BUT Mac cannot do this. So, disable > on Mac. > + 2023/03/17 Darken up Search Window in dark theme. > } > > {$mode objfpc}{$H+} > @@ -142,6 +143,9 @@ > > type { TSearchForm } > TSearchForm = class(TForm) > + BitBtnMenu: TBitBtn; > + ButtonSearchOptions: TButton; > + ButtonClearSearch: TButton; > ButtonClearFilters: TButton; > EditSearch: TEdit; > ListBoxNotebooks: TListBox; > @@ -161,12 +165,11 @@ > Panel2: TPanel; > PopupMenuSearchOptions: TPopupMenu; > PopupMenuNotebook: TPopupMenu; > - ButtonMenu: TSpeedButton; > - SpeedButtonClearSearch: TSpeedButton; > - SpeedSearchOtions: TSpeedButton; > Splitter1: TSplitter; > StatusBar1: TStatusBar; > SelectDirectoryDialog1: TSelectDirectoryDialog; > + procedure BitBtnMenuClick(Sender: TObject); > + procedure ButtonClearSearchClick(Sender: TObject); > procedure ButtonMenuClick(Sender: TObject); > { If a search is underway, searches. > Else, if we have > an active notebook filter applied, > reapply it. Failing > @@ -177,6 +180,8 @@ > //procedure EditSearchExit(Sender: TObject); > > procedure ButtonClearFiltersClick(Sender: TObject); > + procedure ButtonSearchOptionsClick(Sender: TObject); > + procedure ButtonSMenuClick(Sender: TObject); > procedure EditSearchChange(Sender: TObject); > procedure EditSearchEnter(Sender: TObject); > procedure EditSearchKeyUp(Sender: TObject; var Key: Word; Shift: > TShiftState); > @@ -192,7 +197,7 @@ > procedure FormShow(Sender: TObject); > procedure ListBoxNotebooksClick(Sender: TObject); > procedure ListBoxNotebooksMouseUp(Sender: TObject; > - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); > + ButtonSMenu: TMouseButton; Shift: TShiftState; X, Y: Integer); > procedure ListViewNotesColumnClick(Sender: TObject; Column: > TListColumn > ); > procedure ListViewNotesData(Sender: TObject; Item: TListItem); > @@ -217,8 +222,6 @@ > other downloded note ID. Adjusts Note_Lister according and marks > any > note that is currently open as read only. Does not move files > around. } > procedure ProcessSyncUpdates(const DeletedList, DownList: > TStringList); > - procedure SpeedButtonClearSearchClick(Sender: TObject); > - procedure SpeedSearchOtionsClick(Sender: TObject); > // A proc that is called when a note is added to repo by, > eg, an import. > // The procedure's address is passed, via tb_utils, to the > CLI unit so it > // knows to call this direct if its not nil. > @@ -255,7 +258,7 @@ > procedure MenuListBuilder(MList: TList); > procedure RecentMenuClicked(Sender: TObject); > // Gets called to refresh the ListViewNotes > in cases were we may not do it immediatly > - // If ImmediateRefresh, we use the > previously recorded NumbToRefresh and clear Button > + // If ImmediateRefresh, we use the > previously recorded NumbToRefresh and clear ButtonSMenu > // Else re do a new search or clear > depending on existing search parameters. > procedure IndexAndRefresh(DisplayOnly: boolean = false); > function RemoveFromHelpList(const FullHelpNoteFileName: string): > boolean; > @@ -308,9 +311,9 @@ > //function IsThisaTitle(const Term: ANSIString): boolean; > > { Gets called with a title and filename > (clicking grid), with just a title > - (clicked a note link or recent menu item or Link > Button) or nothing > + (clicked a note link or recent menu item or Link > ButtonSMenu) or nothing > (new note). If its just Title but Title does not > exist, its Link > - Button. DontBackUp says do not make a backup as > we opne because we are in > + ButtonSMenu. DontBackUp says do not make a > backup as we opne because we are in > a Roll Back Cycle.} > procedure OpenNote(NoteTitle: String; FullFileName: string = ''; > TemplateIs: AnsiString = > ''; BackUp: boolean = True; InSearch : boolean = false) ; > @@ -693,7 +696,7 @@ > begin > InitialiseHelpFiles(); > PopupTBMainMenu := TPopupMenu.Create(self); // LCL will dispose > because of 'self' > - ButtonMenu.PopupMenu := PopupTBMainMenu; > + BitBtnMenu.PopupMenu := PopupTBMainMenu; > MainForm.MainTBMenu := TPopupMenu.Create(self); > MainForm.ButtMenu.PopupMenu := MainForm.MainTBMenu; > // Add any other 'fixed' menu here. > @@ -1025,7 +1028,7 @@ > EditSearch.CaretPos := APoint; > end; } > if (EditSearch.Text <> '') and (EditSearch.Text <> rsMenuSearch) then > - SpeedButtonClearSearch.Enabled := True; > + ButtonClearSearch.Enabled := True; > if (not Sett.AutoSearchUpdate) or (not visible) or > (length(EditSearch.Text)=1) then exit; > STL := TStringList.Create; > try > @@ -1260,7 +1263,7 @@ > TheMainNoteLister.LoadListNotebooks(ListBoxNotebooks.Items, > ButtonClearFilters.Enabled); > EditSearch.Hint:=rsSearchHint; > EditSearch.TextHint := rsMenuSearch; > - SpeedButtonClearSearch.Enabled := False; > + ButtonClearSearch.Enabled := False; > EditSearch.SelStart := 1; > EditSearch.SelLength := length(EditSearch.Text); > RefreshMenus(mkAllMenu); // IndexNotes->UseList has already called > RefreshMenus(mkRecentMenu) and Qt5 does not like it. > @@ -1277,36 +1280,53 @@ > TheReindexProc := @IndexNewNote; > end; > > - > - > procedure TSearchForm.FormShow(Sender: TObject); > +var > + Butt : TButton; > begin > Left := Placement + random(Placement*2); > Top := Placement + random(Placement * 2); > -// {$ifdef windows} // linux apps know how to do this themselves > - if Sett.DarkTheme then begin // > Note - Windows won't let us change button colour anymore. > +(* // {$ifdef windows} // gtk2 and qt5 with QT_QPA_PLATFORMTHEME linux > apps know how to do this themselves > +// if Sett.DarkTheme then begin // Note - Windows won't let us change > button colour anymore. > + Color := Sett.AltColour; // black > is 000000, white FFFFFF > +// Color := clGray; > + font.Color := Sett.TextColour; // Sets > children font colour too > +// ListBoxNotebooks.Color := Sett.AltColour; > +// ListBoxNotebooks.Font.Color := clWhite; > + > ListBoxNotebooks.Color := Sett.BackGndColour; > - ListBoxNoteBooks.Font.Color := Sett.TextColour; > - EditSearch.Color := Sett.BackGndColour; > - EditSearch.Font.Color := Sett.TextColour; > -// color := Sett.HiColour; > - Color := Sett.BackGndColour; > - font.color := Sett.TextColour; > - ListViewNotes.Color := clnavy; > -// ListViewNotes.Font.Color := Sett.HiColour; > - ListViewNotes.Font.Color := Sett.BackGndColour; > +// ListBoxNoteBooks.Font.Color := Sett.TextColour; > + EditSearch.Color := Sett.AltColour; > +// EditSearch.Font.Color := Sett.TextColour; > +// Color := Sett.BackGndColour; // OK, this seems > to set ListBoxNotes font to Black ????? > +// font.color := Sett.TextColour; > +// ListViewNotes.Color := clnavy; > +// ListViewNotes.Font.Color := Sett.BackGndColour; > splitter1.Color:= clnavy; > - end; > + ButtonClearFilters.Color := Sett.AltColour; *) // Does work > for Qt5, not for GTK2 (but not needed), Windows ? > + > + if Sett.DarkThemeSwitch then begin // We are not > relying on OS to set dark theme, it was --dark-theme > + Color := Sett.AltColour; // black > is 000000, white FFFFFF > + font.Color := Sett.TextColour; // Sets > children font colour too > + ListBoxNotebooks.Color := Sett.BackGndColour; > + EditSearch.Color := Sett.AltColour; > + splitter1.Color:= clnavy; > + for Butt in [ButtonClearFilters, BitBtnMenu, ButtonSearchOptions, > ButtonClearSearch ] do > + Butt.Color := Sett.AltColour; // Does work for > Qt5, not for GTK2 (but not needed), Windows ? > + end; > + > + > +// end; > // MenuItemAutoRefresh.Checked := Sett.Autorefresh; > ListViewNotes.Color := ListBoxNoteBooks.Color; > - ListViewNotes.Font.Color := ListBoxNotebooks.Font.Color; > +// ListViewNotes.Font.Color := ListBoxNotebooks.Font.Color; > // {$endif} > ListBoxNotebooks.Hint := rsNotebookOptionRight; > if (ListViewNotes.Column[0].SortIndicator = siNone) then begin > BounceSortIndicator(1); > end; > {$ifdef LCLCOCOA} > - ButtonMenu.Refresh; > + ButtonSMenu.Refresh; > ListBoxNotebooks.Hint := rsNotebookOptionCtrl; > // EditSearch.SetFocus; // Cocoa issue, 'cos we cannot make the "on > type, jump to EditSearch" work on Mac > {$endif} > @@ -1636,7 +1656,7 @@ > > { ----------------- NOTEBOOK STUFF -------------------- } > > - // This button clears both search term (if any) and restores all > notebooks and > + // This ButtonSMenu clears both search term (if any) and restores all > notebooks and > // displays all available notes. > procedure TSearchForm.ButtonClearFiltersClick(Sender: TObject); > begin > @@ -1655,6 +1675,10 @@ > UpdateStatusBar(inttostr(ListViewNotes.Items.Count) + ' ' + rsNotes); > end; > > + > + > + > + > procedure TSearchForm.ListBoxNotebooksClick(Sender: TObject); > var > STL : TStringList; > @@ -1675,12 +1699,12 @@ > end; > > // Popup a menu when rightclick a notebook > -procedure TSearchForm.ListBoxNotebooksMouseUp(Sender: TObject; Button: > TMouseButton; Shift: TShiftState; X, Y: Integer); > +procedure TSearchForm.ListBoxNotebooksMouseUp(Sender: TObject; ButtonSMenu: > TMouseButton; Shift: TShiftState; X, Y: Integer); > var > HaveItem : boolean; > begin > // debugln('TSearchForm.ListBoxNotebooksMouseDown - Selected in > listboxnotebook ' + dbgs(ListBoxNotebooks.ItemIndex)); > - if {$ifdef DARWIN} (ssCtrl in Shift) {$ELSE} (Button = mbRight) {$ENDIF} > then begin > + if {$ifdef DARWIN} (ssCtrl in Shift) {$ELSE} (ButtonSMenu = mbRight) > {$ENDIF} then begin > HaveItem := (ListBoxNotebooks.ItemIndex > -1); > PopupMenuNotebook.Items[0].Enabled := HaveItem; > PopupMenuNotebook.Items[1].Enabled := HaveItem; > @@ -1691,10 +1715,8 @@ > end; > end; > > - > -procedure TSearchForm.ButtonMenuClick(Sender: TObject); > +procedure TSearchForm.ButtonSMenuClick(Sender: TObject); > begin > - //ShowListIndicator('From Menu'); > PopupTBMainMenu.popup; > end; > > @@ -1786,9 +1808,10 @@ > > end; > > -procedure TSearchForm.SpeedSearchOtionsClick(Sender: TObject); > +procedure TSearchForm.ButtonSearchOptionsClick(Sender: TObject); > + > begin > - PopupMenuSearchOptions.PopUp; > + PopupMenuSearchOptions.PopUp; > end; > > procedure TSearchForm.MenuItemSWYTClick(Sender: TObject); > @@ -1798,7 +1821,7 @@ > TheMainNoteLister.IndexNotes(); > end; > > -procedure TSearchForm.SpeedButtonClearSearchClick(Sender: TObject); > +procedure TSearchForm.ButtonClearSearchClick(Sender: TObject); > begin > EditSearch.text := ''; //rsMenuSearch; > //EditSearch.SetFocus; > @@ -1814,7 +1837,17 @@ > DoSearchEnterPressed(); > SearchActive := False; > UpdateStatusBar(inttostr(ListViewNotes.Items.Count) + ' ' + rsNotes); > - SpeedButtonClearSearch.Enabled := false; > + ButtonClearSearch.Enabled := false; > +end; > + > +procedure TSearchForm.BitBtnMenuClick(Sender: TObject); > +begin > + PopupTBMainMenu.popup; > +end; > + > +procedure TSearchForm.ButtonMenuClick(Sender: TObject); > +begin > + > end; > > > diff -Nru tomboy-ng-0.36/source/settings.lfm > tomboy-ng-0.36a/source/settings.lfm > --- tomboy-ng-0.36/source/settings.lfm 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/settings.lfm 2023-03-19 10:01:36.000000000 > +1100 > @@ -13,7 +13,7 @@ > OnHide = FormHide > OnKeyDown = FormKeyDown > OnShow = FormShow > - LCLVersion = '2.3.0.0' > + LCLVersion = '2.2.0.2' > object PageControl1: TPageControl > AnchorSideLeft.Control = Owner > AnchorSideTop.Control = Owner > @@ -24,10 +24,10 @@ > Height = 488 > Top = 0 > Width = 726 > - ActivePage = TabSync > + ActivePage = TabDisplay > Anchors = [akTop, akLeft, akRight, akBottom] > BorderSpacing.Bottom = 2 > - TabIndex = 2 > + TabIndex = 1 > TabOrder = 0 > OnChange = PageControl1Change > object TabBasic: TTabSheet > @@ -537,7 +537,7 @@ > BorderSpacing.Top = 15 > BorderSpacing.Right = 3 > Caption = ' Sync ' > - ClientHeight = 224 > + ClientHeight = 243 > ClientWidth = 712 > ParentColor = False > TabOrder = 1 > @@ -571,7 +571,7 @@ > AnchorSideBottom.Side = asrBottom > Left = 548 > Height = 32 > - Top = 182 > + Top = 201 > Width = 154 > Anchors = [akRight, akBottom] > BorderSpacing.Right = 10 > @@ -589,7 +589,7 @@ > Left = 172 > Height = 23 > Hint = 'Sync, if possible once an hour.' > - Top = 191 > + Top = 210 > Width = 101 > Anchors = [akLeft, akBottom] > BorderSpacing.Left = 30 > @@ -631,7 +631,7 @@ > AnchorSideBottom.Side = asrBottom > Left = 15 > Height = 23 > - Top = 191 > + Top = 210 > Width = 127 > Anchors = [akLeft, akBottom] > Caption = 'Sync Enabled' > @@ -653,7 +653,7 @@ > BorderSpacing.Left = 15 > BorderSpacing.Top = 5 > Caption = 'Token' > - ClientHeight = 35 > + ClientHeight = 54 > ClientWidth = 483 > TabOrder = 2 > object LabelToken: TLabel > diff -Nru tomboy-ng-0.36/source/settings.pas > tomboy-ng-0.36a/source/settings.pas > --- tomboy-ng-0.36/source/settings.pas 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/settings.pas 2023-03-19 10:01:36.000000000 > +1100 > @@ -105,6 +105,8 @@ > 2022/10/21 CheckAutoStart must call its own method to trigger writing > files > 2023/01/14 Save Auto Snapshot settings > 2023/02/21 Drop Monospace font to last of priority, its not a real font. > + 2023/03/11 Make a bool to indicate Qt is in charge of its colours, eg > QT_QPA_PLATFORMTHEME > + 2023/03/18 Ensure AltColour and AltBackGndColor are set to something in > user defined scheme > } > > {$mode objfpc}{$H+} // > @@ -270,6 +272,7 @@ > procedure TabSpellResize(Sender: TObject); > procedure TimerAutoSyncTimer(Sender: TObject); > // Sets default colours, depending on dark or light > theme > + // Called from MainForm.ShowForm > procedure SetColours; > > private > @@ -286,6 +289,8 @@ > fExportPath : ANSIString; > SearchIsCaseSensitive : boolean; > NextAutoSnapshot : TDateTime; > + // Sets some default colours (find better way) and > sets Colour Button hint. > + procedure CheckUserColours; > // Looks in expected place for help notes, populate > combo and public vars, HelpNotesPath, HelpNotesLang. > procedure LoadHelpLanguages(); > // We load settings from confile or, if not > available, sensible defaults, save. > @@ -345,6 +350,7 @@ > HelpNotesLang : string; // either two char code or '' > AreClosing : boolean; // False until set true by mainUnit > FormClose. > BackGndColour : TColor; > + AltBackGndColor : TColor; // When selected Text looses focus > TextColour : TColor; > HiColour : TColor; > TitleColour : TColor; > @@ -353,7 +359,9 @@ > UsualFont : string; > FixedFont : string; > DefaultFixedFont : string; > - DarkTheme : boolean; > + DarkThemeSwitch : boolean; // Dark Theme because user provided > --dark-theme, set in main unit. > + DarkTheme : boolean; // Dark Theme because we detected it > ourselves. Set by main unit. > + QtOwnsColours : boolean; // Qt[5,6] is in charge of its own > colours, probably using QT_QPA_PLATFORMTHEME, but not for kmemo > DebugModeSpell : boolean; > // Indicates SettingsChanged should not write out a new file cos we > are loading from one. > MaskSettingsChanged : boolean; > @@ -405,7 +413,6 @@ > Sett : TSett; > > const > - // Note we set DarkTheme colors and all > HiLight colours in MainUnit ?? No, we set them here ! > Placement = 45; // where we position an opening > window. Its, on average, 1.5 time Placement; > > > @@ -433,6 +440,7 @@ > Colours, > Clipbrd, > tb_symbol, > + uQt_Colors, > ResourceStr; // only partially so far .... > > var > @@ -718,6 +726,7 @@ > // user user has 'closed' (ie hide) then Spell was freed. > MaskSettingsChanged := False; > Label15.Caption:=''; > + CheckUserColours; > end; > > // We only really close when told by RTSearch that The Exit Menu choice from > TrayIcon was clicked. > @@ -869,6 +878,9 @@ > end; > end; > > + > + > + > // Will read and apply the config file if available, else sets sensible > defaults > // Is only called at startup and assumes the config dir has been checked > and > // LabelSettingPath.Caption contains an appropriate file name. > @@ -919,6 +931,7 @@ > FixedFont := ConfigFile.readstring('BasicSettings', 'FixedFont', > DefaultFixedFont); > if FixedFont = '' then FixedFont := DefaultFixedFont; > ButtonFixedFont.Hint := FixedFont; > + // ------------------- C O L O U R S ------------------- > BackGndColour:= > StringToColor(Configfile.ReadString('BasicSettings', 'BackGndColour', '0')); > HiColour := StringToColor(Configfile.ReadString('BasicSettings', > 'HiColour', '0')); > TextColour := StringToColor(Configfile.ReadString('BasicSettings', > 'TextColour', '0')); > @@ -926,6 +939,7 @@ > LinkColour := StringToColor(Configfile.ReadString('BasicSettings', > 'LinkColour', '0')); > UserSetColours := not ((BackGndColour = 0) and (HiColour = 0) and > (TextColour = 0) and (TitleColour = 0) and (LinkColour = 0)); > // Note - '0' is a valid colour, black. So, what says its not set is > they are all '0'; > + CheckUserColours; > HelpNotesLang := Configfile.ReadString('BasicSettings', > 'HelpLanguage', HelpNotesLang); > SetHelpLanguage(); > > @@ -1160,28 +1174,61 @@ > end; > end; > > +{ Colors - if its GTK2 or a Qt5 with a QT_QPA_PLATFORMTHEME=[gtk2, qt5ct] > then most colors will be right. > + However, the KMemo might be wrong as its always set to a defult light > set, ignoring OS. > + So, we must always set Sett's colors for, at least, KMemo to use. > + DarkThemeSwitch tells us to apply the setting to what ever other > components we can too. > + SetColors is called by TMainForm.TestDarkThemeInUse during startup, > DarkTheme* may have been set. > + It tests for a gtk2, qt5 using qt5ct and defers to qt5ct if possible. > Otherwise, sets some > + (hopefully) appropriate colors for either a light or dark theme. These > colors > + are always used for the KMemo and possibly, when DarkThemeSwich is used, > for what other > + screens I can. } > + > procedure TSett.SetColours; > +{$ifdef LCLQT5} > +var > + Qt_Colors : TQt_Colors; {$endif} > // pink = $EEEEFF, White is $FFFFFF, Black is $000000 > begin > - if DarkTheme then // ToDo : must add this to user set > colours, sigh ..... > - //AltColour := $282828 // Gray, BackGround Colour of > Alternating rows in some ListViews > - AltColour := $606060 // A colour that will show both > black and white test > - else AltColour := clDefault; // it gets used as a background > and needs to be a bit near it > + {$ifdef LCLQT5} // First we will try the special > Qt5 ways of settings colours > + // If user has set QT_QPA_PLATFORMTHEME=gtk2 this bit drops through, all > components except KMemo are good. > + Qt_Colors := TQt_Colors.Create; // needs some work for qt6 > + try > + if Qt_Colors.FoundColors then begin // Will be false if user > not using qt5ct > + BackGndColour:= Qt_Colors_Rec.QColorBackground; > + HiColour := Qt_Colors_Rec.QColorHighLight+1; // This is, eg > Crtl H type highlighting, not selection. +1 to make unique > + AltColour := Qt_Colors_Rec.QColorLessBright; // Used for > selected Text > + TextColour := Qt_Colors_Rec.QColorText; > + TitleColour:= Qt_Colors_Rec.QColorLink; > + LinkColour := Qt_Colors_Rec.QColorLink; > + AltBackGndColor := Qt_Colors_Rec.QColorLessBright; // Selected > background colour > + QtOwnsColours := true; > + exit; > + end; > + finally > + Qt_Colors.Free; > + end; > + {$endif} > if UserSetColours then exit; // will have already been set by > config or by colour form. > - if DarkTheme then begin > - //debugln('Its definltly a Dark Theme'); > - BackGndColour:= clBlack; // eg $000000 > - HiColour := clDkGray; > - TextColour := clLtGray; > - TitleColour:= clTeal; > - LinkColour := clTeal; > + if DarkTheme or DarkThemeSwitch then begin > + BackGndColour:= $303030; // KMemo Background > + AltColour := $606060; // Some panel's background color > + HiColour := $600001; // a dark blue; This is, eg > Crtl H type highlighting, not selection ! > + TextColour := clWhite; > + TitleColour:= $B8B800; > + LinkColour := $B8B801; > + AltBackGndColor := clGray; // Selected text, both focused > and unfocused > end else begin > BackGndColour := clCream; > - HiColour := clYellow; > + AltColour := clDefault; > + HiColour := clYellow-1; > TextColour := clBlack; > TitleColour := clBlue; > - LinkColour := clBlue; > + LinkColour := clBlue+1; // One unit of red, no one will > notice, but don't subtract 1 from xxxx00 or add 1 to xxxxFF > + AltBackGndColor := clLtGray; > end; > + // if DarkThemeSwitch then color := AltColour; No, cannot change > color of the Tabsheet, looks horrible > + > end; > > procedure TSett.SetHelpLanguage(); > @@ -1263,8 +1310,19 @@ > WriteConfigFile(); > end; > end; > + CheckUserColours; > end; > > +procedure TSett.CheckUserColours; > +begin > + if UserSetColours then begin > + ButtonSetColours.Hint := 'Custom Colours in use'; > + // ToDo : AltBackGndColour may not be appropriate here, wot is ? > And AltColour ???? > + AltBackGndColor := clGray; > + AltColour := clLtGray; > + end else > + ButtonSetColours.Hint := 'Default Colours'; > +end; > procedure TSett.ButtonFixedFontClick(Sender: TObject); > var > ISMono : boolean = false; > diff -Nru tomboy-ng-0.36/source/tb_symbol.lfm > tomboy-ng-0.36a/source/tb_symbol.lfm > --- tomboy-ng-0.36/source/tb_symbol.lfm 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/tb_symbol.lfm 2023-03-19 10:01:36.000000000 > +1100 > @@ -7,7 +7,7 @@ > ClientHeight = 372 > ClientWidth = 685 > OnCreate = FormCreate > - LCLVersion = '2.3.0.0' > + LCLVersion = '2.2.0.2' > object StringGrid1: TStringGrid > AnchorSideLeft.Control = Owner > AnchorSideTop.Control = Owner > diff -Nru tomboy-ng-0.36/source/tb_symbol.pas > tomboy-ng-0.36a/source/tb_symbol.pas > --- tomboy-ng-0.36/source/tb_symbol.pas 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/tb_symbol.pas 2023-03-19 10:01:36.000000000 > +1100 > @@ -143,6 +143,7 @@ > Result := ((byte(Value) shr TheBit) and 1) = 1; > end; > begin > + result := false; > case length(Uch) of > 0 : exit(false); > 1 : exit(not BitSet(Uch[1], 7)); // > 0xxxxxxx > diff -Nru tomboy-ng-0.36/source/Tomboy_NG.lpi > tomboy-ng-0.36a/source/Tomboy_NG.lpi > --- tomboy-ng-0.36/source/Tomboy_NG.lpi 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/Tomboy_NG.lpi 2023-03-19 10:01:36.000000000 > +1100 > @@ -900,12 +900,22 @@ > <local> > <CommandLineParams > Value="--config-dir=/home/dbannon/.config/tomboy-ng-alt"/> > </local> > + <environment> > + <UserOverrides Count="1"> > + <Variable0 Name="QT_QPA_PLATFORMTHEME" Value="qt5ct"/> > + </UserOverrides> > + </environment> > <FormatVersion Value="2"/> > <Modes Count="1"> > <Mode0 Name="default"> > <local> > <CommandLineParams > Value="--config-dir=/home/dbannon/.config/tomboy-ng-alt"/> > </local> > + <environment> > + <UserOverrides Count="1"> > + <Variable0 Name="QT_QPA_PLATFORMTHEME" Value="qt5ct"/> > + </UserOverrides> > + </environment> > </Mode0> > </Modes> > </RunParams> > @@ -920,7 +930,7 @@ > <PackageName Value="LCL"/> > </Item3> > </RequiredPackages> > - <Units Count="38"> > + <Units Count="39"> > <Unit0> > <Filename Value="Tomboy_NG.lpr"/> > <IsPartOfProject Value="True"/> > @@ -1135,6 +1145,11 @@ > <IsPartOfProject Value="True"/> > <UnitName Value="fpTTF"/> > </Unit37> > + <Unit38> > + <Filename Value="uqt_colors.pas"/> > + <IsPartOfProject Value="True"/> > + <UnitName Value="uQt_Colors"/> > + </Unit38> > </Units> > </ProjectOptions> > <CompilerOptions> > diff -Nru tomboy-ng-0.36/source/Tomboy_NG.lpr > tomboy-ng-0.36a/source/Tomboy_NG.lpr > --- tomboy-ng-0.36/source/Tomboy_NG.lpr 2023-02-22 20:42:59.000000000 > +1100 > +++ tomboy-ng-0.36a/source/Tomboy_NG.lpr 2023-03-19 10:01:36.000000000 > +1100 > @@ -25,7 +25,7 @@ > Notebook, Spelling, Mainunit, BackupView, recover, Index, > autostart, hunspell, sync, syncutils, ResourceStr, colours, > cli, RollBack, commonmark, notenormal, transgithub, > - import_notes, JsonTools, kmemo2pdf, tb_symbol, fpTTF; > + import_notes, JsonTools, kmemo2pdf, tb_symbol, fpTTF, uQt_Colors; > > {$R *.res} > > diff -Nru tomboy-ng-0.36/source/uqt_colors.pas > tomboy-ng-0.36a/source/uqt_colors.pas > --- tomboy-ng-0.36/source/uqt_colors.pas 1970-01-01 10:00:00.000000000 > +1000 > +++ tomboy-ng-0.36a/source/uqt_colors.pas 2023-03-19 10:01:36.000000000 > +1100 > @@ -0,0 +1,166 @@ > +unit uQt_Colors; > +{ Copyright (C) 2023 David Bannon > + > + License: > + This code is licensed under BSD 3-Clause Clear License, see file > License.txt > + or https://spdx.org/licenses/BSD-3-Clause-Clear.html > + > + ------------------ > + > + This is a unit, only invoked if using the Qt5 widget set (some mods > needed for Qt6) > + that will alter how the app manages colours if (and only IF) the user > has the > + QT_QPA_PLATFORMTHEME=qt5ct in the env. It does NOT respect the > -platformtheme switch > + because one dash means one char switch in POSIX, so, we don't consider > + -platformtheme qt5ct is a switch. (TApplication does make the commandline > + available Davo ....) > + This unit reads the colours that qt5ct wants us to use and passes a > subset > + of them back for KMemo to use. > + > + Note : Unix only, makes some assumptions about paths, easy fix .... > + > + History : > + 2023-03-13 Initial release. > +} > +{$mode ObjFPC}{$H+} > + > +interface > + > +uses > + Classes, SysUtils, graphics; > + > +type TQt_Colors_Rec = record > + QColorLink : TColor; > + QColorBright : TColor; > + QColorLessBright : TColor; > + QColorBackground : TColor; > + QColorAltBackGround : TColor; > + QColorText : TColor; > + QColorHighLight : Tcolor; > + end; > + > +{ TQt_Colors } > +type > + TQt_Colors = class > + private > + function GetActiveColors : string; > + function GetIndexedColor(CSt : string; const Index : integer) : TColor; > + > + public > + FoundColors : boolean; > + constructor Create(); > +end; > + > +var > + Qt_Colors_Rec : TQt_Colors_Rec; > + > +implementation > + > +uses IniFiles, Forms; > + > +const > + CONF = '/.config/qt5ct/qt5ct.conf'; // the conf file has an entry > that points to the selected color_scheme > + > +{ TQt_Colors } > + > +function TQt_Colors.GetActiveColors: string; > +var > + ConfigFile : TINIFile; > +begin > + result := GetEnvironmentVariable('HOME') + CONF; > + if FileExists(result) then begin > + ConfigFile := TINIFile.Create(result); > + try > + result := ConfigFile.readstring('Appearance', > 'color_scheme_path', ''); > + finally > + ConfigFile.free; > + end; > + end; > + if Result = '' then exit; > + if FileExists(Result) then begin > + ConfigFile := TINIFile.Create(Result); > + try > + result := ConfigFile.readstring('ColorScheme', 'active_colors', > ''); > + finally > + ConfigFile.free; > + end; > + end; > +end; > + > +function TQt_Colors.GetIndexedColor(CSt: string; const Index: integer): > TColor; > +var > + StL : TStringList; > + St : String; > + CValue : Cardinal; > + R, G, B : byte; // thats the order in Qt's view > +begin > + StL := TStringList.Create; // probably more efficent to use > CSt.Split ..... > + StL.Delimiter := ' '; > + Stl.DelimitedText := CSt; > + St := StL[Index]; > + Stl.Free; > + if St.length < 1 then exit(clBlack); // ToDo : That is an uncaught > error > + St[1] := '$'; > + St := St.Replace(',', ''); > + CValue := strtoInt(St) and $ffffff; > + B := CValue and $ff; > + CValue := CValue shr 8; > + G := CValue and $ff; > + CValue := CValue shr 8; > + R := CValue and $ff; > + result := TColor((B shl 16) + (G shl 8) + R); // Thats TColor order. > +end; > + > +constructor TQt_Colors.Create(); > +var > + St : String; > +begin > + if (GetEnvironmentVariable('QT_QPA_PLATFORMTHEME') <> 'qt5ct') then > exit; // Note : not responding to -platformtheme switch > + St := GetActiveColors(); > + if St = '' then exit; > + Qt_Colors_Rec.QColorText := GetIndexedColor(St, 0); // 0 > is Text - used for usual text > + Qt_Colors_Rec.QColorBright := GetIndexedColor(St, 2); // 2 > is Bright > + Qt_Colors_Rec.QColorLessBright := GetIndexedColor(St, 3); // 3 > is LessBright > + Qt_Colors_Rec.QColorBackground := GetIndexedColor(St, 9); // 9 > is background > + Qt_Colors_Rec.QColorLink := GetIndexedColor(St, 14); // 14 > is Link index 0..19 > + Qt_Colors_Rec.QColorHighLight := GetIndexedColor(St, 12); > + Qt_Colors_rec.QColorAltBackGround := GetIndexedColor(St, 16); > + FoundColors := True; > + //writeln('We have found suitable qt5ct colors'); > +end; > + > +end. > + > +{ > +WindowText = 0; > +NormalBackGround = 1; > +Link = 14; > + > +if we have a qt env setting, QT_QPA_PLATFORMTHEME=qt5ct we can > +look in /$HOME/.config/qt5ct/qt5ct.conf Its an ini file that we will find, > in > +section [Appearance], color_scheme_path, value being eg > /usr/share/qt5ct/colors/darker.conf > + > +We open this file, also ini, the value of [ColorScheme], has a line that > looks like this - > + > +active_colors=#ffffff, #424245, #979797, #5e5c5b, #302f2e, #4a4947, #ffffff, > #ffffff, #ffffff, #3d3d3d, #222020, #e7e4e0, #12608a, #f9f9f9, #0986d3, > #a70b06, #5c5b5a, #ffffff, #3f3f36, #ffffff > + > +each subvalue may be 6 or 8 hex digits, we loose the first two if its 8. > + > +White = #FFFFFF (careful, apparently Qt can be funny about ffffff) > +Six Digits, Red, Green, Blue, 2 each. Higher value means lighter. > +Black is #222222 - I guess it gets blacker than this but not in the themes > I see. > + > +Red = #ff0000 > +Green = #00FF00 > +Blue = #0000FF > + > +Digits to left of 6 rightmost characters are Opacity. Strip them off. > + > +TColor - Blue-Green-Red > +========= > +clBlue = TColor($FF0000); > +clRed = TColor($0000FF); > +clGreen = TColor($008000); > +clBlack = TColor($000000); > +clWhite = TColor($FFFFFF); > + > +} > diff -Nru tomboy-ng-0.36/whatsnew tomboy-ng-0.36a/whatsnew > --- tomboy-ng-0.36/whatsnew 2023-02-22 20:42:59.000000000 +1100 > +++ tomboy-ng-0.36a/whatsnew 2023-03-19 10:01:36.000000000 +1100 > @@ -1,10 +1,3 @@ > -From 0.35 to 0.36 - > -New Feature export as PDF. > -New Feature insert a symbol or accented character. > -Bug fix in column mode of calculator. > -Warn user about setting non mono font. > -All Tomdroid functionality removed. > -A fix for SWYT not finding some text in a brand new note. > -Can set colour of a link, more suitable default. > -Use of TextHint to better indicate EditSearch role. > -Revised note button colors for better dark theme use. > +More uniform colors when used with qt5ct. > +Man page added info re colors. > +Indicator that custom colors being used. -- Sebastian Ramacher