On dimanche 12 juin 2016 22:58:34 CEST Albert Astals Cid wrote: > 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.
Not sure exactly what is your final approach, from the above. I would go for: Make the "dontShowMeAgain" feature use QSettings if FrameworkIntegrationPlugin is not available i.e. as a fallback. This preserves the KConfig benefits/integration on a more complete install, but doesn't lead to a non-working checkbox when the plugin is missing. -- David Faure, fa...@kde.org, http://www.davidfaure.fr Working on KDE Frameworks 5 _______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel