16
16
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
#define COMPAT_WITH_OLD_ICONS 1
21
19
#include "images.h"
22
28
#include "global.h"
23
29
#include "preferences.h"
28
31
using namespace Global;
30
QString Images::filename(const QString & name, bool png) {
31
QString filename = name;
33
if (filename.endsWith("_small")) {
34
filename = filename.replace("_small", "");
37
if (png) filename += ".png";
42
QString Images::file(const QString & icon_name) {
46
if (!pref->iconset.isEmpty()) {
47
filename = Paths::configPath() + "/themes/" + pref->iconset + "/" + icon_name;
48
if (!QFile::exists(filename)) {
49
filename = Paths::themesPath() + "/" + pref->iconset + "/" + icon_name;
52
ok = (QFile::exists(filename));
56
filename = ":/icons-png/" + icon_name;
59
qDebug("Images::file: icon_name: '%s', filename: '%s'", icon_name.toUtf8().constData(), filename.toUtf8().constData());
64
QPixmap Images::loadIcon(const QString & icon_name) {
67
if (!pref->iconset.isEmpty()) {
68
QString filename = Paths::configPath() + "/themes/" + pref->iconset + "/" + icon_name;
69
if (!QFile::exists(filename)) {
70
filename = Paths::themesPath() + "/" + pref->iconset + "/" + icon_name;
72
//qDebug("Images::loadIcon: filename: '%s'", filename.toUtf8().data());
74
if (QFile::exists(filename)) {
82
QPixmap Images::icon(QString name, int size, bool png) {
85
if (name.endsWith("_small")) {
89
QString icon_name = Images::filename(name,png);
91
//qDebug("%s", icon_name.toUtf8().constData());
93
QPixmap p = Images::loadIcon( icon_name );
94
bool ok = !p.isNull();
96
#if COMPAT_WITH_OLD_ICONS
98
if ( (name.startsWith("r")) ||
99
(name.startsWith("t")) ||
100
(name.startsWith("n")) )
102
QString icon_name = Images::filename("x"+name,png);
103
p = Images::loadIcon( icon_name );
110
p = QPixmap(":/icons-png/" + icon_name);
34
QString Images::current_theme;
35
QString Images::themes_path;
38
QString Images::last_resource_loaded;
40
QString Images::resourceFilename() {
41
QString filename = QString::null;
43
if ((!themes_path.isEmpty()) && (!current_theme.isEmpty())) {
44
filename = themes_path +"/"+ current_theme +"/"+ current_theme +".rcc";
47
qDebug() << "Images::resourceFilename:" << filename;
53
void Images::setTheme(const QString & name) {
57
QString dir = Paths::configPath() + "/themes/" + name;
58
if (QFile::exists(dir)) {
59
setThemesPath(Paths::configPath() + "/themes/");
122
//qWarning("Images2::icon: icon '%s' not found", name.toUtf8().data());
61
setThemesPath(Paths::themesPath());
66
if (!last_resource_loaded.isEmpty()) {
67
qDebug() << "Images::setTheme: unloading" << last_resource_loaded;
68
QResource::unregisterResource(last_resource_loaded);
69
last_resource_loaded = QString::null;
72
QString rs_file = resourceFilename();
73
if (QFile::exists(rs_file)) {
74
qDebug() << "Images::setTheme: loading" << rs_file;
75
QResource::registerResource(rs_file);
76
last_resource_loaded = rs_file;
81
void Images::setThemesPath(const QString & folder) {
83
qDebug() << "Images::setThemesPath:" << themes_path;
86
QString Images::file(const QString & name) {
88
if (current_theme != pref->iconset) {
89
setTheme(pref->iconset);
94
QString icon_name = ":/" + current_theme + "/"+ name + ".png";
96
QString icon_name = themes_path +"/"+ current_theme + "/"+ name + ".png";
98
if (!QFile::exists(icon_name)) {
99
icon_name = ":/icons-png/" + name + ".png";
102
//qDebug() << "Images::file:" << icon_name;
107
QPixmap Images::icon(QString name, int size) {
108
QString icon_name = file(name);
109
QPixmap p(icon_name);
113
p = resize(&p, size);
133
125
return QPixmap::fromImage( (*p).toImage().mirrored(true, false) );
136
QPixmap Images::flippedIcon(QString name, int size, bool png) {
137
QPixmap p = icon(name, size, png);
128
QPixmap Images::flippedIcon(QString name, int size) {
129
QPixmap p = icon(name, size);
142
QIcon Images::multiIcon(QString name, QString fallback_icon) {
143
QPixmap pix = Images::icon(name);
144
if (pix.isNull()) return Images::icon(fallback_icon);
148
int h = pix.height();
149
icon.addPixmap(pix.copy(0, 0, w, h/4 ), QIcon::Normal, QIcon::Off);
150
//icon.setPixmap(pix.copy(0, h/4, w, h/4 ), MyIcon::MouseOver, MyIcon::Off);
151
//icon.setPixmap(pix.copy(0, h/2, w, h/4 ), MyIcon::MouseDown, MyIcon::Off);
152
icon.addPixmap(pix.copy(0, 3*h/4, w, h/4 ), QIcon::Disabled, QIcon::Off);
156
135
QString Images::styleSheet(){
157
136
QString filename;
158
137
filename = themesDirectory() + "/main.css";