ok, finally a hopefully not too stupid question. Here's my code:
void Mandelbrot::exportConfig() { KUrl url = KFileDialog::getSaveUrl( KUrl(), "*.txt|Text files", 0, i18n("Save File"), KFileDialog::ConfirmOverwrite ); KConfig config(url.fileName()); KConfigGroup configgroup(&config, "Mandelbrot"); save(configgroup); configgroup.config()->sync(); } Problem: it doesn't actually write the file. Why? (The file dialog runs well, but the file isn't actually getting created, and if i create it beforehand, it doesn't get written). I had tried following this: http://techbase.kde.org/index.php?title=Development/Tutorials/KConfig#Writing_Entries Benoit 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 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