void AppearanceWidget::customColorButtonClicked() { QColorDialog colorDlg( getListItemColor(), this ); if (colorDlg.exec() == QDialog::Accepted) { ui.codeViewColorsList->currentItem()->setData( Qt::UserRole, colorDlg.selectedColor() ); } }
PreferencesWidget::ResultAction AppearanceWidget::saveSettings() { SettingsStore settings; SettingsStore::BookViewAppearance bookViewAppearance; bookViewAppearance.font_family_standard = ui.cbBookViewFontStandard->currentText(); bookViewAppearance.font_family_serif = ui.cbBookViewFontSerif->currentText(); bookViewAppearance.font_family_sans_serif = ui.cbBookViewFontSansSerif->currentText(); bookViewAppearance.font_size = ui.bookViewFontSizeSpin->value(); settings.setBookViewAppearance(bookViewAppearance); SettingsStore::CodeViewAppearance codeViewAppearance; codeViewAppearance.font_family = ui.cbCodeViewFont->currentText(); codeViewAppearance.font_size = ui.codeViewFontSizeSpin->value(); int i = 0; codeViewAppearance.background_color = getListItemColor(i++); codeViewAppearance.foreground_color = getListItemColor(i++); codeViewAppearance.css_comment_color = getListItemColor(i++); codeViewAppearance.css_property_color = getListItemColor(i++); codeViewAppearance.css_quote_color = getListItemColor(i++); codeViewAppearance.css_selector_color = getListItemColor(i++); codeViewAppearance.css_value_color = getListItemColor(i++); codeViewAppearance.line_highlight_color = getListItemColor(i++); codeViewAppearance.line_number_background_color = getListItemColor(i++); codeViewAppearance.line_number_foreground_color = getListItemColor(i++); codeViewAppearance.selection_background_color = getListItemColor(i++); codeViewAppearance.selection_foreground_color = getListItemColor(i++); codeViewAppearance.spelling_underline_color = getListItemColor(i++); codeViewAppearance.xhtml_attribute_name_color = getListItemColor(i++); codeViewAppearance.xhtml_attribute_value_color = getListItemColor(i++); codeViewAppearance.xhtml_css_color = getListItemColor(i++); codeViewAppearance.xhtml_css_comment_color = getListItemColor(i++); codeViewAppearance.xhtml_doctype_color = getListItemColor(i++); codeViewAppearance.xhtml_entity_color = getListItemColor(i++); codeViewAppearance.xhtml_html_color = getListItemColor(i++); codeViewAppearance.xhtml_html_comment_color = getListItemColor(i++); settings.setCodeViewAppearance(codeViewAppearance); SettingsStore::SpecialCharacterAppearance specialCharacterAppearance; specialCharacterAppearance.font_family = ui.cbSpecialCharacterFont->currentText(); specialCharacterAppearance.font_size = ui.specialCharacterFontSizeSpin->value(); settings.setSpecialCharacterAppearance(specialCharacterAppearance); // BV/PV settings can be globally changed and will take effect immediately QWebSettings *web_settings = QWebSettings::globalSettings(); web_settings->setFontSize(QWebSettings::DefaultFontSize, bookViewAppearance.font_size); web_settings->setFontFamily(QWebSettings::StandardFont, bookViewAppearance.font_family_standard); web_settings->setFontFamily(QWebSettings::SerifFont, bookViewAppearance.font_family_serif); web_settings->setFontFamily(QWebSettings::SansSerifFont, bookViewAppearance.font_family_sans_serif); // CV settings require the tab to be closed/reopened. It is easiest to tell the user // to reopen tabs or reload, perhaps in future the Preferences widget may have a signal // to the MainWindow requesting a reload of all open tabs. if ((m_codeViewAppearance.font_family != codeViewAppearance.font_family) || (m_codeViewAppearance.font_size != codeViewAppearance.font_size) || (m_codeViewAppearance.background_color != codeViewAppearance.background_color) || (m_codeViewAppearance.foreground_color != codeViewAppearance.foreground_color) || (m_codeViewAppearance.css_comment_color != codeViewAppearance.css_comment_color) || (m_codeViewAppearance.css_property_color != codeViewAppearance.css_property_color) || (m_codeViewAppearance.css_quote_color != codeViewAppearance.css_quote_color) || (m_codeViewAppearance.css_selector_color != codeViewAppearance.css_selector_color) || (m_codeViewAppearance.css_value_color != codeViewAppearance.css_value_color) || (m_codeViewAppearance.line_highlight_color != codeViewAppearance.line_highlight_color) || (m_codeViewAppearance.line_number_background_color != codeViewAppearance.line_number_background_color) || (m_codeViewAppearance.line_number_foreground_color != codeViewAppearance.line_number_foreground_color) || (m_codeViewAppearance.selection_background_color != codeViewAppearance.selection_background_color) || (m_codeViewAppearance.selection_foreground_color != codeViewAppearance.selection_foreground_color) || (m_codeViewAppearance.spelling_underline_color != codeViewAppearance.spelling_underline_color) || (m_codeViewAppearance.xhtml_attribute_name_color != codeViewAppearance.xhtml_attribute_name_color) || (m_codeViewAppearance.xhtml_attribute_value_color != codeViewAppearance.xhtml_attribute_value_color) || (m_codeViewAppearance.xhtml_css_color != codeViewAppearance.xhtml_css_color) || (m_codeViewAppearance.xhtml_css_comment_color != codeViewAppearance.xhtml_css_comment_color) || (m_codeViewAppearance.xhtml_doctype_color != codeViewAppearance.xhtml_doctype_color) || (m_codeViewAppearance.xhtml_entity_color != codeViewAppearance.xhtml_entity_color) || (m_codeViewAppearance.xhtml_html_color != codeViewAppearance.xhtml_html_color) || (m_codeViewAppearance.xhtml_html_comment_color != codeViewAppearance.xhtml_html_comment_color)) { return PreferencesWidget::ResultAction_ReloadTabs; } return PreferencesWidget::ResultAction_None; }