///////////////////////////////////////////////////////////////////////////// // Name: pokemod/Author.cpp // Purpose: Define an author of a PokéMod // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Wed Feb 28 20:42:17 2007 // Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions // Licence: // 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 3 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, see . ///////////////////////////////////////////////////////////////////////////// #include "Author.h" PokeGen::PokeMod::Author::Author(const Pokemod& par, const unsigned _id) : Object(par, _id), name(""), email(""), role("") { } PokeGen::PokeMod::Author::Author(const Pokemod& par, const Author& a, const unsigned _id) : Object(par, _id) { *this = a; } PokeGen::PokeMod::Author::Author(const Pokemod& par, const QString& fname, const unsigned _id) : Object(par, _id) { load(fname, _id); } bool PokeGen::PokeMod::Author::validate() const { bool valid = true; pokemod.validationMsg(QString("---Author \"%1\" with id %2---").arg(name).arg(id), Pokemod::V_Msg); if (name == "") { pokemod.validationMsg("Name not defined"); valid = false; } if (email == "") pokemod.validationMsg("Email not defined", Pokemod::V_Warn); else if (!QRegExp("[a-zA-Z0-9%-_\\.]+@[a-zA-Z0-9\\-]+(\\.[a-zA-Z]+)*\\.[a-zA-Z]{2,4}").exactMatch(email)) { pokemod.validationMsg("Invalid email"); valid = false; } if (role == "") { pokemod.validationMsg("Role not defined"); valid = false; } return valid; } void PokeGen::PokeMod::Author::load(const QString& fname, const unsigned _id) throw(Exception) { Ini ini(fname); if (_id == UINT_MAX) ini.getValue("id", id); else id = _id; ini.getValue("name", name); ini.getValue("email", email); ini.getValue("role", role); } void PokeGen::PokeMod::Author::save() const throw(Exception) { Ini ini; ini.addField("id", id); ini.addField("name", name); ini.addField("email", email); ini.addField("role", role); ini.save(QString("%1/author/%2.pini").arg(pokemod.getPath()).arg(name)); } void PokeGen::PokeMod::Author::setName(const QString& n) { name = n; } void PokeGen::PokeMod::Author::setEmail(const QString& e) { email = e; } void PokeGen::PokeMod::Author::setRole(const QString& r) { role = r; } QString PokeGen::PokeMod::Author::getName() const { return name; } QString PokeGen::PokeMod::Author::getEmail() const { return email; } QString PokeGen::PokeMod::Author::getRole() const { return role; } PokeGen::PokeMod::Author& PokeGen::PokeMod::Author::operator=(const Author& rhs) { if (this == &rhs) return *this; name = rhs.name; email = rhs.email; role = rhs.role; return *this; }