Using KConfig XT/KConfigDialogManager with "compound" dialogs
Shaheed
srhaque at iee.org
Sun May 1 03:47:04 BST 2005
Hi,
I'm having a bit of trouble working out how to use KConfig XT with
KConfigDialogManager, in the case where the actual dialog pages are
dynamically built up from a fixed set of tabs plus a run-time generated set
of tabs.
The specific case is kdemultimedia/kioslave/audiocd/kcmaudiocd. Here, I
recently converted the fixed tabs to KConfigXT, and the per-encoder tabs
(which already used KConfigXT) are added at run time depending on what the
user has available. The net result is that the complete audiocd KCM module is
represented by upto three rc files:
kcmaudiocdrc
kcmaudiocd_encoder_lame_rc
kcmaudiocd_encoder_vorbis_rc
I then tried adding this to the settings dialog in kscd like this (error
handling removed for clarity):
KService::Ptr audiocd = KService::serviceByDesktopName("audiocd");
KCModuleInfo info(audiocd->desktopEntryPath());
KCModule *m = KCModuleLoader::loadModule(info, KCModuleLoader::Inline);
KConfigSkeleton *cfg = new KConfigSkeleton(QString::fromLatin1
("kcmaudiocdrc"));
configDialog->addPage(m, cfg, i18n("CD Audio"), "audiocd", i18n("CD Audio
Configuration"));
Notice first that I only get to refer to one of the rc files. But even given
the one I specified, I get this warning followed by an assertion on the
following line 219:
kdecore (KConfigDialogManager): WARNING: A widget named 'kcfg_replaceInput'
was found but there is no setting named 'replaceInput'
kscd: /home/srhaque/kdecvs/kdelibs/kdecore/kconfigdialogmanager.cpp:219: bool
KConfigDialogManager::parseChildren(const QWidget*, bool): Assertion `false'
failed.
Firstly, what am I doing wrong with the config for the fixed tabs? Secondly,
is there any way to make the dynamic tabs work since I have no way to specify
the extra rc files?
Thanks, Shaheed
More information about the kde-core-devel
mailing list