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