Leginon usability issue in GNOME Shell: uncloseable window
Added by Jason de la Cruz almost 11 years ago
While using Leginon under Fedora 19 with GNOME3 (of which GNOME Shell is the standard GUI), we've run into a case where a dialog box spawned by Leginon contains no obvious way to exit via mouse click. See attached screenshot. The main window is grayed-out, and actions can only be done on the active window. The only way to cleanly exit the window in this case is to press ALT+F4.
Replies (5)
RE: Leginon usability issue in GNOME Shell: uncloseable window - Added by Anchi Cheng almost 11 years ago
I can see that there are python error message on the terminal. Please forward us that, and the version of Python and wxPython Fedora 19 uses.
RE: Leginon usability issue in GNOME Shell: uncloseable window - Added by Jason de la Cruz almost 11 years ago
Python 2.7.5
wxPython 2.8.12.0-4
Terminal output at time of screenshot:
Leginon version: pre3.0 Exception in thread Thread-71: Traceback (most recent call last): File "/usr/lib64/python2.7/threading.py", line 811, in __bootstrap_inner self.run() File "/usr/lib64/python2.7/threading.py", line 764, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib/python2.7/site-packages/leginon/corrector.py", line 106, in acquireDark imagedata = self.acquireReference(type='dark', channel=channel) File "/usr/lib/python2.7/site-packages/leginon/corrector.py", line 274, in acquireReference refimagedata = self.acquireSeriesAverage(n, type, channel) File "/usr/lib/python2.7/site-packages/leginon/corrector.py", line 215, in acquireSeriesAverage delta = imagearray - avg TypeError: unsupported operand type(s) for -: 'NoneType' and 'float' Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/Corrector.py", line 388, in onClearPixels self.setPlan({'pixels':[]}) File "/usr/lib/python2.7/site-packages/leginon/gui/wx/Corrector.py", line 366, in setPlan self.stbadrowscount.SetLabel(str(len(self.plan['rows']))+' Bad rows') KeyError: 'rows' Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/Corrector.py", line 384, in onGrabPixels self.setPlan({'pixels':pixels}) File "/usr/lib/python2.7/site-packages/leginon/gui/wx/Corrector.py", line 366, in setPlan self.stbadrowscount.SetLabel(str(len(self.plan['rows']))+' Bad rows') KeyError: 'rows' storeMatrix None storeMatrix None storeMatrix None Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 295, in calcp1 p1 = self.node.pixelToPixel(mag2, mag1, p2) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, Nonex Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 308, in calcp2 p2 = self.node.pixelToPixel(mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, Nonex Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 308, in calcp2 p2 = self.node.pixelToPixel(mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, Nonex Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 295, in calcp1 p1 = self.node.pixelToPixel(mag2, mag1, p2) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, Nonex Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 308, in calcp2 p2 = self.node.pixelToPixel(mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, Nonex Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 308, in calcp2 p2 = self.node.pixelToPixel(mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, Nonex Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 295, in calcp1 p1 = self.node.pixelToPixel(mag2, mag1, p2) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, 275x Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 308, in calcp2 p2 = self.node.pixelToPixel(mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, Nonex Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py", line 295, in calcp1 p1 = self.node.pixelToPixel(mag2, mag1, p2) File "/usr/lib/python2.7/site-packages/leginon/matrixcalibrator.py", line 282, in pixelToPixel p2 = stagecal.pixelToPixel(tem, cam, ht, mag1, mag2, p1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 1264, in pixelToPixel matrix1 = self.retrieveMatrix(tem, ccdcamera, par, ht, mag1) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 534, in retrieveMatrix caldata = self.researchMatrix(tem, ccdcamera, caltype, ht, mag, probe) File "/usr/lib/python2.7/site-packages/leginon/calibrationclient.py", line 528, in researchMatrix raise NoMatrixCalibrationError(excstr, state=queryinstance) leginon.calibrationclient.NoMatrixCalibrationError: no matrix for Tecnai, GatanK2Counting, stage position, 300000.0eV, 275x
RE: Leginon usability issue in GNOME Shell: uncloseable window - Added by Anchi Cheng almost 11 years ago
First, none of the error seems directly related to wxPython (the gui toolkit we use to generate Leginon gui). All of these have to do with getting no results from attempt to acquire image/lack of calibration, etc. Therefore they are not helpful for this. Are you having problem even to acquire a raw image?
Second, the version of the python and wxpython has worked in other OS even if not with the same combination (CentOS 6 uses wxPython 2.8.12.0 built for Python 2.6; Ubuntu 12 used wxPython 2.8.12.1 built for Python 2.7; Mac OS 10.9 used wxPython 3.0.03 built for Python 2.7). We don't have a good reason to suspect that it does not work with Fedora 19. If the problem only appears when using GNOME, then I would suggest that you use other desktop flavor.
Instead of testing in Leginon, you can simply run the MatrixCalibrator.py gui matrix editing test. Just do
python /usr/lib/python2.7/site-packages/leginon/gui/wx/MatrixCalibrator.py
It should give something like this:
RE: Leginon usability issue in GNOME Shell: uncloseable window - Added by Jason de la Cruz almost 11 years ago
We have no problem obtaining images; the one on the screen (see screenshot attached) is an unbinned image from the K2 counting mode. Hopefully the errors will cease once the calibrations are complete.
I have run the MatrixCalibrator.py script as you mentioned (see screenshot attached) and it shows the "Test Edit Dialog" without the standard "close" button at top of the window. However, the "Save" and "Cancel" buttons are there, but those were probably hard-coded into the script. The omission of the "close window" button when drawing dialog boxes was probably done by design in GNOME Shell.
We have the KDE Plasma Desktop also installed, and I will test that when I get the chance.
RE: Leginon usability issue in GNOME Shell: uncloseable window - Added by Jason de la Cruz almost 11 years ago
We've confirmed that KDE Plasma desktop does not display the unique window behavior that GNOME has in newer versions of Fedora (see attachment for screenshot). KDE windows act as "normal" (similar to Windows), with minimize/maximize/close buttons and ability to move dialog boxes separate from their parent windows. It is likely that the GNOME behavior is by design; i.e., you should be familiar with the keyboard and mouse shortcuts in GNOME Shell. Otherwise, as Anchi suggested, you can use other desktop environments such as KDE.