2 Copyright (c) 2006 Paolo Capriotti <p.capriotti@sns.it>
3 (c) 2006 Maurizio Monge <maurizio.monge@kdemail.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
14 #include "loader/theme.h"
15 #include "pixmaploader.h"
17 class PixmapLoader::ThemeLoader
: public Loader::Theme
{
21 ThemeLoader(const QString
& s
)
28 PixmapLoader::ThemeLoadersCache
PixmapLoader::s_loaders
;
31 PixmapLoader::PixmapLoader()
37 PixmapLoader::~PixmapLoader() {
41 void PixmapLoader::flush() {
45 m_loader
->unrefSize(m_size
);
46 m_loader
->unrefSize(0);
48 /* unref the loader, and possibly destroy it */
49 if(!--m_loader
->m_ref_count
) {
51 s_loaders
.erase(m_base
);
57 void PixmapLoader::setBasePath(const QString
& base
) {
65 void PixmapLoader::setSize(int s
) {
73 m_loader
->unrefSize(m_size
);
78 void PixmapLoader::initialize() {
82 /* try to get a loader */
83 ThemeLoadersCache::iterator it
= s_loaders
.find(m_base
);
84 if(it
!= s_loaders
.end())
85 m_loader
= it
->second
;
87 m_loader
= new ThemeLoader(m_base
);
88 s_loaders
[m_base
] = m_loader
;
91 m_loader
->m_ref_count
++;
93 m_loader
->refSize(m_size
);
98 T
PixmapLoader::getValue(const QString
& id
, const ::LuaApi::LuaValueMap
* args
) {
99 if(!m_size
|| m_base
.isEmpty())
105 return m_loader
->getValue
<T
>(id
, m_size
, args
);
108 template QPixmap
PixmapLoader::getValue
<QPixmap
>(const QString
&, const ::LuaApi::LuaValueMap
*);
109 template Loader::PixmapOrMap
PixmapLoader::getValue
<Loader::PixmapOrMap
>(const QString
&, const ::LuaApi::LuaValueMap
*);
110 template Loader::Glyph
PixmapLoader::getValue
<Loader::Glyph
>(const QString
&, const ::LuaApi::LuaValueMap
*);
111 template double PixmapLoader::getValue
<double>(const QString
&, const ::LuaApi::LuaValueMap
*);
112 template QPointF
PixmapLoader::getValue
<QPointF
>(const QString
&, const ::LuaApi::LuaValueMap
*);
113 template QRectF
PixmapLoader::getValue
<QRectF
>(const QString
&, const ::LuaApi::LuaValueMap
*);
114 template QBrush
PixmapLoader::getValue
<QBrush
>(const QString
&, const ::LuaApi::LuaValueMap
*);
115 template QColor
PixmapLoader::getValue
<QColor
>(const QString
&, const ::LuaApi::LuaValueMap
*);
116 template QFont
PixmapLoader::getValue
<QFont
>(const QString
&, const ::LuaApi::LuaValueMap
*);
117 template ::LuaApi::LuaValueMap
PixmapLoader::getValue
< ::LuaApi::LuaValueMap
>(const QString
&, const ::LuaApi::LuaValueMap
*);
121 T
PixmapLoader::getStaticValue(const QString
& id
, const ::LuaApi::LuaValueMap
* args
) {
128 return m_loader
->getValue
<T
>(id
, 0, args
);
131 template QPixmap
PixmapLoader::getStaticValue
<QPixmap
>(const QString
&, const ::LuaApi::LuaValueMap
*);
132 template Loader::PixmapOrMap
PixmapLoader::getStaticValue
<Loader::PixmapOrMap
>(const QString
&, const ::LuaApi::LuaValueMap
*);
133 template Loader::Glyph
PixmapLoader::getStaticValue
<Loader::Glyph
>(const QString
&, const ::LuaApi::LuaValueMap
*);
134 template double PixmapLoader::getStaticValue
<double>(const QString
&, const ::LuaApi::LuaValueMap
*);
135 template QPointF
PixmapLoader::getStaticValue
<QPointF
>(const QString
&, const ::LuaApi::LuaValueMap
*);
136 template QRectF
PixmapLoader::getStaticValue
<QRectF
>(const QString
&, const ::LuaApi::LuaValueMap
*);
137 template QBrush
PixmapLoader::getStaticValue
<QBrush
>(const QString
&, const ::LuaApi::LuaValueMap
*);
138 template QColor
PixmapLoader::getStaticValue
<QColor
>(const QString
&, const ::LuaApi::LuaValueMap
*);
139 template QFont
PixmapLoader::getStaticValue
<QFont
>(const QString
&, const ::LuaApi::LuaValueMap
*);
140 template ::LuaApi::LuaValueMap
PixmapLoader::getStaticValue
< ::LuaApi::LuaValueMap
>(const QString
&, const ::LuaApi::LuaValueMap
*);