Grayscale Theme

Forums

v0.3 of the theme is available.

Big thanks to Rui for dealing with all my asks and G3N-es for the initial inspiration.

Permalink

Greetings right back at ya :) I'll be checking out your newer stuff later tonight. Always on the lookout to make improvements. Thanks for letting me know.

Permalink

Hello again,

I've noticed my theme is suffering when it comes to clearly showing ghost notes and wonder if anyone has ideas? Track colors are always set to the following:

Foreground: #222222
Background: #878c6a

ghost notes

File attachments
Permalink

Hi Rui,

I gave it a shot but even setting foreground color to #ffffff results in too many undesirable side-effects. For example, shadows (I thought I disabled them... maybe I forgot this last time) are now white? The left-most area of the track takes on that color as well and despite both being set to the same color, there appears to be a tint of sorts applied which is clearly intended as a helper in order to help distinguish rows. Needless to say, it's clear all of these issues are a direct result of the magic coloring algorithm happening behind the scenes. Clearly, this algorithm offered tremendous value at one point (and still will for those who choose to avoid what is possible with QSS) but things are at a point now where it can certainly be a bit of a thorn in Qtractor's side. Even though I know it's a bit of a band-aid, perhaps I could request yet another global color option for the purpose of rendering this ghost data?

white ghosts

All the best

File attachments

In reply to by windowsrefund

Permalink

sorry, I meant track background color (not foreground)

and nope, there won't be any other color option for ghost notes: they are just dimmed/transparent versions of the non-ghost colors. and that's it.

byee

In reply to by windowsrefund

Permalink

I think it is mainly a problem of saturation.

If the theme is dark gray (saturation 0), demand tracks with very saturated and light color.
Try #eaff04.

If you look at your events, the ghost notes are much more readable.

Another solution, as Rui indicates, is to darken the background in notes a little more. Not as much as in events, because the truth is that one of the cool things about your theme is clearly distinguishing the notes and events area, but something else.

Permalink

The grayscale theme has been updated (e.g. heavily borrowed from our CSS-Jedi G3N-es). The biggest update is how the selected mixer strips are highlighted. I spent some time in qtractorMixer.cpp wrestling with things (getting nowhere) and ended up brute forcing my solution. There seems to be this assumption made that a selected track (and now his friends) should be darkened. With a darker theme, that's not going to work. There also seems to be some voodoo involving a strange (abusive?) relationship between the midlight and base colors I just don't understand. In order to overcome these issues, did terrible things in the form of the following:

commit c1b71bcc36f2859fea0f43404d931fdb3b95ba9f
Author: windowsrefund <mtf8>
Date:   Tue Aug 13 07:54:26 2024 -0400

    make mixer strip highlighting work for this theme

diff --git a/src/qtractorMixer.cpp b/src/qtractorMixer.cpp
index 3b473d94..1780e97e 100644
--- a/src/qtractorMixer.cpp
+++ b/src/qtractorMixer.cpp
@@ -770,13 +770,13 @@ void qtractorMixerStrip::setSelected ( bool bSelected )
 	QPalette pal;
 	QColor rgbBase;
 	if (m_bSelected) {
-		rgbBase = pal.midlight().color();
+		rgbBase = pal.highlight().color();
 		pal.setColor(QPalette::WindowText,
 			pal.highlightedText().color());
 		pal.setColor(QPalette::Window,
-			rgbBase.darker(150));
+			rgbBase.darker(120));
 	} else {
-		rgbBase	= pal.window().color();
+		rgbBase	= pal.shadow().color();
 		pal.setColor(QPalette::WindowText,
 			pal.windowText().color());
 		pal.setColor(QPalette::Window,
Permalink

The mixer strips (and sequencer) highlighted has been my great template frustration.
Although a QSS expression like the following should work, it doesn't:

qtractorMixer qtractorMixerStrip[selected= "true"] {}

What you propose about forcing it to be a specific color of the color theme that is not affected by "relationship between the midlight and base colors" may be a practical solution... but limited.
(I think it would be nice if something like this was implemented in official Qtractor. The current automatic behavior "midlight and base" you mention I think is intended to avoid conflicts between dark and light themes. But not only does it not solve it, but it makes it unpredictable and difficult for the user to solve it themselves by selecting the colors they consider most appropriate.)

I still don't know why it can't be accessed by QSS, which is the real solution.

I even tried modifying Qtractor code to see if I could make it highlighted accessible, but I didn't succeed.

In the end I decided to accept that it is a limitation of customization, and make customization possible within that limit (in this case playing with the midlight and base colors of the color theme).

Permalink

Just so we're clear, the fact I brute forced a solution by way of editing and recompiling the source code wasn't meant as a "solution" as that approach just swaps out one assumption (darker) for another (lighter). I only shared details about what it took from my side in order to highlight the location of the issue.

Permalink

hey G3N-es,

Have you been able to to access/modify the [A] button? I tried via qtractorCurveButton:checked but was not successful. For reference, the class is define here

Permalink

If you look closely, that button doesn't have a checked state. What is checked is the dropdown menu, not the button.

The lighting in case of recording or playing automation is custom created in Qt, and I don't think it can be customized by QSS.

It's a CSS limitation that QSS inherits: By having a cascading logic, the parents cannot be affected by the behavior of the children.
This limitation is sometimes a pain in web development as well. For those cases where CSS falls short we use JavaScript (usually JQuery which keeps the semantics of the calls in CSS but expanding it to affect parents).

@G3N-es

Just having a fresh look at your most recent themes, I was able to steal enough from Tecnico to finally fix this long-standing annoying problem.

Now, when I hover over the A button in a non-focused track, focus is no longer hi-jacked! It's so good, I can barely stand it! Thank you!

In reply to by windowsrefund

Permalink

I didn't answer you before because I didn't understand what you were referring to.

One day I checked that the annoying bug with the automation button had disappeared.
Actually the bug is not in Qtractor but in Qt and the implementation of QSS.

When it disappeared I assumed that either I had updated the Qt libraries, or Rui had found a solution.

And now it turns out that the general definition of buttons in my QSS fixed it. XD XD XD.

On the other hand it makes sense. Most of the QSS bugs are because when applying it, the default behaviors and styles of the Qt theme engine are unconfigured.

So creating complete general definitions of the elements (buttons, sliders...) in QSS mitigates these bugs.

It's good that you realized this, we already know it in case we want to create new QSS themes for Qtractor or any other Qt application.

You have to create general and complete definitions for each Qt general widget, and from there go on to customize further down the cascade.

Permalink

OK. I almost thought I was clever enough to figure that one out. Thanks for chiming in and saving me from sinking further into the abyss :D

Add new comment

The content of this field is kept private and will not be shown publicly.

Markdown

  • Parses markdown and converts it to HTML.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id> <img src alt height width> <strike> <pre> <p> <br>
  • Lines and paragraphs break automatically.

Filtered HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <b> <i> <pre> <img src alt height width> <strike>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
File attachments
Unlimited number of files can be uploaded to this field.
2 MB limit.
Allowed types: jpg jpeg gif png txt doc docx xls xlsx pdf ppt pps odt ods odp zip gz bz2 xz patch diff wav ogg flac ogv mp4 qtz.
CAPTCHA
Enter the characters shown in the image.