Bug 388610 - digikam doesn't use native or KDE file dialogs
Summary: digikam doesn't use native or KDE file dialogs
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Usability-Ergonomy (show other bugs)
Version: 5.7.0
Platform: Compiled Sources All
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-06 10:28 UTC by RJVB
Modified: 2018-01-06 18:16 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.8.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description RJVB 2018-01-06 10:28:45 UTC
Somehow I missed this: digikam has stopped using native (on Mac) and KDE (on Linux) dialogs in 5.7.0 . Instead it now uses Qt's dialogs, meaning the lowest common denominator functionality-wise, and the worse possible choice for aficionados of optimal platform integration.

This looks like it might be due to a wrong choice in dfiledialog.cpp, i.e. `options |= QFileDialog::DontUseNativeDialog;` instead of `options &= ~QFileDialog::DontUseNativeDialog;` but even when I make that change I keep getting Qt file dialogs. What am I missing here?
Comment 1 caulier.gilles 2018-01-06 10:34:00 UTC
A new option to use native file dialog is available in Setup/Miscs/Behaviour section. It have been introduced in next 5.8.0. You can test with current pre release bundle :

https://files.kde.org/digikam/

Gilles Caulier
Comment 2 RJVB 2018-01-06 11:57:51 UTC
Dang, another case where searching with the appropriate terms didn't take me to the existing bug report!

I found the commit and it applies to the 5.7.0 source. The only thing one could still want is a build option to make native dialogs the default behaviour, but maybe that's already implemented too (and hidden in one of the numerous "upgrade" commits)?

I cannot really think of a situation where you'd NOT want to use the native dialogs. You'll still get the Qt dialogs if those are all that's available, while if you have a plasma/platform integration plugin installed you get the KDE file dialog. 

I'm guessing that you can set things up in such a way that you always get the KDE file dialogs too, even on Mac and MS Windows. The choice between those and the real native dialogs would make more sense, IMHO. On Mac at least the KDE dialogs provide a lot more features lacking from the native dialogs.
Comment 3 Maik Qualmann 2018-01-06 14:47:28 UTC
Unfortunately, there are distributions with native GTK file dialogs, which lead to a crash of digiKam when calling. Since the chances are somehow small that this will be fixed, we have built in the possibility of pure Qt file dialogs.

Maik
Comment 4 RJVB 2018-01-06 16:22:24 UTC
I don't really see how that excludes the possibility to bring the default under control of a build option. That option could be off by default itself, or do some fancy kind of detection if the user doesn't specify a value for it. But the bottomline is that those distributions will have the possibility to build the application with an appropriate default. 

You say so yourself, you provide a possibility to use Qt file dialogs. That doesn't mean it has to be the default.

BTW, are you talking about desktops that use the gtk3 QPA? You can detect the name of the platform being used at runtime and use that to decide what the default should be, too.
Comment 5 caulier.gilles 2018-01-06 16:39:52 UTC
BTW, are you talking about desktops that use the gtk3 QPA? You can detect the name of the platform being used at runtime and use that to decide what the default should be, too.

==> definitively no. It's not the goal to the client application to do this job. If we need to do it in all case that desktop type need to be checked. we will make a big puzzle and it will be the heel to maintain.

Typically, a pure Qt application is the way to go in a near future. A huge application as digiKam do not be relevant of any desktop technonlogies at all. So the default behavior is enough and perfect for me...

Gilles Caulier
Comment 6 RJVB 2018-01-06 18:16:43 UTC
That *is* a bit like dumping all SIMD and other optimisations and just use good old software of all algorithms because that's so much easier to maintain (and the result will perform and look similarly mediocrely everywhere...)