// rdprofile.cpp // // A class to read an ini formatted configuration file. // // (C) Copyright 2002-2003,2016 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License // version 2 as published by the Free Software Foundation. // // 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., 675 Mass Ave, Cambridge, MA 02139, USA. // #include #include #include #include RDProfile::RDProfile() { } QString RDProfile::source() const { return profile_source; } bool RDProfile::setSource(const QString &filename) { QString section; int offset; profile_source=filename; profile_section.resize(0); profile_section.push_back(RDProfileSection()); profile_section.back().setName(""); QFile *file=new QFile(filename); if(!file->open(IO_ReadOnly)) { delete file; return false; } QTextStream *text=new QTextStream(file); QString line=text->readLine().stripWhiteSpace(); while(!line.isNull()) { if((line.left(1)!=";")&&(line.left(1)!="#")) { if((line.left(1)=="[")&&(line.right(1)=="]")) { section=line.mid(1,line.length()-2); profile_section.push_back(RDProfileSection()); profile_section.back().setName(section); } else if(((offset=line.find('='))!=-1)) { profile_section.back(). addValue(line.left(offset), line.right(line.length()-offset-1).stripWhiteSpace()); } } line=text->readLine().stripWhiteSpace(); } delete text; delete file; return true; } void RDProfile::setSourceString(const QString &str) { QStringList lines; QString section; int offset; profile_source=""; profile_section.resize(0); profile_section.push_back(RDProfileSection()); profile_section.back().setName(""); lines=lines.split("\n",str); for(unsigned i=0;i