RefactoringRope/Refactoring.py

Sun, 06 Jul 2014 14:23:25 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 06 Jul 2014 14:23:25 +0200
changeset 87
1fbf5fdbe721
parent 76
936b2a98fe4e
child 88
e71619898d0f
child 94
03d6a17c66ac
permissions
-rw-r--r--

Ported to PyQt5 and eric6.

1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
63
c02061242598 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 51
diff changeset
3 # Copyright (c) 2010 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the refactoring interface to rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
76
936b2a98fe4e Merge with Py2 comp.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 62 63
diff changeset
10 from __future__ import unicode_literals
50
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
11
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import os
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import sys
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 sys.path.insert(0, os.path.dirname(__file__))
50
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
16 if sys.version_info[0] >= 3:
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
17 path = os.path.join(os.path.dirname(__file__), 'rope_py3')
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
18 else:
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
19 path = os.path.join(os.path.dirname(__file__), 'rope_py2')
51
db9a261d8f07 Regenerated source docu and adjusted the plug-in archive contents slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
20 str = unicode # __IGNORE_WARNING__
db9a261d8f07 Regenerated source docu and adjusted the plug-in archive contents slightly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 50
diff changeset
21 sys.path.insert(0, path)
50
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
22
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 import rope
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 import rope.base.libutils
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 import rope.base.exceptions
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
27 from PyQt5.QtCore import QObject
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
28 from PyQt5.QtWidgets import QMenu, QApplication, QDialog, QAction
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
29 from PyQt5.Qsci import QsciScintilla
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 from E5Gui.E5Application import e5App
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
32 from E5Gui import E5MessageBox
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 from E5Gui.E5Action import E5Action
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
35 import Utilities
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 class Refactoring(QObject):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 Class implementing the refactoring interface to rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
31
0389d4a924cc Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
42 def __init__(self, plugin, parent=None):
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Constructor
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @param plugin reference to the plugin object
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @param parent parent (QObject)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 QObject.__init__(self, parent)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.__plugin = plugin
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__ui = parent
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__e5project = e5App().getObject("Project")
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__projectpath = ''
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.__projectLanguage = ""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__projectopen = False
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.__mainMenu = None
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.__helpDialog = None
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 # Rope objects
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.__project = None
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
63
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
64 from FileSystemCommands import E5FileSystemCommands
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
65 self.__fsCommands = E5FileSystemCommands(self.__e5project)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 def initActions(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 Public method to define the refactoring actions.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.actions = []
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
73 #####################################################
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
74 ## Rename refactoring actions
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
75 #####################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
76
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
77 self.refactoringRenameAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
78 self.tr('Rename'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
79 self.tr('&Rename'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
80 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
81 self, 'refactoring_rename')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
82 self.refactoringRenameAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
83 'Rename the highlighted object'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
84 self.refactoringRenameAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
85 """<b>Rename</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
86 """<p>Rename the highlighted Python object.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
87 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
88 self.refactoringRenameAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
89 self.__rename)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
90 self.actions.append(self.refactoringRenameAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
91
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
92 self.refactoringRenameLocalAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
93 self.tr('Local Rename'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
94 self.tr('&Local Rename'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
95 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
96 self, 'refactoring_rename_local')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
97 self.refactoringRenameLocalAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
98 'Rename the highlighted object in the current module only'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
99 self.refactoringRenameLocalAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
100 """<b>Local Rename</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
101 """<p>Rename the highlighted Python object in the current"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
102 """ module only.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
103 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
104 self.refactoringRenameLocalAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
105 self.__renameLocal)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
106 self.actions.append(self.refactoringRenameLocalAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
107
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
108 self.refactoringRenameModuleAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
109 self.tr('Rename Current Module'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
110 self.tr('Rename Current Module'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
111 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
112 self, 'refactoring_rename_module')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
113 self.refactoringRenameModuleAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
114 'Rename the current module'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
115 self.refactoringRenameModuleAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
116 """<b>Rename Current Module</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
117 """<p>Rename the current module.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
118 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
119 self.refactoringRenameModuleAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
120 self.__renameModule)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
121 self.actions.append(self.refactoringRenameModuleAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
122
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
123 self.refactoringChangeOccurrencesAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
124 self.tr('Change Occurrences'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
125 self.tr('Change &Occurrences'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
126 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
127 self, 'refactoring_change_occurrences')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
128 self.refactoringChangeOccurrencesAct.setStatusTip(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
129 'Change all occurrences in the local scope'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
130 self.refactoringChangeOccurrencesAct.setWhatsThis(self.tr(
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
131 """<b>Change Occurrences</b>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
132 """<p>Change all occurrences in the local scope.</p>"""
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
133 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
134 self.refactoringChangeOccurrencesAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
135 self.__changeOccurrences)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
136 self.actions.append(self.refactoringChangeOccurrencesAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
137
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
138 #####################################################
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
139 ## Extract refactoring actions
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
140 #####################################################
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
141
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
142 self.refactoringExtractMethodAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
143 self.tr('Extract method'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
144 self.tr('Extract &Method'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
145 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
146 self, 'refactoring_extract_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
147 self.refactoringExtractMethodAct.setStatusTip(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
148 'Extract the highlighted area as a method'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
149 self.refactoringExtractMethodAct.setWhatsThis(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
150 """<b>Extract method</b>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
151 """<p>Extract the highlighted area as a method or function.</p>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
152 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
153 self.refactoringExtractMethodAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
154 self.__extractMethod)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
155 self.actions.append(self.refactoringExtractMethodAct)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
156
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
157 self.refactoringExtractLocalVariableAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
158 self.tr('Extract local variable'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
159 self.tr('&Extract Local Variable'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
160 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
161 self, 'refactoring_extract_variable')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
162 self.refactoringExtractLocalVariableAct.setStatusTip(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
163 'Extract the highlighted area as a local variable'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
164 self.refactoringExtractLocalVariableAct.setWhatsThis(self.tr(
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
165 """<b>Extract local variable</b>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
166 """<p>Extract the highlighted area as a local variable.</p>"""
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
167 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
168 self.refactoringExtractLocalVariableAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
169 self.__extractLocalVariable)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
170 self.actions.append(self.refactoringExtractLocalVariableAct)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
171
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
172 #####################################################
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
173 ## Inline refactoring actions
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
174 #####################################################
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
175
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
176 self.refactoringInlineAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
177 self.tr('Inline'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
178 self.tr('&Inline'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
179 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
180 self, 'refactoring_inline')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
181 self.refactoringInlineAct.setStatusTip(self.tr(
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
182 'Inlines the selected local variable or method'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
183 self.refactoringInlineAct.setWhatsThis(self.tr(
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
184 """<b>Inline</b>"""
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
185 """<p>Inlines the selected local variable or method.</p>"""
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
186 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
187 self.refactoringInlineAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
188 self.__inline)
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
189 self.actions.append(self.refactoringInlineAct)
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
190
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
191 #####################################################
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
192 ## Move refactoring actions
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
193 #####################################################
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
194
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
195 self.refactoringMoveMethodAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
196 self.tr('Move method'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
197 self.tr('Mo&ve Method'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
198 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
199 self, 'refactoring_move_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
200 self.refactoringMoveMethodAct.setStatusTip(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
201 'Move the highlighted method to another class'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
202 self.refactoringMoveMethodAct.setWhatsThis(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
203 """<b>Move method</b>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
204 """<p>Move the highlighted method to another class.</p>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
205 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
206 self.refactoringMoveMethodAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
207 self.__moveMethod)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
208 self.actions.append(self.refactoringMoveMethodAct)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
209
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
210 self.refactoringMoveModuleAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
211 self.tr('Move current module'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
212 self.tr('Move Current Module'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
213 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
214 self, 'refactoring_move_module')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
215 self.refactoringMoveModuleAct.setStatusTip(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
216 'Move the current module to another package'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
217 self.refactoringMoveModuleAct.setWhatsThis(self.tr(
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
218 """<b>Move current module</b>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
219 """<p>Move the current module to another package.</p>"""
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
220 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
221 self.refactoringMoveModuleAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
222 self.__moveModule)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
223 self.actions.append(self.refactoringMoveModuleAct)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
224
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
225 #####################################################
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
226 ## Use function refactoring action
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
227 #####################################################
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
228
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
229 self.refactoringUseFunctionAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
230 self.tr('Use Function'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
231 self.tr('Use Function'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
232 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
233 self, 'refactoring_use_function')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
234 self.refactoringUseFunctionAct.setStatusTip(self.tr(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
235 'Use a function wherever possible.'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
236 self.refactoringUseFunctionAct.setWhatsThis(self.tr(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
237 """<b>Use function</b>"""
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
238 """<p>Tries to use a function wherever possible.</p>"""
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
239 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
240 self.refactoringUseFunctionAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
241 self.__useFunction)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
242 self.actions.append(self.refactoringUseFunctionAct)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
243
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
244 #####################################################
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
245 ## Introduce refactorings actions
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
246 #####################################################
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
247
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
248 self.refactoringIntroduceFactoryAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
249 self.tr('Introduce Factory Method'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
250 self.tr('Introduce &Factory Method'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
251 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
252 self, 'refactoring_introduce_factory_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
253 self.refactoringIntroduceFactoryAct.setStatusTip(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
254 'Introduce a factory method or function'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
255 self.refactoringIntroduceFactoryAct.setWhatsThis(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
256 """<b>Introduce Factory Method</b>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
257 """<p>Introduce a factory method or function.</p>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
258 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
259 self.refactoringIntroduceFactoryAct.triggered.connect(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
260 self.__introduceFactoryMethod)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
261 self.actions.append(self.refactoringIntroduceFactoryAct)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
262
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
263 self.refactoringIntroduceParameterAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
264 self.tr('Introduce Parameter'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
265 self.tr('Introduce &Parameter'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
266 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
267 self, 'refactoring_introduce_parameter_method')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
268 self.refactoringIntroduceParameterAct.setStatusTip(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
269 'Introduce a parameter in a function'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
270 self.refactoringIntroduceParameterAct.setWhatsThis(self.tr(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
271 """<b>Introduce Parameter</b>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
272 """<p>Introduce a parameter in a function.</p>"""
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
273 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
274 self.refactoringIntroduceParameterAct.triggered.connect(
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
275 self.__introduceParameter)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
276 self.actions.append(self.refactoringIntroduceParameterAct)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
277
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
278 #####################################################
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
279 ## Import refactorings actions
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
280 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
281
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
282 self.refactoringImportsOrganizeAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
283 self.tr('Organize Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
284 self.tr('&Organize Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
285 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
286 self, 'refactoring_organize_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
287 self.refactoringImportsOrganizeAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
288 'Sort imports according to PEP-8'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
289 self.refactoringImportsOrganizeAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
290 """<b>Organize Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
291 """<p>Sort imports according to PEP-8.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
292 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
293 self.refactoringImportsOrganizeAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
294 self.__importsOrganize)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
295 self.actions.append(self.refactoringImportsOrganizeAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
296
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
297 self.refactoringImportsStarExpandAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
298 self.tr('Expand Star Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
299 self.tr('E&xpand Star Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
300 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
301 self, 'refactoring_expand_star_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
302 self.refactoringImportsStarExpandAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
303 'Expand imports like "from xxx import *"'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
304 self.refactoringImportsStarExpandAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
305 """<b>Expand Star Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
306 """<p>Expand imports like "from xxx import *".</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
307 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
308 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
309 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
310 self.refactoringImportsStarExpandAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
311 self.__importsExpandStar)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
312 self.actions.append(self.refactoringImportsStarExpandAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
313
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
314 self.refactoringImportsRelativeToAbsoluteAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
315 self.tr('Relative to Absolute'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
316 self.tr('Relative to &Absolute'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
317 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
318 self, 'refactoring_relative_to_absolute_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
319 self.refactoringImportsRelativeToAbsoluteAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
320 'Transform relative imports to absolute ones'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
321 self.refactoringImportsRelativeToAbsoluteAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
322 """<b>Relative to Absolute</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
323 """<p>Transform relative imports to absolute ones.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
324 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
325 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
326 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
327 self.refactoringImportsRelativeToAbsoluteAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
328 self.__importsRelativeToAbsolute)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
329 self.actions.append(self.refactoringImportsRelativeToAbsoluteAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
330
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
331 self.refactoringImportsFromsToImportsAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
332 self.tr('Froms to Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
333 self.tr('Froms to &Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
334 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
335 self, 'refactoring_froms_to_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
336 self.refactoringImportsFromsToImportsAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
337 'Transform From imports to plain imports'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
338 self.refactoringImportsFromsToImportsAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
339 """<b>Froms to Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
340 """<p>Transform From imports to plain imports.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
341 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
342 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
343 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
344 self.refactoringImportsFromsToImportsAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
345 self.__importsFromToImport)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
346 self.actions.append(self.refactoringImportsFromsToImportsAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
347
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
348 self.refactoringImportsHandleLongAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
349 self.tr('Handle Long Imports'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
350 self.tr('Handle &Long Imports'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
351 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
352 self, 'refactoring_organize_imports')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
353 self.refactoringImportsHandleLongAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
354 'Transform long import statements to look better'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
355 self.refactoringImportsHandleLongAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
356 """<b>Handle Long Imports</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
357 """<p>Transform long import statements to look better.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
358 """<p>Select the import to act on or none to do all."""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
359 """ Unused imports are deleted.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
360 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
361 self.refactoringImportsHandleLongAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
362 self.__importsHandleLong)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
363 self.actions.append(self.refactoringImportsHandleLongAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
364
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
365 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
366 ## Various refactorings actions
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
367 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
368
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
369 self.refactoringRestructureAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
370 self.tr('Restructure'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
371 self.tr('Res&tructure'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
372 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
373 self, 'refactoring_restructure')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
374 self.refactoringRestructureAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
375 'Restructure code'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
376 self.refactoringRestructureAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
377 """<b>Restructure</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
378 """<p>Restructure code. See "Rope Help" for examples.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
379 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
380 self.refactoringRestructureAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
381 self.__restructure)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
382 self.actions.append(self.refactoringRestructureAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
383
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
384 self.refactoringChangeSignatureAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
385 self.tr('Change Method Signature'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
386 self.tr('&Change Method Signature'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
387 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
388 self, 'refactoring_change_method_signature')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
389 self.refactoringChangeSignatureAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
390 'Change the signature of the selected method or function'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
391 self.refactoringChangeSignatureAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
392 """<b>Change Method Signature</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
393 """<p>Change the signature of the selected method"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
394 """ or function.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
395 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
396 self.refactoringChangeSignatureAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
397 self.__changeSignature)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
398 self.actions.append(self.refactoringChangeSignatureAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
399
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
400 self.refactoringInlineArgumentDefaultAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
401 self.tr('Inline Argument Default'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
402 self.tr('Inline &Argument Default'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
403 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
404 self, 'refactoring_inline_argument_default')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
405 self.refactoringInlineArgumentDefaultAct.setStatusTip(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
406 'Inline a parameters default value'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
407 self.refactoringInlineArgumentDefaultAct.setWhatsThis(self.tr(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
408 """<b>Inline Argument Default</b>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
409 """<p>Inline a parameters default value.</p>"""
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
410 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
411 self.refactoringInlineArgumentDefaultAct.triggered.connect(
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
412 self.__inlineArgumentDefault)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
413 self.actions.append(self.refactoringInlineArgumentDefaultAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
414
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
415 self.refactoringTransformModuleAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
416 self.tr('Transform Module to Package'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
417 self.tr('Transform Module to Package'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
418 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
419 self, 'refactoring_transform_module_to_package')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
420 self.refactoringTransformModuleAct.setStatusTip(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
421 'Transform the current module to a package'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
422 self.refactoringTransformModuleAct.setWhatsThis(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
423 """<b>Transform Module to Package</b>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
424 """<p>Transform the current module to a package.</p>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
425 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
426 self.refactoringTransformModuleAct.triggered.connect(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
427 self.__transformModuleToPackage)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
428 self.actions.append(self.refactoringTransformModuleAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
429
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
430 self.refactoringEncapsulateAttributeAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
431 self.tr('Encapsulate Attribute'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
432 self.tr('Encap&sulate Attribute'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
433 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
434 self, 'refactoring_encapsulate_attribute')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
435 self.refactoringEncapsulateAttributeAct.setStatusTip(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
436 'Generate a getter/setter for an attribute'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
437 self.refactoringEncapsulateAttributeAct.setWhatsThis(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
438 """<b>Encapsulate Attribute</b>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
439 """<p>Generate a getter/setter for an attribute and changes"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
440 """ its occurrences to use them.</p>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
441 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
442 self.refactoringEncapsulateAttributeAct.triggered.connect(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
443 self.__encapsulateAttribute)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
444 self.actions.append(self.refactoringEncapsulateAttributeAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
445
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
446 self.refactoringLocalVariableToAttributeAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
447 self.tr('Local Variable to Attribute'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
448 self.tr('Local Varia&ble to Attribute'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
449 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
450 self, 'refactoring_local_variable_to_attribute')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
451 self.refactoringLocalVariableToAttributeAct.setStatusTip(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
452 'Change a local variable to an attribute'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
453 self.refactoringLocalVariableToAttributeAct.setWhatsThis(self.tr(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
454 """<b>Local Variable to Attribute</b>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
455 """<p>Change a local variable to an attribute.</p>"""
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
456 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
457 self.refactoringLocalVariableToAttributeAct.triggered.connect(
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
458 self.__convertLocalToAttribute)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
459 self.actions.append(self.refactoringLocalVariableToAttributeAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
460
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
461 self.refactoringMethodToMethodObjectAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
462 self.tr('Method To Method Object'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
463 self.tr('Method To Method Ob&ject'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
464 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
465 self, 'refactoring_method_to_methodobject')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
466 self.refactoringMethodToMethodObjectAct.setStatusTip(self.tr(
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
467 'Transform a function or a method to a method object'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
468 self.refactoringMethodToMethodObjectAct.setWhatsThis(self.tr(
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
469 """<b>Method To Method Object</b>"""
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
470 """<p>Transform a function or a method to a method object.</p>"""
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
471 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
472 self.refactoringMethodToMethodObjectAct.triggered.connect(
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
473 self.__methodToMethodObject)
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
474 self.actions.append(self.refactoringMethodToMethodObjectAct)
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
475
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
476 #####################################################
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
477 ## Undo/Redo actions
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
478 #####################################################
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
479
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
480 self.refactoringUndoAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
481 self.tr('Undo'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
482 self.tr('&Undo'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
483 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
484 self, 'refactoring_undo')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
485 self.refactoringUndoAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
486 'Undo the last refactoring'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
487 self.refactoringUndoAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
488 """<b>Undo</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
489 """<p>Undo the last refactoring.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
490 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
491 self.refactoringUndoAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
492 self.__undo)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
493 self.actions.append(self.refactoringUndoAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
494
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
495 self.refactoringRedoAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
496 self.tr('Redo'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
497 self.tr('Re&do'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
498 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
499 self, 'refactoring_redo')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
500 self.refactoringRedoAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
501 'Redo the last refactoring'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
502 self.refactoringRedoAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
503 """<b>Redo</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
504 """<p>Redo the last refactoring.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
505 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
506 self.refactoringRedoAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
507 self.__redo)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
508 self.actions.append(self.refactoringRedoAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
509
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
510 self.refactoringUndoHistoryAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
511 self.tr('Show Project Undo History'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
512 self.tr('Show Project Undo History'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
513 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
514 self, 'refactoring_show_project_undo_history')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
515 self.refactoringUndoHistoryAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
516 'Show the undo history of the project'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
517 self.refactoringUndoHistoryAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
518 """<b>Show Project Undo History</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
519 """<p>Opens a dialog to show the undo history list of"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
520 """ the project.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
521 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
522 self.refactoringUndoHistoryAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
523 self.__showProjectUndoHistory)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
524 self.actions.append(self.refactoringUndoHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
525
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
526 self.refactoringRedoHistoryAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
527 self.tr('Show Project Redo History'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
528 self.tr('Show Project Redo History'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
529 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
530 self, 'refactoring_show_project_redo_history')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
531 self.refactoringRedoHistoryAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
532 'Show the redo history of the project'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
533 self.refactoringRedoHistoryAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
534 """<b>Show Project Redo History</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
535 """<p>Opens a dialog to show the redo history list of"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
536 """ the project.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
537 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
538 self.refactoringRedoHistoryAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
539 self.__showProjectRedoHistory)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
540 self.actions.append(self.refactoringRedoHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
541
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
542 self.refactoringUndoFileHistoryAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
543 self.tr('Show Current File Undo History'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
544 self.tr('Show Current File Undo History'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
545 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
546 self, 'refactoring_show_file_undo_history')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
547 self.refactoringUndoFileHistoryAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
548 'Show the undo history of the current file'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
549 self.refactoringUndoFileHistoryAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
550 """<b>Show Current File Undo History</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
551 """<p>Opens a dialog to show the undo history list of"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
552 """ the current file.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
553 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
554 self.refactoringUndoFileHistoryAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
555 self.__showFileUndoHistory)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
556 self.actions.append(self.refactoringUndoFileHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
557
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
558 self.refactoringRedoFileHistoryAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
559 self.tr('Show Current File Redo History'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
560 self.tr('Show Current File Redo History'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
561 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
562 self, 'refactoring_show_file_redo_history')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
563 self.refactoringRedoFileHistoryAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
564 'Show the redo history of the current file'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
565 self.refactoringRedoFileHistoryAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
566 """<b>Show Current File Redo History</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
567 """<p>Opens a dialog to show the redo history list of"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
568 """ the current file.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
569 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
570 self.refactoringRedoFileHistoryAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
571 self.__showFileRedoHistory)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
572 self.actions.append(self.refactoringRedoFileHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
573
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
574 self.refactoringClearHistoryAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
575 self.tr('Clear History'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
576 self.tr('Clear History'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
577 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
578 self, 'refactoring_clear_history')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
579 self.refactoringClearHistoryAct.setStatusTip(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
580 'Clear the refactoring history'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
581 self.refactoringClearHistoryAct.setWhatsThis(self.tr(
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
582 """<b>Clear History</b>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
583 """<p>Clears the refactoring history.</p>"""
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
584 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
585 self.refactoringClearHistoryAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
586 self.__clearHistory)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
587 self.actions.append(self.refactoringClearHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
588
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
589 #####################################################
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
590 ## Query actions
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
591 #####################################################
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
592
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
593 self.queryReferencesAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
594 self.tr('Find occurrences'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
595 self.tr('Find &Occurrences'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
596 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
597 self, 'refactoring_find_occurrences')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
598 self.queryReferencesAct.setStatusTip(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
599 'Find occurrences of the highlighted object'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
600 self.queryReferencesAct.setWhatsThis(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
601 """<b>Find occurrences</b>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
602 """<p>Find occurrences of the highlighted class, method,"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
603 """ function or variable.</p>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
604 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
605 self.queryReferencesAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
606 self.__queryReferences)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
607 self.actions.append(self.queryReferencesAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
608
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
609 self.queryDefinitionAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
610 self.tr('Find definition'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
611 self.tr('Find &Definition'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
612 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
613 self, 'refactoring_find_definition')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
614 self.queryDefinitionAct.setStatusTip(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
615 'Find definition of the highlighted item'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
616 self.queryDefinitionAct.setWhatsThis(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
617 """<b>Find definition</b>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
618 """<p>Find the definition of the highlighted class, method,"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
619 """ function or variable.</p>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
620 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
621 self.queryDefinitionAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
622 self.__queryDefinition)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
623 self.actions.append(self.queryDefinitionAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
624
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
625 self.queryImplementationsAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
626 self.tr('Find implementations'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
627 self.tr('Find &Implementations'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
628 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
629 self, 'refactoring_find_implementations')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
630 self.queryImplementationsAct.setStatusTip(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
631 'Find places where the selected method is overridden'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
632 self.queryImplementationsAct.setWhatsThis(self.tr(
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
633 """<b>Find implementations</b>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
634 """<p>Find places where the selected method is overridden.</p>"""
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
635 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
636 self.queryImplementationsAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
637 self.__queryImplementations)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
638 self.actions.append(self.queryImplementationsAct)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
639
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
640 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 ## Various actions
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
644 self.refactoringEditConfigAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
645 self.tr('Configure Rope'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
646 self.tr('&Configure Rope'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
647 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
648 self, 'refactoring_edit_config')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
649 self.refactoringEditConfigAct.setStatusTip(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 'Open the rope configuration file'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
651 self.refactoringEditConfigAct.setWhatsThis(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 """<b>Configure Rope</b>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653 """<p>Opens the rope configuration file in an editor.</p>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
655 self.refactoringEditConfigAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
656 self.__editConfig)
33
d019d720768c Fix for setting the actions of the Mac OS X application menu correctly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 31
diff changeset
657 self.refactoringEditConfigAct.setMenuRole(QAction.NoRole)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 self.actions.append(self.refactoringEditConfigAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
660 self.refactoringHelpAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
661 self.tr('Rope help'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
662 self.tr('Rope &Help'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
663 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
664 self, 'refactoring_help')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
665 self.refactoringHelpAct.setStatusTip(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
666 'Show help about the rope refactorings'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
667 self.refactoringHelpAct.setWhatsThis(self.tr(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 """<b>Rope help</b>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
669 """<p>Show some help text about the rope refactorings.</p>"""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
670 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
671 self.refactoringHelpAct.triggered.connect(
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
672 self.__showRopeHelp)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
673 self.actions.append(self.refactoringHelpAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
675 self.refactoringAllSoaAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
676 self.tr('Analyse all modules'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
677 self.tr('&Analyse all modules'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
678 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
679 self, 'refactoring_analyze_all')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
680 self.refactoringAllSoaAct.setStatusTip(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
681 'Perform static object analysis on all modules'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
682 self.refactoringAllSoaAct.setWhatsThis(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
683 """<b>Analyse all modules</b>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
684 """<p>Perform static object analysis (SOA) on all modules. """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
685 """This might be time consuming. Analysis of all modules """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
686 """should only be neccessary, if the project was created """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
687 """with the rope plugin disabled or if files were added.</p>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
688 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
689 self.refactoringAllSoaAct.triggered.connect(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
690 self.__performSOA)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
691 self.actions.append(self.refactoringAllSoaAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
692
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
693 self.updateConfigAct = E5Action(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
694 self.tr('Update Configuration'),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
695 self.tr('&Update Configuration'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
696 0, 0,
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
697 self, 'refactoring_update_configuration')
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
698 self.updateConfigAct.setStatusTip(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
699 'Generates a new configuration file overwriting the current one.'))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
700 self.updateConfigAct.setWhatsThis(self.tr(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
701 """<b>Update Configuration</b>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
702 """<p>Generates a new configuration file overwriting"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
703 """ the current one.</p>"""
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
704 ))
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
705 self.updateConfigAct.triggered.connect(
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
706 self.__updateConfig)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
707 self.actions.append(self.updateConfigAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
708
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709 for act in self.actions:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710 act.setEnabled(False)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712 def initMenu(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
713 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
714 Public slot to initialize the refactoring menu.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
716 @return the menu generated (QMenu)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
717 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
718 menu = QMenu(self.tr('&Refactoring'), self.__ui)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 menu.setTearOffEnabled(True)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
720
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 act = menu.addAction('rope', self.__ropeInfo)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 font = act.font()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 font.setBold(True)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 act.setFont(font)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 menu.addSeparator()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
727 smenu = menu.addMenu(self.tr("&Query"))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
728 smenu.addAction(self.queryReferencesAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
729 smenu.addAction(self.queryDefinitionAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
730 smenu.addAction(self.queryImplementationsAct)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
731
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
732 smenu = menu.addMenu(self.tr("&Refactoring"))
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
733 smenu.aboutToShow.connect(self.__showRefactoringMenu)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
734 smenu.addAction(self.refactoringRenameAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
735 smenu.addAction(self.refactoringRenameLocalAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
736 smenu.addAction(self.refactoringChangeOccurrencesAct)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
737 smenu.addSeparator()
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
738 smenu.addAction(self.refactoringExtractMethodAct)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
739 smenu.addAction(self.refactoringMoveMethodAct)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
740 smenu.addSeparator()
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
741 smenu.addAction(self.refactoringInlineAct)
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
742 smenu.addSeparator()
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
743 smenu.addAction(self.refactoringExtractLocalVariableAct)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
744 smenu.addSeparator()
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
745 smenu.addAction(self.refactoringUseFunctionAct)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
746 smenu.addSeparator()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
747 smenu.addAction(self.refactoringChangeSignatureAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
748 smenu.addAction(self.refactoringInlineArgumentDefaultAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
749 smenu.addSeparator()
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
750 smenu.addAction(self.refactoringRestructureAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
751 smenu.addSeparator()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
752 smenu.addAction(self.refactoringIntroduceFactoryAct)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
753 smenu.addAction(self.refactoringIntroduceParameterAct)
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
754 smenu.addAction(self.refactoringMethodToMethodObjectAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
755 smenu.addSeparator()
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
756 smenu.addAction(self.refactoringEncapsulateAttributeAct)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
757 smenu.addAction(self.refactoringLocalVariableToAttributeAct)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
758 smenu.addSeparator()
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
759 smenu.addAction(self.refactoringRenameModuleAct)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
760 smenu.addAction(self.refactoringMoveModuleAct)
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
761 smenu.addAction(self.refactoringTransformModuleAct)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
762 smenu.addSeparator()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
763
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
764 imenu = smenu.addMenu(self.tr("Im&ports"))
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
765 imenu.addAction(self.refactoringImportsOrganizeAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
766 imenu.addAction(self.refactoringImportsStarExpandAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
767 imenu.addAction(self.refactoringImportsRelativeToAbsoluteAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
768 imenu.addAction(self.refactoringImportsFromsToImportsAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
769 imenu.addAction(self.refactoringImportsHandleLongAct)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
770
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
771 smenu.addSeparator()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
772 smenu.addAction(self.refactoringUndoAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
773 smenu.addAction(self.refactoringRedoAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
774 smenu.addSeparator()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
775
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
776 hmenu = smenu.addMenu(self.tr("History"))
31
0389d4a924cc Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
777 hmenu.aboutToShow.connect(self.__showRefactoringHistoryMenu)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
778 hmenu.addAction(self.refactoringUndoHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
779 hmenu.addAction(self.refactoringUndoFileHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
780 hmenu.addSeparator()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
781 hmenu.addAction(self.refactoringRedoHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
782 hmenu.addAction(self.refactoringRedoFileHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
783 hmenu.addSeparator()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
784 hmenu.addAction(self.refactoringClearHistoryAct)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
785
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
786 smenu = menu.addMenu(self.tr("&Utilities"))
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
787 smenu.addAction(self.refactoringAllSoaAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
788 smenu.addSeparator()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
789 smenu.addAction(self.updateConfigAct)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
790
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
791 menu.addSeparator()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
792 menu.addAction(self.refactoringEditConfigAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
793 menu.addAction(self.refactoringHelpAct)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
794
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
795 self.__mainMenu = menu
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
796 return menu
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
797
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
798 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 ## slots below implement general functionality
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
800 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 def __ropeInfo(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804 Private slot to show some info about rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
805 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
806 E5MessageBox.about(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
807 self.__ui,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
808 self.tr("About rope"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
809 self.tr("{0}\nVersion {1}\n\n{2}".format(
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
810 rope.INFO, rope.VERSION, rope.COPYRIGHT)))
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
811
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
812 def __canUndo(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
813 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
814 Private slot to check, if there are changes to be undone.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
815
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
816 @return flag indicating, that undoable changes are available (boolean)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
817 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
818 return self.__project is not None and \
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
819 len(self.__project.history.undo_list) > 0
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
820
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
821 def __canRedo(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
822 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
823 Private slot to check, if there are changes to be redone.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
824
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
825 @return flag indicating, that redoable changes are available (boolean)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
826 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
827 return self.__project is not None and \
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
828 len(self.__project.history.redo_list) > 0
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
829
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
830 def __getFileUndoList(self, resource):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
831 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
832 Private slot to get a list of undoable changes.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
833
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
834 @param resource file resource to filter against
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
835 (rope.base.resources.File)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
836 @return list of change objects (list of rope.base.change.Change)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
837 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
838 undoList = []
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
839 for change in self.__project.history.undo_list:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
840 if resource in change.get_changed_resources():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
841 undoList.append(change)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
842 return undoList
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
843
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
844 def __getFileRedoList(self, resource):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
845 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
846 Private slot to get a list of redoable changes.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
847
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
848 @param resource file resource to filter against
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
849 (rope.base.resources.File)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
850 @return list of change objects (list of rope.base.change.Change)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
851 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
852 redoList = []
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
853 for change in self.__project.history.redo_list:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
854 if resource in change.get_changed_resources():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
855 redoList.append(change)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
856 return redoList
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
857
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
858 def __canUndoFile(self, resource):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
859 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
860 Private slot to check, if there are undoable changes for a resource.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
861
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
862 @param resource file resource to check against
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
863 (rope.base.resources.File)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
864 @return flag indicating, that undoable changes are available (boolean)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
865 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
866 return self.__canUndo() and len(self.__getFileUndoList(resource)) > 0
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
867
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
868 def __canRedoFile(self, resource):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
869 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
870 Private slot to check, if there are redoable changes for a resource.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
871
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
872 @param resource file resource to check against
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
873 (rope.base.resources.File)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
874 @return flag indicating, that redoable changes are available (boolean)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
875 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
876 return self.__canRedo() and len(self.__getFileRedoList(resource)) > 0
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
877
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
878 def __showRefactoringMenu(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
879 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
880 Private slot called before the refactoring menu is shown.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
881 """
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
882 self.refactoringUndoAct.setEnabled(self.__canUndo())
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
883 self.refactoringRedoAct.setEnabled(self.__canRedo())
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
884
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
885 def __showRefactoringHistoryMenu(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
886 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
887 Private slot called before the refactoring history menu is shown.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
888 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
889 aw = e5App().getObject("ViewManager").activeWindow()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
890 resource = None
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
891 if aw is not None:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
892 filename = aw.getFileName()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
893 resource = rope.base.libutils.path_to_resource(
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
894 self.__project, filename)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
895
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
896 self.refactoringUndoHistoryAct.setEnabled(self.__canUndo())
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
897 self.refactoringUndoFileHistoryAct.setEnabled(
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
898 resource is not None and self.__canUndoFile(resource))
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
899 self.refactoringRedoHistoryAct.setEnabled(self.__canRedo())
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
900 self.refactoringRedoFileHistoryAct.setEnabled(
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
901 resource is not None and self.__canRedoFile(resource))
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
902
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
903 def handleRopeError(self, err, title, handle=None):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
904 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
905 Public slot to handle a rope error.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
906
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
907 @param err rope exception object (Exception)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
908 @param title title to be displayed (string)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
909 @param handle reference to a taskhandle (ProgressHandle)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
910 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
911 if handle is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
912 handle.reset()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
913 if str(type(err)).split()[-1][1:-2].split('.')[-1] == \
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
914 'ModuleSyntaxError':
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
915 res = E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
916 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
917 self.tr("Rope error: {0}").format(str(err)),
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
918 E5MessageBox.Ok | E5MessageBox.Open)
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
919 if res == E5MessageBox.Open:
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
920 e5App().getObject("ViewManager").openSourceFile(
36
b8546df433ff Fixed an issue that caused a traceback.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 35
diff changeset
921 os.path.join(self.__e5project.getProjectPath(),
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
922 err.filename),
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
923 err.lineno)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
924 else:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
925 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
926 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
927 self.tr("Rope error: {0}").format(str(err)))
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
928
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
929 def __getOffset(self, editor, line, index):
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
930 r"""
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
931 Private method to get the offset into the text treating CRLF as ONE
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
932 character.
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
933
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
934 Note: rope seems to convert all EOL styles to just \n.
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
935
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
936 @param editor reference to the editor (Editor)
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
937 @param line line for the offset (integer)
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
938 @param index index into line for the offset (integer)
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
939 @return rope compliant offset into the file (integer)
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
940 """
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
941 offset = editor.positionFromLineIndex(line, index)
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
942 if editor.eolMode() == QsciScintilla.EolWindows:
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
943 offset -= line
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
944 return offset
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
945
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
946 ##################################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
947 ## slots below implement the various refactorings
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
948 ##################################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
949
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
950 #####################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
951 ## Rename refactorings
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
952 #####################################################
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
953
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
954 def __rename(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
955 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
956 Private slot to handle the Rename action.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
957 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
958 self.__doRename(self.tr('Rename'))
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
959
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
960 def __renameLocal(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
961 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
962 Private slot to handle the Local Rename action.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
963 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
964 self.__doRename(self.tr('Local Rename'), isLocal=True)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
965
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
966 def __renameModule(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
967 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
968 Private slot to handle the Rename Current Module action.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
969 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
970 self.__doRename(self.tr('Rename Current Module'),
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
971 renameModule=True)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
972
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
973 def __doRename(self, title, isLocal=False, renameModule=False):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
974 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
975 Private method to perform the various renaming refactorings.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
976
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
977 @param title title of the refactoring (string)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
978 @param isLocal flag indicating to restrict refactoring to
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
979 the local file (boolean)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
980 @param renameModule flag indicating a module rename refactoring
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
981 (boolean)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
982 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
983 aw = e5App().getObject("ViewManager").activeWindow()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
984
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
985 if aw is None:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
986 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
987
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
988 if not renameModule and not aw.hasSelectedText():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
989 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
990 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
991 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
992 self.tr("Highlight the declaration you want to rename"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
993 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
994 return
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
995
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
996 if isLocal:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
997 if not self.confirmBufferIsSaved(aw):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
998 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
999 else:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1000 if not self.confirmAllBuffersSaved():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1001 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1002
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1003 filename = aw.getFileName()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1004 if renameModule:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1005 offset = None
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1006 else:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1007 line, index, line1, index1 = aw.getSelection()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1008 if line != line1:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1009 # selection span more than one line
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1010 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1011 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1012 self.tr("The selection must not extend beyond"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1013 " one line."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1014 return
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1015 index = int(index + (index1 - index) / 2)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1016 # keep it inside the object
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1017 offset = self.__getOffset(aw, line, index)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1018
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1019 import rope.refactor.rename
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1020 resource = rope.base.libutils.path_to_resource(
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1021 self.__project, filename)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1022 try:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1023 renamer = rope.refactor.rename.Rename(
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1024 self.__project, resource, offset)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1025 except Exception as err:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1026 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1027 return
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1028
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1029 if isLocal:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1030 localResource = resource
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1031 else:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1032 localResource = None
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1033 from RenameDialog import RenameDialog
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1034 self.dlg = RenameDialog(self, title, renamer, resource=localResource,
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1035 parent=self.__ui)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1036 self.dlg.show()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1037
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1038 def __changeOccurrences(self):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1039 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1040 Private slot to perform the Change Occurrences refactoring.
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1041 """
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1042 aw = e5App().getObject("ViewManager").activeWindow()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1043
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1044 if aw is None:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1045 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1046
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1047 title = self.tr("Change Occurrences")
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1048 if not aw.hasSelectedText():
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1049 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1050 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1051 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1052 self.tr("Highlight an occurrence to be changed"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1053 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1054 return
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1055
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1056 if not self.confirmBufferIsSaved(aw):
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1057 return
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1058
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1059 filename = aw.getFileName()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1060 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1061 offset = self.__getOffset(aw, line, index)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1062
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1063 import rope.refactor.rename
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1064 resource = rope.base.libutils.path_to_resource(
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1065 self.__project, filename)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1066 try:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1067 renamer = rope.refactor.rename.ChangeOccurrences(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1068 self.__project, resource, offset)
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1069 except Exception as err:
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1070 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1071 return
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1072
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1073 from ChangeOccurrencesDialog import ChangeOccurrencesDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1074 self.dlg = ChangeOccurrencesDialog(self, title, renamer,
3
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1075 parent=self.__ui)
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1076 self.dlg.show()
3be1b4662b48 Added the 'rename' refactorings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
1077
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1078 #####################################################
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1079 ## Extract refactorings
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1080 #####################################################
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1081
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1082 def __extractMethod(self):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1083 """
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1084 Private slot to handle the Extract Method action.
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1085 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1086 self.__doExtract(self.tr("Extract Method"), "method")
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1087
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1088 def __extractLocalVariable(self):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1089 """
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1090 Private slot to handle the Extract Local Variable action.
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1091 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1092 self.__doExtract(self.tr("Extract Local Variable"), "variable")
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1093
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1094 def __doExtract(self, title, kind):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1095 """
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1096 Private method to perform the extract refactoring.
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1097
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1098 @param title title of the refactoring (string)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1099 @param kind kind of extraction to be done (string,
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1100 "method" or "variable")
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1101 @exception Exception raised to indicate a wrong extraction method
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1102 """
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1103 aw = e5App().getObject("ViewManager").activeWindow()
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1104
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1105 if aw is None:
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1106 return
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1107
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1108 if not aw.hasSelectedText():
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1109 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1110 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1111 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1112 self.tr("Highlight the region of code you want to extract"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1113 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1114 return
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1115
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1116 if not self.confirmBufferIsSaved(aw):
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1117 return
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1118
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1119 filename = aw.getFileName()
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1120 startline, startcolumn, endline, endcolumn = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1121 startOffset = self.__getOffset(aw, startline, startcolumn)
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1122 endOffset = self.__getOffset(aw, endline, endcolumn)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1123
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1124 import rope.refactor.extract
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1125 resource = rope.base.libutils.path_to_resource(
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1126 self.__project, filename)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1127 try:
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1128 if kind == "variable":
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1129 extractor = rope.refactor.extract.ExtractVariable(
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1130 self.__project, resource, startOffset, endOffset)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1131 elif kind == "method":
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1132 extractor = rope.refactor.extract.ExtractMethod(
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1133 self.__project, resource, startOffset, endOffset)
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1134 else:
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1135 raise Exception("Invalid extraction kind <{0}>.".format(kind))
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1136 except Exception as err:
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1137 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1138 return
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1139
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1140 from ExtractDialog import ExtractDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1141 self.dlg = ExtractDialog(self, title, extractor, parent=self.__ui)
5
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1142 self.dlg.show()
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1143
49a4abfc1f89 Added the extract refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4
diff changeset
1144 #####################################################
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1145 ## Inline refactorings
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1146 #####################################################
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1147
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1148 def __inline(self):
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1149 """
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1150 Private slot to handle the Inline Local Variable action.
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1151 """
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1152 aw = e5App().getObject("ViewManager").activeWindow()
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1153
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1154 if aw is None:
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1155 return
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1156
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1157 title = self.tr("Inline")
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1158 if not aw.hasSelectedText():
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1159 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1160 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1161 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1162 self.tr("Highlight the local variable, method or parameter"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1163 " you want to inline and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1164 return
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1165
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1166 if not self.confirmAllBuffersSaved():
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1167 return
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1168
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1169 filename = aw.getFileName()
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1170 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1171 offset = self.__getOffset(aw, line, index)
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1172
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1173 import rope.refactor.inline
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1174 resource = rope.base.libutils.path_to_resource(
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1175 self.__project, filename)
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1176 try:
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1177 inliner = rope.refactor.inline.create_inline(
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1178 self.__project, resource, offset)
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1179 except Exception as err:
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1180 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1181 return
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1182
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1183 from InlineDialog import InlineDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1184 self.dlg = InlineDialog(self, title, inliner, parent=self.__ui)
6
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1185 self.dlg.show()
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1186
07dabc6bb157 Added the inline refactoring function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5
diff changeset
1187 #####################################################
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1188 ## Move refactorings
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1189 #####################################################
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1190
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1191 def __moveMethod(self):
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1192 """
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1193 Private slot to handle the Move Method action.
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1194 """
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1195 aw = e5App().getObject("ViewManager").activeWindow()
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1196
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1197 if aw is None:
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1198 return
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1199
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1200 title = self.tr("Move Method")
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1201 if not aw.hasSelectedText():
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1202 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1203 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1204 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1205 self.tr("Highlight the method to move"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1206 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1207 return
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1208
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1209 if not self.confirmAllBuffersSaved():
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1210 return
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1211
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1212 filename = aw.getFileName()
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1213 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1214 offset = self.__getOffset(aw, line, index)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1215
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1216 import rope.refactor.move
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1217 resource = rope.base.libutils.path_to_resource(
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1218 self.__project, filename)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1219 try:
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1220 mover = rope.refactor.move.create_move(
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1221 self.__project, resource, offset)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1222 except Exception as err:
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1223 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1224 return
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1225
26
b02d1f37b55e Added a dialog to move a global method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
1226 if isinstance(mover, rope.refactor.move.MoveGlobal):
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1227 from MoveGlobalMethodDialog import MoveGlobalMethodDialog
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1228 self.dlg = MoveGlobalMethodDialog(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1229 self, title, mover, self.__project, parent=self.__ui)
26
b02d1f37b55e Added a dialog to move a global method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
1230 else:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1231 from MoveMethodDialog import MoveMethodDialog
26
b02d1f37b55e Added a dialog to move a global method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 20
diff changeset
1232 self.dlg = MoveMethodDialog(self, title, mover, parent=self.__ui)
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1233 self.dlg.show()
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1234
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1235 def __moveModule(self):
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1236 """
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1237 Private slot to handle the Move Current Module action.
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1238 """
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1239 aw = e5App().getObject("ViewManager").activeWindow()
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1240
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1241 if aw is None:
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1242 return
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1243
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1244 title = self.tr("Move Current Module")
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1245
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1246 if not self.confirmAllBuffersSaved():
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1247 return
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1248
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1249 filename = aw.getFileName()
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1250 offset = None
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1251
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1252 import rope.refactor.move
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1253 resource = rope.base.libutils.path_to_resource(
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1254 self.__project, filename)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1255 try:
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1256 mover = rope.refactor.move.create_move(
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1257 self.__project, resource, offset)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1258 except Exception as err:
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1259 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1260 return
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1261
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1262 from MoveModuleDialog import MoveModuleDialog
7
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1263 self.dlg = MoveModuleDialog(self, title, mover, parent=self.__ui)
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1264 self.dlg.show()
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1265
5ecf9ef23d39 Added the 'move' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
1266 #####################################################
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1267 ## Use function refactoring
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1268 #####################################################
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1269
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1270 def __useFunction(self):
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1271 """
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1272 Private slot to use a function wherever possible.
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1273 """
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1274 aw = e5App().getObject("ViewManager").activeWindow()
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1275
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1276 if aw is None:
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1277 return
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1278
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1279 title = self.tr("Use Function")
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1280 if not aw.hasSelectedText():
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1281 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1282 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1283 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1284 self.tr("Highlight a global function and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1285 return
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1286
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1287 if not self.confirmAllBuffersSaved():
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1288 return
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1289
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1290 filename = aw.getFileName()
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1291 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1292 offset = self.__getOffset(aw, line, index)
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1293
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1294 import rope.refactor.usefunction
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1295 resource = rope.base.libutils.path_to_resource(
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1296 self.__project, filename)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1297 try:
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1298 user = rope.refactor.usefunction.UseFunction(
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1299 self.__project, resource, offset)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1300 except Exception as err:
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1301 self.handleRopeError(err, title)
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1302 return
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1303
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1304 from UseFunctionDialog import UseFunctionDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1305 self.dlg = UseFunctionDialog(self, title, user, parent=self.__ui)
8
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1306 self.dlg.show()
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1307
fc14525f0501 Added the 'use function' refactoring.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
1308 #####################################################
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1309 ## Introduce refactorings
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1310 #####################################################
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1311
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1312 def __introduceFactoryMethod(self):
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1313 """
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1314 Private slot to introduce a factory method or global function.
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1315 """
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1316 aw = e5App().getObject("ViewManager").activeWindow()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1317
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1318 if aw is None:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1319 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1320
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1321 title = self.tr("Introduce Factory Method")
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1322 if not aw.hasSelectedText():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1323 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1324 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1325 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1326 self.tr("Highlight the class to introduce a factory"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1327 " method for and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1328 return
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1329
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1330 if not self.confirmAllBuffersSaved():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1331 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1332
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1333 filename = aw.getFileName()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1334 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1335 offset = self.__getOffset(aw, line, index)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1336
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1337 import rope.refactor.introduce_factory
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1338 resource = rope.base.libutils.path_to_resource(
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1339 self.__project, filename)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1340 try:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1341 introducer = \
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1342 rope.refactor.introduce_factory.IntroduceFactoryRefactoring(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1343 self.__project, resource, offset)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1344 except Exception as err:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1345 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1346 return
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1347
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1348 from IntroduceFactoryDialog import IntroduceFactoryDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1349 self.dlg = IntroduceFactoryDialog(self, title, introducer,
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1350 parent=self.__ui)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1351 self.dlg.show()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1352
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1353 def __introduceParameter(self):
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1354 """
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1355 Private slot to introduce a parameter in a function.
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1356 """
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1357 aw = e5App().getObject("ViewManager").activeWindow()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1358
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1359 if aw is None:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1360 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1361
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1362 title = self.tr("Introduce Parameter")
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1363 if not aw.hasSelectedText():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1364 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1365 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1366 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1367 self.tr("Highlight the code for the new parameter"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1368 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1369 return
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1370
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1371 if not self.confirmAllBuffersSaved():
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1372 return
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1373
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1374 filename = aw.getFileName()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1375 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1376 offset = self.__getOffset(aw, line, index)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1377
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1378 import rope.refactor.introduce_parameter
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1379 resource = rope.base.libutils.path_to_resource(
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1380 self.__project, filename)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1381 try:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1382 introducer = rope.refactor.introduce_parameter.IntroduceParameter(
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1383 self.__project, resource, offset)
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1384 except Exception as err:
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1385 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1386 return
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1387
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1388 from IntroduceParameterDialog import IntroduceParameterDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1389 self.dlg = IntroduceParameterDialog(self, title, introducer,
10
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1390 parent=self.__ui)
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1391 self.dlg.show()
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1392
0fdfae822ca7 Added the 'introduce' refactoring functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8
diff changeset
1393 #####################################################
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1394 ## Import refactorings
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1395 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1396
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1397 def __importsOrganize(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1398 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1399 Private slot to organize imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1400 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1401 from rope.refactor.importutils import ImportOrganizer
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1402 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1403 self.tr("Organize Imports"),
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1404 ImportOrganizer.organize_imports)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1405
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1406 def __importsExpandStar(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1407 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1408 Private slot to expand star imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1409 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1410 from rope.refactor.importutils import ImportOrganizer
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1411 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1412 self.tr("Expand Star Imports"),
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1413 ImportOrganizer.expand_star_imports)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1414
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1415 def __importsRelativeToAbsolute(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1416 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1417 Private slot to transform relative to absolute imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1418 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1419 from rope.refactor.importutils import ImportOrganizer
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1420 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1421 self.tr("Relative to Absolute"),
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1422 ImportOrganizer.relatives_to_absolutes)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1423
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1424 def __importsFromToImport(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1425 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1426 Private slot to transform from imports to plain imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1427 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1428 from rope.refactor.importutils import ImportOrganizer
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1429 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1430 self.tr("Froms to Imports"),
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1431 ImportOrganizer.froms_to_imports)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1432
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1433 def __importsHandleLong(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1434 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1435 Private slot to handle long imports.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1436 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1437 from rope.refactor.importutils import ImportOrganizer
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1438 self.__doImports(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1439 self.tr("Handle Long Imports"),
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1440 ImportOrganizer.handle_long_imports)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1441
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1442 def __doImports(self, title, method):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1443 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1444 Private method to perform the various imports refactorings.
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1445
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1446 @param title title to be used for the import refactoring (string)
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1447 @param method method performing the import refactoring
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1448 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1449 aw = e5App().getObject("ViewManager").activeWindow()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1450
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1451 if aw is None:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1452 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1453
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1454 if not self.confirmBufferIsSaved(aw):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1455 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1456
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1457 filename = aw.getFileName()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1458 if aw.hasSelectedText():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1459 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1460 offset = self.__getOffset(aw, line, index)
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1461 else:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1462 offset = None
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1463
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1464 from rope.refactor.importutils import ImportOrganizer
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1465 importOrganizer = ImportOrganizer(self.__project)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1466 resource = rope.base.libutils.path_to_resource(
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1467 self.__project, filename)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1468 try:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1469 changes = method(importOrganizer, resource, offset=offset)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1470 if changes is not None:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1471 from ConfirmationDialog import ConfirmationDialog
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1472 dlg = ConfirmationDialog(changes, self.__ui)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1473 if dlg.exec_() == QDialog.Accepted:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1474 self.__project.do(changes)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1475 self.refreshEditors(changes)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1476 if self.__e5project.isDirty():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1477 self.__e5project.saveProject()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1478 else:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1479 E5MessageBox.information(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1480 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1481 self.tr("The selected refactoring did not produce"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1482 " any change."))
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1483 except Exception as err:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1484 self.handleRopeError(err, title)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1485
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1486 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1487 ## Various refactorings
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1488 #####################################################
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1489
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1490 def __restructure(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1491 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1492 Private slot to restructure code.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1493 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1494 from RestructureDialog import RestructureDialog
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1495 title = self.tr("Restructure")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1496 self.dlg = RestructureDialog(self, title, parent=self.__ui)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1497 self.dlg.show()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1498
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1499 def __changeSignature(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1500 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1501 Private slot to change the signature of a method or function.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1502 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1503 aw = e5App().getObject("ViewManager").activeWindow()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1504
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1505 if aw is None:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1506 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1507
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1508 title = self.tr("Change Method Signature")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1509 if not aw.hasSelectedText():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1510 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1511 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1512 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1513 self.tr("Highlight the method or function to change"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1514 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1515 return
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1516
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1517 if not self.confirmAllBuffersSaved():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1518 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1519
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1520 filename = aw.getFileName()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1521 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1522 offset = self.__getOffset(aw, line, index)
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1523
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1524 import rope.refactor.change_signature
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1525 resource = rope.base.libutils.path_to_resource(
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1526 self.__project, filename)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1527 try:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1528 changer = rope.refactor.change_signature.ChangeSignature(
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1529 self.__project, resource, offset)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1530 except Exception as err:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1531 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1532 return
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1533
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1534 from ChangeSignatureDialog import ChangeSignatureDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1535 self.dlg = ChangeSignatureDialog(self, title, changer,
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1536 parent=self.__ui)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1537 self.dlg.show()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1538
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1539 def __inlineArgumentDefault(self):
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1540 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1541 Private slot to inline the default value of a parameter of a
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1542 method or function.
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1543 """
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1544 aw = e5App().getObject("ViewManager").activeWindow()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1545
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1546 if aw is None:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1547 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1548
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1549 title = self.tr("Inline Argument Default")
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1550 if not aw.hasSelectedText():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1551 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1552 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1553 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1554 self.tr("Highlight the method or function to inline"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1555 " a parameter's default and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1556 return
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1557
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1558 if not self.confirmAllBuffersSaved():
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1559 return
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1560
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1561 filename = aw.getFileName()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1562 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1563 offset = self.__getOffset(aw, line, index)
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1564
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1565 import rope.refactor.change_signature
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1566 resource = rope.base.libutils.path_to_resource(
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1567 self.__project, filename)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1568 try:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1569 changer = rope.refactor.change_signature.ChangeSignature(
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1570 self.__project, resource, offset)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1571 except Exception as err:
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1572 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1573 return
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1574
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1575 from InlineArgumentDefaultDialog import InlineArgumentDefaultDialog
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1576 self.dlg = InlineArgumentDefaultDialog(self, title, changer,
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1577 parent=self.__ui)
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1578 self.dlg.show()
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1579
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1580 def __transformModuleToPackage(self):
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1581 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1582 Private slot to transform a module to a package.
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1583 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1584 aw = e5App().getObject("ViewManager").activeWindow()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1585
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1586 if aw is None:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1587 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1588
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1589 title = self.tr("Transform Module to Package")
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1590
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1591 if not self.confirmAllBuffersSaved():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1592 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1593
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1594 filename = aw.getFileName()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1595
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1596 import rope.refactor.topackage
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1597 resource = rope.base.libutils.path_to_resource(
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1598 self.__project, filename)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1599 try:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1600 changes = rope.refactor.topackage.ModuleToPackage(
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1601 self.__project, resource).get_changes()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1602 self.__project.do(changes)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1603 if self.__e5project.isDirty():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1604 self.__e5project.saveProject()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1605 except Exception as err:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1606 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1607 return
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1608
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1609 def __encapsulateAttribute(self):
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1610 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1611 Private slot to encapsulate an attribute.
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1612 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1613 aw = e5App().getObject("ViewManager").activeWindow()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1614
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1615 if aw is None:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1616 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1617
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1618 title = self.tr("Encapsulate Attribute")
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1619 if not aw.hasSelectedText():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1620 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1621 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1622 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1623 self.tr("Highlight the attribute to encapsulate"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1624 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1625 return
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1626
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1627 if not self.confirmAllBuffersSaved():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1628 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1629
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1630 filename = aw.getFileName()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1631 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1632 offset = self.__getOffset(aw, line, index)
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1633
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1634 import rope.refactor.encapsulate_field
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1635 resource = rope.base.libutils.path_to_resource(
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1636 self.__project, filename)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1637 try:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1638 encapsulateField = \
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1639 rope.refactor.encapsulate_field.EncapsulateField(
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1640 self.__project, resource, offset)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1641 except Exception as err:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1642 self.handleRopeError(err, title)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1643 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1644
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1645 from GetterSetterDialog import GetterSetterDialog
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1646 dlg = GetterSetterDialog(encapsulateField.get_field_name())
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1647 if dlg.exec_() == QDialog.Accepted:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1648 from ProgressHandle import ProgressHandle
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1649 from ConfirmationDialog import ConfirmationDialog
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1650 getter, setter = dlg.getData()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1651 handle = ProgressHandle(title, False, self.__ui)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1652 handle.show()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1653 QApplication.processEvents()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1654 try:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1655 changes = encapsulateField.get_changes(
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1656 getter=getter, setter=setter, task_handle=handle)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1657 handle.reset()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1658 dlg = ConfirmationDialog(changes, self.__ui)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1659 if dlg.exec_() == QDialog.Accepted:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1660 self.__project.do(changes)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1661 self.refreshEditors(changes)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1662 if self.__e5project.isDirty():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1663 self.__e5project.saveProject()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1664 except Exception as err:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1665 self.handleRopeError(err, title, handle)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1666
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1667 def __convertLocalToAttribute(self):
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1668 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1669 Private slot to convert a local variable to an attribute.
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1670 """
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1671 aw = e5App().getObject("ViewManager").activeWindow()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1672
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1673 if aw is None:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1674 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1675
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1676 title = self.tr("Local Variable to Attribute")
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1677 if not aw.hasSelectedText():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1678 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1679 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1680 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1681 self.tr("Highlight the local variable to make an attribute"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1682 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1683 return
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1684
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1685 if not self.confirmAllBuffersSaved():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1686 return
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1687
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1688 filename = aw.getFileName()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1689 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1690 offset = self.__getOffset(aw, line, index)
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1691
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1692 import rope.refactor.localtofield
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1693 from ConfirmationDialog import ConfirmationDialog
12
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1694 resource = rope.base.libutils.path_to_resource(
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1695 self.__project, filename)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1696 try:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1697 changes = rope.refactor.localtofield.LocalToField(
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1698 self.__project, resource, offset).get_changes()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1699 dlg = ConfirmationDialog(changes, self.__ui)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1700 if dlg.exec_() == QDialog.Accepted:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1701 self.__project.do(changes)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1702 self.refreshEditors(changes)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1703 if self.__e5project.isDirty():
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1704 self.__e5project.saveProject()
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1705 except Exception as err:
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1706 self.handleRopeError(err, title)
75fff1da56b6 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11
diff changeset
1707
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1708 def __methodToMethodObject(self):
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1709 """
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1710 Private slot to change the signature of a method or function.
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1711 """
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1712 aw = e5App().getObject("ViewManager").activeWindow()
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1713
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1714 if aw is None:
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1715 return
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1716
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1717 title = self.tr("Replace Method With Method Object")
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1718 if not aw.hasSelectedText():
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1719 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1720 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1721 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1722 self.tr("Highlight the method or function to convert"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1723 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1724 return
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1725
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1726 if not self.confirmAllBuffersSaved():
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1727 return
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1728
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1729 filename = aw.getFileName()
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1730 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1731 offset = self.__getOffset(aw, line, index)
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1732
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1733 import rope.refactor.method_object
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1734 resource = rope.base.libutils.path_to_resource(
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1735 self.__project, filename)
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1736 try:
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1737 converter = rope.refactor.method_object.MethodObject(
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1738 self.__project, resource, offset)
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1739 except Exception as err:
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1740 self.handleRopeError(err, title)
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1741 return
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1742
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1743 from MethodToMethodObjectDialog import MethodToMethodObjectDialog
13
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1744 self.dlg = MethodToMethodObjectDialog(self, title, converter,
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1745 parent=self.__ui)
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1746 self.dlg.show()
dad628301abc Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 12
diff changeset
1747
11
562f9758d2e1 Added these refactoring functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10
diff changeset
1748 #####################################################
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1749 ## Undo/Redo refactorings
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1750 #####################################################
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1751
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1752 def __undo(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1753 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1754 Private slot to undo the last refactoring.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1755 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1756 title = self.tr("Undo refactoring")
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1757 history = self.__project.history
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1758 res = E5MessageBox.yesNo(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1759 None,
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1760 title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1761 self.tr("""Shall the refactoring <b>{0}</b> be undone?""")
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1762 .format(Utilities.html_encode(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1763 history.undo_list[-1].description)))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
1764 if res:
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1765 if not self.confirmAllBuffersSaved():
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1766 return
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1767
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1768 from ProgressHandle import ProgressHandle
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1769 changes = history.undo_list[-1]
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1770 handle = ProgressHandle(self.tr("Undo"), False, self.__ui)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1771 handle.show()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1772 QApplication.processEvents()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1773 try:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1774 history.undo(task_handle=handle)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1775 except Exception as err:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1776 self.handleRopeError(err, title, handle)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1777 handle.reset()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1778 self.refreshEditors(changes)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1779 if self.__e5project.isDirty():
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1780 self.__e5project.saveProject()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1781
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1782 def __redo(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1783 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1784 Private slot to redo the last refactoring.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1785 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1786 title = self.tr("Redo refactoring")
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1787 history = self.__project.history
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1788 res = E5MessageBox.yesNo(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1789 None,
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1790 title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1791 self.tr("""Shall the refactoring <b>{0}</b> be redone?""")
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1792 .format(Utilities.html_encode(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1793 history.redo_list[-1].description)))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
1794 if res:
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1795 if not self.confirmAllBuffersSaved():
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1796 return
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1797
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1798 from ProgressHandle import ProgressHandle
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1799 changes = history.redo_list[-1]
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1800 handle = ProgressHandle(self.tr("Redo"), False, self.__ui)
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1801 handle.show()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1802 QApplication.processEvents()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1803 try:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1804 history.redo(task_handle=handle)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1805 except Exception as err:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1806 self.handleRopeError(err, title, handle)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1807 handle.reset()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1808 self.refreshEditors(changes)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1809 if self.__e5project.isDirty():
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1810 self.__e5project.saveProject()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1811
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1812 def __showProjectUndoHistory(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1813 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1814 Private method to show list of changes available for an undo operation.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1815 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1816 from HistoryDialog import HistoryDialog
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1817 undoList = list(reversed(self.__project.history.undo_list))
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1818 self.dlg = HistoryDialog(self, undoList, True, self.__ui)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1819 self.dlg.show()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1820
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1821 def __showProjectRedoHistory(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1822 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1823 Private method to show list of changes available for a redo operation.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1824 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1825 from HistoryDialog import HistoryDialog
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1826 redoList = self.__project.history.redo_list
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1827 self.dlg = HistoryDialog(self, redoList, False, self.__ui)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1828 self.dlg.show()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1829
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1830 def __showFileUndoHistory(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1831 """
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1832 Private method to show list of changes related to the current file
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1833 available for an undo operation.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1834 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1835 aw = e5App().getObject("ViewManager").activeWindow()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1836
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1837 if aw is None:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1838 return
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1839
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1840 from HistoryDialog import HistoryDialog
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1841 filename = aw.getFileName()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1842 resource = rope.base.libutils.path_to_resource(
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1843 self.__project, filename)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1844 undoList = list(reversed(self.__getFileUndoList(resource)))
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1845 self.dlg = HistoryDialog(self, undoList, True, self.__ui)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1846 self.dlg.show()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1847
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1848 def __showFileRedoHistory(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1849 """
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1850 Private method to show list of changes related to the current file
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1851 available for a redo operation.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1852 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1853 aw = e5App().getObject("ViewManager").activeWindow()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1854
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1855 if aw is None:
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1856 return
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1857
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1858 from HistoryDialog import HistoryDialog
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1859 filename = aw.getFileName()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1860 resource = rope.base.libutils.path_to_resource(
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1861 self.__project, filename)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1862 redoList = self.__getFileRedoList(resource)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1863 self.dlg = HistoryDialog(self, redoList, False, self.__ui)
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1864 self.dlg.show()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1865
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1866 def __clearHistory(self):
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1867 """
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1868 Private slot to clear the redo and undo lists.
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1869 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1870 res = E5MessageBox.yesNo(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1871 None,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1872 self.tr("Clear History"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1873 self.tr("""Do you really want to clear the undo"""
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1874 """ and redo history?"""))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
1875 if res:
4
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1876 self.__project.history.clear()
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1877
2e2463ef1aae Added the undo/redo functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3
diff changeset
1878 #####################################################
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1879 ## Find actions
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1880 #####################################################
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1881
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1882 def __queryReferences(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1883 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1884 Private slot to handle the Find References action.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1885 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1886 aw = e5App().getObject("ViewManager").activeWindow()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1887
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1888 if aw is None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1889 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1890
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1891 title = self.tr("Find Occurrences")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1892 if not aw.hasSelectedText():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1893 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1894 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1895 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1896 self.tr("Highlight the class, method, function or variable"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1897 " to search for and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1898 return
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1899
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1900 if not self.confirmAllBuffersSaved():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1901 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1902
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1903 filename = aw.getFileName()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1904 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1905 offset = self.__getOffset(aw, line, index)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1906
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1907 import rope.contrib.findit
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1908 from ProgressHandle import ProgressHandle
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1909 resource = rope.base.libutils.path_to_resource(
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1910 self.__project, filename)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1911 handle = ProgressHandle(title, True, self.__ui)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1912 handle.show()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1913 QApplication.processEvents()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1914 try:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1915 occurrences = rope.contrib.findit.find_occurrences(
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1916 self.__project, resource, offset,
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1917 unsure=True, in_hierarchy=True, task_handle=handle)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1918 except Exception as err:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1919 self.handleRopeError(err, title, handle)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1920 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1921 handle.reset()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1922
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1923 if occurrences:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1924 from MatchesDialog import MatchesDialog
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1925 self.dlg = MatchesDialog(self.__ui, True)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1926 self.dlg.show()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1927 for occurrence in occurrences:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1928 self.dlg.addEntry(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1929 occurrence.resource, occurrence.lineno, occurrence.unsure)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1930 else:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1931 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1932 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1933 self.tr("No occurrences found."))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1934
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1935 def __queryDefinition(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1936 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1937 Private slot to handle the Find Definition action.
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1938 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1939 aw = e5App().getObject("ViewManager").activeWindow()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1940
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1941 if aw is None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1942 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1943
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1944 title = self.tr("Find &Definition")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1945 if not aw.hasSelectedText():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1946 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1947 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1948 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1949 self.tr("Highlight the class, method, function or"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1950 " variable reference to search definition for and"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1951 " try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1952 return
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1953
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1954 if not self.confirmAllBuffersSaved():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1955 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1956
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1957 filename = aw.getFileName()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1958 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
1959 offset = self.__getOffset(aw, line, index)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1960
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1961 import rope.contrib.findit
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1962 resource = rope.base.libutils.path_to_resource(
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1963 self.__project, filename)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1964 try:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1965 location = rope.contrib.findit.find_definition(
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1966 self.__project, aw.text(), offset, resource)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1967 except Exception as err:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1968 self.handleRopeError(err, title)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1969 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1970
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1971 if location is not None:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
1972 from MatchesDialog import MatchesDialog
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1973 self.dlg = MatchesDialog(self.__ui, False)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1974 self.dlg.show()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1975 self.dlg.addEntry(location.resource, location.lineno)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1976 else:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1977 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1978 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1979 self.tr("No matching definition found."))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1980
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1981 def __queryImplementations(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1982 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1983 Private slot to handle the Find Implementations action.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1984 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1985 aw = e5App().getObject("ViewManager").activeWindow()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1986
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1987 if aw is None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1988 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1989
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1990 title = self.tr("Find Implementations")
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1991 if not aw.hasSelectedText():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1992 # no selection available
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1993 E5MessageBox.warning(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
1994 self.__ui, title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1995 self.tr("Highlight the method to search for"
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
1996 " and try again."))
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
1997 return
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1998
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
1999 if not self.confirmAllBuffersSaved():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2000 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2001
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2002 filename = aw.getFileName()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2003 line, index, line1, index1 = aw.getSelection()
44
8aa985c8dee5 Fixed an issue causing failures for files with Windows end-of-line indicators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 43
diff changeset
2004 offset = self.__getOffset(aw, line, index)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2005
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2006 import rope.contrib.findit
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2007 from ProgressHandle import ProgressHandle
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2008 resource = rope.base.libutils.path_to_resource(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2009 self.__project, filename)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2010 handle = ProgressHandle(title, True, self.__ui)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2011 handle.show()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2012 QApplication.processEvents()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2013 try:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2014 occurrences = rope.contrib.findit.find_implementations(
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
2015 self.__project, resource, offset, task_handle=handle)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2016 except Exception as err:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2017 self.handleRopeError(err, title, handle)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2018 return
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2019 handle.reset()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2020
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2021 if occurrences:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2022 from MatchesDialog import MatchesDialog
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2023 self.dlg = MatchesDialog(self.__ui, True)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2024 self.dlg.show()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2025 for occurrence in occurrences:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2026 self.dlg.addEntry(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2027 occurrence.resource, occurrence.lineno, occurrence.unsure)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2028 else:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2029 E5MessageBox.warning(
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2030 self.__ui, title, self.tr("No occurrences found."))
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2031
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2032 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2033 ## Various actions
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2034 #####################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2035
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2036 def __editConfig(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2037 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2038 Private slot to open the rope configuration file in an editor.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2039 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2040 ropedir = self.__project.ropefolder
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2041 configfile = ""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2042 if ropedir is not None:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2043 configfile = os.path.join(ropedir.real_path, "config.py")
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2044 if os.path.exists(configfile):
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2045 from QScintilla.MiniEditor import MiniEditor
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2046 self.__editor = MiniEditor(configfile)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2047 self.__editor.show()
31
0389d4a924cc Dropped support for eric 5.0.x.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 26
diff changeset
2048 self.__editor.editorSaved.connect(self.__configChanged)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2049 else:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2050 E5MessageBox.critical(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2051 self.__ui,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2052 self.tr("Configure Rope"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2053 self.tr("""The Rope configuration file '{0}' does"""
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2054 """ not exist.""").format(configfile))
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2055 else:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2056 E5MessageBox.critical(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2057 self.__ui,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2058 self.tr("Configure Rope"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2059 self.tr("""The Rope admin directory does not exist."""))
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2060
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2061 def __updateConfig(self):
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2062 """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2063 Private slot to update the configuration file.
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2064 """
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2065 res = E5MessageBox.yesNo(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2066 self.__ui,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2067 self.tr("Update Configuration"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2068 self.tr("""Shall rope's current configuration be replaced """
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2069 """by a new default configuration?"""))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
2070 if res:
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2071 src = self.__defaultConfig()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2072 cname = self.__ropeConfigFile()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2073 if src != "" and cname is not None:
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2074 try:
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2075 f = open(cname, "w")
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2076 f.write(src)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2077 f.close()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2078 self.__configChanged()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2079 self.__editConfig()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2080 except IOError as err:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2081 E5MessageBox.critical(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2082 None,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2083 self.tr("Update Configuration"),
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2084 self.tr("""<p>The configuration could not be"""
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2085 """ updated.</p><p>Reason: {0}</p>""")
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2086 .format(str(err)))
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2087
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2088 def __showRopeHelp(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2089 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2090 Private slot to show help about the refactorings offered by Rope.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2091 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2092 if self.__helpDialog is None:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2093 from HelpDialog import HelpDialog
50
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
2094 if sys.version_info[0] >= 3:
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
2095 dir = 'rope_py3'
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
2096 else:
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
2097 dir = 'rope_py2'
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
2098 helpfile = os.path.join(os.path.dirname(__file__),
50
a29c3d2e6dc0 rope for Python2 projects enabled, if running on Python2
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 48
diff changeset
2099 dir, "rope", "docs", "overview.txt")
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2100 self.__helpDialog = \
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2101 HelpDialog(self.tr("Help about rope refactorings"),
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2102 helpfile)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2103 self.__helpDialog.show()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2104
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2105 def __performSOA(self):
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2106 """
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2107 Private slot to perform SOA on all modules.
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2108 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2109 title = self.tr("Analyse all modules")
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2110 res = E5MessageBox.yesNo(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2111 self.__ui,
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2112 title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2113 self.tr("""This action might take some time. """
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2114 """Do you really want to perform SOA?"""))
48
de33dc93a3ac Changed usage of QMessageBox and QFileDialog to the eric5 equivalents.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 46
diff changeset
2115 if res:
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2116 from ProgressHandle import ProgressHandle
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2117 handle = ProgressHandle(title, True, self.__ui)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2118 handle.show()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2119 QApplication.processEvents()
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2120 try:
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2121 rope.base.libutils.analyze_modules(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2122 self.__project, task_handle=handle)
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2123 handle.reset()
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2124 E5MessageBox.information(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2125 self.__ui,
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2126 title,
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2127 self.tr("""Static object analysis (SOA) done. """
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2128 """SOA database updated."""))
14
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2129 except Exception as err:
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2130 self.handleRopeError(err, title, handle)
cc9f4507be3d Added these utility functions:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
2131
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2132 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2133 ## methods below are private utility methods
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2134 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2135
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2136 def __ropeConfigFile(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2137 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2138 Private method to get the name of the rope configuration file.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2139
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2140 @return name of the rope configuration file (string)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2141 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2142 configfile = None
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2143 if self.__project is not None:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2144 ropedir = self.__project.ropefolder
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2145 if ropedir is not None:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2146 configfile = os.path.join(ropedir.real_path, "config.py")
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2147 if not os.path.exists(configfile):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2148 configfile = None
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2149 return configfile
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2150
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2151 def __configChanged(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2152 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2153 Private slot called, when the rope config file has changed.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2154 """
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2155 import rope.base.project
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2156 self.__project.close()
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2157 self.__project = rope.base.project.Project(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2158 self.__projectpath, fscommands=self.__fsCommands)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2159
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2160 def __defaultConfig(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2161 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2162 Private slot to return the contents of rope's default configuration.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2163
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2164 @return string containing the source of rope's default
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2165 configuration (string)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2166 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2167 if self.__project is not None:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2168 return self.__project._default_config()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2169 else:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2170 return ""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2171
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2172 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2173 ## methods below are public utility methods
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2174 ##################################################################
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2175
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2176 def getActions(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2177 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2178 Public method to get a list of all actions.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2179
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2180 @return list of all actions (list of E5Action)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2181 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2182 return self.actions[:]
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2183
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2184 def projectOpened(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2185 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2186 Public slot to handle the projectOpened signal.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2187 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2188 if self.__projectopen:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2189 self.projectClosed()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2190
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2191 self.__projectopen = True
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2192 self.__projectpath = self.__e5project.getProjectPath()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2193 self.__projectLanguage = self.__e5project.getProjectLanguage()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2194
76
936b2a98fe4e Merge with Py2 comp.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 62 63
diff changeset
2195 if self.__projectLanguage.startswith("Python"):
46
a726d19facfc Modified the code to do lazy import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 44
diff changeset
2196 import rope.base.project
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2197 self.__project = rope.base.project.Project(
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2198 self.__projectpath, fscommands=self.__fsCommands)
1
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2199 for act in self.actions:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2200 act.setEnabled(True)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2201
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2202 def projectClosed(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2203 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2204 Public slot to handle the projectClosed signal.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2205 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2206 for act in self.actions:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2207 act.setEnabled(False)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2208
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2209 if self.__project is not None:
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2210 self.__project.close()
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2211 self.__project = None
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2212
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2213 self.__projectopen = False
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2214 self.__projectpath = ''
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2215 self.__projectLanguage = ""
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2216
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2217 def getProject(self):
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2218 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2219 Public method to get a reference to the rope project object.
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2220
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2221 @return reference to the rope project object (RopeProject)
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2222 """
9f687137a929 Started implementing the basic functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2223 return self.__project
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2224
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2225 def confirmBufferIsSaved(self, editor):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2226 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2227 Public method to check, if an editor has unsaved changes.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2228
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2229 @param editor reference to the editor to be checked
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
2230 @return flag indicating, that the editor doesn't contain
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2231 unsaved edits (boolean)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2232 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2233 res = editor.checkDirty()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2234 self.__project.validate(self.__project.root)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2235 return res
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2236
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2237 def confirmAllBuffersSaved(self):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2238 """
87
1fbf5fdbe721 Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 76
diff changeset
2239 Public method to check, if any editor has unsaved changes.
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2240
20
83b71483e198 Made the code PEP-8 compliant.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 19
diff changeset
2241 @return flag indicating, that no editor contains unsaved edits
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2242 (boolean)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2243 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2244 res = e5App().getObject("ViewManager").checkAllDirty()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2245 self.__project.validate(self.__project.root)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2246 return res
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2247
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2248 def refreshEditors(self, changes):
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2249 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2250 Public method to refresh modified editors.
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2251
55
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2252 @param changes reference to the ChangeSet object
d501156be247 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 48
diff changeset
2253 (rope.base.change.ChangeSet)
2
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2254 """
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2255 vm = e5App().getObject("ViewManager")
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2256
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2257 changedFiles = []
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2258 for resource in changes.get_changed_resources():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2259 if not resource.is_folder():
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2260 changedFiles.append(resource.real_path)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2261
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2262 openFiles = [Utilities.normcasepath(f) for f in vm.getOpenFilenames()]
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2263
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2264 for file in changedFiles:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2265 normfile = Utilities.normcasepath(file)
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2266 if normfile in openFiles:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2267 editor = vm.getEditor(normfile)[1]
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2268 editor.refresh()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2269
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2270 aw = vm.activeWindow()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2271 if aw is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2272 filename = aw.getFileName()
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2273 if filename is not None:
fc72a5b922a6 Added the rope query functions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
2274 vm.openSourceFile(filename, aw.getCursorPosition()[0] + 1)

eric ide

mercurial