epasveer / seer

Seer - a gui frontend to gdb
GNU General Public License v3.0
2.12k stars 69 forks source link

Add an internal Dark and Light style. #226

Closed epasveer closed 6 months ago

epasveer commented 7 months ago

People have mentioned there's no easy way to have a "dark" mode in Seer. I have found this project that will enable "dark" and "light" styles to be internal in Seer. This means Seer is not reliant of the distro for these. Of course Seer will pickup styles that are present on the system.

https://github.com/ColinDuquesnoy/QDarkStyleSheet/

epasveer commented 7 months ago

Seer will now add "light" and "dark" styles. These come from the QDarkStyleSheet project. They will be listed first. The other styles in the list are ones that are internal to Qt itself or are present on your system.

image

epasveer commented 7 months ago

Here's a screenshot of the dark mode. Make sure to set the editor's config page to use "dark" mode, as that it handled separately. Also remember to save the configuration changes with: Settings -> Save Configuration..."

image

epasveer commented 7 months ago

If you get into trouble and want to "reset" the style back to the original one, it's easiest to edit Seer's config file that is on disk.

$ vim ~/.config/seergdb/seergdb.conf 
...
[mainwindow]
qtstyle=dark    <--- remove this line!!!
size=@Size(1875 1134)
...
epasveer commented 7 months ago

Hi https://github.com/Gussak

You may want to try this branch to see if it's any easier way to get "dark" mode working for you.

Gussak commented 7 months ago

here is the new styles on ubuntu22.04 for: Version 2.4beta (Qt6.2.4)
scrot-4styles

PS.: I found that if I have patience, it will show the full stack trace after a long time (60s). I wonder if SeerGDB could show in "seer output" log what it is trying to do in these 60s and the full time HH:MM:SS (may be just MM:SS) for each entry, so we know it is working (and not frozen nor crashed internally as the application buttons are still clickable) and trying to prepare the full call stack and we just need to wait. After some time we will know how long it takes (60s for now) and if we should continue waiting or just restart everything.

epasveer commented 7 months ago

worked thx! (mixed also the "terminal output" and "edit code file" patches w/o problems)

Good to hear!

but I am unable to lower the width of the side panels,

I don't think I can do anything with the minimum width of the left and right side panels. There are certain UI components that prevent it from getting any thinner.

(the editor line numbers are also very big)

You can select a smaller font in the Editor config page. However, it sounds like your terminal is on the small side of things??

There is also a minor glitch when selecting the editor text dark mode on the drop down combo box,

I noticed that too. It's a "bug" in the QDarkStyleSheet code that I used from that project. I noticed they have a Issue report for it but it hasn't been fixed. I may attempt to fix it and send them a Pull Request.

epasveer commented 7 months ago

PS.: I found that if I have patience, it will show the full stack trace after a long time (60s).

Is this for the initial stack frame? Is the response okay afterwards?

For debugging purposes, you can set this first before starting Seer. It will print a lot of information to the console.

$ export QT_LOGGING_RULES="default.debug=false;seer.gdbmonitor.debug=true"
Gussak commented 7 months ago

I will try QT_LOGGING_RULES as soon I go back to developing the projects.

If I am not wrong, it shows stack frames faster after that, but I am still curious why/how it could take 60s to show it initially? could be a QT bug too?

I think the minimum width of the left and right side panels are being forced too high values because of the interface font that is big everywhere (menus, tab names etc). So, if I could tweak these fonts to be barely readable it would fix the problem I guess. I wonder if some GTK_THEME could work?

epasveer commented 7 months ago

I don't think it's Qt. It's either gdb itself or my Seer code.

To test this, try debugging your program with just gdb.

$ gdb myprogram
(gdb) break main
(gdb) run  <program's arguments>
(gdb) info sources
(gdb) info threads
(gdb) bt
(gdb)

These are basically the steps that Seer does when it starts debugging a program. If you see the same 60s delay to any of the steps, that will help diagnosing the problem.

epasveer commented 7 months ago

On the matter of the left/right panels. I tweaked some things to allow them to shrink further.

It's in this branch:

https://github.com/epasveer/seer/tree/226-add-an-internal-dark-and-light-style

epasveer commented 7 months ago

There is also a minor glitch when selecting the editor text dark mode on the drop down combo box,

Grab the latest from that branch. I found a fix for this problem.

epasveer commented 7 months ago

I've merged the fixes for this PR into main.

epasveer commented 6 months ago

Closing task. Can be reopened if needed.