]> cloud.milkyroute.net Git - dolphin.git/commit
Find out the main window by calling the parent widget's window() member
authorFrank Reininghaus <frank78ac@googlemail.com>
Sat, 29 Sep 2012 17:47:00 +0000 (19:47 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Sat, 29 Sep 2012 17:53:14 +0000 (19:53 +0200)
commit0e49df921450da38a94b4cf10837c67b8e968ae9
treea1e58bbf8c7ef46321c52bd7f436c8ecff5de3bd
parent65b7e3b785e4f368f1b8cb39df9344bfd6324b4b
Find out the main window by calling the parent widget's window() member

KFileItemModel calls the dir lister's setMainWindow() method to make
sure that the dir lister caches authentication data. However, the method
used to determine the main window (qApp->activeWindow()) is not
guaranteed to yield the DolphinMainWindow or the KonqMainWindow. In
particular, if "Split View" is enabled in Dolphin's settings dialog, the
active window is the dialog, and when it is closed, any later access to
the stored pointer leads to a crash.

A better method is to verify that the model's parent is a QWidget and
then use this widget's window(). I had to make a small modification in
DolphinMainWindow to make sure that it also works correctly when the
view is split (the new view container had been created with a 0 parent
previously).

I tested it in Dolphin and Konqueror and verified that the "main window"
passed to the dir lister is really the application's main window.

BUG: 306459
FIXED-IN: 4.9.3
src/dolphinmainwindow.cpp
src/kitemviews/kfileitemmodel.cpp