Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increase size of the settings menu font #6185

Closed
atvrider opened this issue Oct 4, 2021 · 15 comments
Closed

Increase size of the settings menu font #6185

atvrider opened this issue Oct 4, 2021 · 15 comments

Comments

@atvrider
Copy link

atvrider commented Oct 4, 2021

Could the default size of the settings menu font be changed to be about twice as large as it currently is? The current size seems unreasonably small, I have pretty average eyesight up close and I have to lean in and focus really hard to be able to see what the text says.

tinyfont

The size of text for the line that says "Graphical user interface (GUI)" should be about the size of text for all of the options in this menu.

@Spekular
Copy link
Member

Spekular commented Oct 5, 2021

Here's a quick comparison of a few setup dialogues, in context. (LMMS Scaled, LMMS, Ableton, FL)

image

DAW FG value BG value Diff Low text height Tall text height Notes
LMMS 100 18 82 5 8 Drop shadow with value 25, offset 1px left and 1px down
Ableton 0 52 52 5 8
FL 80 29 51 6 8

Ableton's text is IMO much more legible than ours despite having the same exact size and a lower contrast. FL studio gets away with even lower contrast at just 1px higher base to mean height, so I doubt light on dark text is the issue. I think our drop shadow is reducing text sharpness, because it has a value in-between that of the text and the background. Removing it might fix the issue without adjusting size.

If size is to be adjusted, note the config window on the far left. By scaling the sub-section content to fill the window, the settings text size becomes roughly equivalent to the current heading size, and comparable to other text inside LMMS.

@Spekular
Copy link
Member

Spekular commented Oct 5, 2021

We can definitely shorten a lot of these setting descriptions by removing the unnecessary "enable" text and other changes (mostly to verb use).

  • Volume as dBFS
  • Show tooltips
  • Master oscilloscope on by default
  • Label all notes in piano roll
  • Compact track buttons
  • One instrument-window mode
  • Sidebar on right hand side
  • Continue sample previews after mouse release
  • Mute automation tracks during solo
  • Warn when deleting tracks
  • Create a backup file when saving

@allejok96
Copy link
Contributor

Just a Windows/Linux comparsion... I am more disturbed by the Windows type hinting than the font size, although it is very small.

image

@olekspickle
Copy link

olekspickle commented Feb 27, 2023

Is there a way to enlarge all UI fonts altogether or scale the whole UI? IMO it's all pretty small

@inucat
Copy link

inucat commented Oct 29, 2023

I was also suffered but found that a CSS file in the theme directory matters.
They are located in /usr/share/lmms/themes/*/style.css in Linux.
In the CSS, find font-size: and change the value to, say, 14pt, then restart LMMS.
You can also add something like * {font-size: 20pt;}, and comment out any other font-size: lines.

You can edit them directly, but I recommend you to copy the theme directory somewhere under your HOME then modify, and update the theme path in LMMS.

@Rossmaxx
Copy link
Contributor

I believe @michaelgregorius is working on this.

@michaelgregorius
Copy link
Contributor

Hi @atvrider, the settings dialog has been reworked with pull request #6779. It now uses layouts and the default font size of the application/system. @zonkmachine has posted a very nice side-by-side comparison in this comment.

Can you please check with a recent build if your issue has been resolved?

@michaelgregorius
Copy link
Contributor

Closing this issue due to the changes made in pull request #6779. Please reopen it if there is something missing.

@deadhitter1
Copy link

Why is it so hard to add font settings?
I don't like to use the same text size for every program and I frequently adjust based on my needs.
This one program has me squinting when I want to just relax, write and read.
It's a program that deals with this level of tech and it doesn't even have a simple settings menu

@michaelgregorius
Copy link
Contributor

@deadhitter1, there are currently two types of GUI elements used in LMMS:

  • Elements that are implemented in a scalable way. These can adjust to different font sizes and often use font sizes that are defined in the style sheet.
  • Elements that are not implemented in a scalable way. These are used in hard-coded layouts with hard-coded font sizes which are often defined in pixel sizes.

The latter will scale with the global scaling factor that's configured for the desktop environment. Implementing these in a scalable way is a rather large undertaking because for each element it must be checked where it is used in the GUI and the corresponding layouts must be switched to a flexible layout or at least adjusted to accommodate for the additional space that is needed.

Enabling the setting of an application font size in the setup dialog would likely also mean that the style sheets must be adjusted, i.e. many explicit font sizes would have to be removed.

As you can hopefully see there are several reasons why it's hard to add font settings.

@deadhitter1
Copy link

My apologies, I had too many tabs open and I intended to post this on a different github issue. multitasking late at night
this program has many settings, manual GUI reworks are a pain, I understand completely

@patrickReiis
Copy link

Just make the font size bigger this is terrible, where's the consciousness of the team?

@michaelgregorius
Copy link
Contributor

@patrickReiis, the problem is that LMMS uses hard-coded font sizes and layouts in many places and that these are not easily adjusted. You can find more information in this comment: #6185 (comment)

Simple example

Here's a simple example that might let some people understand better why adjusting the font sizes is not an easy task. LMMS' own combo box implementation is used in several places and is one of the elements that sets its font size to a hard coded value. It's size is set in pixels here:

setFont(adjustedToPixelSize(font(), 10));

So let's look what it would look like if we wanted to increase the font size to 24 by just changing the 10 to 24. Here's the result:

6185-JustIncreaseTheFontSize

Ooops, that just increased the font size and nothing else because the widget does not take the current font size into account when it paints all its other elements.

One line above the setting of the font size the (fixed) height of the combo box is set:

setFixedHeight( ComboBox::DEFAULT_HEIGHT );

So let's look what happens if we increase this to 50 to make the height somewhat match the font size again (ratios are: 10/22, 24/50). The result now looks as follows:

6185-FontSizeAndWidgetSizeAdjusted

This shows that the painting code more or less expects the height to be 22 because the pixmap does not scale accordingly. The changes also break the layouts of the GUI elements where the combo box is used.

There are many more home-brewn widgets like the combo box (just search for adjustedToPixelSize in the current code) and they will likely all exhibit similar problems when they are adjusted as shown above.

Cause of the problems

One of the problems is that these widgets should not have been implemented from scratch with insufficient scalability but rather should have inherited from existing Qt widgets, e.g. QComboBox, and then should have been extended and styled accordingly. Qt widgets already know how to scale and I can imagine that it's quite some effort for them to get this right.

The code should also have used more Qt layouts instead of hard coding the positions of things. This would somewhat prevent the breakage of layouts when the sizes of individual elements change.

Help appreciated

@patrickReiis, if you are a developer your help will be greatly appreciated. If you are not a developer please stop telling developers what's easy and what's not ("Just make the font size bigger [...]").

@patrickReiis
Copy link

I understand that it's not an easy task because the code started wrong, and if something starts wrong it's logically impossible to finish right.

What I'm trying to say is the following:
Imagine a planet made entirely of gold.
Can you see the planet? No, it's too far
Can you smell the planet? No, gold doesn't have smell
Can you arrive in the planet? No, it's too far
Can you touch it? No
Do you know the planet exists? Yes

So, what is the point of having a gigantic planet made entirely of gold if you can't interact with it? This is the problem with LMMS, the software is gold, but I can't see it.

So, what I ask is that the CEO or the manager or whoever has control over this, to stop building features, fixing bugs, and put all men power to fix this font issue.
Is it a hard task? Yes
Will it take a lot of time? Yes
But that's the backbone of any application, to actually see what is in the screen. We are in 2024.

I'd like to help, but I don't have the sufficient knowledge (despite being a developer myself).

@michaelgregorius
Copy link
Contributor

So, what I ask is that the CEO or the manager or whoever has control over this, to stop building features, fixing bugs, and put all men power to fix this font issue.

There is no CEO or manager in this project. From what I get it's more of a bunch of people who work on different things that interest them. I am not on the Discord server though, so I don't really know if some more coordination is organized there or if some sort of organization can be recognized there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants