Wed, 28 Jul 2010 15:12:20 +0200
Did some more string format conversions.
# -*- coding: utf-8 -*- # Copyright (c) 2003 - 2010 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing the color dialog wizard dialog. """ import os from PyQt4.QtCore import * from PyQt4.QtGui import * from .Ui_ColorDialogWizardDialog import Ui_ColorDialogWizardDialog class ColorDialogWizardDialog(QDialog, Ui_ColorDialogWizardDialog): """ Class implementing the color dialog wizard dialog. It displays a dialog for entering the parameters for the QColorDialog code generator. """ def __init__(self, parent=None): """ Constructor @param parent parent widget (QWidget) """ QDialog.__init__(self, parent) self.setupUi(self) self.bTest = \ self.buttonBox.addButton(self.trUtf8("Test"), QDialogButtonBox.ActionRole) if qVersion() < "4.5.0": self.rQt40.setChecked(True) else: self.rQt45.setChecked(True) def on_buttonBox_clicked(self, button): """ Private slot called by a button of the button box clicked. @param button button that was clicked (QAbstractButton) """ if button == self.bTest: self.on_bTest_clicked() @pyqtSlot() def on_bTest_clicked(self): """ Private method to test the selected options. """ if self.rColor.isChecked(): if not self.eColor.currentText(): QColorDialog.getColor() else: coStr = self.eColor.currentText() if coStr.startswith('#'): coStr = "QColor('{0}')".format(coStr) else: coStr = "QColor({0})".format(coStr) try: if self.rQt45.isChecked(): exec('QColorDialog.getColor({0}, None, "{1}")'.format( coStr, self.eTitle.text())) else: exec('QColorDialog.getColor({0})'.format(coStr)) except: QMessageBox.critical(None, self.trUtf8("QColorDialog Wizard Error"), self.trUtf8("""<p>The colour <b>{0}</b> is not valid.</p>""") .format(coStr)) elif self.rRGBA.isChecked(): if self.rQt45.isChecked(): QColorDialog.getColor( QColor(self.sRed.value(), self.sGreen.value(), self.sBlue.value(), self.sAlpha.value()), None, self.eTitle.text(), QColorDialog.ColorDialogOptions(QColorDialog.ShowAlphaChannel)) else: rgba = qRgba(self.sRed.value(), self.sGreen.value(), self.sBlue.value(), self.sAlpha.value()) QColorDialog.getRgba(rgba) def on_eRGB_textChanged(self, text): """ Private slot to handle the textChanged signal of eRGB. @param text the new text (string) """ if not text: self.sRed.setEnabled(True) self.sGreen.setEnabled(True) self.sBlue.setEnabled(True) self.sAlpha.setEnabled(True) self.bTest.setEnabled(True) else: self.sRed.setEnabled(False) self.sGreen.setEnabled(False) self.sBlue.setEnabled(False) self.sAlpha.setEnabled(False) self.bTest.setEnabled(False) def on_eColor_editTextChanged(self, text): """ Private slot to handle the editTextChanged signal of eColor. @param text the new text (string) """ if not text or text.startswith('Qt.') or text.startswith('#'): self.bTest.setEnabled(True) else: self.bTest.setEnabled(False) def on_rQt45_toggled(self, on): """ Private slot to handle the toggled signal of the rQt45 radio button. @param on toggle state (boolean) (ignored) """ self.titleGroup.setEnabled(on) def getCode(self, indLevel, indString): """ Public method to get the source code. @param indLevel indentation level (int) @param indString string used for indentation (space or tab) (string) @return generated code (string) """ # calculate our indentation level and the indentation string il = indLevel + 1 istring = il * indString # now generate the code code = 'QColorDialog.' if self.rColor.isChecked(): code += 'getColor(' if self.eColor.currentText(): col = self.eColor.currentText() if col.startswith('#'): code += 'QColor("{0}")'.format(col) else: code += 'QColor({0})'.format(col) if self.rQt45.isChecked(): code += ', None,{0}'.format(os.linesep) code += '{0}self.trUtf8("{1}"),{2}'.format( istring, self.eTitle.text(), os.linesep) code += \ '{0}QColorDialog.ColorDialogOptions(QColorDialog.ShowAlphaChannel)'\ .format(istring) code += '){0}'.format(os.linesep) elif self.rRGBA.isChecked(): if self.rQt45.isChecked(): code += 'getColor(' if not self.eRGB.text(): code += 'QColor({0:d}, {1:d}, {2:d}, {3:d}),{4}'.format( self.sRed.value(), self.sGreen.value(), self.sBlue.value(), self.sAlpha.value(), os.linesep) else: code += '{0},{1}'.format(self.eRGB.text(), os.linesep) code += '{0}None,{1}'.format(istring, os.linesep) code += '{0}self.trUtf8("{1}"),{2}'.format( istring, self.eTitle.text(), os.linesep) code += \ '{0}QColorDialog.ColorDialogOptions(QColorDialog.ShowAlphaChannel)'\ .format(istring) code += '){0}'.format(os.linesep) else: code += 'getRgba(' if not self.eRGB.text(): code += 'qRgba({0:d}, {1:d}, {2:d}, {3:d})'.format( self.sRed.value(), self.sGreen.value(), self.sBlue.value(), self.sAlpha.value()) else: code += self.eRGB.text() code += '){0}'.format(os.linesep) return code