Repository: spyder-ide/spyder

Issue:
Editor tabs min. width too small when many tabs
## Description

### What steps will reproduce the problem?

<!--- You can use Markdown here --->

when many source code tabs are used, the tabs are so small that ist is not possible to see what is in the tabs. Some have only one or two characters following by three dots, e.g. "t...". It is interesting, that some tabs are wider than others, so some have also three to five characters. That's very hard to work with. Please could you increase the min width of the tabs and being also more constant not to vary from tab to tab.



## Versions

* Spyder version: 5.3.2 1172bb467 (standalone)
* Python version: 3.9.5 64-bit
* Qt version: 5.15.2
* PyQt5 version: 5.15.7
* Operating System: Darwin 21.6.0

### Dependencies

```
# Mandatory:
atomicwrites >=1.2.0                 :  1.4.1 (OK)
chardet >=2.0.0                      :  5.0.0 (OK)
cloudpickle >=0.5.0                  :  2.1.0 (OK)
cookiecutter >=1.6.0                 :  2.1.1 (OK)
diff_match_patch >=20181111          :  20200713 (OK)
intervaltree >=3.0.2                 :  3.1.0 (OK)
IPython >=7.31.1;<8.0.0              :  7.34.0 (OK)
jedi >=0.17.2;<0.19.0                :  0.18.1 (OK)
jellyfish >=0.7                      :  0.9.0 (OK)
jsonschema >=3.2.0                   :  4.7.2 (OK)
keyring >=17.0.0                     :  23.6.0 (OK)
nbconvert >=4.0                      :  6.5.0 (OK)
numpydoc >=0.6.0                     :  1.4.0 (OK)
parso >=0.7.0;<0.9.0                 :  0.8.3 (OK)
pexpect >=4.4.0                      :  4.8.0 (OK)
pickleshare >=0.4                    :  0.7.5 (OK)
psutil >=5.3                         :  5.9.1 (OK)
pygments >=2.0                       :  2.12.0 (OK)
pylint >=2.5.0;<3.0                  :  2.14.4 (OK)
pyls_spyder >=0.4.0                  :  0.4.0 (OK)
pylsp >=1.5.0;<1.6.0                 :  1.5.0 (OK)
pylsp_black >=1.2.0                  :  1.2.1 (OK)
qdarkstyle >=3.0.2;<3.1.0            :  3.0.3 (OK)
qstylizer >=0.1.10                   :  0.2.1 (OK)
qtawesome >=1.0.2                    :  1.1.1 (OK)
qtconsole >=5.3.0;<5.4.0             :  5.3.1 (OK)
qtpy >=2.1.0                         :  2.1.0 (OK)
rtree >=0.9.7                        :  1.0.0 (OK)
setuptools >=49.6.0                  :  63.1.0 (OK)
sphinx >=0.6.6                       :  5.0.2 (OK)
spyder_kernels >=2.3.2;<2.4.0        :  2.3.2 (OK)
textdistance >=4.2.0                 :  4.3.0 (OK)
three_merge >=0.1.1                  :  0.1.1 (OK)
watchdog >=0.10.3                    :  2.1.9 (OK)
zmq >=22.1.0                         :  23.2.0 (OK)

# Optional:
cython >=0.21                        :  0.29.30 (OK)
matplotlib >=3.0.0                   :  3.5.2 (OK)
numpy >=1.7                          :  1.22.4 (OK)
pandas >=1.1.1                       :  1.4.3 (OK)
scipy >=0.17.0                       :  1.8.1 (OK)
sympy >=0.7.3                        :  1.10.1 (OK)

# Spyder plugins:
spyder_terminal.terminalplugin 1.2.2 :  1.2.2 (OK)
```



Discussion:
Here's a screenshot:
<img width="652" alt="Bildschirmfoto 2022-07-25 um 16 06 46" src="https://user-images.githubusercontent.com/70489149/180797146-afaa5954-e149-4fe8-943d-4232dbc949b0.png">

Hi @raymanP thank you for the feedback! I was able to reproduce this on MacOS. Seems like there the style of the tab widget is not being responsive to the length available (the tabs should not do an ellipsis but the tab bar should show arrows to scroll to extra tabs). Just in case as a preview of the behaviors on Mac (which I would say is incorrect) and Windows (which I would say is the correct one):

## On MacOS

![imagen](https://user-images.githubusercontent.com/16781833/181298247-f380f5d8-a6ed-4c2a-aa11-235aeeb78aa0.png)

## On Windows

![imagen](https://user-images.githubusercontent.com/16781833/181298171-b1b01305-1432-46e2-8d87-7ecb4a004f23.png)

Yes, now I also observed, that also on Linux the tabs are like for Windows displayed correctly. It seems only macOS has this behavior.
Thanks for checking!

Resolving patch:
diff --git a/spyder/widgets/tabs.py b/spyder/widgets/tabs.py
--- a/spyder/widgets/tabs.py
+++ b/spyder/widgets/tabs.py
@@ -12,9 +12,7 @@
 # pylint: disable=R0201
 
 # Standard library imports
-import os
 import os.path as osp
-import sys
 
 # Third party imports
 from qtpy import PYQT5
@@ -245,6 +243,9 @@ def __init__(self, parent, actions=None, menu=None,
                  corner_widgets=None, menu_use_tooltips=False):
         QTabWidget.__init__(self, parent)
         self.setUsesScrollButtons(True)
+        # Needed to prevent eliding tabs text on MacOS
+        # See spyder-ide/spyder#18817
+        self.setElideMode(Qt.ElideNone)
         self.tabBar().setObjectName('pane-tabbar')
 
         self.corner_widgets = {}


Test patch: