summaryrefslogtreecommitdiffstats
path: root/noatun-plugins/dub/dub/dubconfigmodule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'noatun-plugins/dub/dub/dubconfigmodule.cpp')
-rw-r--r--noatun-plugins/dub/dub/dubconfigmodule.cpp125
1 files changed, 125 insertions, 0 deletions
diff --git a/noatun-plugins/dub/dub/dubconfigmodule.cpp b/noatun-plugins/dub/dub/dubconfigmodule.cpp
new file mode 100644
index 0000000..ff1f3dd
--- /dev/null
+++ b/noatun-plugins/dub/dub/dubconfigmodule.cpp
@@ -0,0 +1,125 @@
+//
+//
+// C++ Implementation: cpp
+//
+// Description:
+//
+//
+// Author: Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>, (C) 2003
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+
+#include <kconfig.h>
+#include <kdialog.h>
+#include <kglobal.h>
+#include <klocale.h>
+#include <kurlrequester.h>
+#include <kdebug.h>
+
+#include <qbuttongroup.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
+
+#include "dubconfigmodule.h"
+
+DubConfigModule::DubConfigModule(QObject* parent)
+ : CModule(i18n("Dub"), i18n("Folder-Based Playlist"), "noatun", parent)
+ , playMode(oneDir)
+ , playOrder(normal)
+{
+ QVBoxLayout *vbox = new QVBoxLayout(this);
+ vbox->setAutoAdd(true);
+ vbox->setSpacing( 0 );
+ vbox->setMargin( 0 );
+
+ prefs = new DubPrefs(this);
+ prefs->mediaDirectory->setMode(KFile::Directory);
+
+ reopen();
+}
+
+DubConfigModule::~DubConfigModule()
+{
+}
+
+void DubConfigModule::save(void)
+{
+ KConfig* config(KGlobal::config());
+ config->setGroup("DubPlaylist");
+
+ mediaDirectory = prefs->mediaDirectory->url();
+
+ QButton* selectedMode = prefs->playMode->selected();
+ if (selectedMode==prefs->allFiles)
+ playMode = DubConfigModule::allFiles;
+ else
+ if (selectedMode==prefs->recursiveDir)
+ playMode = DubConfigModule::recursiveDir;
+ else
+ playMode = DubConfigModule::oneDir;
+
+ QButton* selectedOrder = prefs->playOrder->selected();
+ if (selectedOrder==prefs->shuffle)
+ playOrder = DubConfigModule::shuffle;
+ else
+ if (selectedOrder==prefs->repeat)
+ playOrder = DubConfigModule::repeat;
+ else
+ if (selectedOrder==prefs->single)
+ playOrder = DubConfigModule::single;
+ else
+ playOrder = DubConfigModule::normal;
+
+ config->writePathEntry("MediaDirectory", mediaDirectory);
+ config->writeEntry("PlayMode", (int) playMode);
+ config->writeEntry("PlayOrder", (int) playOrder);
+}
+
+void DubConfigModule::reopen(void)
+{
+ kdDebug(90010) << "dubconfig: reopen" << endl;
+ KConfig* config(KGlobal::config());
+ config->setGroup("DubPlaylist");
+ mediaDirectory = config->readPathEntry("MediaDirectory", "~/");
+ kdDebug(90010) << "dub: media home is " << mediaDirectory << endl;
+ playMode = (PlayMode) config->readNumEntry("PlayMode", DubConfigModule::oneDir);
+ playOrder = (PlayOrder) config->readNumEntry("PlayOrder", DubConfigModule::normal);
+ apply();
+}
+
+void DubConfigModule::apply()
+{
+ prefs->mediaDirectory->setURL(mediaDirectory);
+ // what a horrible repetition, but it's not worthwhile doing any better ;)
+ switch (playMode) {
+ case allFiles:
+ prefs->playMode->setButton(prefs->playMode->id(prefs->allFiles));
+ break;
+ case oneDir:
+ prefs->playMode->setButton(prefs->playMode->id(prefs->oneDir));
+ break;
+ case recursiveDir:
+ prefs->playMode->setButton(prefs->playMode->id(prefs->recursiveDir));
+ break;
+ }
+ switch (playOrder) {
+ case normal:
+ prefs->playOrder->setButton(prefs->playOrder->id(prefs->normal));
+ break;
+ case shuffle:
+ prefs->playOrder->setButton(prefs->playOrder->id(prefs->shuffle));
+ break;
+ case repeat:
+ prefs->playOrder->setButton(prefs->playOrder->id(prefs->repeat));
+ break;
+ case single:
+ prefs->playOrder->setButton(prefs->playOrder->id(prefs->single));
+ break;
+ }
+}
+
+
+#include "dubconfigmodule.moc"