This is an Engineering Notebook post.  All but Terry may safely ignore it.

Here I'll discuss how to complete the recent theme work, and especially how 
to specify the *outline indicators* that indicate whether a node has 
children and whether the node is expanded.

*Background*

For dark themes, these are located in subfolders of the 
leo/Icons/nodes-dark folder--either the plusminus folder or the triangles 
folder.

The only way to get alternative outline indicators is by using 
stylesheets.  For example, the following work *provided* that 
@tree-image-closed 
and @tree-image-open are URL's describing the *full path* to the desired 
indicator icons:

QTreeView::branch:open{
    color: @tree-fg;
    background-color: @tree-bg;
}

QTreeView::branch:closed{
    color: @tree-fg;
    background-color: @tree-bg;
}

QTreeView::branch:closed:has-children{
    image: @tree-image-closed;
}

QTreeView::branch:open:has-children{
    image: @tree-image-open;
}

For example, the following settings work on my Ubuntu machine:

@string tree-image-closed = url(<path>/leo/Icons/nodes-dark/triangles/closed
.png)
@string tree-image-open = url(<path>/leo/Icons/nodes-dark/triangles/open.png
)


*Important*: these stylesheet must be contained in the *optional *user 
stylesheet: @data qt-gui-user-plugin-style-sheet.  The plan is for this 
optional stylesheet to be identical for all themes. They can *not* be part 
of the main @data qt-gui-plugin-style-sheet because missing @string 
tree-image-open/close settings would cause the tree indicators to 
disappear!  The repo demonstrated that for a few minutes yesterday ;-)

LeoQtGui.getImageImage finds tree *icons *in various places. We can't use 
that code as it stands, but we want something similar.

*Solutions*

To recap: one way or another, in @data qt-gui-user-plugin-style-sheet we 
want to *automatically* turn:

QTreeView::branch:closed:has-children{
    image: @tree-image-closed;
}
QTreeView::branch:open:has-children{
    image: @tree-image-open;
}

into:

QTreeView::branch:closed:has-children{
    image: url(<path>/leo/Icons/nodes-dark/triangles/closed.png);
}
QTreeView::branch:open:has-children{
    image: url(<path>/leo/Icons/nodes-dark/triangles/open.png);
}

Note that there are no quotes anywhere above.

The only obvious way to do this is to special case the 
@tree-image-closed/open settings in ssm.expand_css_constants.  It's the 
only place to compute 
g.os_path_finalize_join(g.app.loadDir,'..','Icons',...)

Hmm. It seems that stating the problem clearly has lead immediately to its 
solution.  We shall see...

Any comments, Terry?

Edward

P.S. In some sense, special-casing these particular @settings is akin to 
running the old Theme-installation scripts.  One of the goals of the new 
Theme work is to avoid anyone ever having to run such scripts.

EKR

-- 
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 http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to