The theme script you're referring to compiles a tree into a single stylesheet,
is that correct?
I might have referred to it as a button when in fact it was just a script that
anyone editing a theme would probably convert to a button with the
script-button button.
It seems that using the theme compiling script should only be necessary for
anyone editing the theme, and for users just wanting to switch between themes,
only the other script/button you mention, that just copies the them to personal
settings, would be necessary. I.e. that all @theme trees contain both the tree
source of the theme, and a pre-compiled @data qt-gui-plugin-style-sheet.
Cheers -Terry
From: Edward K. Ream <[email protected]>
To: leo-editor <[email protected]>
Sent: Friday, March 3, 2017 8:50 AM
Subject: Proposed actions re: #350: themes not working as documented
I am writing this here, rather than in #350: themes not working as documented,
so that more people will see this discussion. Anyone who wants to use themes
will want to read the following carefully.
Background
I have download all final versions of Leo from 4.11 onward to 5.4. The only
difference between 4.11 and all later versions is that from 5.0 onward there is
that there is a separate themes.leo file in the leo/config folder. All
themes.leo files contain separate theme scripts (a script, not an @button
node), for each separate theme. Afaik, there has never been a button that
creates themes.
>From September 2014 onward, Leo has had a StyleSheetManager class, accessed
>via c.styleSheetManager. All theme scripts reference g.expand_css_constants,
>but that no longer exists. Instead, scripts should call
>c.styleSheetManager.expand_css_constants. When that is done, theme script
>create @data qt-gui-plugin-style-sheet node as advertised.
However, making that stylesheet active by calling:
g.app.gui.frameFactory.masterFrame.setStyleSheet(
c.styleSheetManager.expand_css_constants(nd.b))
does not (yet) produce the desired theme. It's probably no big deal, but the
effect is unsettling. The appearance of themes.leo changes drastically, at
least with my defaults.
Proposed changes
1. Replace all theme scripts in themes.leo by a single @button node at the top
level. The user should select the desired theme tree before running the @button
script (clicking the button). The @button script will ensure that the user has,
in fact, selected a theme tree. It may be convenient to mark "the good parts"
with @theme.
2. Aside: I had to change @language css to @language python in order to run the
theme script. No big deal, but it will be best to create an organizer node for
the rest of the data nodes that contains nothing but @language css. This
reorganization may affect the theme script, but any required changes will be
worth the cos--it's intolerable not to color text correctly.
2. A separate top-level @button script will copy theme data to
myLeoSettings.leo.
Summary
The themes data and scripts moved from leoSettings.leo to themes.leo for Leo
5.0 and have remained largely (completely?) unchanged ever since.
A refactoring of Leo's code broke the scripts in themes.leo ca. September, 2014.
An @button node in themes.leo will generate theme data. A separate @button node
will copy theme data to myLeoSettings.leo.
Much of the confusion re #350 stems from out-of-date docs. I'll update the docs
in leoSettings.leo, themes.leo and on Leo's web site once all the details
become clear.
Comments, corrections and questions, please.
Edward
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.