chiark / gitweb /
Fix behavior of isPrinting, which should be False when in Paused state
authorYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Fri, 22 May 2015 21:50:36 +0000 (17:50 -0400)
committerYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Fri, 22 May 2015 21:50:36 +0000 (17:50 -0400)
Cura/gui/printWindow.py
Cura/util/printerConnection/serialConnection.py

index c5a73f42f79f13e796b75713b4f7a44cbb0c8b28..387d1602f1e72346aad72617d474744e7dd0b087 100644 (file)
@@ -253,7 +253,7 @@ class printWindowPlugin(wx.Frame):
 
        def OnClose(self, e):
                if self._printerConnection.hasActiveConnection():
-                       if self._printerConnection.isPrinting():
+                       if self._printerConnection.isPrinting() or self._printerConnection.isPaused():
                                pass #TODO: Give warning that the close will kill the print.
                        self._printerConnection.closeActiveConnection()
                self._printerConnection.removeCallback(self._doPrinterConnectionUpdate)
@@ -300,21 +300,28 @@ class printWindowPlugin(wx.Frame):
                for button in self._buttonList:
                        if button.command == self.script_connect:
                                button.Show(self._printerConnection.hasActiveConnection())
-                               button.Enable(not self._printerConnection.isActiveConnectionOpen() and not self._printerConnection.isActiveConnectionOpening())
+                               button.Enable(not self._printerConnection.isActiveConnectionOpen() and \
+                                                         not self._printerConnection.isActiveConnectionOpening())
                        elif button.command == self.script_pausePrint:
                                button.Show(self._printerConnection.hasPause())
-                               if not self._printerConnection.hasActiveConnection() or self._printerConnection.isActiveConnectionOpen():
-                                       button.Enable(self._printerConnection.isPrinting() or self._printerConnection.isPaused())
+                               if not self._printerConnection.hasActiveConnection() or \
+                                  self._printerConnection.isActiveConnectionOpen():
+                                       button.Enable(self._printerConnection.isPrinting() or \
+                                                                 self._printerConnection.isPaused())
                                else:
                                        button.Enable(False)
                        elif button.command == self.script_startPrint:
-                               if not self._printerConnection.hasActiveConnection() or self._printerConnection.isActiveConnectionOpen():
-                                       button.Enable(not self._printerConnection.isPrinting())
+                               if not self._printerConnection.hasActiveConnection() or \
+                                  self._printerConnection.isActiveConnectionOpen():
+                                       button.Enable(not self._printerConnection.isPrinting() and \
+                                                 not self._printerConnection.isPaused())
                                else:
                                        button.Enable(False)
                        elif button.command == self.script_cancelPrint:
-                               if not self._printerConnection.hasActiveConnection() or self._printerConnection.isActiveConnectionOpen():
-                                       button.Enable(self._printerConnection.isPrinting())
+                               if not self._printerConnection.hasActiveConnection() or \
+                                  self._printerConnection.isActiveConnectionOpen():
+                                       button.Enable(self._printerConnection.isPrinting() or \
+                                                                 self._printerConnection.isPaused())
                                else:
                                        button.Enable(False)
                        elif button.command == self.script_showErrorLog:
@@ -344,8 +351,9 @@ class printWindowPlugin(wx.Frame):
                        self._addTermLog('< %s\n' % (extraInfo))
 
                self._updateButtonStates()
+               isPrinting = connection.isPrinting() or connection.isPaused()
                if self._progressBar is not None:
-                       if connection.isPrinting():
+                       if isPrinting:
                                self._progressBar.SetValue(connection.getPrintProgress() * 1000)
                        else:
                                self._progressBar.SetValue(0)
@@ -359,8 +367,8 @@ class printWindowPlugin(wx.Frame):
                        self._infoText.SetLabel(info)
                else:
                        self.SetTitle(info.replace('\n', ', '))
-               if connection.isPrinting() != self._isPrinting:
-                       self._isPrinting = connection.isPrinting()
+               if isPrinting != self._isPrinting:
+                       self._isPrinting = isPrinting
                        preventComputerFromSleeping(self, self._isPrinting)
 
 class printWindowBasic(wx.Frame):
@@ -450,7 +458,7 @@ class printWindowBasic(wx.Frame):
 
        def OnClose(self, e):
                if self._printerConnection.hasActiveConnection():
-                       if self._printerConnection.isPrinting():
+                       if self._printerConnection.isPrinting() or self._printerConnection.isPaused():
                                pass #TODO: Give warning that the close will kill the print.
                        self._printerConnection.closeActiveConnection()
                self._printerConnection.removeCallback(self._doPrinterConnectionUpdate)
@@ -491,7 +499,8 @@ class printWindowBasic(wx.Frame):
                        self._addTermLog('< %s\n' % (extraInfo))
 
                self._updateButtonStates()
-               if connection.isPrinting():
+               isPrinting = connection.isPrinting() or connection.isPaused()
+               if isPrinting:
                        self.progress.SetValue(connection.getPrintProgress() * 1000)
                else:
                        self.progress.SetValue(0)
@@ -503,8 +512,8 @@ class printWindowBasic(wx.Frame):
                        info += ' Bed: %d' % (self._printerConnection.getBedTemperature())
                info += '\n\n'
                self.statsText.SetLabel(info)
-               if connection.isPrinting() != self._isPrinting:
-                       self._isPrinting = connection.isPrinting()
+               if isPrinting != self._isPrinting:
+                       self._isPrinting = isPrinting
                        preventComputerFromSleeping(self, self._isPrinting)
 
 
@@ -519,7 +528,8 @@ class printWindowBasic(wx.Frame):
                self.connectButton.Enable(not self._printerConnection.isActiveConnectionOpen() and not self._printerConnection.isActiveConnectionOpening())
                self.pauseButton.Show(self._printerConnection.hasPause())
                if not self._printerConnection.hasActiveConnection() or self._printerConnection.isActiveConnectionOpen():
-                       self.printButton.Enable(not self._printerConnection.isPrinting())
+                       self.printButton.Enable(not self._printerConnection.isPrinting() and \
+                                                                       not self._printerConnection.isPaused())
                        self.pauseButton.Enable(self._printerConnection.isPrinting())
                        self.cancelButton.Enable(self._printerConnection.isPrinting())
                else:
index 6f5d1a8df0bf67c262edf04a502be87a473efedf..2c8d8292a723ccc63ee5660ddbec3ec534bab1cd 100644 (file)
@@ -103,7 +103,7 @@ class serialConnection(printerConnectionBase.printerConnectionBase):
                self._printProgress = 0
 
        def isPrinting(self):
-               return self._commState == machineCom.MachineCom.STATE_PRINTING or self.isPaused()
+               return self._commState == machineCom.MachineCom.STATE_PRINTING
 
        #Returns true if we have the ability to pause the file printing.
        def hasPause(self):
@@ -114,7 +114,7 @@ class serialConnection(printerConnectionBase.printerConnectionBase):
 
        #Pause or unpause the printing depending on the value, if supported.
        def pause(self, value):
-               if not self.isPrinting() or self._process is None:
+               if not (self.isPrinting() or self.isPaused) or self._process is None:
                        return
                self._process.stdin.write('PAUSE\n' if value else "RESUME\n")