From 2bda8f7717adf28da4af0d34fb82f63d2868c31d Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeutils@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- superkaramba/src/lineparser.cpp | 96 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 superkaramba/src/lineparser.cpp (limited to 'superkaramba/src/lineparser.cpp') diff --git a/superkaramba/src/lineparser.cpp b/superkaramba/src/lineparser.cpp new file mode 100644 index 0000000..d923b6c --- /dev/null +++ b/superkaramba/src/lineparser.cpp @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2003-2004 Adam Geitgey + * Copyright (C) 2003 Hans Karlsson + * Copyright (c) 2005 Ryan Nickell + * Copyright (c) 2005 Petri Damsten + * + * This file is part of SuperKaramba. + * + * SuperKaramba 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. + * + * SuperKaramba 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 SuperKaramba; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + ****************************************************************************/ +#include "lineparser.h" +#include + +LineParser::LineParser(const QString& line) +{ + set(line); +} + +LineParser::~LineParser() +{ +} + +void LineParser::set(const QString& line) +{ + QRegExp rx("^\\s*(\\S+)"); + m_line = line; + + rx.search(m_line); + m_meter = rx.cap(1).upper(); +} + +int LineParser::getInt(QString w, int def) const +{ + QRegExp rx( "\\W+" + w +"=([-]?\\d+)", false ); + if (rx.search(m_line) != -1) + return rx.cap(1).toInt(); + else + return def; +} + +QColor LineParser::getColor(QString w, QColor def) const +{ + QRegExp rx( "\\W+" + w + "=([-]?\\d+),([-]?\\d+),([-]?\\d+)", false ); + if (rx.search(m_line) != -1) + return QColor(rx.cap(1).toInt(), rx.cap(2).toInt(), rx.cap(3).toInt()); + else + return def; +} + +QString LineParser::getString(QString w, QString def) const +{ + QString result; + QRegExp rx( "\\W+" + w + "=\"([^\"]*)\"", false ); + + bool found = (rx.search(m_line)==-1)?false:true; + if (rx.cap(1).isEmpty()) + { + rx = QRegExp(w + "=(\\S+)", false); + found = (rx.search(m_line)==-1)?false:true; + result = rx.cap(1); + } + else + { + result = rx.cap(1); + } + if(found) + return result; + else + return def; +} + +bool LineParser::getBoolean(QString w, bool def) const +{ + QString boolean = getString(w, "-").lower(); + if(boolean == "-") + return def; + else if (boolean == "true") // true / false + return true; + else if (boolean == "1") // 1 / 0 + return true; + else if (boolean == "on") // on / off + return true; + return false; +} -- cgit v1.2.1