Opened 5 years ago

Closed 3 years ago

#4267 closed defect (fixed)

Problem docking ISOLDE widget

Reported by: david.lawson@… Owned by: Tristan Croll
Priority: normal Milestone:
Component: Window Toolkit Version:
Keywords: Cc: Eric Pettersen, Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.18362
ChimeraX Version: 1.1 (2020-09-09 22:22:27 UTC)
Description
I had a samll issue with the ISOLDE widget not docking properly into the log panel. Basically I couldn't see the other tabs at the bottom. After some playing about I found that changing my screen resolution from the recommended 3840x2160 to 2560-1600 resolved this. Tristan Croll suggested that I submit this as a bug report.

Log:
UCSF ChimeraX version: 1.1 (2020-09-09)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open https://www.rbvi.ucsf.edu/chimerax/tutorials.html

Opened https://www.rbvi.ucsf.edu/chimerax/tutorials.html  

> isolde demo cryo_em_intro modelOnly true startIsolde false

6out.pdb title:  
Asymmetric focused reconstruction of human norovirus gi.1 norwalk strain VLP
asymmetric unit In T=3 symmetry [more info...]  
  
Chain information for 6out.pdb #1  
---  
Chain | Description  
A B C | capsid protein VP1  
  
Loaded cryo-EM demo: PDB ID 6out, EMDB ID 20205  

> open 20205 fromDatabase emdb

Opened emd_20205.map, grid size 98,112,104, pixel 1.07,1.07,1.07, shown at
level 0.287, step 1, values float32  

> set bgColor white

> clipper associate #2 toModel #1

6out.pdb title:  
Asymmetric focused reconstruction of human norovirus gi.1 norwalk strain VLP
asymmetric unit In T=3 symmetry [more info...]  
  
Chain information for 6out.pdb  
---  
Chain | Description  
1.2/A 1.2/B 1.2/C | capsid protein VP1  
  

> isolde start

> set selectionWidth 4

Done loading forcefield  

> ui dockable false ISOLDE

> ui dockable true ISOLDE




OpenGL version: 3.3.0 NVIDIA 451.67
OpenGL renderer: GeForce RTX 2070 with Max-Q Design/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: ASUSTeK COMPUTER INC.
Model: ROG Zephyrus M15 GU502LW_GU502LW
OS: Microsoft Windows 10 Enterprise (Build 18363)
Memory: 16,951,808,000
MaxProcessMemory: 137,438,953,344
CPU: 12 Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz"
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.9
Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    Babel: 2.8.0
    backcall: 0.2.0
    blockdiag: 2.0.1
    certifi: 2020.6.20
    chardet: 3.0.4
    ChimeraX-AddH: 2.1.3
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.1
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.6.1
    ChimeraX-AtomSearch: 2.0
    ChimeraX-AxesPlanes: 2.0
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 1.0.1
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.0
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.0
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.1
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.0
    ChimeraX-Clipper: 0.15.0
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-CommandLine: 1.1.3
    ChimeraX-ConnectStructure: 2.0
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.1
    ChimeraX-CoreFormats: 1.0
    ChimeraX-coulombic: 1.0.1
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-DataFormats: 1.0
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1
    ChimeraX-DistUI: 1.0
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0
    ChimeraX-FunctionKey: 1.0
    ChimeraX-Geometry: 1.1
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.0
    ChimeraX-Hbonds: 2.0
    ChimeraX-Help: 1.0
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.0
    ChimeraX-ImageFormats: 1.0
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0
    ChimeraX-ISOLDE: 1.1.0
    ChimeraX-Label: 1.0
    ChimeraX-ListInfo: 1.0
    ChimeraX-Log: 1.1.1
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Map: 1.0.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.0
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 1.1
    ChimeraX-MDcrds: 2.0
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.0
    ChimeraX-mmCIF: 2.2
    ChimeraX-MMTF: 2.0
    ChimeraX-Modeller: 1.0
    ChimeraX-ModelPanel: 1.0
    ChimeraX-ModelSeries: 1.0
    ChimeraX-Mol2: 2.0
    ChimeraX-Morph: 1.0
    ChimeraX-MouseModes: 1.0
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0
    ChimeraX-OpenCommand: 1.2.1
    ChimeraX-PDB: 2.1
    ChimeraX-PDBBio: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.0
    ChimeraX-PubChem: 2.0
    ChimeraX-Read-Pbonds: 1.0
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.0
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.2
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SeqView: 2.2
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.0
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.0
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.0.4
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-Struts: 1.0
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.0
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.0
    ChimeraX-ToolshedUtils: 1.0
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.2.3
    ChimeraX-uniprot: 2.0
    ChimeraX-ViewDockX: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0
    ChimeraX-WebServices: 1.0
    ChimeraX-Zone: 1.0
    colorama: 0.4.3
    comtypes: 1.1.7
    cxservices: 1.0
    cycler: 0.10.0
    Cython: 0.29.20
    decorator: 4.4.2
    distlib: 0.3.1
    docutils: 0.16
    filelock: 3.0.12
    funcparserlib: 0.3.6
    gdcm: 2.8.8
    grako: 3.16.5
    h5py: 2.10.0
    html2text: 2020.1.16
    idna: 2.10
    ihm: 0.16
    imagecodecs: 2020.5.30
    imagecodecs-lite: 2020.1.31
    imagesize: 1.2.0
    ipykernel: 5.3.0
    ipython: 7.15.0
    ipython-genutils: 0.2.0
    jedi: 0.17.2
    Jinja2: 2.11.2
    jupyter-client: 6.1.3
    jupyter-core: 4.6.3
    kiwisolver: 1.2.0
    line-profiler: 2.1.2
    lxml: 4.5.1
    MarkupSafe: 1.1.1
    matplotlib: 3.2.1
    msgpack: 1.0.0
    netifaces: 0.10.9
    networkx: 2.4
    numexpr: 2.7.1
    numpy: 1.18.5+mkl
    numpydoc: 1.0.0
    openvr: 1.12.501
    packaging: 20.4
    parso: 0.7.1
    pickleshare: 0.7.5
    Pillow: 7.1.2
    pip: 20.2.2
    pkginfo: 1.5.0.1
    prompt-toolkit: 3.0.7
    psutil: 5.7.0
    pycollada: 0.7.1
    pydicom: 2.0.0
    Pygments: 2.6.1
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 2.4.7
    PyQt5-commercial: 5.12.3
    PyQt5-sip: 4.19.19
    PyQtWebEngine-commercial: 5.12.1
    python-dateutil: 2.8.1
    pytz: 2020.1
    pywin32: 228
    pyzmq: 19.0.2
    qtconsole: 4.7.4
    QtPy: 1.9.0
    RandomWords: 0.3.0
    requests: 2.24.0
    scipy: 1.4.1
    setuptools: 49.4.0
    sfftk-rw: 0.6.6.dev0
    six: 1.15.0
    snowballstemmer: 2.0.0
    sortedcontainers: 2.2.2
    Sphinx: 3.1.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 2.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 1.0.3
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.4
    suds-jurko: 0.6
    tables: 3.6.1
    tifffile: 2020.6.3
    tinyarray: 1.2.2
    tornado: 6.0.4
    traitlets: 5.0.4
    urllib3: 1.25.10
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.34.2
    WMI: 1.5.1

Attachments (6)

isolde_docked.png (1.1 MB ) - added by Tom Goddard 5 years ago.
isolde_4kdisp.png (18.9 KB ) - added by Tom Goddard 5 years ago.
3840x2160_version2.PNG (1.7 MB ) - added by david.lawson@… 5 years ago.
Added by email2trac
3840x2160_version1.PNG (1.8 MB ) - added by david.lawson@… 5 years ago.
Added by email2trac
2560x1600.PNG (1006.2 KB ) - added by david.lawson@… 5 years ago.
Added by email2trac
2560x1600_100pc.PNG (1.2 MB ) - added by david.lawson@… 5 years ago.
Added by email2trac

Change History (15)

comment:1 by Eric Pettersen, 5 years ago

Cc: Tom Goddard added
Component: UnassignedWindow Toolkit
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionProblem docking ISOLDE widget

This seems like the type of problem that could be resolved by improvements in the Qt toolkit. We will have to see if this behavior is improved once ISOLDE works with the next version of ChimeraX, which uses Qt 5.15, as opposed to the current version, which uses 5.12.

comment:2 by Eric Pettersen, 5 years ago

Cc: Eric Pettersen added; Tom Goddard removed
Owner: changed from Eric Pettersen to Tom Goddard
Status: acceptedassigned

Reassigning to Tom, since I don't have a Windows box to test on.

by Tom Goddard, 5 years ago

Attachment: isolde_docked.png added

by Tom Goddard, 5 years ago

Attachment: isolde_4kdisp.png added

comment:3 by Tom Goddard, 5 years ago

Cc: Tristan Croll added

Docking ISOLDE on top of Log and Models in ChimeraX 1.1 on Windows 10 on a 4K display at 3840 x 2160 with 200% scaling worked fine for me. The tabs displayed and worked correctly. Test was with an external 4K TV which extended the laptop display. I have attached a screen capture showing the correct appearance and display settings.

So there is something else usual about the user's system causing the problem. The user could send a screen capture showing the problem.

I agree with Eric that if the tabs don't work it is a Qt problem. ChimeraX 1.1 uses Qt 5.12 while our daily builds use Qt 5.15. But ISOLDE is not available for daily builds so I will not be able to test that.

comment:4 by Tom Goddard, 5 years ago

One other thought is that the ISOLDE panel is very tall. It won't dock at all if the ChimeraX window is not sufficiently tall. But maybe the Qt bug is where the window is not quite tall enough but it allows it to dock anyways. In that case making the window taller might fix it.

comment:5 by Tristan Croll, 5 years ago

Just to make sure we're talking about the same thing here... There are two different scenarios when docking a widget (like ISOLDE) into the right panel: it drops "on top of" an existing widget (that widget stays in place, and is shaded a darker colour before you drop the new one; afterwards you get a tabbed widget allowing you to switch back and forth between them), or it pushes all the other widgets up and/or down to make a new space for itself. I have found that things get a bit weird in the latter scenario when the total of the minimum heights of all widgets exceeds the screen height. On my dual-screen Linux system with ChimeraX maximised on one screen, the ChimeraX window jumps to the other screen - and when returned "home" the bottom of the window (including the command line) is pushed off the bottom of the screen until I shrink and re-maximise it. These days I tend to keep the Log, Models and ISOLDE panel all stacked into a single tabbed widget to reduce the incidence of that (still happens occasionally when I open multiple volumes or sequence viewer instances).

in reply to:  8 comment:6 by david.lawson@…, 5 years ago

Hi All,

I am using the full screen for chimera. I attach 4 screenshots. It does seem to be something to do with the height of the ISOLDE window because I can’t access the buttons at the bottom when in the high resolution setting (2 and 3 below):
(1) 2560x1600 - chimera and ISOLDE started at this screen resolution
(2) 3840x2160_version1 - the above session switched to this resolution
(3) 3840x2160_version2 -  same as (2) after closing and reopening ISOLDE

I have seen both (2) and (3) when I start chimera and ISOLDE at 3840x2160, which is the recommended resolution for my laptop. Incidentally, I can't get the ISOLDE widget to dock by simply dropping it onto the log panel - I have to double-click on the top bar of the ISOLDE widget. Also I do have it enabled as a dockable tool.  

Then just now I had a play with the "scale and layout". The recommended setting is 200%. If I set it to 100% I get:
(4) 2560x1600_100pc - everything fits nicely - I can even dock the tutorial documentation. On the plus side I get a nice big graphics window. On the minus side, the text and icons are pretty small.  

Hope this helps

Dave

-------------------------------
 
Prof. David M. Lawson
Department of Biological Chemistry,
John Innes Centre,
Norwich,
NR4 7UH, UK.
Tel: +44-(0)1603-450725
Web: https://www.jic.ac.uk/people/david-lawson 
Email: david.lawson@jic.ac.uk

-----Original Message-----
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> 
Sent: 19 February 2021 08:51
Cc: David Lawson (JIC) <david.lawson@jic.ac.uk>; goddard@cgl.ucsf.edu; pett@cgl.ucsf.edu; tic20@cam.ac.uk
Subject: Re: [ChimeraX] #4267: Problem docking ISOLDE widget

#4267: Problem docking ISOLDE widget
-------------------------------------+-------------------------
          Reporter:  david.lawson@…  |      Owner:  Tom Goddard
              Type:  defect          |     Status:  assigned
          Priority:  normal          |  Milestone:
         Component:  Window Toolkit  |    Version:
        Resolution:                  |   Keywords:
        Blocked By:                  |   Blocking:
Notify when closed:                  |   Platform:  all
           Project:  ChimeraX        |
-------------------------------------+-------------------------

Comment (by Tristan Croll):

 Just to make sure we're talking about the same thing here... There are two  different scenarios when docking a widget (like ISOLDE) into the right
 panel: it drops "on top of" an existing widget (that widget stays in  place, and is shaded a darker colour before you drop the new one;  afterwards you get a tabbed widget allowing you to switch back and forth  between them), or it pushes all the other widgets up and/or down to make a  new space for itself. I have found that things get a bit weird in the  latter scenario when the total of the minimum heights of all widgets  exceeds the screen height. On my dual-screen Linux system with ChimeraX  maximised on one screen, the ChimeraX window jumps to the other screen -  and when returned "home" the bottom of the window (including the command
 line) is pushed off the bottom of the screen until I shrink and re-  maximise it. These days I tend to keep the Log, Models and ISOLDE panel  all stacked into a single tabbed widget to reduce the incidence of that  (still happens occasionally when I open multiple volumes or sequence  viewer instances).

--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4267#comment:5>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

3840x2160_version2.PNG

3840x2160_version1.PNG

2560x1600.PNG

2560x1600_100pc.PNG

by david.lawson@…, 5 years ago

Attachment: 3840x2160_version2.PNG added

Added by email2trac

by david.lawson@…, 5 years ago

Attachment: 3840x2160_version1.PNG added

Added by email2trac

by david.lawson@…, 5 years ago

Attachment: 2560x1600.PNG added

Added by email2trac

by david.lawson@…, 5 years ago

Attachment: 2560x1600_100pc.PNG added

Added by email2trac

comment:7 by Tom Goddard, 5 years ago

Cc: Tom Goddard added; Tristan Croll removed
Owner: changed from Tom Goddard to Tristan Croll

Thanks for the screen captures. It seems the problem is simply that the Qt window toolkit does not handle well that the ISOLDE panel is too tall to fit, so sometimes the tabs overlay the ISOLDE controls. Qt knows that ISOLDE does not fit -- that is why it won't let you drag and drop it onto the Log -- there is not enough room. By double clicking the ISOLDE titlebar you somehow get around that but with a bad result.

We aren't going to be able to fix Qt, and I am not even sure what a fix would be, maybe make the ISOLDE panel scroll?

I'd say this problem is primarily an ISOLDE user interface problem. The panel minimum size is too tall. For users with screen scaling set to make text large the panel simply won't fit vertically on the screen whether it is docked or not docked. The solution is the ISOLDE user interface should be improved. I think the current ISOLDE panel is at the limit of maximum reasonable height for most user screen scale settings. But for some user screen settings it is too tall to be usable. Tristan can consider whether the height of the panel should be reduced and how to do it.

in reply to:  14 ; comment:8 by Tristan Croll, 5 years ago

I've been wanting to re-do the ISOLDE interface more-or-less entirely for a long time now - but I'm afraid it's not going to happen until things get a little less crazy...
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: 19 February 2021 19:22
Cc: david.lawson@jic.ac.uk <david.lawson@jic.ac.uk>; goddard@cgl.ucsf.edu <goddard@cgl.ucsf.edu>; pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>; Tristan Croll <tic20@cam.ac.uk>
Subject: Re: [ChimeraX] #4267: Problem docking ISOLDE widget

#4267: Problem docking ISOLDE widget
-------------------------------------+---------------------------
          Reporter:  david.lawson@…  |      Owner:  Tristan Croll
              Type:  defect          |     Status:  assigned
          Priority:  normal          |  Milestone:
         Component:  Window Toolkit  |    Version:
        Resolution:                  |   Keywords:
        Blocked By:                  |   Blocking:
Notify when closed:                  |   Platform:  all
           Project:  ChimeraX        |
-------------------------------------+---------------------------
Changes (by Tom Goddard):

 * cc: Tristan Croll (removed)
 * cc: Tom Goddard (added)
 * owner:  Tom Goddard => Tristan Croll


Comment:

 Thanks for the screen captures.  It seems the problem is simply that the
 Qt window toolkit does not handle well that the ISOLDE panel is too tall
 to fit, so sometimes the tabs overlay the ISOLDE controls.  Qt knows that
 ISOLDE does not fit -- that is why it won't let you drag and drop it onto
 the Log -- there is not enough room.  By double clicking the ISOLDE
 titlebar you somehow get around that but with a bad result.

 We aren't going to be able to fix Qt, and I am not even sure what a fix
 would be, maybe make the ISOLDE panel scroll?

 I'd say this problem is primarily an ISOLDE user interface problem.  The
 panel minimum size is too tall.  For users with screen scaling set to make
 text large the panel simply won't fit vertically on the screen whether it
 is docked or not docked.  The solution is the ISOLDE user interface should
 be improved.  I think the current ISOLDE panel is at the limit of maximum
 reasonable height for most user screen scale settings.  But for some user
 screen settings it is too tall to be usable.  Tristan can consider whether
 the height of the panel should be reduced and how to do it.

--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4267#comment:7>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

comment:9 by Tristan Croll, 3 years ago

Resolution: fixed
Status: assignedclosed

This should be mostly fixed by the new ISOLDE GUI - its minimum height is substantially smaller than the old version. May still occasionally be an issue for very low resolution displays or particularly large display magnification factors.

Note: See TracTickets for help on using tickets.