File indexing completed on 2024-04-21 07:52:07

0001 /***************************************************************************
0002  *    copyright            : (C) 2004-2007 by Gael de Chalendar
0003  *    email                : kleag@free.fr
0004  ***************************************************************************/
0005 
0006 /***************************************************************************
0007  *                                                                         *
0008  *   This program is free software; you can redistribute it and/or modify  *
0009  *   it under the terms of the GNU General Public License as published by  *
0010  *   the Free Software Foundation; either either version 2
0011    of the License, or (at your option) any later version.of the License, or     *
0012  *   (at your option) any later version.                                   *
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
0017  *   02110-1301, USA
0018  ***************************************************************************/
0019 
0020 #include "skinSpritesData.h"
0021 
0022 #include <QTextStream>
0023 
0024 #include <KLocalizedString>
0025 #include <KMessageBox>
0026 
0027 namespace KsirkSkinEditor
0028 {
0029 SkinSpritesData* SkinSpritesData::m_singleton = nullptr;
0030 
0031 SkinSpritesData::SkinSpritesData()
0032 {
0033 }
0034 
0035 SkinSpritesData::~SkinSpritesData()
0036 {
0037   delete m_singleton;
0038   m_singleton = nullptr;
0039 }
0040 
0041 const SkinSpritesData& SkinSpritesData::single()
0042 {
0043   if (m_singleton == nullptr)
0044   {
0045     m_singleton = new SkinSpritesData();
0046     m_singleton->init();
0047   }
0048   return *m_singleton;
0049 }
0050 
0051 SkinSpritesData& SkinSpritesData::changeable()
0052 {
0053   if (m_singleton == nullptr)
0054   {
0055     m_singleton = new SkinSpritesData();
0056     m_singleton->init();
0057   }
0058   return *m_singleton;
0059 }
0060 
0061 /** setup default values for default skin sprites */
0062 void SkinSpritesData::init()
0063 {
0064   m_intDatas.clear();
0065   m_strDatas.clear();
0066 }
0067 
0068 
0069 const QString& SkinSpritesData::skin() const
0070 {
0071   return m_skin;
0072 }
0073 
0074 void SkinSpritesData::skin(const QString& newSkin)
0075 {
0076   m_skin = newSkin;
0077 }
0078 
0079 int SkinSpritesData::intData(const QString& name) const
0080 {
0081   QMap<QString, int>::const_iterator it = m_intDatas.find(name);
0082   if (it == m_intDatas.end())
0083   {
0084     QString msg;
0085     QTextStream(&msg) << i18n("Error - Unknown skin int data: ") << name;
0086     KMessageBox::error(nullptr, msg, i18n("Fatal Error"));
0087     exit(1);    
0088   }
0089   else
0090   {
0091     return (*it);
0092   }
0093 }
0094 
0095 const QString& SkinSpritesData::strData(const QString& name) const
0096 {
0097   QMap<QString, QString>::const_iterator it = m_strDatas.find(name);
0098   if (it == m_strDatas.end())
0099   {
0100     QString msg;
0101     QTextStream(&msg) << i18n("Error - Unknown skin string data: ") << name;
0102     KMessageBox::error(nullptr, msg, i18n("Fatal Error"));
0103     exit(1);    
0104   }
0105   else
0106   {
0107     return (*it);
0108   }
0109 }
0110     
0111 void SkinSpritesData::strData(const QString& name, const QString& data)
0112 {
0113   m_strDatas[name] = data;
0114 }
0115 
0116 void SkinSpritesData::intData(const QString& name, int data)
0117 {
0118   m_intDatas[name] = data;
0119 }
0120     
0121 
0122 }