[kde-workspace] plasma/generic/tools/plasmoidviewer: Make plasmoidviewer have non-persistent applet config files.
Shaun Reich
shaun.reich at kdemail.net
Tue Jan 3 22:46:50 UTC 2012
I should've passed this through review, it didn't occur to me how
invasive it was. so..
(a) does the code look fine
and
(b) should the default be persistent configs, and have a switch like
--volatile-config or something? I don't know which is more common, but
it just seemed to me since it's a debug app, that reading from scratch
would be the most common thing, otherwise you can be left with
orphaned nodes which override your own. or at least that's what I ran
into ;-)
On Mon, Jan 2, 2012 at 10:07 PM, Shaun Reich <shaun.reich at kdemail.net> wrote:
> Git commit e5e437e9aa581056d4517c70573115582420b497 by Shaun Reich.
> Committed on 03/01/2012 at 04:04.
> Pushed by sreich into branch 'master'.
>
> Make plasmoidviewer have non-persistent applet config files.
>
> Non-persistence is on by default, since this is a debugging application
> (I've run into a few times already where my applet was loading config
> file entries, and they were overriding the less-heavy default settings.
> iow: I was getting repeticious undesired behavior.
>
> Enable config persistence by passing --persistent-config
>
> (we could also make the option behave inversely, if that's more
> intelligent. seemed like this would be the most desired behavior for a
> debugging application).
> CCMAIL:plasma-devel at kde.org
>
> M +5 -4 plasma/generic/tools/plasmoidviewer/fullview.cpp
> M +4 -1 plasma/generic/tools/plasmoidviewer/fullview.h
> M +10 -1 plasma/generic/tools/plasmoidviewer/main.cpp
>
> http://commits.kde.org/kde-workspace/e5e437e9aa581056d4517c70573115582420b497
>
> diff --git a/plasma/generic/tools/plasmoidviewer/fullview.cpp b/plasma/generic/tools/plasmoidviewer/fullview.cpp
> index a30d9d1..c6a7ce0 100644
> --- a/plasma/generic/tools/plasmoidviewer/fullview.cpp
> +++ b/plasma/generic/tools/plasmoidviewer/fullview.cpp
> @@ -45,13 +45,14 @@
>
> using namespace Plasma;
>
> -FullView::FullView(const QString &ff, const QString &loc, QWidget *parent)
> +FullView::FullView(const QString &ff, const QString &loc, bool persistent, QWidget *parent)
> : QGraphicsView(parent),
> m_formfactor(Plasma::Planar),
> m_location(Plasma::Floating),
> m_containment(0),
> m_applet(0),
> - m_appletShotTimer(0)
> + m_appletShotTimer(0),
> + m_persistentConfig(persistent)
> {
> setFrameStyle(QFrame::NoFrame);
> QString formfactor = ff.toLower();
> @@ -157,7 +158,7 @@ void FullView::addApplet(const QString &name, const QString &containment,
> return;
> }
>
> - if (hasStorageGroupFor(m_applet)) {
> + if (hasStorageGroupFor(m_applet) && m_persistentConfig) {
> KConfigGroup cg = m_applet->config();
> KConfigGroup storage = storageGroup(m_applet);
> cg.deleteGroup();
> @@ -371,7 +372,7 @@ KConfigGroup FullView::storageGroup(Plasma::Applet *applet) const
>
> void FullView::storeCurrentApplet()
> {
> - if (m_applet) {
> + if (m_applet && m_persistentConfig) {
> KConfigGroup cg;
> m_applet->save(cg);
> cg = m_applet->config();
> diff --git a/plasma/generic/tools/plasmoidviewer/fullview.h b/plasma/generic/tools/plasmoidviewer/fullview.h
> index b998a41..eed247f 100644
> --- a/plasma/generic/tools/plasmoidviewer/fullview.h
> +++ b/plasma/generic/tools/plasmoidviewer/fullview.h
> @@ -44,7 +44,7 @@ class FullView : public QGraphicsView
> Q_OBJECT
>
> public:
> - explicit FullView(const QString &formfactor = "planar", const QString &location = "floating", QWidget *parent = 0);
> + explicit FullView(const QString &formfactor = "planar", const QString &location = "floating", bool persistentConfig = false, QWidget *parent = 0);
> ~FullView();
>
> void addApplet(const QString &name, const QString& containment,
> @@ -77,6 +77,9 @@ private:
> Plasma::Applet *m_applet;
> QStringList m_appletsToShoot;
> QTimer *m_appletShotTimer;
> + // passed through cli by default, config files
> + // are non-persistent in plasmoidviewer.
> + bool m_persistentConfig;
> };
>
> #endif
> diff --git a/plasma/generic/tools/plasmoidviewer/main.cpp b/plasma/generic/tools/plasmoidviewer/main.cpp
> index ec7ab42..e589cdd 100644
> --- a/plasma/generic/tools/plasmoidviewer/main.cpp
> +++ b/plasma/generic/tools/plasmoidviewer/main.cpp
> @@ -139,6 +139,8 @@ int main(int argc, char **argv)
> options.add("location <name>", ki18nc("Do not translate floating, desktop, fullscreen, top, bottom, left nor right", "The location constraint to start the Containment with (floating, desktop, fullscreen, top, bottom, left, right)"), "floating");
> options.add("p");
> options.add("pixmapcache <size>", ki18n("The size in kB to set the pixmap cache to"));
> + options.add("pr");
> + options.add("persistent-config", ki18n("By default the config file of applets run from plasmoidviewer is NOT PERSISTENT. This makes the applets loaded able to save config files"));
> options.add("s");
> options.add("screenshot", ki18n("Takes a screenshot of the widget and saves it the working directory as <pluginname>.png"));
> options.add("sa");
> @@ -212,7 +214,14 @@ int main(int argc, char **argv)
> kDebug() << "setting auth policy";
> Plasma::AuthorizationManager::self()->setAuthorizationPolicy(Plasma::AuthorizationManager::PinPairing);
>
> - FullView view(formfactor, location);
> + bool persistentConfig = args->isSet("persistent-config");
> + if (persistentConfig) {
> + kDebug() << "persistent-config flag set. Config file will now be saved in plasmoidviewer-appletsrc";
> + } else {
> + kWarning() << "!!! WARNING: PERSISTENT CONFIG flag was NOT SET. APPLET CONFIGURATION WILL NOT BE SAVED BETWEEN RUNS!!!";
> + }
> +
> + FullView view(formfactor, location, persistentConfig);
>
> if (args->isSet("list-remote")) {
> kDebug() << "list remote...";
> _______________________________________________
> Plasma-devel mailing list
> Plasma-devel at kde.org
> https://mail.kde.org/mailman/listinfo/plasma-devel
--
Shaun Reich,
KDE Software Developer (kde.org)
More information about the Plasma-devel
mailing list