X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Ffontssettingspage.cpp;h=c3f2117e2090c6c9871e024ed541fd82faefe13c;hp=f8ba23bde43094f732f4cad9950c91281c401b96;hb=64c514fc7e0e57c9ef05abdb5e7be725ff185a60;hpb=100cfa79242249feff3bc3265787b46d2dc621b0 diff --git a/src/qtui/settingspages/fontssettingspage.cpp b/src/qtui/settingspages/fontssettingspage.cpp index f8ba23bd..c3f2117e 100644 --- a/src/qtui/settingspages/fontssettingspage.cpp +++ b/src/qtui/settingspages/fontssettingspage.cpp @@ -22,6 +22,7 @@ #include "qtui.h" #include "qtuisettings.h" +#include "qtuistyle.h" #include @@ -49,7 +50,7 @@ FontsSettingsPage::FontsSettingsPage(QWidget *parent) mapper->setMapping(ui.chooseTimestamp, ui.demoTimestamp); connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseFont(QWidget *))); - + //connect(ui.customAppFonts, SIGNAL(clicked()), this, SLOT(widgetHasChanged())); connect(ui.checkTopic, SIGNAL(clicked()), this, SLOT(widgetHasChanged())); connect(ui.checkBufferView, SIGNAL(clicked()), this, SLOT(widgetHasChanged())); @@ -87,7 +88,7 @@ void FontsSettingsPage::load(Settings::Mode mode) { inputLineFont = qApp->font(); } initLabel(ui.demoInputLine, inputLineFont); - + QTextCharFormat chatFormat = QtUi::style()->format(UiStyle::None, mode); initLabel(ui.demoChatMessages, chatFormat.font()); QTextCharFormat nicksFormat = QtUi::style()->format(UiStyle::Sender, mode); @@ -98,6 +99,7 @@ void FontsSettingsPage::load(Settings::Mode mode) { initLabel(ui.demoNicks, chatFormat.font()); ui.checkNicks->setChecked(false); } + QTextCharFormat timestampFormat = QtUi::style()->format(UiStyle::Timestamp, mode); if(timestampFormat.hasProperty(QTextFormat::FontFamily)) { initLabel(ui.demoTimestamp, timestampFormat.font()); @@ -114,20 +116,23 @@ void FontsSettingsPage::save() { QtUiSettings s; s.setValue("UseInputLineFont", (ui.checkInputLine->checkState() == Qt::Checked)); s.setValue("InputLineFont", ui.demoInputLine->font()); - + QTextCharFormat chatFormat = QtUi::style()->format(UiStyle::None); chatFormat.setFont(ui.demoChatMessages->font()); QtUi::style()->setFormat(UiStyle::None, chatFormat, Settings::Custom); - //FIXME: actually remove font properties from the formats QTextCharFormat nicksFormat = QtUi::style()->format(UiStyle::Sender); - if(ui.checkNicks->checkState() == Qt::Checked) nicksFormat.setFont(ui.demoNicks->font()); - else nicksFormat.setFont(chatFormat.font()); + if(ui.checkNicks->checkState() == Qt::Checked) + nicksFormat.setFont(ui.demoNicks->font()); + else + clearFontFromFormat(nicksFormat); QtUi::style()->setFormat(UiStyle::Sender, nicksFormat, Settings::Custom); QTextCharFormat timestampFormat = QtUi::style()->format(UiStyle::Timestamp); - if(ui.checkTimestamp->checkState() == Qt::Checked) timestampFormat.setFont(ui.demoTimestamp->font()); - else timestampFormat.setFont(chatFormat.font()); + if(ui.checkTimestamp->checkState() == Qt::Checked) + timestampFormat.setFont(ui.demoTimestamp->font()); + else + clearFontFromFormat(timestampFormat); QtUi::style()->setFormat(UiStyle::Timestamp, timestampFormat, Settings::Custom); setChangedState(false); @@ -156,3 +161,18 @@ void FontsSettingsPage::chooseFont(QWidget *widget) { setFont(label, font); } } + +void FontsSettingsPage::clearFontFromFormat(QTextCharFormat &fmt) { + fmt.clearProperty(QTextFormat::FontFamily); + fmt.clearProperty(QTextFormat::FontPointSize); + fmt.clearProperty(QTextFormat::FontPixelSize); + fmt.clearProperty(QTextFormat::FontWeight); + fmt.clearProperty(QTextFormat::FontItalic); + fmt.clearProperty(QTextFormat::TextUnderlineStyle); + fmt.clearProperty(QTextFormat::FontOverline); + fmt.clearProperty(QTextFormat::FontStrikeOut); + fmt.clearProperty(QTextFormat::FontFixedPitch); + fmt.clearProperty(QTextFormat::FontCapitalization); + fmt.clearProperty(QTextFormat::FontWordSpacing); + fmt.clearProperty(QTextFormat::FontLetterSpacing); +}