https://bugs.kde.org/show_bug.cgi?id=404833

--- Comment #12 from RJVB <rjvber...@gmail.com> ---
I know you said "without use of private APIs" ... but it seems that
- the parent received in KDEPlatformFileDialogHelper::show() is a QWidgetWindow
- QWidgetWindow::widget() should give us the widget instance used in the
application

I couldn't get the code to build when trying QWidgetWindow::widget(), but
there's an easier, non-private way:

        QWidget *parentWidget = parent ? QWidget::find(parent->winId()) :
nullptr;

This works on Mac, e.g. "QWidgetWindow(0x7fcd05b97fd0,
name="KIconDialogClassWindow")" becomes "KIconDialog(0x7fff586d1ba8)" (in
kicondialogtest from the KIconThemes tests; KIconDialog is used as a parent for
QFileDialog).

If it also works on Linux:
- the application could call QFileDialog::setProperty() to communicate relevant
information (the QFileDialog instance?)
- the KDEPlatformFileDialogHelper could also use setProperty() on the widget
obtained, e.g. to signal that the KDE dialog is in use.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to