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