exporting/importing config keys? plus: Mandelbrot news

Benoit Jacob jacob.benoit.1 at gmail.com
Sat Mar 13 19:16:15 CET 2010


2010/3/13 Benoit Jacob <jacob.benoit.1 at gmail.com>:
> 2010/3/13 Benoit Jacob <jacob.benoit.1 at gmail.com>:
>> 2010/3/13 Benoit Jacob <jacob.benoit.1 at gmail.com>:
>>> 2010/3/13 Marco Martin <notmart at gmail.com>:
>>>> On Saturday 13 March 2010, Benoit Jacob wrote:
>>>>> Hi,
>>>>>
>>>>> I've just made a bunch of Mandelbrot improvements in trunk, plus 1
>>>>> bugfix backported to 4.4, see below.
>>>>
>>>> great :)
>>>>
>>>>> I would like to honor this feature request:
>>>>> http://forum.kde.org/brainstorm.php#idea55395_page1
>>>>>
>>>>> Basically I want to create a right-click desktop menu entry that
>>>>> allows to export/import Mandelbrot's configuration to/from a file.
>>>>>
>>>>> Does KDE's config system allow that right away? Or should I code my
>>>>> own file I/O?
>>>>>
>>>> create a new kconfig on a new file, a kconfiggroup on it, then write all your
>>>> config entries copied from the main kconfiggroup
>>>>
>>>>> Also, any example code for adding a right-click menu to a plasma wallpaper?
>>>> QList<QAction*> Wallpaper::contextualActions()
>>>
>>> I tried that but  can't get it to work: it compiles, but the actions
>>> don't show up in the right click menu.
>>>
>>> Here's what I did. In my Mandelbrot (inheriting Wallpaper) class I
>>> have new members,
>>>
>>>        QAction m_exportImageAction;
>>>        QAction m_exportConfigAction;
>>>        QAction m_importConfigAction;
>>>
>>> Then they are initialized in the initialization list of my Mandelbrot
>>> constructor:
>>>
>>> Mandelbrot::Mandelbrot(QObject *parent, const QVariantList &args)
>>>    : Plasma::Wallpaper(parent, args), m_image(0), m_tiling(this),
>>>      m_exportImageAction(i18n("Export image..."), 0),
>>>      m_exportConfigAction(i18n("Export parameters..."), 0),
>>>      m_importConfigAction(i18n("Import parameters..."), 0),
>>
>> I also tried passing 'this' instead of '0' for the 'parent' argument
>> here, no difference...
>>
>>>
>>> Then, in the body of that constructor, I do:
>>>
>>>    contextualActions().append(&m_exportImageAction);
>>>    contextualActions().append(&m_exportConfigAction);
>>>    contextualActions().append(&m_importConfigAction);
>>>
>>>    connect(&m_exportImageAction, SIGNAL(triggered()), this,
>>> SLOT(exportImage()));
>>>    connect(&m_exportConfigAction, SIGNAL(triggered()), this,
>>> SLOT(exportConfig()));
>>>    connect(&m_importConfigAction, SIGNAL(triggered()), this,
>>> SLOT(importConfig()));
>>>
>>> What am I doing wrong?
>
> Found it --- contextualActions(), despite _not_ being const-qualified,
> is returning a list _by value_. Since I didn't see a const-qualifier,
> my brain just assumed it would return a reference.

Oops.

It _is_ const qualified :)

Sorry, I'm really tired !!

Benoit

>
> Looks like I have to use setContextualActions.
>
> Benoit
>
>>>
>>> Thanks
>>> Benoit
>>>
>>>>
>>>> (wouldn't make more sense putting it into the config dialog anyways?)
>>>>
>>>> Cheers,
>>>> Marco Martin
>>>> _______________________________________________
>>>> Plasma-devel mailing list
>>>> Plasma-devel at kde.org
>>>> https://mail.kde.org/mailman/listinfo/plasma-devel
>>>>
>>>
>>
>


More information about the Plasma-devel mailing list