View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000636 | FreeCAD | Bug | public | 2012-03-13 14:07 | 2012-04-04 08:35 |
Reporter | pperisin | Assigned To | wmayer | ||
Priority | normal | Severity | trivial | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 0.12 | ||||
Fixed in Version | 0.13 | ||||
Summary | 0000636: Two documents close | ||||
Description | Hi, I'm building FreeCAD on OpenSUSE. There is a problem on close document. It seems that document close is being executed twice, so he closes two documents, if there is another doc on the right side. I do not understand why. Also, after he does this, screen looks weird, and in order to get it to appear normal I need to Regards Petar | ||||
Additional Information | opensuse 12.1 build 0751 GIT | ||||
Tags | No tags attached. | ||||
FreeCAD Information | |||||
has duplicate | 0000760 | closed | Closing a file closes other files |
2012-03-13 14:11
|
|
2012-03-13 14:12
|
|
2012-03-13 14:12
|
|
2012-03-13 14:12
|
|
|
on pictures are test cases: 1 - shows which document I want to close 2 - shows what happens after the click - the document you wanted to close and the first one on the right side closes next is the case you have if 3 docs are opened, and you want to close second one. 3 - shows the case 4 - shows how the remaining doc looks like now. Regards, Petar |
|
I can't confirm this, here all seems to work fine. But you last image looks very much like an OpenGL problem? What system are you running on? Does it have 3D driver installed? Which one? |
|
Opensuse 32bit. NVidia propritary drivers installed. It seems to me like QT problem - is it maybe that? Regards, Petar |
|
Is HW acceleration activated? |
|
I have no idea where to turn that on :-) All I know is that I have added repo and installed propriate drivers of NVidia, and also on boot when opensuse screen is shown, for shot time NVidia logo appears. I think it means that is on. Regards, Petar |
|
openSUSE 12.1 x64 FreeCAD Version: 0.13.0768 (Git) Branch: master Hash: 5ca9ca11117873212cab6f17a0e97c9048f84f7c I have the same problem. Also I have a problem when I open the script, left documents are closing. 1. Create three documents 2. Open first script, third document will close 3. Open second script, second document will close |
|
It is so good when you are not the only one with the issue :-) |
|
Mhh, really wired bug! Since the tab management is mostly Qt, there seams to be a different behavior in the OpenSuse Qt package to other platforms. Or again a grave side effect of the 3D acceleration (as mostly). |
|
On Fedora 16 Qt 4.5 git commit 405e640c282edb97eb764122fc4ee87e9f5f0910 I also see the odd behavior when closing tabs. (not the video artifacts, however) If there is a document tab to the right of the tab to be closed, that document will also be closed. The log will show: Log: Sel : Clear selection Log: Sel : Clear selection Closing the file in the File->Close menu option works properly. A slightly different example: FreeCAD is launched, Start Page is displayed (in the only/left tab). Ppen a work document and make some changes. Click X to close the Start Page Tab and will be prompted to ask about saving the work document. I do not see the problem with Version: 0.13.0674 (Git) Branch: master Hash: 6a77635bdbb0fea476ab268234bea8d0cbe9506c Ubuntu 10.04 (Qt 4.6.2) |
|
According to the last posting we have different behaviour with different Qt versions. So, to me this doesn't sound like a FreeCAD bug but rather a Qt bug maybe in combination with the window manager of the Fedore/openSuse system. I'm using Windows + the Ubuntu versions 10.04 -- 11.10 and for none of them I have this behaviour. |
|
On the fedora build there is another apparently related behavior. Create a new document, click the X to close its tab, you are prompted to save the document, don't save or cancel. Select cancel and the same document save dialog will be presented a second time. It looks like an OnClose event handler is being triggered twice when a tab is closed, though file close works normallly. |
|
Hm that would indeed explain while the other document gets closed. It would be interesting to see if the same behaviour occurs in other Qt apps that have closeable tabs... |
|
Do you know any other that kind of application. I can try to install it and see... |
|
Try installing arora (web browser) or dolphin (kde file manager), both have tabs... If they work, I'll have a look at their source code to see if they make tabs a different way... |
|
Hi Yorik, I have tried both, and they do not seem to have this issue. Regards Petar |
|
IMO it's not a direct Qt issue but again related to some OpenGL glitches. |
2012-04-02 06:58
|
|
|
Attached you find the file mdi.zip. You can build the test application with: qmake mdi.pro (or qmake-qt4 mdi.pro) make ./mdi |
|
I have also tried to make two tabs be differrent length, to se if mouse click event is being executed twice. If they are the same length tabs and mouse click event was executed twice, boith would be closed. It looks like it is not the problem, so it is not issue with mouse click event. if one has much longer name than another one, both are closed. Regards Petar |
|
Werner, yup, it closes two tabs, also. (MDI example you made) Regards, Petar |
|
Hi, It looks like PyQT/PySide bug http://code.google.com/p/spyderlib/issues/detail?id=813 Regards Petar |
|
No, this can't be a PyQt/PySide bug because the test application uses only C++ Qt, nothing else. OK, that's good that the test application confirms the issue. So, to proceed whether it's related to an OpenGL issue you can slightly modify the source code. Replace this line: setCentralWidget(new QGLWidget(this)); with e.g. setCentralWidget(new QTextEdit(this)); If it still happens then it's a general Qt bug. |
|
I have installed an Ubuntu Precise which uses Qt 4.8.0 and this has exactly the same problem. For further testing I can play with my little test application. My guess is that the QTabBar fires the signal tabCloseRequested() twice. So, a workaround could be to start a timer and if the signal is emitted twice within e.g. 1 second then the latter one will be ignored. |
|
tabCloseRequested() is emitted only once per click. Apparently Qt 4.8 (or earlier) has changed its behaviour. With older versions one had to explicitly connect the tabCloseRequested() signal to a slot function and do the close oneself. But now Qt does it on its own. So, the solution is simple: do not connect the tabCloseRequested() signal for a newer Qt version. Now the question is for which Qt version? Petar, what Qt version do you have? |
|
This behavior is present on Fedora 16, which is also using Qt 4.8. My other linux with freecad is Ubuntu 10.04. That uses Qt 4.6 and the tab closing works normally. Sorry that I can't report on qt 4.7. |
|
Ubuntu 11.10 uses Qt 4.7.4 and there the issue is not shown. So, after all it seems that the new behaviour was introduced with Qt 4.8 |
|
git e89a93467c08192f9652653a061c146ca56c2d04 solves the issue. |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-03-13 14:07 | pperisin | New Issue | |
2012-03-13 14:11 | pperisin | File Added: 1.png | |
2012-03-13 14:12 | pperisin | File Added: 2.png | |
2012-03-13 14:12 | pperisin | File Added: 3.png | |
2012-03-13 14:12 | pperisin | File Added: 4.png | |
2012-03-13 14:15 | pperisin | Note Added: 0001764 | |
2012-03-13 21:43 | yorik | Note Added: 0001770 | |
2012-03-14 13:30 | pperisin | Note Added: 0001774 | |
2012-03-17 10:36 | wmayer | Note Added: 0001786 | |
2012-03-17 20:27 | pperisin | Note Added: 0001788 | |
2012-03-17 20:27 | pperisin | Note Edited: 0001788 | |
2012-03-18 15:32 | ivanzero | Note Added: 0001789 | |
2012-03-18 18:42 | pperisin | Note Added: 0001790 | |
2012-03-19 20:25 |
|
Note Added: 0001798 | |
2012-03-20 03:32 | djreichel | Note Added: 0001801 | |
2012-03-20 07:57 | wmayer | Note Added: 0001802 | |
2012-03-25 00:36 | djreichel | Note Added: 0001810 | |
2012-03-25 00:41 | yorik | Note Added: 0001811 | |
2012-03-25 11:42 | pperisin | Note Added: 0001813 | |
2012-03-25 13:12 | yorik | Note Added: 0001814 | |
2012-03-25 13:13 | yorik | Note Edited: 0001814 | |
2012-03-30 05:03 | pperisin | Note Added: 0001834 | |
2012-04-02 05:51 | wmayer | Note Added: 0001847 | |
2012-04-02 06:58 | wmayer | File Added: mdi.zip | |
2012-04-02 07:00 | wmayer | Note Added: 0001848 | |
2012-04-02 07:07 | pperisin | Note Added: 0001850 | |
2012-04-02 10:03 | pperisin | Note Added: 0001851 | |
2012-04-02 10:04 | pperisin | Note Edited: 0001851 | |
2012-04-02 10:23 | pperisin | Note Added: 0001852 | |
2012-04-02 17:08 | wmayer | Note Added: 0001865 | |
2012-04-02 17:22 | wmayer | Note Added: 0001866 | |
2012-04-02 17:35 | wmayer | Note Added: 0001867 | |
2012-04-03 15:52 | djreichel | Note Added: 0001873 | |
2012-04-03 19:36 | wmayer | Note Added: 0001877 | |
2012-04-03 19:44 | wmayer | Note Added: 0001878 | |
2012-04-03 19:44 | wmayer | Status | new => resolved |
2012-04-03 19:44 | wmayer | Fixed in Version | => 0.13 |
2012-04-03 19:44 | wmayer | Resolution | open => fixed |
2012-04-03 19:44 | wmayer | Assigned To | => wmayer |
2012-04-04 08:35 | wmayer | Status | resolved => closed |
2012-06-25 06:40 | wmayer | Relationship added | has duplicate 0000760 |