summaryrefslogtreecommitdiffstats
path: root/scribus/prefstable.cpp
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/prefstable.cpp
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/prefstable.cpp')
-rw-r--r--scribus/prefstable.cpp224
1 files changed, 224 insertions, 0 deletions
diff --git a/scribus/prefstable.cpp b/scribus/prefstable.cpp
new file mode 100644
index 0000000..7bd8e69
--- /dev/null
+++ b/scribus/prefstable.cpp
@@ -0,0 +1,224 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+/***************************************************************************
+ * Copyright (C) 2004 by Riku Leino *
+ * riku.leino@gmail.com *
+ * *
+ * 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. *
+ ***************************************************************************/
+
+#include "prefstable.h"
+
+PrefsTable::PrefsTable(QString tableName)
+{
+ name = tableName;
+ rowCount = 0;
+ colCount = 0;
+}
+
+QString PrefsTable::getName()
+{
+ return name;
+}
+
+int PrefsTable::height()
+{
+ return rowCount;
+}
+
+int PrefsTable::getRowCount()
+{
+ return rowCount;
+}
+
+int PrefsTable::width()
+{
+ return colCount;
+}
+
+int PrefsTable::getColCount()
+{
+ return colCount;
+}
+
+QString PrefsTable::get(int row, int col, const QString& defValue)
+{
+ checkSize(row, col, defValue);
+ if ((*table[row])[col] == "__NOT__SET__")
+ table[row]->insert(table[row]->begin()+col, defValue);
+
+ return (*table[row])[col];
+}
+
+void PrefsTable::set(int row, int col, const char* value)
+{
+ set(row, col, QString(value));
+}
+
+void PrefsTable::set(int row, int col, const std::string& value)
+{
+ set(row, col, QString(value.c_str()));
+}
+
+void PrefsTable::set(int row, int col, const QString& value)
+{
+ checkSize(row, col, "__NOT__SET__");
+ table[row]->insert(table[row]->begin()+col, value);
+}
+
+int PrefsTable::getInt(int row, int col, int defValue)
+{
+ QString stringValue = get(row, col, QString("%1").arg(defValue));
+ bool ok = false;
+ int ivalue = stringValue.toInt(&ok);
+ if (!ok)
+ ivalue = defValue;
+ return ivalue;
+}
+
+void PrefsTable::set(int row, int col, int value)
+{
+ set(row, col, QString("%1").arg(value));
+}
+
+void PrefsTable::set(int row, int col, uint value)
+{
+ set(row, col, QString("%1").arg(value));
+}
+
+uint PrefsTable::getUInt(int row, int col, uint defValue)
+{
+ QString stringValue = get(row, col, QString("%1").arg(defValue));
+ bool ok = false;
+ int uivalue = stringValue.toUInt(&ok);
+ if (!ok)
+ uivalue = defValue;
+ return uivalue;
+}
+
+double PrefsTable::getDouble(int row, int col, double defValue)
+{
+ QString stringValue = get(row, col, QString("%1").arg(defValue));
+ bool ok = false;
+ double dvalue = stringValue.toDouble(&ok);
+ if (!ok)
+ dvalue = defValue;
+ return dvalue;
+}
+
+void PrefsTable::set(int row, int col, double value)
+{
+ set(row, col, QString("%1").arg(value));
+}
+
+bool PrefsTable::getBool(int row, int col, bool defValue)
+{
+ QString stringValue = get(row, col, QString("%1").arg(defValue));
+ bool ok = false;
+ int ivalue = stringValue.toInt(&ok);
+ if (!ok)
+ ivalue = defValue;
+ return ivalue;
+}
+
+void PrefsTable::set(int row, int col, bool value)
+{
+ set(row, col, QString("%1").arg(value));
+}
+
+int PrefsTable::find(int searchCol, const QString& what)
+{
+ if ((searchCol < 0) || (searchCol >= width()))
+ return -1;
+
+ int rowi = -1;
+ for (int i = 0; i < height(); ++i)
+ {
+ if ((get(i, searchCol, "__NOT__SET__") == what) &&
+ (get(i, searchCol, "__NOT__SET__") != "__NOT__SET__"))
+ {
+ rowi = i;
+ break;
+ }
+ }
+
+ return rowi;
+}
+
+void PrefsTable::removeRow(int colIndex, const QString& what)
+{
+ if ((colIndex < 0) || (colIndex >= width()))
+ return;
+
+ Table::iterator it = table.begin();
+ for (int i = 0; i < height(); ++i)
+ {
+ if (get(i, colIndex, "__NOT__SET__") == what)
+ {
+ it = table.erase(it);
+ --rowCount;
+ }
+ else {
+ ++it;
+ }
+ }
+}
+
+void PrefsTable::checkSize(int rowIndex, int colIndex, QString defValue)
+{
+ checkHeight(rowIndex);
+ checkWidth(rowIndex, colIndex, defValue);
+}
+
+void PrefsTable::checkHeight(int rowIndex)
+{
+ if (rowCount < (rowIndex + 1))
+ {
+ for (int i = 0; i < ((rowIndex + 1) - rowCount); ++i)
+ table.push_back(new QStringList());
+ rowCount = rowIndex + 1;
+ }
+}
+
+void PrefsTable::checkWidth(int rowIndex, int colIndex, QString defValue)
+{
+ if (static_cast<int>(table[rowIndex]->size()) <= (colIndex + 1))
+ {
+ for (int i = 0; i < ((colIndex + 1) - static_cast<int>(table[rowIndex]->size())); ++i)
+ {
+ if (i == colIndex - static_cast<int>(table[rowIndex]->size()))
+ table[rowIndex]->push_back(defValue);
+ else
+ table[rowIndex]->push_back("__NOT__SET__");
+ }
+ colCount = colIndex + 1;
+ }
+}
+
+void PrefsTable::clear()
+{
+ rowCount = 0;
+ colCount = 0;
+ table.clear();
+}
+
+PrefsTable::~PrefsTable()
+{
+}