X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fchatviewsettingspage.cpp;h=d55f201dbaa51db4010ed23314a24390b244f6b2;hb=e38846f054ad1766f2e91992a57bbaffd33c7c06;hp=7d3d964f07213edde3a2314a53fd0c42b9679fd1;hpb=9f91e0dd3c4eb5c2e2dedfc8d36a068d433d51b1;p=quassel.git
diff --git a/src/qtui/settingspages/chatviewsettingspage.cpp b/src/qtui/settingspages/chatviewsettingspage.cpp
index 7d3d964f..d55f201d 100644
--- a/src/qtui/settingspages/chatviewsettingspage.cpp
+++ b/src/qtui/settingspages/chatviewsettingspage.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2005-2016 by the Quassel Project *
+ * Copyright (C) 2005-2019 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -19,11 +19,14 @@
***************************************************************************/
#include "chatviewsettingspage.h"
+
+#include "chatviewsettings.h"
#include "client.h"
#include "qtui.h"
#include "qtuistyle.h"
+#include "uistyle.h"
-ChatViewSettingsPage::ChatViewSettingsPage(QWidget *parent)
+ChatViewSettingsPage::ChatViewSettingsPage(QWidget* parent)
: SettingsPage(tr("Interface"), tr("Chat View"), parent)
{
ui.setupUi(this);
@@ -33,26 +36,49 @@ ChatViewSettingsPage::ChatViewSettingsPage(QWidget *parent)
ui.showWebPreview->setEnabled(false);
#endif
+ // Handle UI dependent on core feature flags here
// FIXME remove with protocol v11
if (!Client::isCoreFeatureEnabled(Quassel::Feature::SynchronizedMarkerLine)) {
ui.autoMarkerLine->setEnabled(false);
ui.autoMarkerLine->setChecked(true);
ui.autoMarkerLine->setToolTip(tr("You need at least version 0.6 of Quassel Core to use this feature"));
}
- if (!Client::isCoreFeatureEnabled(Quassel::Feature::CoreSideHighlights)) {
- ui.showSenderPrefixes->setEnabled(false);
- ui.showSenderPrefixes->setToolTip(tr("You need at least version 0.13 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();
- // Update the stylesheet in case fonts are changed
- QtUi::style()->generateSettingsQss();
- QtUi::style()->reload();
+
+ // Update the stylesheet if fonts are changed
+ if (needsStyleReload) {
+ QtUi::style()->generateSettingsQss();
+ QtUi::style()->reload();
+ }
}