replace placeholderText as it is not included in supported platform.

This commit is contained in:
M2j 2012-02-05 20:20:01 +01:00
parent d6ecab7a04
commit ec4b78ccb2
2 changed files with 168 additions and 77 deletions

View File

@ -76,14 +76,10 @@ def update_reference_separators():
settings = QtCore.QSettings() settings = QtCore.QSettings()
settings.beginGroup(u'bibles') settings.beginGroup(u'bibles')
custom_separators = [ custom_separators = [
unicode(settings.value(u'verse separator', unicode(settings.value(u'verse separator').toString()),
QtCore.QVariant(u'')).toString()), unicode(settings.value(u'range separator').toString()),
unicode(settings.value(u'range separator', unicode(settings.value(u'list separator').toString()),
QtCore.QVariant(u'')).toString()), unicode(settings.value(u'end separator').toString())]
unicode(settings.value(u'list separator',
QtCore.QVariant(u'')).toString()),
unicode(settings.value(u'end separator',
QtCore.QVariant(u'')).toString())]
settings.endGroup() settings.endGroup()
for index, role in enumerate([u'v', u'r', u'l', u'e']): for index, role in enumerate([u'v', u'r', u'l', u'e']):
if custom_separators[index].strip(u'|') == u'': if custom_separators[index].strip(u'|') == u'':
@ -114,7 +110,7 @@ def update_reference_separators():
re.UNICODE) re.UNICODE)
REFERENCE_MATCHES[u'range_separator'] = re.compile( REFERENCE_MATCHES[u'range_separator'] = re.compile(
REFERENCE_SEPARATORS[u'sep_l'], re.UNICODE) REFERENCE_SEPARATORS[u'sep_l'], re.UNICODE)
# full reference match: <book>(<range>(,|(?=$)))+ # full reference match: <book>(<range>(,(?!$)|(?=$)))+
REFERENCE_MATCHES[u'full'] = re.compile( REFERENCE_MATCHES[u'full'] = re.compile(
u'^\s*(?!\s)(?P<book>[\d]*[^\d]+)(?<!\s)\s*' u'^\s*(?!\s)(?P<book>[\d]*[^\d]+)(?<!\s)\s*'
u'(?P<ranges>(?:%(range_regex)s(?:%(sep_l)s(?!\s*$)|(?=\s*$)))+)\s*$' \ u'(?P<ranges>(?:%(range_regex)s(?:%(sep_l)s(?!\s*$)|(?=\s*$)))+)\s*$' \

View File

@ -103,6 +103,7 @@ class BiblesTab(SettingsTab):
0) 0)
self.verseSeparatorLineEdit = QtGui.QLineEdit( self.verseSeparatorLineEdit = QtGui.QLineEdit(
self.scriptureReferenceGroupBox) self.scriptureReferenceGroupBox)
# self.verseSeparatorLineEdit.setPalette
self.verseSeparatorLineEdit.setObjectName(u'verseSeparatorLineEdit') self.verseSeparatorLineEdit.setObjectName(u'verseSeparatorLineEdit')
self.scriptureReferenceLayout.addWidget(self.verseSeparatorLineEdit, 0, self.scriptureReferenceLayout.addWidget(self.verseSeparatorLineEdit, 0,
1) 1)
@ -134,6 +135,8 @@ class BiblesTab(SettingsTab):
self.endSeparatorLineEdit = QtGui.QLineEdit( self.endSeparatorLineEdit = QtGui.QLineEdit(
self.scriptureReferenceGroupBox) self.scriptureReferenceGroupBox)
self.endSeparatorLineEdit.setObjectName(u'endSeparatorLineEdit') self.endSeparatorLineEdit.setObjectName(u'endSeparatorLineEdit')
self.endSeparatorLineEdit.setValidator(QtGui.QRegExpValidator(
QtCore.QRegExp(r'[^0-9]*'), self.endSeparatorLineEdit))
self.scriptureReferenceLayout.addWidget(self.endSeparatorLineEdit, 3, self.scriptureReferenceLayout.addWidget(self.endSeparatorLineEdit, 3,
1) 1)
self.leftLayout.addWidget(self.scriptureReferenceGroupBox) self.leftLayout.addWidget(self.scriptureReferenceGroupBox)
@ -159,7 +162,7 @@ class BiblesTab(SettingsTab):
self.onBibleSecondCheckBox) self.onBibleSecondCheckBox)
QtCore.QObject.connect( QtCore.QObject.connect(
self.verseSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'), self.verseSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'),
self.onVerseSeparatorCheckBoxToggled) self.onVerseSeparatorCheckBoxClicked)
QtCore.QObject.connect( QtCore.QObject.connect(
self.verseSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.verseSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'),
self.onVerseSeparatorLineEditEdited) self.onVerseSeparatorLineEditEdited)
@ -168,7 +171,7 @@ class BiblesTab(SettingsTab):
self.onVerseSeparatorLineEditFinished) self.onVerseSeparatorLineEditFinished)
QtCore.QObject.connect( QtCore.QObject.connect(
self.rangeSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'), self.rangeSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'),
self.onRangeSeparatorCheckBoxToggled) self.onRangeSeparatorCheckBoxClicked)
QtCore.QObject.connect( QtCore.QObject.connect(
self.rangeSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.rangeSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'),
self.onRangeSeparatorLineEditEdited) self.onRangeSeparatorLineEditEdited)
@ -177,7 +180,7 @@ class BiblesTab(SettingsTab):
self.onRangeSeparatorLineEditFinished) self.onRangeSeparatorLineEditFinished)
QtCore.QObject.connect( QtCore.QObject.connect(
self.listSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'), self.listSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'),
self.onListSeparatorCheckBoxToggled) self.onListSeparatorCheckBoxClicked)
QtCore.QObject.connect( QtCore.QObject.connect(
self.listSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.listSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'),
self.onListSeparatorLineEditEdited) self.onListSeparatorLineEditEdited)
@ -186,7 +189,7 @@ class BiblesTab(SettingsTab):
self.onListSeparatorLineEditFinished) self.onListSeparatorLineEditFinished)
QtCore.QObject.connect( QtCore.QObject.connect(
self.endSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'), self.endSeparatorCheckBox, QtCore.SIGNAL(u'clicked(bool)'),
self.onEndSeparatorCheckBoxToggled) self.onEndSeparatorCheckBoxClicked)
QtCore.QObject.connect( QtCore.QObject.connect(
self.endSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.endSeparatorLineEdit, QtCore.SIGNAL(u'textEdited(QString)'),
self.onEndSeparatorLineEditEdited) self.onEndSeparatorLineEditEdited)
@ -276,65 +279,105 @@ class BiblesTab(SettingsTab):
if check_state == QtCore.Qt.Checked: if check_state == QtCore.Qt.Checked:
self.second_bibles = True self.second_bibles = True
def onVerseSeparatorCheckBoxToggled(self, checked): def onVerseSeparatorCheckBoxClicked(self, checked):
if not checked: if checked:
self.verseSeparatorLineEdit.clear()
elif self.verseSeparatorCheckBox.hasFocus():
self.verseSeparatorLineEdit.setFocus() self.verseSeparatorLineEdit.setFocus()
else:
self.verseSeparatorLineEdit.setText(
get_reference_separator(u'sep_v_default'))
self.verseSeparatorLineEdit.setPalette(
self.getGreyTextPalette(not checked))
def onVerseSeparatorLineEditEdited(self, text): def onVerseSeparatorLineEditEdited(self, text):
self.verseSeparatorCheckBox.setChecked(True) self.verseSeparatorCheckBox.setChecked(True)
self.verseSeparatorLineEdit.setPalette(
self.getGreyTextPalette(False))
def onVerseSeparatorLineEditFinished(self): def onVerseSeparatorLineEditFinished(self):
if self.verseSeparatorLineEdit.text().remove(u'|').isEmpty() and \ if self.verseSeparatorLineEdit.isModified():
not self.verseSeparatorCheckBox.hasFocus(): text = self.verseSeparatorLineEdit.text()
self.verseSeparatorCheckBox.setChecked(False) if text == get_reference_separator(u'sep_v_default') or \
self.verseSeparatorLineEdit.clear() text.remove(u'|').isEmpty():
self.verseSeparatorCheckBox.setChecked(False)
self.verseSeparatorLineEdit.setText(
get_reference_separator(u'sep_v_default'))
self.verseSeparatorLineEdit.setPalette(
self.getGreyTextPalette(True))
def onRangeSeparatorCheckBoxToggled(self, checked): def onRangeSeparatorCheckBoxClicked(self, checked):
if not checked: if checked:
self.rangeSeparatorLineEdit.clear()
elif self.rangeSeparatorCheckBox.hasFocus():
self.rangeSeparatorLineEdit.setFocus() self.rangeSeparatorLineEdit.setFocus()
else:
self.rangeSeparatorLineEdit.setText(
get_reference_separator(u'sep_r_default'))
self.rangeSeparatorLineEdit.setPalette(
self.getGreyTextPalette(not checked))
def onRangeSeparatorLineEditEdited(self, text): def onRangeSeparatorLineEditEdited(self, text):
self.rangeSeparatorCheckBox.setChecked(True) self.rangeSeparatorCheckBox.setChecked(True)
self.rangeSeparatorLineEdit.setPalette(
self.getGreyTextPalette(False))
def onRangeSeparatorLineEditFinished(self): def onRangeSeparatorLineEditFinished(self):
if self.rangeSeparatorLineEdit.text().remove(u'|').isEmpty() and \ if self.rangeSeparatorLineEdit.isModified():
not self.rangeSeparatorCheckBox.hasFocus(): text = self.rangeSeparatorLineEdit.text()
self.rangeSeparatorCheckBox.setChecked(False) if text == get_reference_separator(u'sep_r_default') or \
self.rangeSeparatorLineEdit.clear() text.remove(u'|').isEmpty():
self.rangeSeparatorCheckBox.setChecked(False)
self.rangeSeparatorLineEdit.setText(
get_reference_separator(u'sep_r_default'))
self.rangeSeparatorLineEdit.setPalette(
self.getGreyTextPalette(True))
def onListSeparatorCheckBoxToggled(self, checked): def onListSeparatorCheckBoxClicked(self, checked):
if not checked: if checked:
self.listSeparatorLineEdit.clear()
elif self.listSeparatorCheckBox.hasFocus():
self.listSeparatorLineEdit.setFocus() self.listSeparatorLineEdit.setFocus()
else:
self.listSeparatorLineEdit.setText(
get_reference_separator(u'sep_l_default'))
self.listSeparatorLineEdit.setPalette(
self.getGreyTextPalette(not checked))
def onListSeparatorLineEditEdited(self, text): def onListSeparatorLineEditEdited(self, text):
self.listSeparatorCheckBox.setChecked(True) self.listSeparatorCheckBox.setChecked(True)
self.listSeparatorLineEdit.setPalette(
self.getGreyTextPalette(False))
def onListSeparatorLineEditFinished(self): def onListSeparatorLineEditFinished(self):
if self.listSeparatorLineEdit.text().remove(u'|').isEmpty() and \ if self.listSeparatorLineEdit.isModified():
not self.listSeparatorCheckBox.hasFocus(): text = self.listSeparatorLineEdit.text()
self.listSeparatorCheckBox.setChecked(False) if text == get_reference_separator(u'sep_l_default') or \
self.listSeparatorLineEdit.clear() text.remove(u'|').isEmpty():
self.listSeparatorCheckBox.setChecked(False)
self.listSeparatorLineEdit.setText(
get_reference_separator(u'sep_l_default'))
self.listSeparatorLineEdit.setPalette(
self.getGreyTextPalette(True))
def onEndSeparatorCheckBoxToggled(self, checked): def onEndSeparatorCheckBoxClicked(self, checked):
if not checked: if checked:
self.endSeparatorLineEdit.clear()
elif self.endSeparatorCheckBox.hasFocus():
self.endSeparatorLineEdit.setFocus() self.endSeparatorLineEdit.setFocus()
else:
self.endSeparatorLineEdit.setText(
get_reference_separator(u'sep_e_default'))
self.endSeparatorLineEdit.setPalette(
self.getGreyTextPalette(not checked))
def onEndSeparatorLineEditEdited(self, text): def onEndSeparatorLineEditEdited(self, text):
self.endSeparatorCheckBox.setChecked(True) self.endSeparatorCheckBox.setChecked(True)
self.endSeparatorLineEdit.setPalette(
self.getGreyTextPalette(False))
def onEndSeparatorLineEditFinished(self): def onEndSeparatorLineEditFinished(self):
if self.endSeparatorLineEdit.text().remove(u'|').isEmpty() and \ if self.endSeparatorLineEdit.isModified():
not self.endSeparatorCheckBox.hasFocus(): text = self.endSeparatorLineEdit.text()
self.endSeparatorCheckBox.setChecked(False) if text == get_reference_separator(u'sep_e_default') or \
self.endSeparatorLineEdit.clear() text.remove(u'|').isEmpty():
self.endSeparatorCheckBox.setChecked(False)
self.endSeparatorLineEdit.setText(
get_reference_separator(u'sep_e_default'))
self.endSeparatorLineEdit.setPalette(
self.getGreyTextPalette(True))
def load(self): def load(self):
settings = QtCore.QSettings() settings = QtCore.QSettings()
@ -353,30 +396,58 @@ class BiblesTab(SettingsTab):
self.displayStyleComboBox.setCurrentIndex(self.display_style) self.displayStyleComboBox.setCurrentIndex(self.display_style)
self.layoutStyleComboBox.setCurrentIndex(self.layout_style) self.layoutStyleComboBox.setCurrentIndex(self.layout_style)
self.bibleSecondCheckBox.setChecked(self.second_bibles) self.bibleSecondCheckBox.setChecked(self.second_bibles)
self.verseSeparatorLineEdit.setPlaceholderText( verse_separator = unicode(settings.value(u'verse separator').toString())
get_reference_separator(u'sep_v_default')) if (verse_separator.strip(u'|') == u'') or \
self.verseSeparatorLineEdit.setText(settings.value(u'verse separator', (verse_separator == get_reference_separator(u'sep_v_default')):
QtCore.QVariant(u'')).toString()) self.verseSeparatorLineEdit.setText(
self.verseSeparatorCheckBox.setChecked( get_reference_separator(u'sep_v_default'))
self.verseSeparatorLineEdit.text() != u'') self.verseSeparatorLineEdit.setPalette(
self.rangeSeparatorLineEdit.setPlaceholderText( self.getGreyTextPalette(True))
get_reference_separator(u'sep_r_default')) self.verseSeparatorCheckBox.setChecked(False)
self.rangeSeparatorLineEdit.setText(settings.value(u'range separator', else:
QtCore.QVariant(u'')).toString()) self.verseSeparatorLineEdit.setText(verse_separator)
self.rangeSeparatorCheckBox.setChecked( self.verseSeparatorLineEdit.setPalette(
self.rangeSeparatorLineEdit.text() != u'') self.getGreyTextPalette(False))
self.listSeparatorLineEdit.setPlaceholderText( self.verseSeparatorCheckBox.setChecked(True)
get_reference_separator(u'sep_l_default')) range_separator = unicode(settings.value(u'range separator').toString())
self.listSeparatorLineEdit.setText(settings.value(u'list separator', if (range_separator.strip(u'|') == u'') or \
QtCore.QVariant(u'')).toString()) (range_separator == get_reference_separator(u'sep_r_default')):
self.listSeparatorCheckBox.setChecked( self.rangeSeparatorLineEdit.setText(
self.listSeparatorLineEdit.text() != u'') get_reference_separator(u'sep_r_default'))
self.endSeparatorLineEdit.setPlaceholderText( self.rangeSeparatorLineEdit.setPalette(
get_reference_separator(u'sep_e_default')) self.getGreyTextPalette(True))
self.endSeparatorLineEdit.setText(settings.value(u'end separator', self.rangeSeparatorCheckBox.setChecked(False)
QtCore.QVariant(u'')).toString()) else:
self.endSeparatorCheckBox.setChecked( self.rangeSeparatorLineEdit.setText(range_separator)
self.endSeparatorLineEdit.text() != u'') self.rangeSeparatorLineEdit.setPalette(
self.getGreyTextPalette(False))
self.rangeSeparatorCheckBox.setChecked(True)
list_separator = unicode(settings.value(u'list separator').toString())
if (list_separator.strip(u'|') == u'') or \
(list_separator == get_reference_separator(u'sep_l_default')):
self.listSeparatorLineEdit.setText(
get_reference_separator(u'sep_l_default'))
self.listSeparatorLineEdit.setPalette(
self.getGreyTextPalette(True))
self.listSeparatorCheckBox.setChecked(False)
else:
self.listSeparatorLineEdit.setText(list_separator)
self.listSeparatorLineEdit.setPalette(
self.getGreyTextPalette(False))
self.listSeparatorCheckBox.setChecked(True)
end_separator = unicode(settings.value(u'end separator').toString())
if (end_separator.strip(u'|') == u'') or \
(end_separator == get_reference_separator(u'sep_e_default')):
self.endSeparatorLineEdit.setText(
get_reference_separator(u'sep_e_default'))
self.endSeparatorLineEdit.setPalette(
self.getGreyTextPalette(True))
self.endSeparatorCheckBox.setChecked(False)
else:
self.endSeparatorLineEdit.setText(end_separator)
self.endSeparatorLineEdit.setPalette(
self.getGreyTextPalette(False))
self.endSeparatorCheckBox.setChecked(True)
settings.endGroup() settings.endGroup()
def save(self): def save(self):
@ -390,14 +461,26 @@ class BiblesTab(SettingsTab):
QtCore.QVariant(self.layout_style)) QtCore.QVariant(self.layout_style))
settings.setValue(u'second bibles', QtCore.QVariant(self.second_bibles)) settings.setValue(u'second bibles', QtCore.QVariant(self.second_bibles))
settings.setValue(u'bible theme', QtCore.QVariant(self.bible_theme)) settings.setValue(u'bible theme', QtCore.QVariant(self.bible_theme))
settings.setValue(u'verse separator', if self.verseSeparatorCheckBox.isChecked():
QtCore.QVariant(self.verseSeparatorLineEdit.text())) settings.setValue(u'verse separator',
settings.setValue(u'range separator', self.verseSeparatorLineEdit.text())
QtCore.QVariant(self.rangeSeparatorLineEdit.text())) else:
settings.setValue(u'list separator', settings.remove(u'verse separator')
QtCore.QVariant(self.listSeparatorLineEdit.text())) if self.rangeSeparatorCheckBox.isChecked():
settings.setValue(u'end separator', settings.setValue(u'range separator',
QtCore.QVariant(self.endSeparatorLineEdit.text())) self.rangeSeparatorLineEdit.text())
else:
settings.remove(u'range separator')
if self.listSeparatorCheckBox.isChecked():
settings.setValue(u'list separator',
self.listSeparatorLineEdit.text())
else:
settings.remove(u'list separator')
if self.endSeparatorCheckBox.isChecked():
settings.setValue(u'end separator',
self.endSeparatorLineEdit.text())
else:
settings.remove(u'end separator')
update_reference_separators() update_reference_separators()
settings.endGroup() settings.endGroup()
@ -415,3 +498,15 @@ class BiblesTab(SettingsTab):
for theme in theme_list: for theme in theme_list:
self.bibleThemeComboBox.addItem(theme) self.bibleThemeComboBox.addItem(theme)
find_and_set_in_combo_box(self.bibleThemeComboBox, self.bible_theme) find_and_set_in_combo_box(self.bibleThemeComboBox, self.bible_theme)
def getGreyTextPalette(self, greyed):
"""
Returns a QPalette with greyed out text as used for placeholderText.
"""
palette = QtGui.QPalette()
color = self.palette().color(QtGui.QPalette.Active, QtGui.QPalette.Text)
if greyed:
color.setAlpha(128)
palette.setColor(QtGui.QPalette.Active, QtGui.QPalette.Text, color)
return palette