Skip to content

Commit 4da29bb

Browse files
committed
Add option to reload mesh/scene and return file open shortcut
1 parent efc3557 commit 4da29bb

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

ogre_mesh_viewer.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ def __init__(self, app):
138138
self.show_metrics = False
139139
self.show_render_settings = False
140140
self.side_panel_visible = True
141+
self.load_file_lock = False
141142

142143
self.app = app
143144

@@ -200,6 +201,21 @@ def draw_loading(self):
200201
ImGui.Text("Loading.. ")
201202
ImGui.End()
202203

204+
def reload(self):
205+
if app.infile:
206+
app.restart = True
207+
app.getRoot().queueEndRendering()
208+
209+
def load_file(self):
210+
# Avoid recursive calling, which might block the window manager
211+
if self.load_file_lock:
212+
return
213+
else:
214+
self.load_file_lock = True
215+
app.infile = askopenfilename(app.filedir)
216+
self.load_file_lock = False
217+
self.reload()
218+
203219
def preRenderTargetUpdate(self, evt):
204220
if not self.app.cam.getViewport().getOverlaysEnabled():
205221
return
@@ -215,11 +231,10 @@ def preRenderTargetUpdate(self, evt):
215231
if ImGui.BeginMainMenuBar():
216232

217233
if ImGui.BeginMenu("File"):
218-
if ImGui.MenuItem("Open File"):
219-
app.infile = askopenfilename(app.filedir)
220-
if app.infile:
221-
app.restart = True
222-
app.getRoot().queueEndRendering()
234+
if ImGui.MenuItem("Open File", "F1"):
235+
self.load_file()
236+
if ImGui.MenuItem("ReLoad File", "F5"):
237+
self.reload()
223238
if ImGui.MenuItem("Renderer Settings"):
224239
self.show_render_settings = True
225240
if ImGui.MenuItem("Save Screenshot", "P"):
@@ -455,6 +470,10 @@ def keyPressed(self, evt):
455470
self._save_screenshot()
456471
elif evt.keysym.sym == ord("w"):
457472
self._toggle_wireframe_mode()
473+
elif evt.keysym.sym == OgreBites.SDLK_F1:
474+
self.gui.load_file()
475+
elif evt.keysym.sym == OgreBites.SDLK_F5:
476+
self.gui.reload()
458477

459478
return True
460479

0 commit comments

Comments
 (0)