View Issue Details

IDProjectCategoryView StatusLast Update
0017384LazarusLCLpublic2010-12-04 09:29
ReporterReinhard Berger Assigned ToZeljan Rikalo  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
Product Version0.9.29 (SVN) 
Summary0017384: Wrong Dialog displayed for TSelectDirectoryDialog in QT
DescriptionVers 0.9.29 displayes in qt the wrong KDE Dialog when calling
"tselectdirectorydialog".

Intead of the direcrtory selection dialog, the fileopen dialog will be called.

TagsNo tags attached.
Fixed in Revision
LazTarget-
WidgetsetQT
Attached Files

Activities

2010-09-10 22:49

 

2010-09-10 22:53

 

Zeljan Rikalo

2010-09-11 10:10

developer   ~0040953

I need more infos:
1.Lazarus svn revision
2.Qt version
3.Did you build qtlcl with -dQTDIALOGS_USES_QT_LOOP ?

Reinhard Berger

2010-09-11 12:37

reporter   ~0040955

Last edited: 2010-09-11 12:39

1.) Lazarus 0.9.29-0-20100621 r FPC 2.4.0 i386-linux-gtk 2 (beta)
2.) QT 4.4.6.3-ubuntu1
3.) I just installed package version of lazarus from the ubuntu 10.04 repositys and downloaded the qt4pas libarys.

I dont have done any builds of qtcls so far.

With older QT Version 4.5.2-0ubuntu1 (as in Karmic 9.10) i didnt even get the KDE Dialogs, instead the QT own ones are displayed.

With QT 4.4.6 the KDE Dialogs are shown.

Zeljan Rikalo

2010-09-11 12:47

developer   ~0040956

This bug is resolved and you are using too old version of lazarus (cannot read svn revision from your post, but 20100621 tells me that's 3 months old trunk).

Vincent Snijders

2010-09-11 13:16

manager   ~0040957

FYI, just this week I noticed, that deb snapshots were not updated. Mazen is currently writing a patch to fix this. So I expect new snapshots in a week or so.

Reinhard Berger

2010-09-11 18:56

reporter   ~0040962

Well it is still not fixed in SVN27309

i just installed lazarus now today from svn and compiled the units with :

LCL_PLATFORM=qt OPT="-dUSE_QT_45 QT_NATIVE_DIALOGS"

Frist of all, the IDE itself uses QT Dialogs instead of KDE.

The compiled project then uses KDE Dialogs, but it still displays the FILEOPEN Dialog instead of the Directory Select Dialog.

Attached a photo with Lazarus about Dialog to see the SVN.

2010-09-11 18:57

 

Zeljan Rikalo

2010-09-11 19:07

developer   ~0040963

Please rebuild IDE again with correct parameters:
LCL_PLATFORM=qt OPT="-dQT_NATIVE_DIALOGS"

Reinhard Berger

2010-09-11 20:34

reporter   ~0040967

Ok this solves the IDE Dialogs, but TSelectdirectory still displays the wrong Dialog.

Zeljan Rikalo

2010-09-11 20:51

developer   ~0040968

Last edited: 2010-09-11 20:52

I see your problem, but I cannot reproduce it here. It simply works fine.
Added an TSelectDirectoryDialog to form, in one button OnClick() added
SelectDirectroyDialog1.Execute and it shows correct dialog (not like yours !).
So I guess that problem is with your distributon qt version.
Here tested on Fedora 13, KDE-4.4.5 qt-4.6.3.
btw. what's opened if you go to Environment->Options->Files and then click button in right of "Lazarus directory" combobox ?

Reinhard Berger

2010-09-11 22:30

reporter   ~0040969

Unfortunaly i switched to KDE 4.5.1 today to see if it's work there, but it seems the QT Bindings does not work well with QT4.7.

Evrytime i try to open a FileDialog the Application/Lazarus IDE crashes.
And on the FPC QT4 Binding Home Page i can't find any newer QT4 bindings yet as this from 18.Jan.2010 wich goes until QT4.6.

Too bad that KDE 4.5.1 must relay on QT4.7.

I'll try to switch back to "older" QT4.5 with KDE 4.4 to see if it works there as espected.

The strange thing is just this , that applications created with Lazarus 0.9.27 still works with my KDE/QT Version correctly, only this created with 0.9.29 doesnt.

Zeljan Rikalo

2010-09-11 22:37

developer   ~0040970

Last edited: 2010-09-11 22:52

That about bindings crash isn't because of qt-4.7, I always build fresh git version of 4.7 (at least once weekly) and it does not crash.
1. To test if it's KDE problem, switch to some other window manager and test lazarus and apps.
2. Problems can be caused by special distribution patches. But it won't hurt if you attach stacktrace of crash.

3.Does it crash without QT_NATIVE_DIALOGS ?

P.S: Note also that qt-4.7 isn't officialy released yet.

Reinhard Berger

2010-09-11 23:43

reporter   ~0040972

Yes, you're right !

It doesnt crash when NOT using QT_NATIVE_DIALOGS.

Lazarus then starts and all (QT) Dialogs works without crash.

Please see attached file with crashlog information if compiled with "NATIVE_DIALOG".

Also now i tested todays svn under ubuntu 10.04 with Qt 4.6.x in virtualbox - this is an old image from April without any fixes applyed and it worked there correctly.

My Hist System is the same version but with all fixes applyed until now, seems one of this fixes breaks this.

In that case i will do a re-install of the OS without any updates to see if then works as it does in virtual box.

2010-09-11 23:44

 

exception_lazarus_directory.txt (1,092 bytes)   
TApplication.HandleException: there was another exception during showing the first exception
  Stack trace:
  $02F4A6FA
  $02FDAB99
  $02FDABE5
  $02DE7167
  $0020C6A3
  $0824FC82  TQTWIDGET__DEINITIALIZEWIDGET,  line 1761 of qtwidgets.pas
  $0824FDAC  TQTWIDGET__DESTROY,  line 1802 of qtwidgets.pas
  $08255165  TQTMAINWINDOW__DESTROY,  line 4725 of qtwidgets.pas
  $0806C162
  $0824FE9E  TQTWIDGET__RELEASE,  line 1839 of qtwidgets.pas
  $0827AE8C  TQTWSCUSTOMFORM__DESTROYHANDLE,  line 233 of qtwsforms.pp
  $081C82E0  TWINCONTROL__DESTROYWND,  line 7541 of ./include/wincontrol.inc
  $081D4E28  TCUSTOMCONTROL__DESTROYWND,  line 68 of ./include/customcontrol.inc
  $080835C8  TCUSTOMFORM__DESTROYWND,  line 2512 of ./include/customform.inc
  $081C39EF  TWINCONTROL__DESTROYHANDLE,  line 5105 of ./include/wincontrol.inc
  $081C5D99  TWINCONTROL__DESTROY,  line 6318 of ./include/wincontrol.inc
  $081D4DCE  TCUSTOMCONTROL__DESTROY,  line 61 of ./include/customcontrol.inc
lazarus.pp - unhandled exception
[FORMS.PP] ExceptionOccurred 
[TMainIDE.Destroy] A 
[FORMS.PP] ExceptionOccurred 

2010-09-11 23:45

 

exception_lazarus_fileopen.txt (703 bytes)   
This happens by clicing File->Open

Note : it works sometimes (onced after compiling)

TApplication.HandleException: there was another exception during showing the first exception
  Stack trace:
  $02FDC3EC
  $02FDCB31
  $02FC7332
  $02FC7C2D
  $02FB6F57
  $02F81746
  $02F87869
  $0065CFEB
  $00671229
  $006773B1
  $02FE4271
  $0097E6A3
  $0824FC82  TQTWIDGET__DEINITIALIZEWIDGET,  line 1761 of qtwidgets.pas
  $0824FDAC  TQTWIDGET__DESTROY,  line 1802 of qtwidgets.pas
  $0806C162
  $0824FE9E  TQTWIDGET__RELEASE,  line 1839 of qtwidgets.pas
  $08276F92  TQTWSWINCONTROL__DESTROYHANDLE,  line 210 of qtwscontrols.pp
[FORMS.PP] ExceptionOccurred 
[TMainIDE.Destroy] A 
[FORMS.PP] ExceptionOccurred 


Zeljan Rikalo

2010-09-12 16:54

developer   ~0040993

Then it's easy to test if it's qt-4.7, KDE or LCL problem.
This can be achieved only if you have gtk2 libs installed AND LAZARUS MUST BE BUILD WITH QT_NATIVE_DIALOGS !
Open terminal, cd to lazarus binary directory eg. cd /usr/lib/lazarus

now execute "./lazarus -style gtk" (without double quotes) and see if it crashes with native gtk2 dialogs.Lazarus should look like an gtk2 application NOT like KDE app with current kde theme.
If it crashes with gtk2 dialogs then it's not KDE but qt-4.7 or qtlcl problem.

Reinhard Berger

2010-09-13 11:45

reporter   ~0041022

Last edited: 2010-09-13 11:48

The problem comes from KDE/QT ? when using "dUSE_QT_45 QT_NATIVE_DIALOGS" under KDE 4.5.1 with QT4.7 (beta?) Lazarus crashes.

Same lazarus compiled with "-dQT_NATIVE_DIALOGS" under KDE 4.4.5 with QT 4.6 works correctly , no crashes there.

Maybe a update of QT4PAS (currently 2.1) will help ?

Zeljan Rikalo

2010-09-13 15:42

developer   ~0041025

@Reinhard,
1st Why do you think that libQt4Pas is problematic ? .I've already mentioned that your problem have nothing to do with bindings lib.

2nd thing would be -dUSE_QT_45 QT_NATIVE_DIALOGS which you mentioned.
  USE_QT_45 MEANS NOTHING, there's no such define in qtlcl.

3rd thing would be my previous comment:
1.BUILD LAZARUS WITH -dQT_NATIVE_DIALOGS
2.START LAZARUS IN DIFFERENT WAY:
 Open terminal
 cd /usr/lib/lazarus
 ./lazarus -style gtk
Now see if open/save dialogs works (now you'll have gtk2 dialogs).Of course this will work if you have gtk2 libs installed.

4th
  I will not fix KDE or KDE theme bugs. (Juha already reported problem with KDE-4.5.1 oxygen theme)

Reinhard Berger

2010-09-13 21:52

reporter   ~0041040

Last edited: 2010-09-13 21:54

1.) i just think becouse native QT Works and QT with native Dialog doesnt, and since KDE4.5.x is using Qt4.7 that let me think that something has changed and the libs needed to be updated.

It is just my way of thinking, i don't know it for sure.

Just strange that native QT Dialogs works, and KDE Dialogs doesnt.

2.) Yes my fault :( typed wrong commands here, of course i useed "dQT_NATIVE_DIALOGS".


P.S. I do not use Oxygen Style as you can see, i am using "Crytsal Kwin" with QTCurve.

3.) Yes lazarus compiled as QT with parameter "-style gtk" does not crash, i can start the IDE now but there are not GTK FileDialogs the Dialogs are KDE one.

(As seen on Picture "Bilschirmfoto1")

Without the "-style gtk" IDE crashes right after displaying the Code Editor.

2010-09-13 21:53

 

Bildschirmfoto1.png (134,915 bytes)   
Bildschirmfoto1.png (134,915 bytes)   

Zeljan Rikalo

2010-09-14 08:07

developer   ~0041048

Then it's problem with KDE theme. Try to start lazarus with -style plastique or -style windows and see if it crashes (I suppose not), so it's definitelly theme problem.Maybe you should build lazarus with -g:
make bigide LCL_PLATFORM=qt OPT="-g -dQT_NATIVE_DIALOGS"
and then start lazarus from debugger
gdb ./lazarus
run
when crashes , copy trace here.

sfeinst

2010-11-20 17:14

reporter   ~0043304

I don't know if this is the same issue, but I am having a similar problem with native dialogs, but only when using TOpenDialog and TSaveDialog. Other dialogs seem to work fine.

I recompiled Lazarus with native. I then changed my style to various themes. But all crash when choosing File Open or File Save.

Using KDE 4.5.3 and qt 4.7.0

Zeljan Rikalo

2010-11-20 20:14

developer   ~0043311

@sfeinst, 32 or 64 bit ?

Zeljan Rikalo

2010-11-20 20:42

developer   ~0043313

It's known qt-4.7.0 bug, here is gdb output:
Program received signal SIGSEGV, Segmentation fault.
comp_func_SourceOver_sse2 (destPixels=0x9587a98, srcPixels=<value optimized out>, length=16, const_alpha=0) at painting/qdrawhelper_sse2.cpp:317
317 BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2(dst, src, length, nullVector, half, one, colorMask, constAlphaVector);
(gdb) bt
#0 comp_func_SourceOver_sse2 (destPixels=0x9587a98, srcPixels=<value optimized out>, length=16, const_alpha=0) at painting/qdrawhelper_sse2.cpp:317
0000001 0x01ce8e63 in blend_tiled_argb<(SpanMethod)0> (count=15, spans=<value optimized out>, userData=0x958ada0) at painting/qdrawhelper.cpp:4930
0000002 0x01cd6bc1 in qBlendTexture (count=16, spans=0xbfffa87c, userData=0x958ada0) at painting/qdrawhelper.cpp:6809
0000003 0x01cbc568 in qt_span_fill_clipRect (count=<value optimized out>, spans=0xbfffa87c, userData=0x958ada0) at painting/qpaintengine_raster.cpp:4835
0000004 0x01c8ac7e in flushSpans (this=0x948bbc8, outline=0x958aafc, fillRule=Qt::OddEvenFill) at painting/qrasterizer.cpp:105
0000005 ~QSpanBuffer (this=0x948bbc8, outline=0x958aafc, fillRule=Qt::OddEvenFill) at painting/qrasterizer.cpp:80
0000006 QRasterizer::rasterize (this=0x948bbc8, outline=0x958aafc, fillRule=Qt::OddEvenFill) at painting/qrasterizer.cpp:1183
0000007 0x01cc1b53 in QRasterPaintEnginePrivate::rasterize (this=0x958a5d8, outline=0x958aafc, callback=0x1cd6b70 <qBlendTexture(int, QSpan const*, void*)>, spanData=0x958ada0,
    rasterBuffer=0x9574db0) at painting/qpaintengine_raster.cpp:4144
0000008 0x01ccd584 in QRasterPaintEngine::fill (this=0x9588ae8, path=..., brush=...) at painting/qpaintengine_raster.cpp:1853
0000009 0x01c344ae in QPaintEngineEx::draw (this=0x9588ae8, path=...) at painting/qpaintengineex.cpp:597
0000010 0x01c34836 in QPaintEngineEx::drawPath (this=0x9588ae8, path=...) at painting/qpaintengineex.cpp:846
0000011 0x01c4c240 in QPainter::drawPath (this=0xbfffb774, path=...) at painting/qpainter.cpp:3381
0000012 0x01c462be in QPainterPrivate::draw_helper (this=0x9584f08, originalPath=..., op=QPainterPrivate::StrokeAndFillDraw) at painting/qpainter.cpp:471
0000013 0x01c48820 in QPainter::drawRects (this=0xbfffbda4, rects=0xbfffb910, rectCount=1) at painting/qpainter.cpp:3584
0000014 0x01c49685 in drawRect (this=0xbfffbda4, p=..., pm=...) at ../../src/gui/painting/qpainter.h:653
0000015 QPainter::drawPixmap (this=0xbfffbda4, p=..., pm=...) at painting/qpainter.cpp:5304

0000016 0x07823426 in drawPixmap (this=0x95033b0, painter=0xbfffbda4, option=..., index=...) at /usr/include/QtGui/qpainter.h:811
0000017 KFilePlacesViewDelegate::paint (this=0x95033b0, painter=0xbfffbda4, option=..., index=...) at /usr/src/debug/kdelibs-4.5.3/kfile/kfileplacesview.cpp:160
0000018 0x0208983f in QListView::paintEvent (this=0x9520bd8, e=0xbfffc70c) at itemviews/qlistview.cpp:1044
0000019 0x07821f1a in KFilePlacesView::paintEvent (this=0x9520bd8, event=0xbfffc70c) at /usr/src/debug/kdelibs-4.5.3/kfile/kfileplacesview.cpp:796
0000020 0x01b3906b in QWidget::event (this=0x9520bd8, event=0xbfffc70c) at kernel/qwidget.cpp:8333
0000021 0x01f2b294 in QFrame::event (this=0x9520bd8, e=0xbfffc70c) at widgets/qframe.cpp:557
0000022 0x01fbc1c3 in QAbstractScrollArea::viewportEvent (this=0x9520bd8, e=0xbfffc70c) at widgets/qabstractscrollarea.cpp:1043
0000023 0x02068a87 in QAbstractItemView::viewportEvent (this=0x9520bd8, event=0xbfffc70c) at itemviews/qabstractitemview.cpp:1619
0000024 0x01fbe7f5 in viewportEvent (this=0x951ba90, o=0x9415860, e=0xbfffc70c) at widgets/qabstractscrollarea_p.h:100
0000025 QAbstractScrollAreaFilter::eventFilter (this=0x951ba90, o=0x9415860, e=0xbfffc70c) at widgets/qabstractscrollarea_p.h:116
---Type <return> to continue, or q <return> to quit---
0000026 0x0258129a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8f929f8, receiver=0x9415860, event=0xbfffc70c) at kernel/qcoreapplication.cpp:847
0000027 0x01ae639a in QApplicationPrivate::notify_helper (this=0x8f929f8, receiver=0x9415860, e=0xbfffc70c) at kernel/qapplication.cpp:4392
0000028 0x01aeca01 in QApplication::notify (this=0x8f929e8, receiver=0x9415860, e=0xbfffc70c) at kernel/qapplication.cpp:4361
0000029 0x02581ba3 in QCoreApplication::notifyInternal (this=0x8f929e8, receiver=0x9415860, event=0xbfffc70c) at kernel/qcoreapplication.cpp:732
0000030 0x01b3f807 in sendSpontaneousEvent (this=0x95208e0, pdev=0x947b6d4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x947a680)
    at ../../src/corelib/kernel/qcoreapplication.h:218
0000031 QWidgetPrivate::drawWidget (this=0x95208e0, pdev=0x947b6d4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x947a680) at kernel/qwidget.cpp:5420
0000032 0x01b40612 in QWidgetPrivate::paintSiblingsRecursive (this=0x9521088, pdev=0x947b6d4, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4,
    sharedPainter=0x0, backingStore=0x947a680) at kernel/qwidget.cpp:5627
0000033 0x01b3f551 in QWidgetPrivate::drawWidget (this=0x9521088, pdev=0x947b6d4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x947a680)
    at kernel/qwidget.cpp:5473
0000034 0x01b40612 in QWidgetPrivate::paintSiblingsRecursive (this=0x95009a0, pdev=0x947b6d4, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4,
    sharedPainter=0x0, backingStore=0x947a680) at kernel/qwidget.cpp:5627
0000035 0x01b3f551 in QWidgetPrivate::drawWidget (this=0x95009a0, pdev=0x947b6d4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x947a680)
    at kernel/qwidget.cpp:5473
0000036 0x01b40612 in QWidgetPrivate::paintSiblingsRecursive (this=0x94e5d30, pdev=0x947b6d4, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4,
    sharedPainter=0x0, backingStore=0x947a680) at kernel/qwidget.cpp:5627
0000037 0x01b40449 in QWidgetPrivate::paintSiblingsRecursive (this=0x94e5d30, pdev=0x947b6d4, siblings=..., index=0, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=
    0x947a680) at kernel/qwidget.cpp:5614
0000038 0x01b40449 in QWidgetPrivate::paintSiblingsRecursive (this=0x94e5d30, pdev=0x947b6d4, siblings=..., index=1, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=
    0x947a680) at kernel/qwidget.cpp:5614
0000039 0x01b3f551 in QWidgetPrivate::drawWidget (this=0x94e5d30, pdev=0x947b6d4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x947a680)
    at kernel/qwidget.cpp:5473
0000040 0x01b40612 in QWidgetPrivate::paintSiblingsRecursive (this=0x947c8a8, pdev=0x947b6d4, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4,
    sharedPainter=0x0, backingStore=0x947a680) at kernel/qwidget.cpp:5627
0000041 0x01b3f551 in QWidgetPrivate::drawWidget (this=0x947c8a8, pdev=0x947b6d4, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0x947a680)
    at kernel/qwidget.cpp:5473
---Type <return> to continue, or q <return> to quit---
0000042 0x01b40612 in QWidgetPrivate::paintSiblingsRecursive (this=0x9477858, pdev=0x947b6d4, siblings=..., index=<value optimized out>, rgn=..., offset=..., flags=4,
    sharedPainter=0x0, backingStore=0x947a680) at kernel/qwidget.cpp:5627
0000043 0x01b3f551 in QWidgetPrivate::drawWidget (this=0x9477858, pdev=0x947b6d4, rgn=..., offset=..., flags=5, sharedPainter=0x0, backingStore=0x947a680)
    at kernel/qwidget.cpp:5473
0000044 0x01d19f25 in QWidgetBackingStore::sync (this=0x947a680) at painting/qbackingstore.cpp:1328
0000045 0x01d1a35b in QWidgetBackingStore::sync (this=0x947a680, exposedWidget=0xbfffe414, exposedRegion=...) at painting/qbackingstore.cpp:1130
0000046 0x01b32453 in QWidgetPrivate::syncBackingStore (this=0x9477858, region=...) at kernel/qwidget.cpp:1820
0000047 0x01b5d9c8 in QETWidget::translatePaintEvent (this=0xbfffe414, event=0xbfffe0a4) at kernel/qapplication_x11.cpp:5117
0000048 0x01b6a3d2 in QApplication::x11ProcessEvent (this=0x8f929e8, event=0xbfffe0a4) at kernel/qapplication_x11.cpp:3436
0000049 0x01b96c92 in x11EventSourceDispatch (s=0x8f95f00, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
0000050 0x026ee525 in g_main_dispatch (context=0x8f95090) at gmain.c:1960
0000051 IA__g_main_context_dispatch (context=0x8f95090) at gmain.c:2513
0000052 0x026f2268 in g_main_context_iterate (context=0x414bf0, block=1, dispatch=1, self=0x8f92ef0) at gmain.c:2591
#53 0x026f2449 in IA__g_main_context_iteration (context=0x8f95090, may_block=1) at gmain.c:2654
#54 0x025ac5b6 in QEventDispatcherGlib::processEvents (this=0x8f82578, flags=...) at kernel/qeventdispatcher_glib.cpp:415
0000055 0x01b96706 in QGuiEventDispatcherGlib::processEvents (this=0x8f82578, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
0000056 0x0258071a in QEventLoop::processEvents (this=0xbfffe398, flags=...) at kernel/qeventloop.cpp:149
0000057 0x02580a7a in QEventLoop::exec (this=0xbfffe398, flags=...) at kernel/qeventloop.cpp:201
0000058 0x02001924 in QDialog::exec (this=0xbfffe414) at dialogs/qdialog.cpp:552
0000059 0x06ac0a3a in KFileDialogQtOverride::getOpenFileNames(QWidget*, QString const&, QString const&, QString const&, QString*, QFlags<QFileDialog::Option>) ()
   from /usr/lib/libkio.so.5
0000060 0x02015b47 in QFileDialog::getOpenFileNames (parent=0x9044350, caption=..., dir=..., filter=..., selectedFilter=0xbfffe588, options=...) at dialogs/qfiledialog.cpp:1759

0000061 0x07b1f2d9 in QFileDialog_getOpenFileNames (retval=0x9477178, parent=0x0, caption=0xbfffe64c, dir=0xbfffe654, filter=0xbfffe650, selectedFilter=0xbfffe658, options=0)
    at src/qfiledialog_c.cpp:339
0000062 0x0827ee39 in TQTWSFILEDIALOG__SHOWMODAL (ACOMMONDIALOG=0x767c020, pvmt=0x37c69d0) at qtwsdialogs.pp:460
0000063 0x0820fe7f in TCOMMONDIALOG__DOEXECUTE (this=<error reading variable>) at ./include/commondialog.inc:105
0000064 0x08210221 in TFILEDIALOG__DOEXECUTE (this=<error reading variable>) at ./include/filedialog.inc:107
---Type <return> to continue, or q <return> to quit---
0000065 0x08210973 in TOPENDIALOG__DOEXECUTE (this=<error reading variable>) at ./include/filedialog.inc:245
0000066 0x0820fbee in TCOMMONDIALOG__EXECUTE (this=<error reading variable>) at ./include/commondialog.inc:37
0000067 0x082100e1 in TFILEDIALOG__EXECUTE (this=<error reading variable>) at ./include/filedialog.inc:59
0000068 0x080a3b89 in TMAINIDE__MNUOPENCLICKED (SENDER=0x63ec500, this=<error reading variable>) at main.pp:2683
0000069 0x084e49e8 in TIDEMENUITEM__MENUITEMCLICK (SENDER=0x62ec0c0, this=<error reading variable>) at menuintf.pas:551
0000070 0x084e7bda in TIDEMENUCOMMAND__MENUITEMCLICK (SENDER=0x62ec0c0, this=<error reading variable>) at menuintf.pas:1616
0000071 0x081def5e in TMENUITEM__CLICK (this=<error reading variable>) at ./include/menuitem.inc:75
0000072 0x081df598 in TMENUITEM__DOCLICKED (MSG=void, this=<error reading variable>) at ./include/menuitem.inc:269
0000073 0x0806cc9a in SYSTEM_TOBJECT_$__DISPATCH$formal ()
0000074 0x081df560 in TMENUITEM__GETPARENTCOMPONENT (this=<error reading variable>) at ./include/menuitem.inc:258
0000075 0x07b23868 in QObject_hook::eventFilter (this=<value optimized out>, sender=Could not find the frame base for "QObject_hook::eventFilter(QObject*, QEvent*)".
) at tmp/../src/qobject_hook.h:63
0000076 0x0258129a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8f929f8, receiver=0x909d2e8, event=0x93b45d0) at kernel/qcoreapplication.cpp:847
0000077 0x01ae639a in QApplicationPrivate::notify_helper (this=0x8f929f8, receiver=0x909d2e8, e=0x93b45d0) at kernel/qapplication.cpp:4392
0000078 0x01aeca01 in QApplication::notify (this=0x8f929e8, receiver=0x909d2e8, e=0x93b45d0) at kernel/qapplication.cpp:4361
0000079 0x02581ba3 in QCoreApplication::notifyInternal (this=0x8f929e8, receiver=0x909d2e8, event=0x93b45d0) at kernel/qcoreapplication.cpp:732
0000080 0x02585753 in sendEvent (receiver=0x0, event_type=0, data=0x8f92af0) at kernel/qcoreapplication.h:215
0000081 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8f92af0) at kernel/qcoreapplication.cpp:1373
0000082 0x0258590e in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
0000083 0x025acad5 in sendPostedEvents (s=0x8f95110) at kernel/qcoreapplication.h:220
0000084 postEventSourceDispatch (s=0x8f95110) at kernel/qeventdispatcher_glib.cpp:277
0000085 0x026ee525 in g_main_dispatch (context=0x8f95090) at gmain.c:1960
0000086 IA__g_main_context_dispatch (context=0x8f95090) at gmain.c:2513
0000087 0x026f2268 in g_main_context_iterate (context=0x414bf0, block=0, dispatch=1, self=0x8f92ef0) at gmain.c:2591
0000088 0x026f2449 in IA__g_main_context_iteration (context=0x8f95090, may_block=0) at gmain.c:2654
0000089 0x025ac5b6 in QEventDispatcherGlib::processEvents (this=0x8f82578, flags=...) at kernel/qeventdispatcher_glib.cpp:415
0000090 0x01b96706 in QGuiEventDispatcherGlib::processEvents (this=0x8f82578, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
0000091 0x02585bb2 in QCoreApplication::processEvents (flags=...) at kernel/qcoreapplication.cpp:924
---Type <return> to continue, or q <return> to quit---
0000092 0x07ac4043 in QCoreApplication_processEvents (flags=Could not find the frame base for "QCoreApplication_processEvents(unsigned int)".
) at src/qcoreapplication_c.cpp:105
0000093 0x081f5333 in TQTWIDGETSET__APPPROCESSMESSAGES (this=<error reading variable>) at qtobject.inc:264
0000094 0x0808b399 in TAPPLICATION__HANDLEMESSAGE (this=<error reading variable>) at ./include/application.inc:1229
0000095 0x0808b7ff in TAPPLICATION__RUNLOOP (this=<error reading variable>) at ./include/application.inc:1362
0000096 0x081f52f3 in TQTWIDGETSET__APPRUN (ALOOP=0x808b7c0 <TAPPLICATION__RUNLOOP>, this=<error reading variable>) at qtobject.inc:233
0000097 0x0808b7ba in TAPPLICATION__RUN (this=<error reading variable>) at ./include/application.inc:1350
0000098 0x0805e8e2 in main () at lazarus.pp:112

Zeljan Rikalo

2010-11-20 21:27

developer   ~0043314

Last edited: 2010-11-20 21:33

Interesting links about same problem

http://www.qtcentre.org/threads/34519-Qt-4.7-SSE2-causing-my-app-to-crash
http://svn.netlabs.org/qt4/ticket/187

Here is commit which starts disaster with qt:
https://bugdiffs.qt.nokia.com/fisheye/changelog/Qt/?cs=98d9083f87feb3d78af509db43685a148aa0766e

More links:
http://getsatisfaction.com/spotify/topics/spotify_crashes_with_qt_4_7
http://bugreports.qt.nokia.com/browse/QTBUG-12174

sfeinst

2010-11-20 22:29

reporter   ~0043316

I see you already found the issue, but just to answer, 32-bit.

sfeinst

2010-11-20 22:41

reporter   ~0043317

I read through some of the links and though I don't now C++, it sounded like the fix was to compile code with stackalign or some variation. Is this some flag tha can be done when compiling Lazarus (I saw one of the fixes was related to using python) or is it only fixable when qt is compiled which means I would need to let my distribution know of the option. Or am I misunderstanding what the links are stating?

Zeljan Rikalo

2010-11-21 10:24

developer   ~0043326

Don't know yet. Maybe compiling qt bindings with -mstackrealign could help. Qt libs can be rebuilded with -mstackrealign but I doubt that distro packagers will add such options since it slows down lib 5-10%.
Also, I don't know if fpc have such option , must ask on mailing list.

Zeljan Rikalo

2010-11-21 12:44

developer   ~0043328

Wow, just rebuilded libQt4Pas with -mstackrealign (have to be added by hand into Makefile for CFLAGS AND CPPFLAGS) and it seem that it fixes our problem.I don't see any crash with kde-4.5.3 and qt-4.7.0 :))))))
gzipped binary is almost 7mb so cannot upload it here

Zeljan Rikalo

2010-11-21 13:09

developer   ~0043329

I confirm: pure Fedora 14 installation (qt-4.7 is default on FC14) CRASHES with bindings from official download site. Rebuilded bindings with -mstackrealign FIXES problem :)))

Zeljan Rikalo

2010-11-22 09:09

developer   ~0043350

and at the end: qt is builded with buggy gcc (4.4(5)) so it runs into our bug and that's why we need rebuilded bindings
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40838

Zeljan Rikalo

2010-11-29 17:57

developer   ~0043740

There's new binary release of bindings for qt-4.7 compatibility.
Bindings are compiled with -mstackrealign and it fixes crashes with -dQT_NATIVE_DIALOGS and TQtCustomControl crash with oxygen theme.
Please test with this bindings and give feedback.
http://users.telenet.be/Jan.Van.hijfte/qtforfpc/bin-qt4pas-V2.1_Qt4.7.X.tar.gz

sfeinst

2010-11-30 01:54

reporter   ~0043768

I tried both the native dialogs and the oxygen theme and no crashes. Excellent job.

Zeljan Rikalo

2010-11-30 07:14

developer   ~0043772

Thanks, but still waiting reporter for feedback.

Reinhard Berger

2010-12-03 21:34

reporter   ~0043963

Yes, downloaded the new bindings and all is fine now no more hung ups on dialogs, and all dialogs are called correctly.

Zeljan Rikalo

2010-12-03 21:37

developer   ~0043964

Bindings recompiled with -mstackrealign fixed problem.
Please close.

Issue History

Date Modified Username Field Change
2010-09-10 22:49 Reinhard Berger New Issue
2010-09-10 22:49 Reinhard Berger File Added: Photo-1-TDirectoryDialog-wrong.png
2010-09-10 22:49 Reinhard Berger Widgetset => QT
2010-09-10 22:53 Reinhard Berger File Added: Photo-2-TDirectoryDialog-good.png
2010-09-10 23:23 Vincent Snijders LazTarget => -
2010-09-10 23:23 Vincent Snijders Assigned To => Zeljan Rikalo
2010-09-10 23:23 Vincent Snijders Status new => assigned
2010-09-11 10:10 Zeljan Rikalo Note Added: 0040953
2010-09-11 10:10 Zeljan Rikalo Status assigned => feedback
2010-09-11 12:37 Reinhard Berger Note Added: 0040955
2010-09-11 12:39 Reinhard Berger Note Edited: 0040955
2010-09-11 12:47 Zeljan Rikalo Status feedback => resolved
2010-09-11 12:47 Zeljan Rikalo Resolution open => no change required
2010-09-11 12:47 Zeljan Rikalo Note Added: 0040956
2010-09-11 13:16 Vincent Snijders Note Added: 0040957
2010-09-11 18:56 Reinhard Berger Note Added: 0040962
2010-09-11 18:56 Reinhard Berger Status resolved => assigned
2010-09-11 18:56 Reinhard Berger Resolution no change required => reopened
2010-09-11 18:57 Reinhard Berger File Added: Photo-3-TDirectoryDialog-wrong+SVN.png
2010-09-11 19:07 Zeljan Rikalo Note Added: 0040963
2010-09-11 19:07 Zeljan Rikalo Status assigned => feedback
2010-09-11 20:34 Reinhard Berger Note Added: 0040967
2010-09-11 20:51 Zeljan Rikalo Note Added: 0040968
2010-09-11 20:52 Zeljan Rikalo Note Edited: 0040968
2010-09-11 22:30 Reinhard Berger Note Added: 0040969
2010-09-11 22:37 Zeljan Rikalo Note Added: 0040970
2010-09-11 22:52 Zeljan Rikalo Note Edited: 0040970
2010-09-11 23:43 Reinhard Berger Note Added: 0040972
2010-09-11 23:44 Reinhard Berger File Added: exception_lazarus_directory.txt
2010-09-11 23:45 Reinhard Berger File Added: exception_lazarus_fileopen.txt
2010-09-12 16:54 Zeljan Rikalo Note Added: 0040993
2010-09-13 11:45 Reinhard Berger Note Added: 0041022
2010-09-13 11:46 Reinhard Berger Note Edited: 0041022
2010-09-13 11:47 Reinhard Berger Note Edited: 0041022
2010-09-13 11:48 Reinhard Berger Note Edited: 0041022
2010-09-13 15:42 Zeljan Rikalo Note Added: 0041025
2010-09-13 21:52 Reinhard Berger Note Added: 0041040
2010-09-13 21:53 Reinhard Berger File Added: Bildschirmfoto1.png
2010-09-13 21:54 Reinhard Berger Note Edited: 0041040
2010-09-14 08:07 Zeljan Rikalo Note Added: 0041048
2010-11-20 17:14 sfeinst Note Added: 0043304
2010-11-20 20:14 Zeljan Rikalo Note Added: 0043311
2010-11-20 20:42 Zeljan Rikalo Note Added: 0043313
2010-11-20 20:42 Zeljan Rikalo Status feedback => confirmed
2010-11-20 21:27 Zeljan Rikalo Note Added: 0043314
2010-11-20 21:30 Zeljan Rikalo Note Edited: 0043314
2010-11-20 21:33 Zeljan Rikalo Note Edited: 0043314
2010-11-20 22:29 sfeinst Note Added: 0043316
2010-11-20 22:41 sfeinst Note Added: 0043317
2010-11-21 10:24 Zeljan Rikalo Note Added: 0043326
2010-11-21 12:44 Zeljan Rikalo Note Added: 0043328
2010-11-21 12:44 Zeljan Rikalo Status confirmed => feedback
2010-11-21 13:09 Zeljan Rikalo Note Added: 0043329
2010-11-21 13:13 Zeljan Rikalo Status feedback => confirmed
2010-11-21 13:14 Zeljan Rikalo Status confirmed => feedback
2010-11-22 09:09 Zeljan Rikalo Note Added: 0043350
2010-11-29 17:54 Zeljan Rikalo Status feedback => acknowledged
2010-11-29 17:57 Zeljan Rikalo Note Added: 0043740
2010-11-29 17:57 Zeljan Rikalo Status acknowledged => feedback
2010-11-30 01:54 sfeinst Note Added: 0043768
2010-11-30 07:14 Zeljan Rikalo Note Added: 0043772
2010-12-03 21:34 Reinhard Berger Note Added: 0043963
2010-12-03 21:37 Zeljan Rikalo Status feedback => resolved
2010-12-03 21:37 Zeljan Rikalo Resolution reopened => no change required
2010-12-03 21:37 Zeljan Rikalo Note Added: 0043964
2010-12-04 09:29 Reinhard Berger Status resolved => closed