New default sender colors!
authorShane Synan <digitalcircuit36939@gmail.com>
Fri, 2 Dec 2016 23:35:32 +0000 (17:35 -0600)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 12 Apr 2017 20:51:35 +0000 (22:51 +0200)
Add a full range of 16 sender colors, loosely readable and
distinguishable.

This results in less redundant nickname colors and possibly better
readability (subjective).  All changes can be undone, as expected.

Colors generated with an algorithm suggested to to the Pidgin
implementation.  Credit to 'lobais' for the original algorithm.

Bump settings minor version to preserve old sender colors.  This only
affects those who have used the git master branch,  and if desired
can be removed.

Algorithm code:
def genColor (n, startpoint=0):
    assert n >= 1
    # This splits the 0 - 1 segment in the pizza way
    h = (2*n-1)/(2**ceil(log(n)/log(2)))-1
    h = (h + startpoint) % 1
    # We set saturation based on the amount of green, in the range 0.6 to 0.8
    rgb = colorsys.hsv_to_rgb(h, 1, 1)
    rgb = colorsys.hsv_to_rgb(h, 1, (1-rgb[1])*0.2+0.6)
    return rgb

See https://developer.pidgin.im/ticket/4534#comment:4

Resolves GH-266.

src/qtui/qtuiapplication.cpp
src/qtui/settingspages/chatviewcolorsettingspage.ui
src/uisupport/uistyle.h

index eada318..2b6b58c 100644 (file)
@@ -210,7 +210,7 @@ bool QtUiApplication::migrateSettings()
     // --------
     // Check minor settings version, handling upgrades/downgrades as needed
     // Current minor version
     // --------
     // Check minor settings version, handling upgrades/downgrades as needed
     // Current minor version
-    const uint VERSION_MINOR_CURRENT = 5;
+    const uint VERSION_MINOR_CURRENT = 6;
     // Stored minor version
     uint versionMinor = s.versionMinor();
 
     // Stored minor version
     uint versionMinor = s.versionMinor();
 
@@ -273,6 +273,57 @@ bool QtUiApplication::applySettingsMigration(QtUiSettings settings, const uint n
     //
     // In most cases, the goal is to preserve the older default values for keys that haven't been
     // saved.  Exceptions will be noted below.
     //
     // In most cases, the goal is to preserve the older default values for keys that haven't been
     // saved.  Exceptions will be noted below.
+    case 6:
+    {
+        // New default changes: sender colors switched around to Tango-ish theme
+
+        // --------
+        // QtUiStyle settings
+        QtUiStyleSettings settingsUiStyleColors("Colors");
+        // Preserve the old default values for all variants
+        const QColor oldDefaultSenderColorSelf = QColor(0, 0, 0);
+        const QList<QColor> oldDefaultSenderColors = QList<QColor> {
+            QColor(204,  13, 127),  /// Sender00
+            QColor(142,  85, 233),  /// Sender01
+            QColor(179,  14,  14),  /// Sender02
+            QColor( 23, 179,  57),  /// Sender03
+            QColor( 88, 175, 179),  /// Sender04
+            QColor(157,  84, 179),  /// Sender05
+            QColor(179, 151, 117),  /// Sender06
+            QColor( 49, 118, 179),  /// Sender07
+            QColor(233,  13, 127),  /// Sender08
+            QColor(142,  85, 233),  /// Sender09
+            QColor(179,  14,  14),  /// Sender10
+            QColor( 23, 179,  57),  /// Sender11
+            QColor( 88, 175, 179),  /// Sender12
+            QColor(157,  84, 179),  /// Sender13
+            QColor(179, 151, 117),  /// Sender14
+            QColor( 49, 118, 179),  /// Sender15
+        };
+        if (!settingsUiStyleColors.valueExists("SenderSelf")) {
+            // Preserve the old default sender color if none set
+            settingsUiStyleColors.setValue("SenderSelf", oldDefaultSenderColorSelf);
+        }
+        QString senderColorId;
+        for (int i = 0; i < oldDefaultSenderColors.count(); i++) {
+            // Get the sender color ID for each available color
+            QString dez = QString::number(i);
+            if (dez.length() == 1) dez.prepend('0');
+            senderColorId = QString("Sender" + dez);
+            if (!settingsUiStyleColors.valueExists(senderColorId)) {
+                // Preserve the old default sender color if none set
+                settingsUiStyleColors.setValue(senderColorId, oldDefaultSenderColors[i]);
+            }
+        }
+
+        // Update the settings stylesheet with old defaults
+        QtUiStyle qtUiStyle;
+        qtUiStyle.generateSettingsQss();
+        // --------
+
+        // Migration complete!
+        return true;
+    }
     case 5:
     {
         // New default changes: sender colors apply to nearly all messages with nicks
     case 5:
     {
         // New default changes: sender colors apply to nearly all messages with nicks
index c5da8b9..5b87885 100644 (file)
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>233</red>
-            <green>13</green>
-            <blue>127</blue>
+            <red>204</red>
+            <green>0</green>
+            <blue>0</blue>
+           </color>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="1">
+         <widget class="ColorButton" name="senderColor01">
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="settingsKey" stdset="0">
+           <string notr="true">/QtUiStyle/Colors/Sender01</string>
+          </property>
+          <property name="defaultValue" stdset="0">
+           <color>
+            <red>0</red>
+            <green>108</green>
+            <blue>173</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>179</red>
-            <green>14</green>
-            <blue>14</blue>
+            <red>77</red>
+            <green>153</green>
+            <blue>0</blue>
+           </color>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="3">
+         <widget class="ColorButton" name="senderColor03">
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="settingsKey" stdset="0">
+           <string notr="true">/QtUiStyle/Colors/Sender03</string>
+          </property>
+          <property name="defaultValue" stdset="0">
+           <color>
+            <red>102</red>
+            <green>0</green>
+            <blue>204</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>88</red>
-            <green>175</green>
-            <blue>179</blue>
+            <red>166</red>
+            <green>125</green>
+            <blue>0</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>157</red>
-            <green>84</green>
-            <blue>179</blue>
+            <red>0</red>
+            <green>153</green>
+            <blue>39</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>179</red>
-            <green>151</green>
-            <blue>117</blue>
+            <red>0</red>
+            <green>48</green>
+            <blue>192</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>49</red>
-            <green>118</green>
-            <blue>179</blue>
+            <red>204</red>
+            <green>0</green>
+            <blue>154</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>233</red>
-            <green>13</green>
-            <blue>127</blue>
+            <red>185</red>
+            <green>70</green>
+            <blue>0</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>142</red>
-            <green>85</green>
-            <blue>233</blue>
+            <red>134</red>
+            <green>153</green>
+            <blue>0</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>179</red>
-            <green>14</green>
-            <blue>14</blue>
+            <red>20</red>
+            <green>153</green>
+            <blue>0</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>23</red>
-            <green>179</green>
-            <blue>57</blue>
+            <red>0</red>
+            <green>153</green>
+            <blue>96</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>88</red>
-            <green>175</green>
-            <blue>179</blue>
+            <red>0</red>
+            <green>108</green>
+            <blue>173</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>157</red>
-            <green>84</green>
-            <blue>179</blue>
+            <red>0</red>
+            <green>153</green>
+            <blue>204</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           <property name="defaultValue" stdset="0">
            <color>
             <red>179</red>
           <property name="defaultValue" stdset="0">
            <color>
             <red>179</red>
-            <green>151</green>
-            <blue>117</blue>
+            <green>0</green>
+            <blue>204</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
           </property>
           <property name="defaultValue" stdset="0">
            <color>
-            <red>49</red>
-            <green>118</green>
-            <blue>179</blue>
-           </color>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="ColorButton" name="senderColor01">
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="settingsKey" stdset="0">
-           <string notr="true">/QtUiStyle/Colors/Sender01</string>
-          </property>
-          <property name="defaultValue" stdset="0">
-           <color>
-            <red>142</red>
-            <green>85</green>
-            <blue>233</blue>
-           </color>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="3">
-         <widget class="ColorButton" name="senderColor03">
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="settingsKey" stdset="0">
-           <string notr="true">/QtUiStyle/Colors/Sender03</string>
-          </property>
-          <property name="defaultValue" stdset="0">
-           <color>
-            <red>23</red>
-            <green>179</green>
-            <blue>57</blue>
+            <red>204</red>
+            <green>0</green>
+            <blue>77</blue>
            </color>
           </property>
          </widget>
            </color>
           </property>
          </widget>
index ee78c9b..030c1ac 100644 (file)
@@ -168,22 +168,22 @@ public:
      * @see UiStyle::ColorRole
      */
     const QList<QColor> defaultSenderColors = QList<QColor> {
      * @see UiStyle::ColorRole
      */
     const QList<QColor> defaultSenderColors = QList<QColor> {
-        QColor(233, 13, 127),  /// Sender00
-        QColor(142, 85, 233),  /// Sender01
-        QColor(179, 14, 14),   /// Sender02
-        QColor(23, 179, 57),   /// Sender03
-        QColor(88, 175, 179),  /// Sender04
-        QColor(157, 84, 179),  /// Sender05
-        QColor(179, 151, 117), /// Sender06
-        QColor(49, 118, 179),  /// Sender07
-        QColor(233, 13, 127),  /// Sender08
-        QColor(142, 85, 233),  /// Sender09
-        QColor(179, 14, 14),   /// Sender10
-        QColor(23, 179, 57),   /// Sender11
-        QColor(88, 175, 179),  /// Sender12
-        QColor(157, 84, 179),  /// Sender13
-        QColor(179, 151, 117), /// Sender14
-        QColor(49, 118, 179),  /// Sender15
+        QColor(204,   0,   0),  /// Sender00
+        QColor(  0, 108, 173),  /// Sender01
+        QColor( 77, 153,   0),  /// Sender02
+        QColor(102,   0, 204),  /// Sender03
+        QColor(166, 125,   0),  /// Sender04
+        QColor(  0, 153,  39),  /// Sender05
+        QColor(  0,  48, 192),  /// Sender06
+        QColor(204,   0, 154),  /// Sender07
+        QColor(185,  70,   0),  /// Sender08
+        QColor(134, 153,   0),  /// Sender09
+        QColor( 20, 153,   0),  /// Sender10
+        QColor(  0, 153,  96),  /// Sender11
+        QColor(  0, 108, 173),  /// Sender12
+        QColor(  0, 153, 204),  /// Sender13
+        QColor(179,   0, 204),  /// Sender14
+        QColor(204,   0,  77),  /// Sender15
     };
     // Explicitly declare QList<QColor> type for defaultSenderColors, otherwise error C2797
     // "list initialization inside member initializer list" will occur in Windows builds with Visual
     };
     // Explicitly declare QList<QColor> type for defaultSenderColors, otherwise error C2797
     // "list initialization inside member initializer list" will occur in Windows builds with Visual