RefactoringRope/Refactoring.py

branch
server_client_variant
changeset 182
f7f2834dc8d9
parent 181
3e3d6de2f0ca
child 183
bac69c80d5f4
diff -r 3e3d6de2f0ca -r f7f2834dc8d9 RefactoringRope/Refactoring.py
--- a/RefactoringRope/Refactoring.py	Sat Sep 23 12:39:00 2017 +0200
+++ b/RefactoringRope/Refactoring.py	Sat Sep 23 14:17:49 2017 +0200
@@ -1242,58 +1242,54 @@
     ## Import refactorings
     #####################################################
     
-    # TODO: continue from here
     def __importsOrganize(self):
         """
         Private slot to organize imports.
         """
-        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(
             self.tr("Organize Imports"),
-            ImportOrganizer.organize_imports)
+            "organize_imports")
     
     def __importsExpandStar(self):
         """
         Private slot to expand star imports.
         """
-        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(
             self.tr("Expand Star Imports"),
-            ImportOrganizer.expand_star_imports)
+            "expand_star_imports")
     
     def __importsRelativeToAbsolute(self):
         """
         Private slot to transform relative to absolute imports.
         """
-        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(
             self.tr("Relative to Absolute"),
-            ImportOrganizer.relatives_to_absolutes)
+            "relatives_to_absolutes")
     
     def __importsFromToImport(self):
         """
         Private slot to transform from imports to plain imports.
         """
-        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(
             self.tr("Froms to Imports"),
-            ImportOrganizer.froms_to_imports)
+            "froms_to_imports")
     
     def __importsHandleLong(self):
         """
         Private slot to handle long imports.
         """
-        from rope.refactor.importutils import ImportOrganizer
         self.__doImports(
             self.tr("Handle Long Imports"),
-            ImportOrganizer.handle_long_imports)
+            "handle_long_imports")
     
-    def __doImports(self, title, method):
+    def __doImports(self, title, methodName):
         """
         Private method to perform the various imports refactorings.
         
-        @param title title to be used for the import refactoring (string)
-        @param method method performing the import refactoring
+        @param title title to be used for the import refactoring
+        @type str
+        @param methodName name of the method performing the import refactoring
+        @type str
         """
         aw = e5App().getObject("ViewManager").activeWindow()
         
@@ -1310,32 +1306,24 @@
         else:
             offset = None
         
-        from rope.refactor.importutils import ImportOrganizer
-        importOrganizer = ImportOrganizer(self.__project)
-        resource = rope.base.libutils.path_to_resource(
-            self.__project, filename)
-        try:
-            changes = method(importOrganizer, resource, offset=offset)
-            if changes is not None:
-                from ConfirmationDialog import ConfirmationDialog
-                dlg = ConfirmationDialog(changes, self.__ui)
-                if dlg.exec_() == QDialog.Accepted:
-                    self.__project.do(changes)
-                    self.refreshEditors(changes)
-                    if self.__e5project.isDirty():
-                        self.__e5project.saveProject()
-            else:
-                E5MessageBox.information(
-                    self.__ui, title,
-                    self.tr("The selected refactoring did not produce"
-                            " any change."))
-        except Exception as err:
-            self.handleRopeError(err, title)
+        from ConfirmationDialog import ConfirmationDialog
+        dlg = ConfirmationDialog(
+            self, title, "Imports", "CalculateImportsChanges", {
+                "MethodName": methodName,
+                "FileName": filename,
+                "Offset": offset,
+            }, parent=self.__ui)
+        changeGroup = dlg.getChangeGroupName()
+        self.__refactoringDialogs[changeGroup] = dlg
+        dlg.finished.connect(
+            lambda: self.__refactoringDialogClosed(changeGroup))
+        dlg.show()
     
     #####################################################
     ## Various refactorings
     #####################################################
     
+    # TODO: continue from here
     def __restructure(self):
         """
         Private slot to restructure code.

eric ide

mercurial