From 2436859145c16f25661160fe01238ccc59805283 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 29 Oct 2008 14:50:11 -0400 Subject: Initial import --- RomType.h | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 RomType.h (limited to 'RomType.h') diff --git a/RomType.h b/RomType.h new file mode 100644 index 0000000..04fbd5e --- /dev/null +++ b/RomType.h @@ -0,0 +1,104 @@ +/* + * Copyright 2008 Ben Boeckel + * + * 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 . + */ + +/** + * \file RomType.h + */ + +#ifndef ROMTYPE_H +#define ROMTYPE_H + +// Qt includes +#include +#include +#include + +// Forward declarations +class KConfigGroup; + +/** + * \class RomType + * \brief Description of a ROM type. + */ +class RomType : public QObject +{ + Q_OBJECT + /** + * \var extensions + * \brief The extensions the ROMs have. + * + * \sa extensions + * \sa addExtension + * \sa removeExtension + */ + Q_PROPERTY(QSet extensions READ extensions) + + public: + /** + * \brief Default constructor. + */ + RomType(); + + /** + * \brief Config constructor. + */ + RomType(const KConfigGroup& config); + + /** + * \brief Copy constructor. + */ + RomType(const RomType& rhs); + + /** + * \brief Create a KConfigGroup for saving. + * + * \param name The name of the group. + * \param parent The parent group. + */ + void makeGroup(const QString& name, const KConfigGroup& parent) const; + + /** + * \return The set of extensions for the type. + */ + QSet extensions() const; + + /** + * \brief Assignment method. + * + * \param rhs Type to copy. + */ + RomType& operator=(const RomType& rhs); + public slots: + /** + * \brief Adds an extension the type can have. + * + * \param extension + */ + void addExtension(const QString& extension); + + /** + * \brief Remove an extension for the type. + * + * \param extension + */ + void removeExtension(const QString& extension); + private: + QSet m_extensions; +}; +Q_DECLARE_METATYPE(RomType*) + +#endif -- cgit