diff -r f7f2834dc8d9 -r bac69c80d5f4 RefactoringRope/RestructureDialog.py --- a/RefactoringRope/RestructureDialog.py Sat Sep 23 14:17:49 2017 +0200 +++ b/RefactoringRope/RestructureDialog.py Sat Sep 23 15:20:09 2017 +0200 @@ -27,18 +27,23 @@ Constructor @param refactoring reference to the main refactoring object - (Refactoring) - @param title title of the dialog (string) - @param parent reference to the parent widget (QWidget) + @type Refactoring + @param title title of the dialog + @type str + @param parent reference to the parent widget + @type QWidget """ RefactoringDialogBase.__init__(self, refactoring, title, parent) self.setupUi(self) + self._changeGroupName = "Restructure" + self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok) self.__okButton.setEnabled(False) self.__previewButton = self.buttonBox.addButton( self.tr("Preview"), QDialogButtonBox.ActionRole) self.__previewButton.setDefault(True) + self.__previewButton.setEnabled(False) self.__loadData() @@ -46,9 +51,11 @@ """ Private slot to update the UI. """ - self.__okButton.setEnabled( - self.patternEdit.toPlainText() != "" and - self.goalEdit.toPlainText() != "") + enable = bool(self.patternEdit.toPlainText()) and \ + bool(self.goalEdit.toPlainText()) + + self.__okButton.setEnabled(enable) + self.__previewButton.setEnabled(enable) @pyqtSlot() def on_patternEdit_textChanged(self): @@ -69,22 +76,20 @@ """ Private slot to act on the button pressed. - @param button reference to the button pressed (QAbstractButton) + @param button reference to the button pressed + @type QAbstractButton """ if button == self.__previewButton: - self.previewChanges() + self.requestPreview() elif button == self.__okButton: self.applyChanges() - def _calculateChanges(self, handle): + def _calculateChanges(self): """ - Protected method to calculate the changes. - - @param handle reference to the task handle - (rope.base.taskhandle.TaskHandle) - @return reference to the Changes object (rope.base.change.ChangeSet) + Protected method to initiate the calculation of the changes. """ self.__saveData() + pattern = self.patternEdit.toPlainText() goal = self.goalEdit.toPlainText() imports = [line for line in self.importsEdit.toPlainText().splitlines() @@ -99,19 +104,14 @@ value = splitted[1].strip() args[name] = value - import rope.refactor.restructure - self._refactoring.getProject().validate( - self._refactoring.getProject().root) - try: - restructuring = rope.refactor.restructure.Restructure( - self._refactoring.getProject(), pattern, goal, - args=args, imports=imports) - changes = restructuring.get_changes(task_handle=handle) - except Exception as err: - self._refactoring.handleRopeError(err, self._title) - return None - - return changes + self._refactoring.sendJson("CalculateRestructureChanges", { + "ChangeGroup": self._changeGroupName, + "Title": self._title, + "Pattern": pattern, + "Goal": goal, + "Args": args, + "Imports": imports, + }) def __saveData(self): """