diff options
| author | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
|---|---|---|
| committer | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
| commit | 7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch) | |
| tree | 4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/prefstable.cpp | |
| download | scribus-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.cpp | 224 |
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() +{ +} |
