RefactoringRope/RestructureDialog.py

branch
server_client_variant
changeset 183
bac69c80d5f4
parent 147
3f8a995f6e49
child 189
2711fdd91925
equal deleted inserted replaced
182:f7f2834dc8d9 183:bac69c80d5f4
25 def __init__(self, refactoring, title, parent=None): 25 def __init__(self, refactoring, title, parent=None):
26 """ 26 """
27 Constructor 27 Constructor
28 28
29 @param refactoring reference to the main refactoring object 29 @param refactoring reference to the main refactoring object
30 (Refactoring) 30 @type Refactoring
31 @param title title of the dialog (string) 31 @param title title of the dialog
32 @param parent reference to the parent widget (QWidget) 32 @type str
33 @param parent reference to the parent widget
34 @type QWidget
33 """ 35 """
34 RefactoringDialogBase.__init__(self, refactoring, title, parent) 36 RefactoringDialogBase.__init__(self, refactoring, title, parent)
35 self.setupUi(self) 37 self.setupUi(self)
38
39 self._changeGroupName = "Restructure"
36 40
37 self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok) 41 self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok)
38 self.__okButton.setEnabled(False) 42 self.__okButton.setEnabled(False)
39 self.__previewButton = self.buttonBox.addButton( 43 self.__previewButton = self.buttonBox.addButton(
40 self.tr("Preview"), QDialogButtonBox.ActionRole) 44 self.tr("Preview"), QDialogButtonBox.ActionRole)
41 self.__previewButton.setDefault(True) 45 self.__previewButton.setDefault(True)
46 self.__previewButton.setEnabled(False)
42 47
43 self.__loadData() 48 self.__loadData()
44 49
45 def __updateUI(self): 50 def __updateUI(self):
46 """ 51 """
47 Private slot to update the UI. 52 Private slot to update the UI.
48 """ 53 """
49 self.__okButton.setEnabled( 54 enable = bool(self.patternEdit.toPlainText()) and \
50 self.patternEdit.toPlainText() != "" and 55 bool(self.goalEdit.toPlainText())
51 self.goalEdit.toPlainText() != "") 56
57 self.__okButton.setEnabled(enable)
58 self.__previewButton.setEnabled(enable)
52 59
53 @pyqtSlot() 60 @pyqtSlot()
54 def on_patternEdit_textChanged(self): 61 def on_patternEdit_textChanged(self):
55 """ 62 """
56 Private slot to react to changes of the pattern. 63 Private slot to react to changes of the pattern.
67 @pyqtSlot(QAbstractButton) 74 @pyqtSlot(QAbstractButton)
68 def on_buttonBox_clicked(self, button): 75 def on_buttonBox_clicked(self, button):
69 """ 76 """
70 Private slot to act on the button pressed. 77 Private slot to act on the button pressed.
71 78
72 @param button reference to the button pressed (QAbstractButton) 79 @param button reference to the button pressed
80 @type QAbstractButton
73 """ 81 """
74 if button == self.__previewButton: 82 if button == self.__previewButton:
75 self.previewChanges() 83 self.requestPreview()
76 elif button == self.__okButton: 84 elif button == self.__okButton:
77 self.applyChanges() 85 self.applyChanges()
78 86
79 def _calculateChanges(self, handle): 87 def _calculateChanges(self):
80 """ 88 """
81 Protected method to calculate the changes. 89 Protected method to initiate the calculation of the changes.
82
83 @param handle reference to the task handle
84 (rope.base.taskhandle.TaskHandle)
85 @return reference to the Changes object (rope.base.change.ChangeSet)
86 """ 90 """
87 self.__saveData() 91 self.__saveData()
92
88 pattern = self.patternEdit.toPlainText() 93 pattern = self.patternEdit.toPlainText()
89 goal = self.goalEdit.toPlainText() 94 goal = self.goalEdit.toPlainText()
90 imports = [line for line in self.importsEdit.toPlainText().splitlines() 95 imports = [line for line in self.importsEdit.toPlainText().splitlines()
91 if line.strip()] 96 if line.strip()]
92 97
97 splitted = check.split(':', 1) 102 splitted = check.split(':', 1)
98 name = splitted[0].strip() 103 name = splitted[0].strip()
99 value = splitted[1].strip() 104 value = splitted[1].strip()
100 args[name] = value 105 args[name] = value
101 106
102 import rope.refactor.restructure 107 self._refactoring.sendJson("CalculateRestructureChanges", {
103 self._refactoring.getProject().validate( 108 "ChangeGroup": self._changeGroupName,
104 self._refactoring.getProject().root) 109 "Title": self._title,
105 try: 110 "Pattern": pattern,
106 restructuring = rope.refactor.restructure.Restructure( 111 "Goal": goal,
107 self._refactoring.getProject(), pattern, goal, 112 "Args": args,
108 args=args, imports=imports) 113 "Imports": imports,
109 changes = restructuring.get_changes(task_handle=handle) 114 })
110 except Exception as err:
111 self._refactoring.handleRopeError(err, self._title)
112 return None
113
114 return changes
115 115
116 def __saveData(self): 116 def __saveData(self):
117 """ 117 """
118 Private slot to save the data for later reuse. 118 Private slot to save the data for later reuse.
119 """ 119 """

eric ide

mercurial