mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-11 05:07:00 -04:00
Add dark icon property
This commit is contained in:
@@ -159,13 +159,13 @@ public:
|
||||
PackageIconRequest(PackageUpdateList* list, PackageUpdateList::TreeItem* ti)
|
||||
: ThumbnailRequest(
|
||||
list,
|
||||
_("package_") + ti->package->description->icon_url + _("_") + ti->package->description->version.toString(),
|
||||
_("package_") + (settings.darkMode() && !ti->package->description->dark_icon_url.empty() ? ti->package->description->dark_icon_url : ti->package->description->icon_url) + _("_") + ti->package->description->version.toString(),
|
||||
wxDateTime(1,wxDateTime::Jan,2000))
|
||||
, list(list), ti(ti)
|
||||
{}
|
||||
|
||||
Image generate() override {
|
||||
wxURL url(ti->package->description->icon_url);
|
||||
wxURL url(settings.darkMode() && !ti->package->description->dark_icon_url.empty() ? ti->package->description->dark_icon_url : ti->package->description->icon_url);
|
||||
unique_ptr<wxInputStream> isP(url.GetInputStream());
|
||||
if (!isP) return wxImage();
|
||||
SeekAtStartInputStream is2(*isP);
|
||||
@@ -219,8 +219,9 @@ void PackageUpdateList::initItems() {
|
||||
if (p && p->description->icon.Ok()) { // it has an icon
|
||||
ti.setIcon(p->description->icon);
|
||||
} else if (p) { // it doesn't have an icon (yet)
|
||||
ti.setIcon(load_resource_image(_("installer_package")));
|
||||
if (!p->description->icon_url.empty()) {
|
||||
ti.setIcon(load_resource_image(_("installer_package")));
|
||||
String icon_url = settings.darkMode() && !p->description->dark_icon_url.empty() ? p->description->dark_icon_url : p->description->icon_url;
|
||||
if (!icon_url.empty()) {
|
||||
// download icon
|
||||
thumbnail_thread.request(make_intrusive<PackageIconRequest>(this,&ti));
|
||||
}
|
||||
|
||||
@@ -228,13 +228,19 @@ void StatDimensionList::drawItem(DC& dc, int x, int y, size_t item) {
|
||||
}
|
||||
StatsDimension& dim = *dimensions.at(item - show_empty);
|
||||
// draw icon
|
||||
if (!dim.icon_filename.empty() && !dim.icon.Ok()) {
|
||||
auto file = game->openIn(dim.icon_filename);
|
||||
Image img(*file);
|
||||
if (img.HasMask()) img.InitAlpha(); // we can't handle masks
|
||||
Image resampled(21, 21);
|
||||
resample_preserve_aspect(img, resampled);
|
||||
if (img.Ok()) dim.icon = Bitmap(resampled);
|
||||
if(!dim.icon.Ok()) {
|
||||
String filename = dim.icon_filename;
|
||||
if (settings.darkMode() && !dim.dark_icon_filename.empty()) {
|
||||
filename = dim.dark_icon_filename;
|
||||
}
|
||||
if (!filename.empty()) {
|
||||
auto file = game->openIn(filename);
|
||||
Image img(*file);
|
||||
if (img.HasMask()) img.InitAlpha(); // we can't handle masks
|
||||
Image resampled(21, 21);
|
||||
resample_preserve_aspect(img, resampled);
|
||||
if (img.Ok()) dim.icon = Bitmap(resampled);
|
||||
}
|
||||
}
|
||||
if (dim.icon.Ok()) {
|
||||
dc.DrawBitmap(dim.icon, x+1, y+1);
|
||||
|
||||
Reference in New Issue
Block a user