RefactoringRope/ChangesPreviewDialog.py

changeset 3
3be1b4662b48
child 20
83b71483e198
equal deleted inserted replaced
2:fc72a5b922a6 3:3be1b4662b48
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the Changes preview dialog.
8 """
9
10 from PyQt4.QtCore import Qt, pyqtSlot
11 from PyQt4.QtGui import QDialogButtonBox, QListWidgetItem
12
13 from PreviewDialogBase import PreviewDialogBase
14
15 class ChangesPreviewDialog(PreviewDialogBase):
16 """
17 Class implementing the Changes preview dialog.
18 """
19 ChangeRole = Qt.UserRole
20
21 def __init__(self, changes, parent):
22 """
23 Constructor
24
25 @param changes reference to the Changes object
26 (rope.base.change.ChangeSet)
27 @param parent reference to the parent widget (QWidget)
28 """
29 PreviewDialogBase.__init__(self, parent)
30
31 self.buttonBox.addButton(self.trUtf8("&Apply Changes"),
32 QDialogButtonBox.AcceptRole)
33 self.buttonBox.addButton(QDialogButtonBox.Cancel)
34
35 self.description.setText(changes.description)
36 for change in changes.changes:
37 itm = QListWidgetItem(str(change), self.changesList)
38 try:
39 changeDescription = change.get_description()
40 except AttributeError:
41 changeDescription = self.trUtf8("No changes available.")
42 itm.setData(ChangesPreviewDialog.ChangeRole,
43 changeDescription)
44 if self.changesList.count():
45 self.changesList.item(0).setSelected(True)
46
47 @pyqtSlot(QListWidgetItem, QListWidgetItem)
48 def on_changesList_currentItemChanged(self, current, previous):
49 """
50 Private slot called when a change is selected.
51
52 @param current reference to the new current item (QListWidgetItem)
53 @param previous reference to the old current item (QListWidgetItem)
54 """
55 if current is None:
56 return
57
58 self.previewEdit.clear()
59 for line in current.data(ChangesPreviewDialog.ChangeRole)\
60 .splitlines(True):
61 try:
62 format = self.formats[line[0]]
63 except (IndexError, KeyError):
64 format = self.formats[' ']
65 self._appendText(line, format)

eric ide

mercurial