From 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 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/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kandy/src/commandset.cpp | 154 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 kandy/src/commandset.cpp (limited to 'kandy/src/commandset.cpp') diff --git a/kandy/src/commandset.cpp b/kandy/src/commandset.cpp new file mode 100644 index 00000000..f44899ca --- /dev/null +++ b/kandy/src/commandset.cpp @@ -0,0 +1,154 @@ +/* + This file is part of Kandy. + + Copyright (c) 2001 Cornelius Schumacher + + 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + As a special exception, permission is given to link this program + with any edition of Qt, and distribute the resulting executable, + without including the source code for Qt in the source distribution. +*/ + +#include +#include +#include + +#include + +#include "atcommand.h" + +#include "commandset.h" + +CommandSet::CommandSet() +{ + mList.setAutoDelete(true); +} + +CommandSet::~CommandSet() +{ +} + +void CommandSet::addCommand(ATCommand *command) +{ + mList.append(command); +} + +void CommandSet::deleteCommand(ATCommand *command) +{ + mList.removeRef(command); +} + +bool CommandSet::loadFile(const QString& filename) +{ +// kdDebug(5960) << "CommandSet::loadFile(): " << filename << endl; + + QDomDocument doc("Kandy"); + QFile f(filename); + if (!f.open(IO_ReadOnly)) + return false; + if (!doc.setContent(&f)) { + f.close(); + return false; + } + f.close(); + + QDomNodeList commands = doc.elementsByTagName("command"); + for(uint i=0;isetCmdName(c->attribute("name","unknown")); + command->setCmdString(c->attribute("string","at")); + command->setHexOutput(c->attribute("hexoutput","n") == "y"); + + QDomNode n = c->firstChild(); + while(!n.isNull()) { + QDomElement e = n.toElement(); + if (!e.isNull()) { + ATParameter *p = new ATParameter; + p->setName(e.attribute("name","unnamed")); + p->setValue(e.attribute("value","0")); + p->setUserInput(e.attribute("userinput","n") == "y"); + + command->addParameter(p); + } + n = n.nextSibling(); + } +} + +void CommandSet::saveCommand(ATCommand *command,QDomDocument *doc, + QDomElement *parent) +{ + QDomElement c = doc->createElement("command"); + c.setAttribute("name",command->cmdName()); + c.setAttribute("string",command->cmdString()); + c.setAttribute("hexoutput",command->hexOutput() ? "y" : "n"); + parent->appendChild(c); + + QPtrList paras = command->parameters(); + for(uint i=0;icreateElement("parameter"); + e.setAttribute("name",p->name()); + e.setAttribute("value",p->value()); + e.setAttribute("userinput",p->userInput() ? "y" : "n"); + parent->appendChild(e); +} -- cgit v1.2.3