diff options
Diffstat (limited to 'kcontrol/screensaver/saverconfig.cpp')
-rw-r--r-- | kcontrol/screensaver/saverconfig.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/kcontrol/screensaver/saverconfig.cpp b/kcontrol/screensaver/saverconfig.cpp new file mode 100644 index 000000000..a32d61e0e --- /dev/null +++ b/kcontrol/screensaver/saverconfig.cpp @@ -0,0 +1,38 @@ +#include <kdesktopfile.h> +#include <klocale.h> + +#include "saverconfig.h" + +SaverConfig::SaverConfig() +{ +} + +bool SaverConfig::read(const QString &file) +{ + KDesktopFile config(file, true); + if( !config.tryExec()) + return false; + mExec = config.readPathEntry("Exec"); + mName = config.readEntry("Name"); + mCategory = i18n("Screen saver category", // Must be same in Makefile.am + config.readEntry("X-KDE-Category").utf8()); + + if (config.hasActionGroup("Setup")) + { + config.setActionGroup("Setup"); + mSetup = config.readPathEntry("Exec"); + } + + if (config.hasActionGroup("InWindow")) + { + config.setActionGroup("InWindow"); + mSaver = config.readPathEntry("Exec"); + } + + int indx = file.findRev('/'); + if (indx >= 0) { + mFile = file.mid(indx+1); + } + + return !mSaver.isEmpty(); +} |