File indexing completed on 2025-02-02 07:28:23
0001 /* 0002 Copyright 2010 Stefan Majewsky <majewsky@gmx.net> 0003 0004 This program is free software; you can redistribute it and/or modify 0005 it under the terms of the GNU General Public License as published by 0006 the Free Software Foundation; either version 2 of the License, or 0007 (at your option) any later version. 0008 0009 This program is distributed in the hope that it will be useful, 0010 but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0012 GNU General Public License for more details. 0013 0014 You should have received a copy of the GNU General Public License 0015 along with this program; if not, write to the Free Software 0016 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 0017 */ 0018 0019 #include "itemfactory.h" 0020 0021 QList<Kolf::ItemMetadata> Kolf::ItemFactory::knownTypes() const 0022 { 0023 QList<Kolf::ItemMetadata> result; 0024 QList<Entry>::const_iterator it1 = m_entries.begin(), it2 = m_entries.end(); 0025 for (; it1 != it2; ++it1) 0026 result << it1->first; 0027 return result; 0028 } 0029 0030 QGraphicsItem* Kolf::ItemFactory::createInstance(const QString& identifier, QGraphicsItem* parent, b2World* world) const 0031 { 0032 QList<Entry>::const_iterator it1 = m_entries.begin(), it2 = m_entries.end(); 0033 for (; it1 != it2; ++it1) 0034 if (it1->first.identifier == identifier) 0035 return (it1->second)(parent, world); 0036 return nullptr; 0037 } 0038 0039 void Kolf::ItemFactory::registerType(const Kolf::ItemMetadata& metadata, ItemCreator creator) 0040 { 0041 m_entries << Entry(metadata, creator); 0042 }