KConfigXT Signals

Keith Rusler xzekecomax at gmail.com
Fri Jan 8 21:57:33 GMT 2010


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.




More information about the kde-core-devel mailing list