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

PR: Improve how menus are rendered and fix graphical errors related to them (UI) #21511

Merged
merged 35 commits into from
Dec 7, 2023

Conversation

ccordoba12
Copy link
Member

@ccordoba12 ccordoba12 commented Nov 10, 2023

Description of Changes

  • UI changes:

    • Add padding around menu items.
    • Use the same colors for the hovered and pressed states of menu items as those used for buttons.
    • Change icons size in menus to make them look good per OS.
    • Add more space between menus in the menu bar.
    • Fix showing icons and shortcuts for regular menus on Mac and add a test for it.
    • Make the IPython console Print dialog follow the style of our app.
    • Set selected state of our svg icons to fix some visual glitches related to that.
  • Other changes:

    • Replace most instances of QMenu by SpyderMenu.
    • Move menu to open consoles in environments to be in the Consoles main menu.
    • Use our API to build the ShellWidget context menu.
    • Rename MainWidgetMenu to PluginMainWidgetOptionsMenu for clarity
    • Remove hacks related to menus for old PyQt versions and the old API.

Before

image

After

image

Issue(s) Resolved

Fixes #21326.
Fixes #15659.

Affirmation

By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct:

@ccordoba12 ccordoba12 added this to the v6.0alpha3 milestone Nov 10, 2023
@ccordoba12 ccordoba12 self-assigned this Nov 10, 2023
@ccordoba12 ccordoba12 changed the title PR: Improve how our menus are rendered (UI) PR: Improve how menus are rendered (UI) Nov 10, 2023
@pep8speaks
Copy link

pep8speaks commented Nov 10, 2023

Hello @ccordoba12! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻

Comment last updated at 2023-11-14 00:10:59 UTC

@ccordoba12 ccordoba12 force-pushed the improve-menus-ui branch 5 times, most recently from 559d859 to d49324d Compare November 11, 2023 00:15
@ccordoba12 ccordoba12 changed the title PR: Improve how menus are rendered (UI) PR: Improve how menus are rendered and fix graphical errors related to them (UI) Nov 11, 2023
@ccordoba12 ccordoba12 force-pushed the improve-menus-ui branch 8 times, most recently from 9e45808 to 0998f6e Compare November 14, 2023 00:10
Copy link
Member Author

@ccordoba12 ccordoba12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dalthviz, this is ready for review! I already talked about these changes with the UX team and they agree with them.

I also left several clarifying comments below to make your review easier.

spyder/api/widgets/main_widget.py Show resolved Hide resolved
spyder/api/widgets/menus.py Show resolved Hide resolved
spyder/api/widgets/menus.py Show resolved Hide resolved
spyder/config/gui.py Show resolved Hide resolved
spyder/plugins/completion/api.py Show resolved Hide resolved
spyder/plugins/shortcuts/plugin.py Show resolved Hide resolved
spyder/utils/icon_manager.py Show resolved Hide resolved
spyder/utils/qthelpers.py Show resolved Hide resolved
spyder/plugins/editor/plugin.py Show resolved Hide resolved
@ccordoba12 ccordoba12 requested a review from dalthviz November 14, 2023 17:39
@dalthviz
Copy link
Member

Gave this a quick look and noticed a couple of things (at least on Windows):

  • Seems like the menus curved borders leave a black space in the menu corners:

image
image

  • Seems like some menus still have the old rect borders style while keeping the new menu items padding/margin (Editor menus, status bar menus, working directory menu and mainwindow menu):

imageimageimageimage

image

image

image

  • When hovering a disable item in a menu, seems like it changes is color (not totally sure if that's intended):

menu_behavior

@ccordoba12
Copy link
Member Author

ccordoba12 commented Nov 21, 2023

Thanks @dalthviz for the review! About your comments:

Seems like the menus curved borders leave a black space in the menu corners

Ok, it seems rounded borders don't work on Windows and perhaps we need to disable them there. @mrclary, could you check if that's the case on Mac too?

Seems like some menus still have the old rect borders style while keeping the new menu items padding/margin (Editor menus, status bar menus, working directory menu and mainwindow menu)

  • Editor menus: That's expected because the editor is not migrated to the new API and these changes only apply for migrated plugins.
  • working directory menu: It seems Qt automatically adds a context menu to comboboxes, which we decided with @conradolandia is not worth to redo it with our API. So, I removed it in PR PR: Add new combobox widgets (API) #21555.
  • status bar menus and mainwindow menu: Great catch! I fixed those issues and more in my last commit by finding all places where we were using QMenu and replacing them by SpyderMenu.

When hovering a disable item in a menu, seems like it changes is color (not totally sure if that's intended)

I can't reproduce this on Linux or my Windows VM. @mrclary, what are you seeing on Mac?

@ccordoba12 ccordoba12 force-pushed the improve-menus-ui branch 2 times, most recently from 2626750 to 0887092 Compare November 26, 2023 02:30
ccordoba12 and others added 20 commits December 5, 2023 15:42
The automatically computed by Qt for that menu is too small.
This fixes a visual glitch for that kind of icons when they are
associated to a plugin and its corresponding entry is selected in
Preferences.
This prevents a memory leak detected by our tests. Specifically, our
consoles couldn't be garbage collected with the previous approach.
That way they could be used by other plugins.
- Those are the menus inside the application, not the ones created by
the MainMenu plugin.
- Showing again shortcuts in those menus was possible thanks to a new
functionality added in Qt 5.10. That allowed us to remove some ugly
hacks we had for that and which were not working.
Also, correctly set disabled state of menu items.
- That enum is IPythonConsoleWidgetMenus.
- That's because several menus are placed in different places, not only
in the console options menu.
- That allows to use our customizations for menus all over the
application.
- I only left the editor menus untouched because that's going to be
addressed when it's migrated to the new API.
- This makes code for the style of those widgets easier to find and
modify.
- This also makes easier to visually spot those menus that don't inherit
from SpyderMenu and instead do it from a plain QMenu.
Also, make menu separators go completely from the left to right border.
- That's because the trick to display them only works on Linux.
- Also, remove unneeded constant.
Also, fix comment that referenced a Github issue.

Co-authored-by: Daniel Althviz Moré <16781833+dalthviz@users.noreply.github.com>
- That forced us to change the signature of create_menu in two places:
PluginMainWidget and SpyderMenuMixin.
- Move code in the overridden method that prevents to add menus with the
same id to SpyderMenuMixin. This means that that check will be available
for any widget that inherits from that mixin, like PluginMainContainer.
- That avoids changing the `reposition` internal attribute of that
class.
- Use this new kwarg to not reposition the Recent projects menu.
- Also, match initial ordering of SpyderMenu signature with the one for
create_menu.
Also, make it run the _set_icons method because it's necessary after
calling render manually. That will also avoid calling _set_icons
externally.
@ccordoba12
Copy link
Member Author

@dalthviz, I addressed the remaining comments in your review in my last five commits like this:

Maybe this [_reposition] should be set by an argument when creating the menu (to prevent having to access a private attribute) or maybe be a public attribute?

I had to do a previous refactoring to make that possible because we had two create_menu methods (a base one in SpyderMenuMixin and the same overridden in PluginMainWidget), which made difficult to add more arguments to it. So, I removed the one in PluginMainWidget first. I also took the opportunity to rename MainWidgetMenu to PluginMainWidgetOptionsMenu for clarity and added to it some improvements from its parent class.

Should this two calls be available from the Spyder menu definition as a public accesible method like SpyderMenu.render_with_icons or SpyderMenu.render_menu

I made SpyderMenu._render public and called _set_icons inside that method so that there's no need to call _set_icons externally.

@ccordoba12
Copy link
Member Author

Besides that, I did a check again locally and I was able to still see the disabled items from a menu to change their color when passing the cursor over them

I forgot about this. I think it's probably caused by an old version of QDarkstyle. So, please remove and reinstall it again, or create a new environment and check if the problem persists on it.

@dalthviz
Copy link
Member

dalthviz commented Dec 7, 2023

I forgot about this. I think it's probably caused by an old version of QDarkstyle. So, please remove and reinstall it again, or create a new environment and check if the problem persists on it.

I recreated my dev env from scratch and seems like the problem persists 🤔

Checking it says that I have QDarkStyle 3.2 and PyQt 5.15.9. Are there more recent version than those ones or maybe is there any other package that could be affecting the menu colors when hovering disabled items?

Just in case, my conda list output:

# packages in environment at C:\Users\dalth\anaconda3\envs\spyder-dev:
#
# Name                    Version                   Build  Channel
alabaster                 0.7.13             pyhd8ed1ab_0    conda-forge
arrow                     1.3.0              pyhd8ed1ab_0    conda-forge
astroid                   3.0.1           py310h5588dad_0    conda-forge
asttokens                 2.4.1              pyhd8ed1ab_0    conda-forge
atomicwrites              1.4.1              pyhd8ed1ab_0    conda-forge
attrs                     23.1.0             pyh71513ae_1    conda-forge
autopep8                  2.0.4              pyhd8ed1ab_0    conda-forge
babel                     2.13.1             pyhd8ed1ab_0    conda-forge
bcrypt                    4.1.1           py310h87d50f1_0    conda-forge
beautifulsoup4            4.12.2             pyha770c72_0    conda-forge
binaryornot               0.4.4                      py_1    conda-forge
black                     23.11.0         py310h5588dad_0    conda-forge
bleach                    6.1.0              pyhd8ed1ab_0    conda-forge
brotli                    1.1.0                hcfcfb64_1    conda-forge
brotli-bin                1.1.0                hcfcfb64_1    conda-forge
brotli-python             1.1.0           py310h00ffb61_1    conda-forge
bzip2                     1.0.8                hcfcfb64_5    conda-forge
ca-certificates           2023.11.17           h56e8100_0    conda-forge
certifi                   2023.11.17         pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py310h8d17308_0    conda-forge
chardet                   5.2.0           py310h5588dad_1    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
click                     8.1.7           win_pyh7428d3b_0    conda-forge
cloudpickle               3.0.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
comm                      0.1.4              pyhd8ed1ab_0    conda-forge
contourpy                 1.2.0           py310h232114e_0    conda-forge
cookiecutter              2.5.0              pyhca7485f_0    conda-forge
coverage                  7.3.2           py310h8d17308_0    conda-forge
cryptography              41.0.7          py310hb1f9477_1    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
cython                    3.0.6           py310h00ffb61_0    conda-forge
debugpy                   1.8.0           py310h00ffb61_1    conda-forge
decorator                 5.1.1              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
diff-match-patch          20230430           pyhd8ed1ab_0    conda-forge
dill                      0.3.7              pyhd8ed1ab_0    conda-forge
docstring-to-markdown     0.13               pyhd8ed1ab_0    conda-forge
docutils                  0.20.1          py310h5588dad_3    conda-forge
entrypoints               0.4                pyhd8ed1ab_0    conda-forge
exceptiongroup            1.2.0              pyhd8ed1ab_0    conda-forge
executing                 2.0.1              pyhd8ed1ab_0    conda-forge
flake8                    6.1.0              pyhd8ed1ab_0    conda-forge
flaky                     3.7.0              pyh9f0ad1d_0    conda-forge
fonttools                 4.46.0          py310h8d17308_0    conda-forge
freetype                  2.12.1               hdaf720e_2    conda-forge
fzf                       0.44.1               hd02998f_0    conda-forge
gettext                   0.21.1               h5728263_0    conda-forge
glib                      2.78.2               h12be248_0    conda-forge
glib-tools                2.78.2               h12be248_0    conda-forge
gst-plugins-base          1.22.7               h001b923_0    conda-forge
gstreamer                 1.22.7               hb4038d2_0    conda-forge
icu                       72.1                 h63175ca_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
imagesize                 1.4.1              pyhd8ed1ab_0    conda-forge
importlib-metadata        7.0.0              pyha770c72_0    conda-forge
importlib_metadata        7.0.0                hd8ed1ab_0    conda-forge
importlib_resources       6.1.1              pyhd8ed1ab_0    conda-forge
inflection                0.5.1              pyh9f0ad1d_0    conda-forge
iniconfig                 2.0.0              pyhd8ed1ab_0    conda-forge
intel-openmp              2023.2.0         h57928b3_50497    conda-forge
intervaltree              3.1.0              pyhd8ed1ab_1    conda-forge
ipykernel                 6.26.0             pyha63f2e9_0    conda-forge
ipython                   8.18.1             pyh7428d3b_3    conda-forge
isort                     5.12.0             pyhd8ed1ab_1    conda-forge
jaraco.classes            3.3.0              pyhd8ed1ab_0    conda-forge
jedi                      0.19.1             pyhd8ed1ab_0    conda-forge
jellyfish                 1.0.3           py310h87d50f1_0    conda-forge
jinja2                    3.1.2              pyhd8ed1ab_1    conda-forge
jsonschema                4.20.0             pyhd8ed1ab_0    conda-forge
jsonschema-specifications 2023.11.2          pyhd8ed1ab_0    conda-forge
jupyter_client            8.6.0              pyhd8ed1ab_0    conda-forge
jupyter_core              5.5.0           py310h5588dad_0    conda-forge
jupyterlab_pygments       0.3.0              pyhd8ed1ab_0    conda-forge
keyring                   24.3.0          py310h5588dad_0    conda-forge
kiwisolver                1.4.5           py310h232114e_1    conda-forge
krb5                      1.20.1               heb0366b_0    conda-forge
lcms2                     2.15                 he9d350c_2    conda-forge
lerc                      4.0.0                h63175ca_0    conda-forge
libblas                   3.9.0              20_win64_mkl    conda-forge
libbrotlicommon           1.1.0                hcfcfb64_1    conda-forge
libbrotlidec              1.1.0                hcfcfb64_1    conda-forge
libbrotlienc              1.1.0                hcfcfb64_1    conda-forge
libcblas                  3.9.0              20_win64_mkl    conda-forge
libclang                  16.0.6          default_hde6756a_3    conda-forge
libclang13                16.0.6          default_h85b4d89_3    conda-forge
libdeflate                1.19                 hcfcfb64_0    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libglib                   2.78.2               h16e383f_0    conda-forge
libiconv                  1.17                 h8ffe710_0    conda-forge
libjpeg-turbo             2.1.5.1              hcfcfb64_1    conda-forge
liblapack                 3.9.0              20_win64_mkl    conda-forge
libogg                    1.3.4                h8ffe710_1    conda-forge
libpng                    1.6.39               h19919ed_0    conda-forge
libsodium                 1.0.18               h8d14728_1    conda-forge
libspatialindex           1.9.3                h39d44d4_4    conda-forge
libsqlite                 3.44.2               hcfcfb64_0    conda-forge
libtiff                   4.6.0                h4554b19_1    conda-forge
libvorbis                 1.3.7                h0e60522_0    conda-forge
libwebp                   1.3.2                hcfcfb64_1    conda-forge
libwebp-base              1.3.2                hcfcfb64_0    conda-forge
libxcb                    1.15                 hcd874cb_0    conda-forge
libxml2                   2.12.2               hc3477c8_0    conda-forge
libzlib                   1.2.13               hcfcfb64_5    conda-forge
m2w64-gcc-libgfortran     5.3.0                         6    conda-forge
m2w64-gcc-libs            5.3.0                         7    conda-forge
m2w64-gcc-libs-core       5.3.0                         7    conda-forge
m2w64-gmp                 6.1.0                         2    conda-forge
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    conda-forge
markdown-it-py            3.0.0              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.3           py310h8d17308_1    conda-forge
matplotlib                3.8.2           py310h5588dad_0    conda-forge
matplotlib-base           3.8.2           py310hc9baf74_0    conda-forge
matplotlib-inline         0.1.6              pyhd8ed1ab_0    conda-forge
mccabe                    0.7.0              pyhd8ed1ab_0    conda-forge
mdurl                     0.1.0              pyhd8ed1ab_0    conda-forge
mistune                   3.0.2              pyhd8ed1ab_0    conda-forge
mkl                       2023.2.0         h6a75c08_50497    conda-forge
more-itertools            10.1.0             pyhd8ed1ab_0    conda-forge
mpmath                    1.3.0              pyhd8ed1ab_0    conda-forge
msys2-conda-epoch         20160418                      1    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
mypy_extensions           1.0.0              pyha770c72_0    conda-forge
nbclient                  0.8.0              pyhd8ed1ab_0    conda-forge
nbconvert                 7.12.0             pyhd8ed1ab_0    conda-forge
nbconvert-core            7.12.0             pyhd8ed1ab_0    conda-forge
nbconvert-pandoc          7.12.0             pyhd8ed1ab_0    conda-forge
nbformat                  5.9.2              pyhd8ed1ab_0    conda-forge
nest-asyncio              1.5.8              pyhd8ed1ab_0    conda-forge
numpy                     1.26.2          py310hf667824_0    conda-forge
numpydoc                  1.5.0              pyhd8ed1ab_0    conda-forge
openjpeg                  2.5.0                h3d672ee_3    conda-forge
openssl                   3.2.0                hcfcfb64_1    conda-forge
packaging                 23.2               pyhd8ed1ab_0    conda-forge
pandas                    2.1.3           py310hecd3228_0    conda-forge
pandoc                    3.1.3                h57928b3_0    conda-forge
pandocfilters             1.5.0              pyhd8ed1ab_0    conda-forge
paramiko                  3.3.1              pyhd8ed1ab_0    conda-forge
parso                     0.8.3              pyhd8ed1ab_0    conda-forge
pathspec                  0.11.2             pyhd8ed1ab_0    conda-forge
pcre2                     10.42                h17e33f8_0    conda-forge
pexpect                   4.8.0              pyh1a96a4e_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    10.0.1          py310h6abe1ea_1    conda-forge
pip                       23.3.1             pyhd8ed1ab_0    conda-forge
pkgutil-resolve-name      1.3.10             pyhd8ed1ab_1    conda-forge
platformdirs              4.1.0              pyhd8ed1ab_0    conda-forge
pluggy                    1.3.0              pyhd8ed1ab_0    conda-forge
ply                       3.11                       py_1    conda-forge
prompt-toolkit            3.0.41             pyha770c72_0    conda-forge
psutil                    5.9.5           py310h8d17308_1    conda-forge
pthread-stubs             0.4               hcd874cb_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pure_eval                 0.2.2              pyhd8ed1ab_0    conda-forge
py                        1.11.0             pyh6c4a22f_0    conda-forge
pycodestyle               2.11.1             pyhd8ed1ab_0    conda-forge
pyconify                  0.1.6              pyhd8ed1ab_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pydocstyle                6.3.0              pyhd8ed1ab_0    conda-forge
pyflakes                  3.1.0              pyhd8ed1ab_0    conda-forge
pygments                  2.17.2             pyhd8ed1ab_0    conda-forge
pylint                    3.0.2              pyhd8ed1ab_0    conda-forge
pylint-venv               3.0.3              pyhd8ed1ab_0    conda-forge
pyls-spyder               0.4.0              pyhd8ed1ab_0    conda-forge
pynacl                    1.5.0           py310h635b8f1_3    conda-forge
pyparsing                 3.1.1              pyhd8ed1ab_0    conda-forge
pyqt                      5.15.9          py310h1fd54f2_5    conda-forge
pyqt5-sip                 12.12.2         py310h00ffb61_5    conda-forge
pyqtwebengine             5.15.9          py310he49db7d_5    conda-forge
pysocks                   1.7.1              pyh0701188_6    conda-forge
pytest                    6.2.5           py310h5588dad_3    conda-forge
pytest-cov                4.1.0              pyhd8ed1ab_0    conda-forge
pytest-lazy-fixture       0.6.3                      py_0    conda-forge
pytest-mock               3.12.0             pyhd8ed1ab_0    conda-forge
pytest-order              1.0.1              pyhd8ed1ab_0    conda-forge
pytest-qt                 4.2.0              pyhd8ed1ab_0    conda-forge
pytest-timeout            2.2.0              pyhd8ed1ab_0    conda-forge
python                    3.10.13         h4de0772_0_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python-fastjsonschema     2.19.0             pyhd8ed1ab_0    conda-forge
python-lsp-black          1.3.0              pyhd8ed1ab_0    conda-forge
python-lsp-jsonrpc        1.1.2              pyhd8ed1ab_0    conda-forge
python-lsp-server         1.9.0              pyhd8ed1ab_0    conda-forge
python-lsp-server-base    1.9.0              pyhd8ed1ab_0    conda-forge
python-slugify            8.0.1              pyhd8ed1ab_2    conda-forge
python-tzdata             2023.3             pyhd8ed1ab_0    conda-forge
python_abi                3.10                    4_cp310    conda-forge
pytoolconfig              1.2.5              pyhd8ed1ab_0    conda-forge
pytz                      2023.3.post1       pyhd8ed1ab_0    conda-forge
pyuca                     1.2                        py_1    conda-forge
pywin32                   306             py310h00ffb61_2    conda-forge
pywin32-ctypes            0.2.2           py310h5588dad_1    conda-forge
pyyaml                    6.0.1           py310h8d17308_1    conda-forge
pyzmq                     25.1.2          py310h2849c00_0    conda-forge
qdarkstyle                3.2                pyhd8ed1ab_0    conda-forge
qstylizer                 0.2.2              pyhd8ed1ab_0    conda-forge
qt-main                   5.15.8              h2c8576c_12    conda-forge
qt-webengine              5.15.8               h5b1ea0b_0    conda-forge
qtawesome                 1.2.3              pyhd8ed1ab_0    conda-forge
qtconsole                 5.6.0.dev0                dev_0    <develop>
qtpy                      2.4.1              pyhd8ed1ab_0    conda-forge
referencing               0.31.1             pyhd8ed1ab_0    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
rich                      13.7.0             pyhd8ed1ab_0    conda-forge
rope                      1.11.0             pyhd8ed1ab_1    conda-forge
rpds-py                   0.13.2          py310h87d50f1_0    conda-forge
rtree                     1.1.0           py310h1cbd46b_0    conda-forge
scipy                     1.11.4          py310hf667824_0    conda-forge
setuptools                68.2.2             pyhd8ed1ab_0    conda-forge
sip                       6.7.12          py310h00ffb61_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snowballstemmer           2.2.0              pyhd8ed1ab_0    conda-forge
sortedcontainers          2.4.0              pyhd8ed1ab_0    conda-forge
soupsieve                 2.5                pyhd8ed1ab_1    conda-forge
sphinx                    7.2.6              pyhd8ed1ab_0    conda-forge
sphinxcontrib-applehelp   1.0.7              pyhd8ed1ab_0    conda-forge
sphinxcontrib-devhelp     1.0.5              pyhd8ed1ab_0    conda-forge
sphinxcontrib-htmlhelp    2.0.4              pyhd8ed1ab_0    conda-forge
sphinxcontrib-jsmath      1.0.1              pyhd8ed1ab_0    conda-forge
sphinxcontrib-qthelp      1.0.6              pyhd8ed1ab_0    conda-forge
sphinxcontrib-serializinghtml 1.1.9              pyhd8ed1ab_0    conda-forge
spyder                    6.0.0.dev0                dev_0    <develop>
spyder-kernels            3.0.0.dev0                dev_0    <develop>
stack_data                0.6.2              pyhd8ed1ab_0    conda-forge
superqt                   0.6.1              pyh9208f05_0    conda-forge
sympy                     1.12               pyh04b8f61_3    conda-forge
tbb                       2021.7.0             h91493d7_0    conda-forge
text-unidecode            1.3                pyhd8ed1ab_1    conda-forge
textdistance              4.5.0              pyhd8ed1ab_0    conda-forge
three-merge               0.1.1              pyh9f0ad1d_0    conda-forge
tinycss2                  1.2.1              pyhd8ed1ab_0    conda-forge
tk                        8.6.13               h5226925_1    conda-forge
toml                      0.10.2             pyhd8ed1ab_0    conda-forge
tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
tomlkit                   0.12.3             pyha770c72_0    conda-forge
tornado                   6.3.3           py310h8d17308_1    conda-forge
traitlets                 5.14.0             pyhd8ed1ab_0    conda-forge
types-python-dateutil     2.8.19.14          pyhd8ed1ab_0    conda-forge
typing-extensions         4.8.0                hd8ed1ab_0    conda-forge
typing_extensions         4.8.0              pyha770c72_0    conda-forge
tzdata                    2023c                h71feb2d_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
ujson                     5.8.0           py310h00ffb61_0    conda-forge
unicodedata2              15.1.0          py310h8d17308_0    conda-forge
urllib3                   2.1.0              pyhd8ed1ab_0    conda-forge
vc                        14.3                h64f974e_17    conda-forge
vc14_runtime              14.36.32532         hdcecf7f_17    conda-forge
vs2015_runtime            14.36.32532         h05e6639_17    conda-forge
watchdog                  3.0.0           py310h5588dad_1    conda-forge
wcwidth                   0.2.12             pyhd8ed1ab_0    conda-forge
webencodings              0.5.1              pyhd8ed1ab_2    conda-forge
whatthepatch              1.0.5              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
win_inet_pton             1.1.0              pyhd8ed1ab_6    conda-forge
xorg-libxau               1.0.11               hcd874cb_0    conda-forge
xorg-libxdmcp             1.1.3                hcd874cb_0    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge
yaml                      0.2.5                h8ffe710_2    conda-forge
yapf                      0.40.1             pyhd8ed1ab_0    conda-forge
zeromq                    4.3.5                h63175ca_0    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zstd                      1.5.5                h12be248_0    conda-forge

Maybe in your dev env @ccordoba12 this is not happening due to having QDarkStyle installed using pip or in editable mode? Maybe pushing forward QDarkStyle 3.2.3 over the feedstock could help with this?

@ccordoba12
Copy link
Member Author

I recreated my dev env from scratch and seems like the problem persists 🤔

That's really odd, but to fix it for sure I pushed another commit to set on our side the color of disabled items not only when they are selected.

So, please test again. I think the problem should be fixed now.

@dalthviz
Copy link
Member

dalthviz commented Dec 7, 2023

That's really odd, but to fix it for sure I pushed another commit to set on our side the color of disabled items not only when they are selected.

So, please test again. I think the problem should be fixed now.

Yep, that did the trick 👍

Copy link
Member

@dalthviz dalthviz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ccordoba12 !

Edit: I had to rerun the Files tests checks since the first attempt failed due to a segfault (not sure if is worthy to investigate) but with the rerun they are passing so I'm approving this

Edit 2: Rerunned Linux Python 3.8 pip slow job due to timeout too

@dalthviz dalthviz merged commit df5c5bd into spyder-ide:master Dec 7, 2023
14 checks passed
@ccordoba12 ccordoba12 deleted the improve-menus-ui branch December 7, 2023 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants