RefactoringRope/Refactoring.py

branch
server_client_variant
changeset 178
70b4fb448811
parent 176
117d86025a5c
child 179
8ae4e95f5fa6
--- a/RefactoringRope/Refactoring.py	Fri Sep 22 19:47:09 2017 +0200
+++ b/RefactoringRope/Refactoring.py	Fri Sep 22 19:47:36 2017 +0200
@@ -234,7 +234,7 @@
             """<p>Move the highlighted method to another class.</p>"""
         ))
         self.refactoringMoveMethodAct.triggered.connect(
-            self.__moveMethod)
+            lambda: self.__move("move_method"))
         self.actions.append(self.refactoringMoveMethodAct)
         
         self.refactoringMoveModuleAct = E5Action(
@@ -249,7 +249,7 @@
             """<p>Move the current module to another package.</p>"""
         ))
         self.refactoringMoveModuleAct.triggered.connect(
-            self.__moveModule)
+            lambda: self.__move("move_module"))
         self.actions.append(self.refactoringMoveModuleAct)
         
         #####################################################
@@ -1087,86 +1087,53 @@
     ## Move refactorings
     #####################################################
     
-    # TODO: continue from here
-    def __moveMethod(self):
+    def __move(self, moveKind):
         """
         Private slot to handle the Move Method action.
+        
+        @param moveKind kind of move to be performed
+        @type str (one of 'move_method' or 'move_module')
         """
         aw = e5App().getObject("ViewManager").activeWindow()
         
         if aw is None:
             return
         
-        title = self.tr("Move Method")
-        if not aw.hasSelectedText():
-            # no selection available
-            E5MessageBox.warning(
-                self.__ui, title,
-                self.tr("Highlight the method to move"
-                        " and try again."))
-            return
+        if moveKind == "move_method":
+            title = self.tr("Move Method")
+            if not aw.hasSelectedText():
+                # no selection available
+                E5MessageBox.warning(
+                    self.__ui, title,
+                    self.tr("Highlight the method to move"
+                            " and try again."))
+                return
+        else:
+            title = self.tr("Move Current Module")
         
         if not self.confirmAllBuffersSaved():
             return
         
         filename = aw.getFileName()
-        line, index, line1, index1 = aw.getSelection()
-        offset = self.__getOffset(aw, line, index)
-        
-        import rope.refactor.move
-        resource = rope.base.libutils.path_to_resource(
-            self.__project, filename)
-        try:
-            mover = rope.refactor.move.create_move(
-                self.__project, resource, offset)
-        except Exception as err:
-            self.handleRopeError(err, title)
-            return
-        
-        if isinstance(mover, rope.refactor.move.MoveGlobal):
-            from MoveGlobalMethodDialog import MoveGlobalMethodDialog
-            self.dlg = MoveGlobalMethodDialog(
-                self, title, mover, self.__project, parent=self.__ui)
+        if moveKind == "move_method":
+            line, index, line1, index1 = aw.getSelection()
+            offset = self.__getOffset(aw, line, index)
         else:
-            from MoveMethodDialog import MoveMethodDialog
-            self.dlg = MoveMethodDialog(self, title, mover, parent=self.__ui)
-        self.dlg.show()
-    
-    def __moveModule(self):
-        """
-        Private slot to handle the Move Current Module action.
-        """
-        aw = e5App().getObject("ViewManager").activeWindow()
-        
-        if aw is None:
-            return
-        
-        title = self.tr("Move Current Module")
+            offset = None
         
-        if not self.confirmAllBuffersSaved():
-            return
-        
-        filename = aw.getFileName()
-        offset = None
-        
-        import rope.refactor.move
-        resource = rope.base.libutils.path_to_resource(
-            self.__project, filename)
-        try:
-            mover = rope.refactor.move.create_move(
-                self.__project, resource, offset)
-        except Exception as err:
-            self.handleRopeError(err, title)
-            return
-        
-        from MoveModuleDialog import MoveModuleDialog
-        self.dlg = MoveModuleDialog(self, title, mover, parent=self.__ui)
-        self.dlg.show()
+        from MoveDialog import MoveDialog
+        dlg = MoveDialog(self, title, filename, offset, parent=self.__ui)
+        changeGroup = dlg.getChangeGroupName()
+        self.__refactoringDialogs[changeGroup] = dlg
+        dlg.finished.connect(
+            lambda: self.__refactoringDialogClosed(changeGroup))
+        dlg.show()
     
     #####################################################
     ## Use function refactoring
     #####################################################
     
+    # TODO: continue from here
     def __useFunction(self):
         """
         Private slot to use a function wherever possible.

eric ide

mercurial