KMessageBox runtime dependency on FrameworkIntegrationPlugin makes it useless
Albert Astals Cid
aacid at kde.org
Sun Jun 12 20:58:34 UTC 2016
El diumenge, 12 de juny de 2016, a les 20:29:56 CEST, Christoph Cullmann va
escriure:
> Hi,
>
> > Having KMessageBox "dontShowMeAgain" feature depend on an integration
> > plugin is a very bad idea.
> >
> > Basically it means programs that use KMessageBox can never asusme it will
> > work so basically they have to use alternative methods to have the
> > "dontShowMeAgain" feature or not have it at all.
> >
> > I understand someone thought that it was a better idea having a feature
> > that may work or not randomly that increasing the dependency chain of
> > KMessageBox, but I disagree.
> >
> > I don't think the status quo is good at all, my program basically gets a
> > runtime dependency that is not specified anywhere and that makes some
> > features work or not randomly.
> >
> > The options I can see are:
> > * Remove the "dontShowMeAgain" feature from KMessageBox
> > * Make the "dontShowMeAgain" feature use QSettings (always or if
> > FrameworkIntegrationPlugin is not available)
> > * Show a KMessageBox warning when trying to use the "dontShowMeAgain"
> > feature and the FrameworkIntegrationPlugin is not available saying the
> > user to install that package if he wants to get the functionality.
>
> I would go for the "just use QSettings always" solution.
This has two problems:
* Someone needs to care about a way to read the KConfig and write it to
QSettings so it still works for people that had already checked "don't show me
again"
* There's a KMessageBox::setDontShowAgainConfig(KConfig *cfg) that would
break, this affects only the kdialog app and KIO::JobUiDelegate
The second is probably "workaroundable" but i'm not sure how one would
approach the first.
Maybe still using the FrameworkIntegrationPlugin to check if the option has
been set and if it has and it is not in qsettings, move it there?
This would "fail" if the FrameworkIntegrationPlugin is not there, but that
would mean that most probably the kconfig was never ever set either (unless
you installed FrameworkIntegrationPlugin used a kmessagebox and then
uninstalled FrameworkIntegrationPlugin that seems very corner case-y).
I'll try to work on this in the coming days if noone disagrees.
Cheers,
Albert
>
> Greetings
> Christoph
More information about the Kde-frameworks-devel
mailing list