File indexing completed on 2024-05-19 15:27:49

0001 /* This file is part of KGraphViewer.
0002    Copyright (C) 2005-2007 Gael de Chalendar <kleag@free.fr>
0003 
0004    KGraphViewer is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU General Public
0006    License as published by the Free Software Foundation, version 2.
0007 
0008    This program is distributed in the hope that it will be useful,
0009    but WITHOUT ANY WARRANTY; without even the implied warranty of
0010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0011    General Public License for more details.
0012 
0013    You should have received a copy of the GNU General Public License
0014    along with this program; if not, write to the Free Software
0015    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
0016    02110-1301, USA
0017 */
0018 
0019 #ifndef KGRAPHVIEWER_FONTSCACHE_H
0020 #define KGRAPHVIEWER_FONTSCACHE_H
0021 
0022 #include "Singleton.h"
0023 
0024 #include <qfont.h>
0025 #include <qmap.h>
0026 #include <qstring.h>
0027 
0028 /**
0029  * This is a map of fonts used in KgraphViewer
0030  *
0031  * @short A fonts map
0032  * @author Gaƫl de Chalendar <kleag@free.fr>
0033  */
0034 class FontsCache : public Singleton<FontsCache>, public QMap<QString, QFont *>
0035 {
0036     friend class Singleton<FontsCache>;
0037 
0038 public:
0039     ~FontsCache();
0040 
0041     QFont *cachedFont(const QFont &font);
0042     QFont *fromName(const QString &font);
0043 
0044 private:
0045     FontsCache()
0046     {
0047     }
0048 
0049     QMap<QString, QFont *> m_namesToFonts;
0050 };
0051 
0052 #endif