2010/3/13 Benoit Jacob <jacob.benoi...@gmail.com>: > 2010/3/13 Benoit Jacob <jacob.benoi...@gmail.com>: >> 2010/3/13 Benoit Jacob <jacob.benoi...@gmail.com>: >>> 2010/3/13 Marco Martin <notm...@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@kde.org >>>> https://mail.kde.org/mailman/listinfo/plasma-devel >>>> >>> >> > _______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel