From: Shane Synan Date: Sat, 24 Sep 2016 06:59:05 +0000 (-0500) Subject: Enable per-chat history, line wrap by default X-Git-Tag: travis-deploy-test~345 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=a92558809bdca002c1ba2a256ba48ebef9fe6a89 Enable per-chat history, line wrap by default Enable input widget per-chat history and line wrapping by default, following the behavior of Quassel Web and most Messaging/SMS apps (HexChat does per-chat history by default, but not line wrapping). Bump settings minor version to 3, preserve old defaults for upgrades. This shows the minimum necessary to change default settings while preserving previous defaults for existing installs. Resolves GH-253. --- diff --git a/src/qtui/inputwidget.cpp b/src/qtui/inputwidget.cpp index 801ac963..898f2955 100644 --- a/src/qtui/inputwidget.cpp +++ b/src/qtui/inputwidget.cpp @@ -116,7 +116,7 @@ InputWidget::InputWidget(QWidget *parent) setShowStyleButtons(s.value("ShowStyleButtons", true)); s.notify("EnablePerChatHistory", this, SLOT(setEnablePerChatHistory(QVariant))); - setEnablePerChatHistory(s.value("EnablePerChatHistory", false)); + setEnablePerChatHistory(s.value("EnablePerChatHistory", true)); s.notify("MaxNumLines", this, SLOT(setMaxLines(QVariant))); setMaxLines(s.value("MaxNumLines", 5)); @@ -125,7 +125,7 @@ InputWidget::InputWidget(QWidget *parent) setScrollBarsEnabled(s.value("EnableScrollBars", true)); s.notify("EnableLineWrap", this, SLOT(setLineWrapEnabled(QVariant))); - setLineWrapEnabled(s.value("EnableLineWrap", false)); + setLineWrapEnabled(s.value("EnableLineWrap", true)); s.notify("EnableMultiLine", this, SLOT(setMultiLineEnabled(QVariant))); setMultiLineEnabled(s.value("EnableMultiLine", true)); diff --git a/src/qtui/qtuiapplication.cpp b/src/qtui/qtuiapplication.cpp index 6777a567..36bb1a45 100644 --- a/src/qtui/qtuiapplication.cpp +++ b/src/qtui/qtuiapplication.cpp @@ -210,7 +210,7 @@ bool QtUiApplication::migrateSettings() // -------- // Check minor settings version, handling upgrades/downgrades as needed // Current minor version - const uint VERSION_MINOR_CURRENT = 2; + const uint VERSION_MINOR_CURRENT = 3; // Stored minor version uint versionMinor = s.versionMinor(); @@ -269,10 +269,33 @@ bool QtUiApplication::applySettingsMigration(QtUiSettings settings, const uint n // oldest version. Ignore those, start from 2 and higher. // Each missed version will be called in sequence. E.g. to upgrade from '1' to '3', this // function will be called with '2', then '3'. - case 2: + // Use explicit scope via { ... } to avoid cross-initialization + case 3: { - // Use explicit scope via { ... } to avoid cross-initialization + // New default changes: per-chat history and line wrapping enabled by default. Preserve + // the older default values for keys that haven't been saved. + + // -------- + // InputWidget settings + UiSettings settingsInputWidget("InputWidget"); + const QString enableInputPerChatId = "EnablePerChatHistory"; + if (!settingsInputWidget.valueExists(enableInputPerChatId)) { + // New default value is true, preserve previous behavior by setting to false + settingsInputWidget.setValue(enableInputPerChatId, false); + } + + const QString enableInputLinewrap = "EnableLineWrap"; + if (!settingsInputWidget.valueExists(enableInputLinewrap)) { + // New default value is true, preserve previous behavior by setting to false + settingsInputWidget.setValue(enableInputLinewrap, false); + } + // -------- + // Migration complete! + return true; + } + case 2: + { // New default changes: sender brackets disabled, sender colors and sender CTCP // colors enabled. Preserve the older default values for keys that haven't been saved. diff --git a/src/qtui/settingspages/inputwidgetsettingspage.ui b/src/qtui/settingspages/inputwidgetsettingspage.ui index b7415ec0..14f36669 100644 --- a/src/qtui/settingspages/inputwidgetsettingspage.ui +++ b/src/qtui/settingspages/inputwidgetsettingspage.ui @@ -69,7 +69,7 @@ EnablePerChatHistory - false + true @@ -133,7 +133,7 @@ EnableLineWrap - false + true