#6936 closed defect (fixed)
SpinBox Return keys forwarded to command line
Reported by: | Tristan Croll | Owned by: | pett |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | UI | Version: | |
Keywords: | Cc: | chimerax-programmers | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Windows-10-10.0.19041 ChimeraX Version: 1.4rc202205111743 (2022-05-11 17:43:38 UTC) Description Typed a value into a `QDoubleSpinBox` in the new ISOLDE GUI (while docked in the side panel); when I pressed return on that it also executed the current command in the command line. Log: > isolde shorthand Initialising ISOLDE-specific command aliases: Alias Equivalent full command ------------------------------------------------- st isolde step {arguments} aw isolde add water {arguments} awsf isolde add water {arguments} sim false al isolde add ligand {arguments} aa isolde add aa $1 sel {arguments} ht isolde mod his sel {arguments} so setattr sel atoms occupancy {arguments} ab isolde adjust bfactors {arguments} ss isolde sim start sel rt isolde release torsions sel {arguments} rd isolde release distances sel {arguments} ra rd; rt pf isolde pepflip sel cf isolde cisflip sel cbb color bfactor {arguments} cbo color byattr occupancy {arguments} cbc color {arguments} bychain; color {arguments} byhet cs clipper set contourSensitivity {arguments} UCSF ChimeraX version: 1.4rc202205111743 (2022-05-11) © 2016-2022 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > isolde demo crystal_intro > set selectionWidth 4 before.pdb title: Crystal structure of etub from clostridium kluyveri [more info...] Chain information for before.pdb #1 --- Chain | Description | UniProt A | predicted microcompartment protein | A5N734_CLOK5 before.pdb title: Crystal structure of etub from clostridium kluyveri [more info...] Chain information for before.pdb --- Chain | Description | UniProt 1.2/A | predicted microcompartment protein | A5N734_CLOK5 WARNING: multiple experimental reflection datasets found: (dataset) FOBS, SIGFOBS, (dataset) IOBS, SIGIOBS, (dataset) DANO, SIGDANO, (dataset) F(+), SIGF(+), F(-), SIGF(-), (dataset) I(+), SIGI(+), I(-), SIGI(-) Automatically choosing "(dataset) FOBS, SIGFOBS". Opened (LIVE) 2mFo-DFc as #1.1.1.2, grid size 36,36,34, pixel 0.723, shown at level 0.303, step 1, values float32 Opened (LIVE) mFo-DFc as #1.1.1.3, grid size 36,36,34, pixel 0.723, shown at level -0.0575,0.0575, step 1, values float32 Opened (LIVE) 2mFo-DFc_sharp_29 as #1.1.1.4, grid size 36,36,34, pixel 0.723, shown at level 0.603, step 1, values float32 ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side chains... ISOLDE: Corrected atom nomenclature of 12 residues in model #1.2 to IUPAC-IUB standards. Opened (LIVE) MDFF potential as #1.1.1.5, grid size 36,36,34, pixel 0.723, shown at level 0.366, step 1, values float32 Loaded crystallographic demo: PDB ID 3io0 > isolde sim start sel ISOLDE: started sim > select clear > isolde demo crystal_intro before.pdb title: Crystal structure of etub from clostridium kluyveri [more info...] Chain information for before.pdb #2 --- Chain | Description | UniProt A | predicted microcompartment protein | A5N734_CLOK5 before.pdb title: Crystal structure of etub from clostridium kluyveri [more info...] Chain information for before.pdb --- Chain | Description | UniProt 2.2/A | predicted microcompartment protein | A5N734_CLOK5 WARNING: multiple experimental reflection datasets found: (dataset) FOBS, SIGFOBS, (dataset) IOBS, SIGIOBS, (dataset) DANO, SIGDANO, (dataset) F(+), SIGF(+), F(-), SIGF(-), (dataset) I(+), SIGI(+), I(-), SIGI(-) Automatically choosing "(dataset) FOBS, SIGFOBS". Opened (LIVE) 2mFo-DFc as #2.1.1.2, grid size 36,36,34, pixel 0.723, shown at level 0.303, step 1, values float32 Opened (LIVE) mFo-DFc as #2.1.1.3, grid size 36,36,34, pixel 0.723, shown at level -0.0567,0.0567, step 1, values float32 Opened (LIVE) 2mFo-DFc_sharp_29 as #2.1.1.4, grid size 36,36,34, pixel 0.723, shown at level 0.603, step 1, values float32 Loaded crystallographic demo: PDB ID 3io0 > close #2 Deleting Crystallographic maps (3io0-sf.mtz) Deleting (LIVE) 2mFo-DFc Deleting (LIVE) mFo-DFc Deleting (LIVE) 2mFo-DFc_sharp_29 > isolde demo crystal_intro before.pdb title: Crystal structure of etub from clostridium kluyveri [more info...] Chain information for before.pdb #2 --- Chain | Description | UniProt A | predicted microcompartment protein | A5N734_CLOK5 before.pdb title: Crystal structure of etub from clostridium kluyveri [more info...] Chain information for before.pdb --- Chain | Description | UniProt 2.2/A | predicted microcompartment protein | A5N734_CLOK5 WARNING: multiple experimental reflection datasets found: (dataset) FOBS, SIGFOBS, (dataset) IOBS, SIGIOBS, (dataset) DANO, SIGDANO, (dataset) F(+), SIGF(+), F(-), SIGF(-), (dataset) I(+), SIGI(+), I(-), SIGI(-) Automatically choosing "(dataset) FOBS, SIGFOBS". Opened (LIVE) 2mFo-DFc as #2.1.1.2, grid size 36,36,34, pixel 0.723, shown at level 0.303, step 1, values float32 Opened (LIVE) mFo-DFc as #2.1.1.3, grid size 36,36,34, pixel 0.723, shown at level -0.0572,0.0572, step 1, values float32 Opened (LIVE) 2mFo-DFc_sharp_29 as #2.1.1.4, grid size 36,36,34, pixel 0.723, shown at level 0.603, step 1, values float32 Loaded crystallographic demo: PDB ID 3io0 > close #2 Deleting Crystallographic maps (3io0-sf.mtz) Deleting (LIVE) 2mFo-DFc Deleting (LIVE) mFo-DFc Deleting (LIVE) 2mFo-DFc_sharp_29 > isolde sim pause > isolde sim resume > isolde sim pause OpenGL version: 3.3.0 NVIDIA 497.29 OpenGL renderer: NVIDIA GeForce RTX 2080/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation Python: 3.9.11 Locale: en_GB.cp1252 Qt version: PyQt6 6.3.0, Qt 6.3.0 Qt runtime version: 6.3.0 Qt platform: windows Manufacturer: Notebook Model: P7xxTM1 OS: Microsoft Windows 10 Education (Build 19041) Memory: 68,654,501,888 MaxProcessMemory: 137,438,953,344 CPU: 16 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz OSLanguage: en-GB Installed Packages: -: imerax-isolde -.imerax-isolde: 1.4.dev0 -himerax-isolde: 1.4.dev0 -imerax-isolde: 1.4.dev0 alabaster: 0.7.12 appdirs: 1.4.4 Babel: 2.10.1 backcall: 0.2.0 blockdiag: 3.0.0 certifi: 2021.10.8 cftime: 1.6.0 charset-normalizer: 2.0.12 ChimeraX-AddCharge: 1.2.3 ChimeraX-AddH: 2.1.11 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2.1 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.4.3 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.0.2 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.39.1 ChimeraX-AtomicLibrary: 7.0 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.1 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.1.1 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.7 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.1 ChimeraX-ButtonPanel: 1.0 ChimeraX-CageBuilder: 1.0 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.2 ChimeraX-ChemGroup: 2.0 ChimeraX-Clashes: 2.2.4 ChimeraX-Clipper: 0.18.0 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.1 ChimeraX-CommandLine: 1.2.3 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.4rc202205111743 ChimeraX-CoreFormats: 1.1 ChimeraX-coulombic: 1.3.2 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0 ChimeraX-DataFormats: 1.2.2 ChimeraX-Dicom: 1.1 ChimeraX-DistMonitor: 1.1.5 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ExperimentalCommands: 1.0 ChimeraX-FileHistory: 1.0 ChimeraX-FunctionKey: 1.0 ChimeraX-Geometry: 1.2 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.1 ChimeraX-Hbonds: 2.1.2 ChimeraX-Help: 1.2 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.1 ChimeraX-ImageFormats: 1.2 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-ISOLDE: 1.4.dev0 ChimeraX-ItemsInspection: 1.0 ChimeraX-Label: 1.1.1 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.5 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.1 ChimeraX-Map: 1.1 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0 ChimeraX-MapFilter: 2.0 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.1 ChimeraX-Markers: 1.0 ChimeraX-Mask: 1.0 ChimeraX-MatchMaker: 2.0.6 ChimeraX-MDcrds: 2.6 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.7 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.5.5 ChimeraX-ModelPanel: 1.3.2 ChimeraX-ModelSeries: 1.0 ChimeraX-Mol2: 2.0 ChimeraX-Morph: 1.0 ChimeraX-MouseModes: 1.1 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nucleotides: 2.0.2 ChimeraX-OpenCommand: 1.9 ChimeraX-PDB: 2.6.6 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.2 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1 ChimeraX-PubChem: 2.1 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-ResidueFit: 1.0 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 2.0.1 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.5 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.6 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0 ChimeraX-Shortcuts: 1.1 ChimeraX-ShowAttr: 1.0 ChimeraX-ShowSequences: 1.0 ChimeraX-SideView: 1.0 ChimeraX-Smiles: 2.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.8 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.0.1 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0 ChimeraX-SwapAA: 2.0 ChimeraX-SwapRes: 2.1.1 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.1.1 ChimeraX-ToolshedUtils: 1.2.1 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.18.2 ChimeraX-uniprot: 2.2 ChimeraX-UnitCell: 1.0 ChimeraX-ViewDockX: 1.1.2 ChimeraX-VIPERdb: 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.1.0 ChimeraX-Zone: 1.0 colorama: 0.4.4 comtypes: 1.1.10 cxservices: 1.2 cycler: 0.11.0 Cython: 0.29.26 debugpy: 1.6.0 decorator: 5.1.1 docutils: 0.17.1 entrypoints: 0.4 filelock: 3.4.2 fonttools: 4.33.3 funcparserlib: 1.0.0 grako: 3.16.5 h5py: 3.6.0 html2text: 2020.1.16 idna: 3.3 ihm: 0.27 imagecodecs: 2021.11.20 imagesize: 1.3.0 ipykernel: 6.6.1 ipython: 7.31.1 ipython-genutils: 0.2.0 jedi: 0.18.1 Jinja2: 3.0.3 jupyter-client: 7.1.0 jupyter-core: 4.10.0 kiwisolver: 1.4.2 line-profiler: 3.4.0 lxml: 4.7.1 lz4: 3.1.10 MarkupSafe: 2.1.1 matplotlib: 3.5.1 matplotlib-inline: 0.1.3 msgpack: 1.0.3 nest-asyncio: 1.5.5 netCDF4: 1.5.8 networkx: 2.6.3 numexpr: 2.8.1 numpy: 1.22.1 openvr: 1.16.802 packaging: 21.3 ParmEd: 3.4.3 parso: 0.8.3 pickleshare: 0.7.5 Pillow: 9.0.1 pip: 21.3.1 pkginfo: 1.8.2 prompt-toolkit: 3.0.29 psutil: 5.9.0 pycollada: 0.7.2 pydicom: 2.2.2 Pygments: 2.11.2 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 3.0.9 PyQt6-commercial: 6.3.0 PyQt6-Qt6: 6.3.0 PyQt6-sip: 13.3.1 PyQt6-WebEngine-commercial: 6.3.0 PyQt6-WebEngine-Qt6: 6.3.0 python-dateutil: 2.8.2 pytz: 2022.1 pywin32: 303 pyzmq: 22.3.0 qtconsole: 5.3.0 QtPy: 2.1.0 RandomWords: 0.3.0 requests: 2.27.1 scipy: 1.7.3 setuptools: 59.8.0 sfftk-rw: 0.7.2 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 Sphinx: 4.3.2 sphinx-autodoc-typehints: 1.15.2 sphinxcontrib-applehelp: 1.0.2 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 1.0.2 sphinxcontrib-htmlhelp: 2.0.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.3 sphinxcontrib-serializinghtml: 1.1.5 suds-community: 1.0.0 tables: 3.7.0 tifffile: 2021.11.2 tinyarray: 1.2.4 tornado: 6.1 traitlets: 5.2.0 urllib3: 1.26.9 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.37.1 wheel-filename: 1.3.0 WMI: 1.5.1
Change History (8)
comment:1 by , 3 years ago
Component: | Unassigned → UI |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → accepted |
Summary: | ChimeraX bug report submission → SpinBox Return keys forwarded to command line |
comment:2 by , 3 years ago
Cc: | added |
---|
follow-up: 4 comment:4 by , 3 years ago
I'd be inclined to put this fix in the daily build (ChimeraX 1.5) and not in ChimeraX 1.4. Our plan was to release 1.4 this week so fixes for rare problems should probably not go in.
comment:5 by , 3 years ago
Looks like something I could easily patch specifically into ISOLDE's GUI for the time being.
comment:6 by , 3 years ago
Okay, daily build only it is then.
Tristan, I don't think it will be easy for you to use the approach in the diff, because that is in code "above" your tool code, where the Return key has made its way to the surrounding ToolWindow and it's deciding whether to forward it on to the command line. I mean it's possible, it's just that there's a couple simpler / more direct approaches.
One is to use a chimerax.ui.options.FloatOption instead of a QDoubleSpinBox directly. Most ChimeraX interfaces use options instead of input widgets directly which is why it took this long to notice that QSpinBox suffers from the same problem as QLineEdit and QComboBox. The value of the option is its .value attribute. Options are designed to be laid out vertically in two columns: one labels, and one widgets. Containers to handle option layout are in chimerax.ui.options.containers.
If learning/using options is just to much at this stage, you could use the same approach that FloatOption uses to prevent the Return key from propagating: override the event() method. Looks at the NZDoubleSpinBox embedded class in chimerax.ui.options.options.py .
comment:7 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Okay, fix committed to daily build
comment:8 by , 3 years ago
For the time being I've just overridden the event
method as per your suggestion. The options approach definitely looks like something I should pay attention to - but I'd like to get this current effort finished and released first, and there is still a lot to sort out.