--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RefactoringRope/PreviewDialogBase.py Sat Jan 29 15:10:40 2011 +0100 @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog base class to preview changes. +""" + +from PyQt4.QtCore import Qt +from PyQt4.QtGui import QDialog, QBrush, QColor, QTextCursor + +from Ui_PreviewDialog import Ui_PreviewDialog + +import Globals + +class PreviewDialogBase(QDialog, Ui_PreviewDialog): + """ + Class implementing a dialog base class to preview changes. + """ + def __init__(self, parent = None): + """ + Constructor + + @param parent reference to the parent widget (QWidget) + """ + QDialog.__init__(self, parent) + self.setAttribute(Qt.WA_DeleteOnClose) + self.setupUi(self) + + if Globals.isWindowsPlatform(): + self.previewEdit.setFontFamily("Lucida Console") + else: + self.previewEdit.setFontFamily("Monospace") + + self.formats = {} + self.formats[' '] = self.previewEdit.currentCharFormat() + format = self.previewEdit.currentCharFormat() + format.setBackground(QBrush(QColor(190, 237, 190))) + self.formats['+'] = format + format = self.previewEdit.currentCharFormat() + format.setBackground(QBrush(QColor(237, 190, 190))) + self.formats['-'] = format + format = self.previewEdit.currentCharFormat() + format.setBackground(QBrush(QColor(190, 190, 237))) + self.formats['@'] = format + format = self.previewEdit.currentCharFormat() + format.setBackground(QBrush(QColor(124, 124, 124))) + self.formats['?'] = format + format = self.previewEdit.currentCharFormat() + format.setBackground(QBrush(QColor(190, 190, 190))) + self.formats['='] = format + + def _appendText(self, txt, format): + """ + Restricted method to append text to the end of the contents pane. + + @param txt text to insert (string) + @param format text format to be used (QTextCharFormat) + """ + tc = self.previewEdit.textCursor() + tc.movePosition(QTextCursor.End) + self.previewEdit.setTextCursor(tc) + self.previewEdit.setCurrentCharFormat(format) + self.previewEdit.insertPlainText(txt)