Add icon set fallback feature
This commit is contained in:
@@ -55,7 +55,7 @@ namespace {
|
||||
QPixmap active;
|
||||
QPixmap empty;
|
||||
QPixmap empty_active;
|
||||
void load(const QString& basePath);
|
||||
void load(QString basePath);
|
||||
};
|
||||
struct Pixmaps {
|
||||
PixmapSetEmpty cartridge;
|
||||
@@ -132,20 +132,20 @@ namespace {
|
||||
static const QString pixmap_active = QStringLiteral("_active");
|
||||
static const QString pixmap_empty_active = QStringLiteral("_empty_active");
|
||||
void PixmapSetEmpty::load(const QString &basePath) {
|
||||
normal = QIcon(basePath.arg(QStringLiteral(""))).pixmap(pixmap_size);
|
||||
empty = QIcon(basePath.arg(pixmap_empty)).pixmap(pixmap_size);
|
||||
normal = ProgSettings::loadIcon(basePath.arg(QStringLiteral(""))).pixmap(pixmap_size);
|
||||
empty = ProgSettings::loadIcon(basePath.arg(pixmap_empty)).pixmap(pixmap_size);
|
||||
}
|
||||
|
||||
void PixmapSetActive::load(const QString &basePath) {
|
||||
normal = QIcon(basePath.arg(QStringLiteral(""))).pixmap(pixmap_size);
|
||||
active = QIcon(basePath.arg(pixmap_active)).pixmap(pixmap_size);
|
||||
normal = ProgSettings::loadIcon(basePath.arg(QStringLiteral(""))).pixmap(pixmap_size);
|
||||
active = ProgSettings::loadIcon(basePath.arg(pixmap_active)).pixmap(pixmap_size);
|
||||
}
|
||||
|
||||
void PixmapSetEmptyActive::load(const QString &basePath) {
|
||||
normal = QIcon(basePath.arg(QStringLiteral(""))).pixmap(pixmap_size);
|
||||
active = QIcon(basePath.arg(pixmap_active)).pixmap(pixmap_size);
|
||||
empty = QIcon(basePath.arg(pixmap_empty)).pixmap(pixmap_size);
|
||||
empty_active = QIcon(basePath.arg(pixmap_empty_active)).pixmap(pixmap_size);
|
||||
void PixmapSetEmptyActive::load(QString basePath) {
|
||||
normal = ProgSettings::loadIcon(basePath.arg(QStringLiteral(""))).pixmap(pixmap_size);
|
||||
active = ProgSettings::loadIcon(basePath.arg(pixmap_active)).pixmap(pixmap_size);
|
||||
empty = ProgSettings::loadIcon(basePath.arg(pixmap_empty)).pixmap(pixmap_size);
|
||||
empty_active = ProgSettings::loadIcon(basePath.arg(pixmap_empty_active)).pixmap(pixmap_size);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,20 +153,20 @@ struct MachineStatus::States {
|
||||
Pixmaps pixmaps;
|
||||
|
||||
States(QObject* parent) {
|
||||
pixmaps.cartridge.load(ProgSettings::getIconSetPath() + "/cartridge%1.ico");
|
||||
pixmaps.cassette.load(ProgSettings::getIconSetPath() + "/cassette%1.ico");
|
||||
pixmaps.floppy_disabled.normal = QIcon(ProgSettings::getIconSetPath() + QStringLiteral("/floppy_disabled.ico")).pixmap(pixmap_size);
|
||||
pixmaps.cartridge.load("/cartridge%1.ico");
|
||||
pixmaps.cassette.load("/cassette%1.ico");
|
||||
pixmaps.floppy_disabled.normal = ProgSettings::loadIcon(QStringLiteral("/floppy_disabled.ico")).pixmap(pixmap_size);
|
||||
pixmaps.floppy_disabled.active = pixmaps.floppy_disabled.normal;
|
||||
pixmaps.floppy_disabled.empty = pixmaps.floppy_disabled.normal;
|
||||
pixmaps.floppy_disabled.empty_active = pixmaps.floppy_disabled.normal;
|
||||
pixmaps.floppy_525.load(ProgSettings::getIconSetPath() + "/floppy_525%1.ico");
|
||||
pixmaps.floppy_35.load(ProgSettings::getIconSetPath() + "/floppy_35%1.ico");
|
||||
pixmaps.cdrom.load(ProgSettings::getIconSetPath() + "/cdrom%1.ico");
|
||||
pixmaps.zip.load(ProgSettings::getIconSetPath() + "/zip%1.ico");
|
||||
pixmaps.mo.load(ProgSettings::getIconSetPath() + "/mo%1.ico");
|
||||
pixmaps.hd.load(ProgSettings::getIconSetPath() + "/hard_disk%1.ico");
|
||||
pixmaps.net.load(ProgSettings::getIconSetPath() + "/network%1.ico");
|
||||
pixmaps.sound = QIcon(ProgSettings::getIconSetPath() + "/sound.ico").pixmap(pixmap_size);
|
||||
pixmaps.floppy_525.load("/floppy_525%1.ico");
|
||||
pixmaps.floppy_35.load("/floppy_35%1.ico");
|
||||
pixmaps.cdrom.load("/cdrom%1.ico");
|
||||
pixmaps.zip.load("/zip%1.ico");
|
||||
pixmaps.mo.load("/mo%1.ico");
|
||||
pixmaps.hd.load("/hard_disk%1.ico");
|
||||
pixmaps.net.load("/network%1.ico");
|
||||
pixmaps.sound = ProgSettings::loadIcon("/sound.ico").pixmap(pixmap_size);
|
||||
|
||||
cartridge[0].pixmaps = &pixmaps.cartridge;
|
||||
cartridge[1].pixmaps = &pixmaps.cartridge;
|
||||
|
||||
@@ -50,6 +50,13 @@ QString ProgSettings::getIconSetPath()
|
||||
return iconset_to_qt[icon_set];
|
||||
}
|
||||
|
||||
QIcon ProgSettings::loadIcon(QString file)
|
||||
{
|
||||
(void)getIconSetPath();
|
||||
if (!QFile::exists(iconset_to_qt[icon_set] + file)) return QIcon(iconset_to_qt[""] + file);
|
||||
return QIcon(iconset_to_qt[icon_set] + file);
|
||||
}
|
||||
|
||||
ProgSettings::ProgSettings(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::ProgSettings)
|
||||
|
||||
@@ -16,6 +16,7 @@ public:
|
||||
explicit ProgSettings(QWidget *parent = nullptr);
|
||||
~ProgSettings();
|
||||
static QString getIconSetPath();
|
||||
static QIcon loadIcon(QString file);
|
||||
static void loadTranslators(QObject* parent = nullptr);
|
||||
static void reloadStrings();
|
||||
class CustomTranslator : public QTranslator
|
||||
|
||||
@@ -16,11 +16,11 @@ extern "C" {
|
||||
static void setFloppyType(QAbstractItemModel* model, const QModelIndex& idx, int type) {
|
||||
QIcon icon;
|
||||
if (type == 0) {
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/floppy_disabled.ico");
|
||||
icon = ProgSettings::loadIcon("/floppy_disabled.ico");
|
||||
} else if (type >= 1 && type <= 6) {
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/floppy_525.ico");
|
||||
icon = ProgSettings::loadIcon("/floppy_525.ico");
|
||||
} else {
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/floppy_35.ico");
|
||||
icon = ProgSettings::loadIcon("/floppy_35.ico");
|
||||
}
|
||||
|
||||
model->setData(idx, QObject::tr(fdd_getname(type)));
|
||||
@@ -32,11 +32,11 @@ static void setCDROMBus(QAbstractItemModel* model, const QModelIndex& idx, uint8
|
||||
QIcon icon;
|
||||
switch (bus) {
|
||||
case CDROM_BUS_DISABLED:
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/cdrom_disabled.ico");
|
||||
icon = ProgSettings::loadIcon("/cdrom_disabled.ico");
|
||||
break;
|
||||
case CDROM_BUS_ATAPI:
|
||||
case CDROM_BUS_SCSI:
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/cdrom.ico");
|
||||
icon = ProgSettings::loadIcon("/cdrom.ico");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ static void addRow(QAbstractItemModel* model, hard_disk_t* hd) {
|
||||
|
||||
QString busName = Harddrives::BusChannelName(hd->bus, hd->channel);
|
||||
model->setData(model->index(row, ColumnBus), busName);
|
||||
model->setData(model->index(row, ColumnBus), QIcon(ProgSettings::getIconSetPath() + "/hard_disk.ico"), Qt::DecorationRole);
|
||||
model->setData(model->index(row, ColumnBus), ProgSettings::loadIcon( "/hard_disk.ico"), Qt::DecorationRole);
|
||||
model->setData(model->index(row, ColumnBus), hd->bus, DataBus);
|
||||
model->setData(model->index(row, ColumnBus), hd->channel, DataBusChannel);
|
||||
QString fileName = hd->fn;
|
||||
|
||||
@@ -22,11 +22,11 @@ static void setMOBus(QAbstractItemModel* model, const QModelIndex& idx, uint8_t
|
||||
QIcon icon;
|
||||
switch (bus) {
|
||||
case MO_BUS_DISABLED:
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/mo_disabled.ico");
|
||||
icon = ProgSettings::loadIcon("/mo_disabled.ico");
|
||||
break;
|
||||
case MO_BUS_ATAPI:
|
||||
case MO_BUS_SCSI:
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/mo.ico");
|
||||
icon = ProgSettings::loadIcon("/mo.ico");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -51,11 +51,11 @@ static void setZIPBus(QAbstractItemModel* model, const QModelIndex& idx, uint8_t
|
||||
QIcon icon;
|
||||
switch (bus) {
|
||||
case ZIP_BUS_DISABLED:
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/zip_disabled.ico");
|
||||
icon = ProgSettings::loadIcon("/zip_disabled.ico");
|
||||
break;
|
||||
case ZIP_BUS_ATAPI:
|
||||
case ZIP_BUS_SCSI:
|
||||
icon = QIcon(ProgSettings::getIconSetPath() + "/zip.ico");
|
||||
icon = ProgSettings::loadIcon("/zip.ico");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user