X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fchatviewsettingspage.cpp;h=f1a074f7d321f944ea6766d351bcabbb47dd125a;hp=afbe4444bb4f9f4231f7419ba59ff377efd072fe;hb=158443f71d48215eea8b47b836b61afd77654b78;hpb=04315f46a16fc3627218377071e008b6b9744992 diff --git a/src/qtui/settingspages/chatviewsettingspage.cpp b/src/qtui/settingspages/chatviewsettingspage.cpp index afbe4444..f1a074f7 100644 --- a/src/qtui/settingspages/chatviewsettingspage.cpp +++ b/src/qtui/settingspages/chatviewsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -19,35 +19,72 @@ ***************************************************************************/ #include "chatviewsettingspage.h" +#include "chatviewsettings.h" #include "client.h" -#include "colorbutton.h" #include "qtui.h" #include "qtuistyle.h" +#include "uistyle.h" ChatViewSettingsPage::ChatViewSettingsPage(QWidget *parent) : SettingsPage(tr("Interface"), tr("Chat View"), parent) { ui.setupUi(this); -#ifndef HAVE_WEBKIT +#if !defined HAVE_WEBKIT && !defined HAVE_WEBENGINE ui.showWebPreview->hide(); ui.showWebPreview->setEnabled(false); #endif + // Handle UI dependent on core feature flags here // FIXME remove with protocol v11 - if (!(Client::coreFeatures() & Quassel::SynchronizedMarkerLine)) { + if (!Client::isCoreFeatureEnabled(Quassel::Feature::SynchronizedMarkerLine)) { ui.autoMarkerLine->setEnabled(false); ui.autoMarkerLine->setChecked(true); - ui.autoMarkerLine->setToolTip(tr("You need at 0.6 quasselcore to use this feature")); + ui.autoMarkerLine->setToolTip(tr("You need at least version 0.6 of Quassel Core to use this feature")); + } + if (!Client::isCoreFeatureEnabled(Quassel::Feature::SenderPrefixes)) { + // Sender prefixes are not supported, disallow toggling + ui.senderPrefixComboBox->setEnabled(false); + // Split up the message to allow re-using translations: + // [Original tool-tip] + // [Bold 'does not support feature' message] + // [Specific version needed and feature details] + ui.senderPrefixComboBox->setToolTip( + QString("%2
%3").arg( + tr("Your Quassel core does not support this feature"), + tr("You need a Quassel core v0.13.0 or newer in order to show sender " + "modes before nicknames."))); } - initAutoWidgets(); + initSenderPrefixComboBox(); +} + + +void ChatViewSettingsPage::initSenderPrefixComboBox() +{ + // Fill combobox with sender prefix modes + // Do not change ComboBox ordering without also adjusting chatviewsettingspage.ui "defaultValue" + // and UiStyle::SenderPrefixMode + ui.senderPrefixComboBox->addItem(tr("No modes"), + static_cast(UiStyle::SenderPrefixMode::NoModes)); + ui.senderPrefixComboBox->addItem(tr("Highest mode"), + static_cast(UiStyle::SenderPrefixMode::HighestMode)); + ui.senderPrefixComboBox->addItem(tr("All modes"), + static_cast(UiStyle::SenderPrefixMode::AllModes)); } void ChatViewSettingsPage::save() { + bool needsStyleReload = SettingsPage::hasChanged(ui.customChatViewFont) + || SettingsPage::hasChanged(ui.chatViewFont); + + // Save the general settings SettingsPage::save(); - QtUi::style()->generateSettingsQss(); - QtUi::style()->reload(); + + // Update the stylesheet if fonts are changed + if (needsStyleReload) { + QtUi::style()->generateSettingsQss(); + QtUi::style()->reload(); + } }