FreeCAD / FreeCAD-addons

A convenient gathering of useful and well-developed FreeCAD plugins made by the community.
771 stars 253 forks source link

[Feature] Expose UI Color settings to advanced users via an Addon #262

Closed NXTler closed 1 year ago

NXTler commented 1 year ago

Is there an existing issue for this?

Version

0.20 (Release)

Full version info

[code]
OS: Manjaro Linux (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 0.20.2.29603 (Git)
Build type: Release
Branch: makepkg
Hash: 930dd9a76203a3260b1e6256c70c1c3cad8c5cb8
Python 3.11.3, Qt 5.15.9, Coin 4.0.1, Vtk 9.2.6, OCC 7.6.3
Locale: German/Germany (de_DE)
Installed mods: 
  * PieMenu 1.2.7
  * sheetmetal 0.2.63
  * toSketch 1.0.1
  * A2plus 0.4.60n
  * QuickMeasure 2022.10.28
  * Curves 0.6.12
  * CfdOF 1.23.1
  * TabBar
  * IconThemes
  * Glass
  * ProDarkThemePreferencePack 1.0.0
[/code]

Subproject(s) affected?

Core

Problem description

Hello all, The colors of any UI can drastically change the feel and usability of it, and every person prefers different colors for their personal usage; hence, I think it's very important that the colors are easily changeable. In FreeCAD version 0.20, the process of changing the UI's colors is quite tedious. Custom.css files have to be created, which are too long and complicated for the average user who just wants to change the tree's background, for example. More color options should be exposed through the settings, like they have already been for the start menu.

What are your thoughts about this?

Anything else?

Here is a screenshot taken from the settings of Solid Edge as an example: Unben7890annt

Code of Conduct

yorikvanhavre commented 1 year ago

This is a more complex issue than it seems because since there are many ways to set colors in a Qt app, care must be taken with what overriding what. But this seems like a good idea, in case no css style is used, an easy, default one could be done with a simple dialog like this

adrianinsaval commented 1 year ago

I don't see a compelling use case for fine control of every single UI element like the tree background, stuff like the colors in sketcher I understand and those are therefore configurable, stuff like this is just more maintenance burden to satisfy a niche whim from a fraction of users so I would like to close this issue.

We already have trouble now because some colors are set using preferences, others using stylesheets, and a few are burried in code, adding more to the mix is not going to help.

Consider developing this as an addon instead.

luzpaz commented 1 year ago

I think finetuning as an option in FreeCAD core is great. It will make us consider a better approach to standardizing how we set colors (and organize the hacks that have been made to FC in the past on this issue).

adrianinsaval commented 1 year ago

I disagree, I think this would just be adding more unnecessary complexity to the pile and make it even harder to make good themes. More colours as preferences is undesirable IMO. No compelling use case was provided for changing the tree view background for example.

yorikvanhavre commented 1 year ago

My idea was simply a way to change, say, the 5 or 6 basic standard them colors (window fore/background, selected fore/background, etc). Indeed it's not enough for proper theming, but it could be useful to some.

Note that this can 100% be done in an addon. No need to be part of Core. Such an addon could simply offer a preference page to set the colors, build a qss from it, and apply that qss...

MisterMakerNL commented 1 year ago

I can remember when I was a young boy we had windows 3.1 and we could change all colors. One day I changed everything to black on the school computer. I don't think they liked that. I also don't think giving normal users these powers is a good idea.

adrianinsaval commented 1 year ago

An add-on for this would be a perfect solution. For the core I think we should reject this request

And I don't think the issue tracker is for add-on requests

luzpaz commented 1 year ago

Ok, I concede. Addon is a fair compromise. I'll transfer this to Addons repo

luzpaz commented 1 year ago

@MisterMakerNL lets compile a list of settings that an addon like this would be able to manipulate?

Edit: this ticket may also overlap with https://github.com/FreeCAD/FreeCAD/issues/6805

MisterMakerNL commented 1 year ago

Axeia has made a nice macro where you can see the preference colors: https://github.com/Axeia/FreeCAD-Color-Fetcher/tree/main

luzpaz commented 1 year ago

Do you have a quick screenshot to share ?

NXTler commented 1 year ago

A ReadMe has been added to the project with a screenshot.

luzpaz commented 1 year ago

What is left to do here ?

NXTler commented 1 year ago

The Color-Alterator is already great, to be honest. The only feature I miss is being able to set the color of backgrounds (from the model tree for example). Should I move this to the macro?

luzpaz commented 1 year ago

Should i move this to the macro?

Can you clarify what you mean here ?

NXTler commented 1 year ago

Does this feature request still applies to FreeCAD, or should it be moved to the Color-Agragator?

luzpaz commented 1 year ago

Probably moved to the Color-Aggregator

NXTler commented 1 year ago

Moved to Color-Aggregator, I close this issue for now.