KConfigXT Signals
Keith Rusler
xzekecomax at gmail.com
Sun Jan 10 00:54:43 GMT 2010
On Saturday 09 January 2010 15:57:11 David Jarvie wrote:
> On Friday 08 Jan 2010 21:57:33 Keith Rusler wrote:
> > On Friday 08 January 2010 04:25:31 Andreas Pakulat wrote:
> > > On 08.01.10 03:18:33, Keith Rusler wrote:
> > > > I recently started needing signals to be emitted from my
> > > > configuration dialogue when certain changes were made like tab
> > > > position of the main view, etc. I followed the guide and added them
> > > > to the settings.kcfg file. The generated code works perfectly.. All
> > > > my settings are modifed and save but none of the signals are emitted
> > > > when the value is changed on a KComboBox and I hit OK or Apply
> > > > button. Is there something that I probably missed out on as the
> > > > tutorial barely goes in to details about it.
> > >
> > > Can you show some example of what you tried and what exactly you want
> > > to achive. I don't quite understand which signals you mean and what
> > > you expect them to trigger or how you added them to the
> > > settings.kcfg...
> > >
> > > Andreas
> >
> > Here is what I added to the settings.kcfg. I placed the <signals> at the
> > beginning of the .kfg
> >
> > <kcfgfile name="akirc" />
> > <signal name="serverTabPositionChanged">
> >
> > <argument type="Int">serverTabPosition</argument>
> >
> > </signal>
> > <signal name="channelTabPositionChanged">
> >
> > <argument type="Int">channelTabPosition</argument>
> >
> > </signal>
> > ....
> > <entry key="serverTabPosition" type="Int">
> >
> > <emit signal="serverTabPositionChanged" />
> >
> > </entry>
> > <entry key="channelTabPosition" type="Int">
> >
> > <emit signal="channelTabPositionChanged" />
> >
> > </entry>
> >
> > Basically what I'm trying to achieve is when the user changes the
> > KComboBox value it will change the Server and Channel's Tab Position to
> > top, bottom, left or right.
> >
> > void serverTabPositionChanged(int index)
> > {
> >
> > kDebug() << "Index: " << index;
> > switch (Aki::Settings::serverTabPosition()) {
> > case 0: {
> >
> > q->setTabPosition(QTabWidget::North);
> > break;
> >
> > }
> > case 1: {
> >
> > q->setTabPosition(QTabWidget::South);
> > break;
> >
> > }
> > case 2: {
> >
> > q->setTabPosition(QTabWidget::West);
> > break;
> >
> > }
> > case 3: {
> >
> > q->setTabPosition(QTabWidget::East);
> > break;
> >
> > }
> > }
> >
> > }
> >
> > This is the slot that is connected to the serverTabPositionChanged. The
> > only time I see the changes is when I restart the application.
>
> What is the code in your application which changes the relevant
> configuration settings?
Mostly I just set the page to automatically do the work by supplying
Aki::Settings::self() except for one page.
Here is the SettingsDialog:
http://gitorious.org/aki/aki/blobs/master/libaki/dialogs/settingsdialog.cpp
And this is the view that I'm currently trying to get the signal to work with:
http://gitorious.org/aki/aki/blobs/master/libaki/ui/serverview.cpp
More information about the kde-core-devel
mailing list