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