Skip to content

Commit a153f6d

Browse files
committed
Add warning dialog for image file not found
1 parent fb201e4 commit a153f6d

1 file changed

Lines changed: 29 additions & 14 deletions

File tree

image_inspector.py

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"""
99

1010
import os
11+
import sys
1112

1213
import requests
1314
import wx
@@ -117,16 +118,27 @@ def _retrieve_image_from_web(self, image_file):
117118

118119
def _load_image(self, image_file):
119120
""" Load image file as wx.Image object """
120-
if image_file.startswith('http'):
121-
image = self._retrieve_image_from_web(image_file)
122-
else:
123-
image = PILImage.open(image_file)
124-
125-
filename = self._process_image_file_name(image_file)
126-
image.save(filename, 'PNG')
127-
self.GetParent().GetParent().temp_file = filename
128-
129-
return wx.Image(filename)
121+
frame = self.GetParent().GetParent()
122+
123+
try:
124+
if image_file.startswith('http'):
125+
image = self._retrieve_image_from_web(image_file)
126+
else:
127+
image = PILImage.open(image_file)
128+
filename = self._process_image_file_name(image_file)
129+
image.save(filename, 'PNG')
130+
frame.temp_file = filename
131+
return wx.Image(filename)
132+
133+
except:
134+
message = f'Failed to retrieve image from {image_file}'
135+
dlg = wx.MessageDialog(self,
136+
message=message,
137+
caption='Could not find image',
138+
style=wx.ICON_WARNING)
139+
dlg.ShowModal()
140+
dlg.Destroy()
141+
sys.exit('Image not found')
130142

131143

132144

@@ -449,16 +461,19 @@ class _Base(wx.Frame):
449461

450462
def __init__(self, image_file, *args, **kw):
451463
wx.Frame.__init__(self, *args, **kw)
464+
465+
# Must call before panel is instantiated so app can close if
466+
# panel instantiation fails
452467
self.temp_file = None
468+
self.Bind(wx.EVT_CLOSE, self._on_exit)
469+
453470
panel = _BasePanel(image_file=image_file, parent=self,
454471
id=wx.ID_ANY)
455472

456473
# Set frame size limits
457474
self.SetMinSize((300,300))
458475
self.SetMaxSize(wx.DisplaySize())
459476

460-
self.Bind(wx.EVT_CLOSE, self._on_exit)
461-
462477
self.Layout()
463478
self.Show()
464479

@@ -498,5 +513,5 @@ def main(image_file):
498513
app.MainLoop()
499514

500515
if __name__ == '__main__':
501-
#main('images/medium.jpg')
502-
main('https://scitechdaily.com/images/image-of-the-planetary-nebula-NGC-5189.jpg')
516+
main('images/medium.jpg')
517+
#main('https://scitechdaily.com/images/image-of-the-planetary-nebula-NGC-5189.jpg')

0 commit comments

Comments
 (0)