self.moveModel()\r
                self.glCanvas.Refresh()\r
        \r
+       def setViewMode(self, mode):\r
+               self.viewSelect.SetValue(mode)\r
+               self.glCanvas.viewMode = self.viewSelect.GetValue()\r
+               wx.CallAfter(self.glCanvas.Refresh)\r
+       \r
        def loadModelFile(self, filename):\r
                if self.modelFilename != filename:\r
                        self.modelFileTime = None\r
        def loadReModelFile(self, filename):\r
                #Only load this again if the filename matches the file we have already loaded (for auto loading GCode after slicing)\r
                if self.modelFilename != filename:\r
-                       return\r
+                       return False\r
                self.loadModelFile(filename)\r
+               return True\r
        \r
        def doFileLoadThread(self):\r
                if os.path.isfile(self.modelFilename) and self.modelFileTime != os.stat(self.modelFilename).st_mtime:\r
 
        
        def OnShowGCode(self, e):
                self.mainWindow.preview3d.loadModelFile(self.filename)
-               self.mainWindow.preview3d.viewSelect.SetValue("GCode")
-               self.mainWindow.preview3d.OnViewChange(None)
+               self.mainWindow.preview3d.setViewMode("GCode")
        
        def OnShowLog(self, e):
                LogWindow('\n'.join(self.progressLog))
                self.sizer.Layout()
                self.Layout()
                self.abort = True
-               self.mainWindow.preview3d.loadReModelFile(self.filename)
+               if self.mainWindow.preview3d.loadReModelFile(self.filename):
+                       self.mainWindow.preview3d.setViewMode("GCode")
        
        def SetProgress(self, stepName, layer, maxLayer):
                if self.prevStep != stepName: