mirror of
https://github.com/lutris/lutris
synced 2024-09-29 20:43:37 +00:00
Add exception handling so a malformed media file does nto crash Lutris, and does not prevent you from setting a new media.
Resolves #5474
This commit is contained in:
parent
075b531080
commit
5959768f8a
|
@ -348,8 +348,13 @@ class GameDialogCommon(SavableModelessDialog, DialogInstallUIDelegate):
|
|||
service_media = self.service_medias[image_format]
|
||||
game_slug = self.slug or (self.game.slug if self.game else "")
|
||||
media_path = resolve_media_path(service_media.get_possible_media_paths(game_slug))
|
||||
image = ScaledImage.new_from_media_path(media_path, service_media.config_ui_size, scale_factor)
|
||||
image_button.set_image(image)
|
||||
try:
|
||||
image = ScaledImage.new_from_media_path(media_path, service_media.config_ui_size, scale_factor)
|
||||
image_button.set_image(image)
|
||||
except Exception as ex:
|
||||
# We need to survive nasty data in the media files, so the user can replace
|
||||
# them.
|
||||
logger.exception("Unable to load media '%s': %s", image_format, ex)
|
||||
|
||||
def _get_runner_dropdown(self):
|
||||
runner_liststore = self._get_runner_liststore()
|
||||
|
|
|
@ -7,6 +7,7 @@ from math import floor
|
|||
import gi
|
||||
|
||||
from lutris.util.jobs import schedule_at_idle
|
||||
from lutris.util.log import logger
|
||||
|
||||
gi.require_version("PangoCairo", "1.0")
|
||||
|
||||
|
@ -535,7 +536,15 @@ class GridViewCellRendererImage(Gtk.CellRenderer):
|
|||
def _get_surface_by_path(self, widget, path, size=None, preserve_aspect_ratio=True):
|
||||
cell_size = size or (self.media_width, self.media_height)
|
||||
scale_factor = widget.get_scale_factor() if widget else 1
|
||||
return get_scaled_surface_by_path(path, cell_size, scale_factor, preserve_aspect_ratio=preserve_aspect_ratio)
|
||||
try:
|
||||
return get_scaled_surface_by_path(
|
||||
path, cell_size, scale_factor, preserve_aspect_ratio=preserve_aspect_ratio
|
||||
)
|
||||
except Exception as ex:
|
||||
# We need to survive nasty data in the media files, so the user can replace
|
||||
# them.
|
||||
logger.exception("Unable to load media '%s': %s", path, ex)
|
||||
return None
|
||||
|
||||
|
||||
def _on_media_cached_invalidated() -> None:
|
||||
|
|
Loading…
Reference in a new issue