summaryrefslogtreecommitdiffstats
path: root/src/swordoptions.cpp
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2013-08-21 19:16:24 +0200
committerSlávek Banko <slavek.banko@axis.cz>2013-08-21 19:16:24 +0200
commit44c23c4159d9195718a7e80e005cc5c12c7001ce (patch)
tree65ab21fde66beb0aeee124631e0f65b0fb8c18bd /src/swordoptions.cpp
downloadtdeio-sword-44c23c4159d9195718a7e80e005cc5c12c7001ce.tar.gz
tdeio-sword-44c23c4159d9195718a7e80e005cc5c12c7001ce.zip
Initial import of kio-sword 0.3
Diffstat (limited to 'src/swordoptions.cpp')
-rw-r--r--src/swordoptions.cpp174
1 files changed, 174 insertions, 0 deletions
diff --git a/src/swordoptions.cpp b/src/swordoptions.cpp
new file mode 100644
index 0000000..306e548
--- /dev/null
+++ b/src/swordoptions.cpp
@@ -0,0 +1,174 @@
+/***************************************************************************
+ File: swordoptions.cpp
+ Project: Kio-Sword -- An ioslave for SWORD and KDE
+ Copyright: Copyright (C) 2004-2005 Luke Plant
+ ***************************************************************************/
+
+/***************************************************************************
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+// Internal
+#include "swordoptions.h"
+#include "option.h"
+
+
+// Std C/C++
+#include <vector>
+#include <stdlib.h>
+
+using std::vector;
+
+namespace KioSword
+{
+ SwordOptions::SwordOptions()
+ {
+ init();
+ }
+
+ void SwordOptions::init()
+ {
+ // Setup all the options
+ propagate.setup (true, "PropagateOptions", "p", "propagate", true);
+ verseNumbers.setup (true, "VerseNumbers", "vn", "versenumbers", true);
+ verseLineBreaks.setup (true, "VerseLineBreaks", "lb", "linebreaks", true);
+ redWords.setup (true, "RedWords", "rw", "redwords", true);
+ footnotes.setup (false, "Footnotes", "fn", "footnotes", true);
+ headings.setup (true, "Headings", "hd", "headings", true);
+ strongs.setup (false, "StrongsNumbers", "st", "strongs", true);
+ morph.setup (false, "MorphologicalTags", "mt", "morph", true);
+ cantillation.setup (true, "Cantillation", "hc", "cantillation", true);
+ hebrewVowelPoints.setup (true, "HebrewVowelPoints", "hvp", "vowelpoints", true);
+ greekAccents.setup (true, "GreekAccents", "ga", "accents", true);
+ styleSheet.setup ("default.css", "StyleSheet", "ss", "stylesheet", true);
+ variants.setup (0, "Variants", "vr", "variants", true);
+ wholeBook.setup (false, "WholeBook", "wb", "wholebook", false);
+ doBibleIndex.setup (true, "BibleIndex", "bi", "bibleindex", false);
+ doDictIndex.setup (false, QString::null, "di", "dictindex", false);
+ doFullTreeIndex.setup (false, "FullTreeIndex", "fi", "fullindex", false);
+ doOtherIndex.setup (false, QString::null, "oi", "otherindex", false);
+ defaultBible.setup ("", "DefaultBible", "dfb", "defaultbible", true);
+ defaultGreekStrongs.setup ("", "DefaultGreekStrongs", "dfgs", "defaultgreekstrongs", true);
+ defaultHebrewStrongs.setup ("", "DefaultHebrewStrongs", "dfhs", "defaulthebrewstrongs", true);
+ defaultGreekMorph.setup ("", "DefaultGreekMorph", "dfgm", "defaultgreekmorph", true);
+ defaultHebrewMorph.setup ("", "DefaultHebrewMorph", "dfhm", "defaulthebrewmorph", true);
+ locale.setup ("", "Locale", "l", "locale", true);
+
+ m_optionList.push_back(&propagate);
+ m_optionList.push_back(&verseNumbers);
+ m_optionList.push_back(&verseLineBreaks);
+ m_optionList.push_back(&redWords);
+ m_optionList.push_back(&footnotes);
+ m_optionList.push_back(&headings);
+ m_optionList.push_back(&strongs);
+ m_optionList.push_back(&morph);
+ m_optionList.push_back(&cantillation);
+ m_optionList.push_back(&hebrewVowelPoints);
+ m_optionList.push_back(&greekAccents);
+ m_optionList.push_back(&styleSheet);
+ m_optionList.push_back(&variants);
+ m_optionList.push_back(&wholeBook);
+ m_optionList.push_back(&doBibleIndex);
+ m_optionList.push_back(&doDictIndex);
+ m_optionList.push_back(&doFullTreeIndex);
+ m_optionList.push_back(&doOtherIndex);
+ m_optionList.push_back(&defaultBible);
+ m_optionList.push_back(&defaultGreekStrongs);
+ m_optionList.push_back(&defaultHebrewStrongs);
+ m_optionList.push_back(&defaultGreekMorph);
+ m_optionList.push_back(&defaultHebrewMorph);
+ m_optionList.push_back(&locale);
+ }
+
+ /** Copy constuctor */
+ SwordOptions::SwordOptions(const SwordOptions& other)
+ {
+ init();
+ vector<OptionBase*>::const_iterator it_other;
+ vector<OptionBase*>::const_iterator it_end = other.m_optionList.end();
+
+ vector<OptionBase*>::const_iterator it_this = m_optionList.begin();
+ for(it_other = other.m_optionList.begin(); it_other != it_end; )
+ {
+ (*it_this)->copy((*it_other));
+ ++it_this;
+ ++it_other;
+ }
+ }
+
+ SwordOptions::~SwordOptions()
+ {
+ }
+
+ /** Set all (appropriate) options from the query string */
+ void SwordOptions::readFromQueryString(QMap<QString, QString> items)
+ {
+ vector<OptionBase*>::const_iterator it;
+ vector<OptionBase*>::const_iterator it_end = m_optionList.end();
+
+ for(it = m_optionList.begin(); it != it_end; ++it)
+ {
+ (*it)->readFromQueryString(items, propagate());
+ }
+ }
+
+
+ /** Read all options in from the config file/defaults */
+ void SwordOptions::readFromConfig(const KConfig* config)
+ {
+ vector<OptionBase*>::const_iterator it;
+ vector<OptionBase*>::const_iterator it_end = m_optionList.end();
+
+ for(it = m_optionList.begin(); it != it_end; ++it)
+ {
+ (*it)->readFromConfig(config);
+ }
+ }
+
+ /** Save all options to the config file */
+ void SwordOptions::saveToConfig(KConfig* config)
+ {
+ vector<OptionBase*>::const_iterator it;
+ vector<OptionBase*>::const_iterator it_end = m_optionList.end();
+
+ for(it = m_optionList.begin(); it != it_end; ++it)
+ {
+ (*it)->saveToConfig(config);
+ }
+ }
+
+ /** Get the values that should be used for building a query string */
+ QMap<QString, QString> SwordOptions::getQueryStringParams() const
+ {
+ QMap<QString, QString> result;
+
+
+ vector<OptionBase*>::const_iterator it;
+ vector<OptionBase*>::const_iterator it_end = m_optionList.end();
+
+ for(it = m_optionList.begin(); it != it_end; ++it)
+ {
+ QString name = QString::null;
+ QString value = QString::null;
+ (*it)->getQueryStringPair(name, value);
+ if (!name.isNull() && !name.isEmpty())
+ {
+ result[name] = value;
+ }
+ }
+ return result;
+ }
+}