roster-state-colors.diff
changeset 92 66f7e2aa040c
parent 87 78238d26911a
equal deleted inserted replaced
91:51d326d5cb92 92:66f7e2aa040c
       
     1 # HG changeset patch
       
     2 # Parent  d4907cafba880f45f2dcf2ced4352c2adf1325ea
     1 Change roster item colors on chatstate change
     3 Change roster item colors on chatstate change
     2 
     4 
     3 diff -r f17324b6c882 mcabber/contrib/themes/light.txt
     5 diff -r d4907cafba88 mcabber/contrib/themes/light.txt
     4 --- a/mcabber/contrib/themes/light.txt	Tue Nov 11 21:21:09 2014 +0200
     6 --- a/mcabber/contrib/themes/light.txt	Fri Dec 09 01:38:34 2016 +0200
     5 +++ b/mcabber/contrib/themes/light.txt	Tue Nov 11 22:35:16 2014 +0200
     7 +++ b/mcabber/contrib/themes/light.txt	Fri Dec 09 01:48:40 2016 +0200
     6 @@ -14,7 +14,6 @@
     8 @@ -14,7 +14,6 @@
     7  set color_bgrostersel  = green
     9  set color_bgrostersel  = green
     8  set color_rostersel    = yellow
    10  set color_rostersel    = yellow
     9  set color_rosterselmsg = red
    11  set color_rosterselmsg = red
    10 -set color_rosternewmsg = red
    12 -set color_rosternewmsg = red
    11  set color_readmark     = red
    13  set color_readmark     = red
    12  
    14  
    13  # vim:set ft=conf:
    15  # vim:set ft=conf:
    14 diff -r f17324b6c882 mcabber/contrib/themes/light2.txt
    16 diff -r d4907cafba88 mcabber/contrib/themes/light2.txt
    15 --- a/mcabber/contrib/themes/light2.txt	Tue Nov 11 21:21:09 2014 +0200
    17 --- a/mcabber/contrib/themes/light2.txt	Fri Dec 09 01:38:34 2016 +0200
    16 +++ b/mcabber/contrib/themes/light2.txt	Tue Nov 11 22:35:16 2014 +0200
    18 +++ b/mcabber/contrib/themes/light2.txt	Fri Dec 09 01:48:40 2016 +0200
    17 @@ -14,7 +14,6 @@
    19 @@ -14,7 +14,6 @@
    18  set color_bgrostersel  = black
    20  set color_bgrostersel  = black
    19  set color_rostersel    = brightgreen
    21  set color_rostersel    = brightgreen
    20  set color_rosterselmsg = red
    22  set color_rosterselmsg = red
    21 -set color_rosternewmsg = red
    23 -set color_rosternewmsg = red
    22  set color_readmark     = red
    24  set color_readmark     = red
    23  
    25  
    24  # vim:set ft=conf:
    26  # vim:set ft=conf:
    25 diff -r f17324b6c882 mcabber/contrib/themes/oliver.txt
    27 diff -r d4907cafba88 mcabber/contrib/themes/oliver.txt
    26 --- a/mcabber/contrib/themes/oliver.txt	Tue Nov 11 21:21:09 2014 +0200
    28 --- a/mcabber/contrib/themes/oliver.txt	Fri Dec 09 01:38:34 2016 +0200
    27 +++ b/mcabber/contrib/themes/oliver.txt	Tue Nov 11 22:35:16 2014 +0200
    29 +++ b/mcabber/contrib/themes/oliver.txt	Fri Dec 09 01:48:40 2016 +0200
    28 @@ -14,7 +14,6 @@
    30 @@ -14,7 +14,6 @@
    29  set color_bgrostersel  = yellow
    31  set color_bgrostersel  = yellow
    30  set color_rostersel    = blue
    32  set color_rostersel    = blue
    31  set color_rosterselmsg = red
    33  set color_rosterselmsg = red
    32 -set color_rosternewmsg = red
    34 -set color_rosternewmsg = red
    33  set color_readmark     = red
    35  set color_readmark     = red
    34  
    36  
    35  # vim:set ft=conf:
    37  # vim:set ft=conf:
    36 diff -r f17324b6c882 mcabber/doc/help/en/hlp_color.txt
    38 diff -r d4907cafba88 mcabber/doc/help/en/hlp_color.txt
    37 --- a/mcabber/doc/help/en/hlp_color.txt	Tue Nov 11 21:21:09 2014 +0200
    39 --- a/mcabber/doc/help/en/hlp_color.txt	Fri Dec 09 01:38:34 2016 +0200
    38 +++ b/mcabber/doc/help/en/hlp_color.txt	Tue Nov 11 22:35:16 2014 +0200
    40 +++ b/mcabber/doc/help/en/hlp_color.txt	Fri Dec 09 01:48:40 2016 +0200
    39 @@ -11,6 +11,7 @@
    41 @@ -11,6 +11,7 @@
    40   Set a color rule (or overwrite, if it already exists).  The status is string containing all statuses the roster item can have for the rule to match, or * if any status is OK.  Wildcard is the file-matching wildcard that will be applied to JID.  Color is the wanted color.
    42   Set a color rule (or overwrite, if it already exists).  The status is string containing all statuses the roster item can have for the rule to match, or * if any status is OK.  Wildcard is the file-matching wildcard that will be applied to JID.  Color is the wanted color.
    41   If color is -, the rule is removed.
    43   If color is -, the rule is removed.
    42   If more than one rule matches, the color from the last created (not overwritten) is used.
    44   If more than one rule matches, the color from the last created (not overwritten) is used.
    43 + Also mask can contain symbols '!', '#', '+' and '.', that represent buddies with urgent condition, with new messages, that are typing and that have ceased typing. These symbols have higher priority than status ones.
    45 + Also mask can contain symbols '!', '#', '+' and '.', that represent buddies with urgent condition, with new messages, that are typing and that have ceased typing. These symbols have higher priority than status ones.
    44  /color mucnick nick (color|-)
    46  /color mucnick nick (color|-)
    45   Marks the nick to be colored by given color.  If a MUC has colored nicks, this one will be used.  If color is -, the color is marked as chosen automatically, which means it will not be used in 'preset' coloring mode, but will stay the same in 'on' coloring mode.
    47   Marks the nick to be colored by given color.  If a MUC has colored nicks, this one will be used.  If color is -, the color is marked as chosen automatically, which means it will not be used in 'preset' coloring mode, but will stay the same in 'on' coloring mode.
    46  /color muc (jid|.|*) [on|preset|off|-]
    48  /color muc (jid|.|*) [on|preset|off|-]
    47 diff -r f17324b6c882 mcabber/doc/help/uk/hlp_color.txt
    49 diff -r d4907cafba88 mcabber/doc/help/uk/hlp_color.txt
    48 --- a/mcabber/doc/help/uk/hlp_color.txt	Tue Nov 11 21:21:09 2014 +0200
    50 --- a/mcabber/doc/help/uk/hlp_color.txt	Fri Dec 09 01:38:34 2016 +0200
    49 +++ b/mcabber/doc/help/uk/hlp_color.txt	Tue Nov 11 22:35:16 2014 +0200
    51 +++ b/mcabber/doc/help/uk/hlp_color.txt	Fri Dec 09 01:48:40 2016 +0200
    50 @@ -11,6 +11,7 @@
    52 @@ -11,6 +11,7 @@
    51   Додає нове чи змінює існуюче правило кольору. "Статус" складений з літер статусу, до яких докладається це правило (наприклад "n_d?"). Зірочка ("*") відповідає будь-якому статусу. "Маска" подібна до файлової маски й докладається до jid. Правило встановлює колір контактів, що йому відповідають.
    53   Додає нове чи змінює існуюче правило кольору. "Статус" складений з літер статусу, до яких докладається це правило (наприклад "n_d?"). Зірочка ("*") відповідає будь-якому статусу. "Маска" подібна до файлової маски й докладається до jid. Правило встановлює колір контактів, що йому відповідають.
    52   Щоб вилучити правило, вкажіть колір "-".
    54   Щоб вилучити правило, вкажіть колір "-".
    53   Коли є декілька правил, що відповідають контакту, спрацьовує останнє додане (_не_ змінене).
    55   Коли є декілька правил, що відповідають контакту, спрацьовує останнє додане (_не_ змінене).
    54 + Також рядок статусів може містити символи '!', '#', '+' та '.', що відповідають користувачам, які відповідно мають негайні події, нові повідомлення, друкують та друкували але спинилися. Ці символи мають більший пріоритет ніж символи статусів.
    56 + Також рядок статусів може містити символи '!', '#', '+' та '.', що відповідають користувачам, які відповідно мають негайні події, нові повідомлення, друкують та друкували але спинилися. Ці символи мають більший пріоритет ніж символи статусів.
    55  /color muc (jid|.|*) [on|preset|off|-]
    57  /color muc (jid|.|*) [on|preset|off|-]
    56   Встановлює режим забарвлення прізвиськ у чаті. Якщо замість jid вказано * режим докладається до всіх чатів, для яких не визначено особистого правила (з вказанням jid).
    58   Встановлює режим забарвлення прізвиськ у чаті. Якщо замість jid вказано * режим докладається до всіх чатів, для яких не визначено особистого правила (з вказанням jid).
    57   У режимі on забарвлюються усі прізвиська, у режимі preset - лише ті, для яких колір встановлено командою /color mucnick, а режим off вимикає забарвлення прізвиськ. Режим - прибирає з вказаних jid особисті режими забарвлення. Тоді до них докладається глобальний. Глобальний режим прибрати не можна.
    59   У режимі on забарвлюються усі прізвиська, у режимі preset - лише ті, для яких колір встановлено командою /color mucnick, а режим off вимикає забарвлення прізвиськ. Режим - прибирає з вказаних jid особисті режими забарвлення. Тоді до них докладається глобальний. Глобальний режим прибрати не можна.
    58 diff -r f17324b6c882 mcabber/mcabber/screen.c
    60 diff -r d4907cafba88 mcabber/mcabber/screen.c
    59 --- a/mcabber/mcabber/screen.c	Tue Nov 11 21:21:09 2014 +0200
    61 --- a/mcabber/mcabber/screen.c	Fri Dec 09 01:38:34 2016 +0200
    60 +++ b/mcabber/mcabber/screen.c	Tue Nov 11 22:35:16 2014 +0200
    62 +++ b/mcabber/mcabber/screen.c	Fri Dec 09 01:48:40 2016 +0200
    61 @@ -222,6 +222,8 @@
    63 @@ -229,6 +229,8 @@
    62  
    64  
    63  /* Functions */
    65  /* Functions */
    64  
    66  
    65 +static unsigned int attention_sign(void);
    67 +static unsigned int attention_sign(void);
    66 +
    68 +
    67  static int find_color(const char *name)
    69  static int find_color(const char *name)
    68  {
    70  {
    69    int result;
    71    int result;
    70 @@ -445,7 +447,7 @@
    72 @@ -448,7 +450,7 @@
    71      "roster",
    73      "roster",
    72      "rostersel",
    74      "rostersel",
    73      "rosterselmsg",
    75      "rosterselmsg",
    74 -    "rosternewmsg",
    76 -    "rosternewmsg",
    75 +    "rosternewmsg", /* not removing this to not break binary compatibility with mainstream */
    77 +    "rosternewmsg", /* not removing this to not break binary compatibility with mainstream */
    76      "info",
    78      "info",
    77      "msgin",
    79      "msgin",
    78      "readmark",
    80      "readmark",
    79 @@ -519,10 +521,6 @@
    81 @@ -522,10 +524,6 @@
    80            init_pair(i+1, ((color) ? find_color(color) : COLOR_RED),
    82            init_pair(i+1, ((color) ? find_color(color) : COLOR_RED),
    81                      find_color(backselected));
    83                      find_color(backselected));
    82            break;
    84            break;
    83 -      case COLOR_ROSTERNMSG:
    85 -      case COLOR_ROSTERNMSG:
    84 -          init_pair(i+1, ((color) ? find_color(color) : COLOR_RED),
    86 -          init_pair(i+1, ((color) ? find_color(color) : COLOR_RED),
    85 -                    find_color(background));
    87 -                    find_color(background));
    86 -          break;
    88 -          break;
    87        case COLOR_INFO:
    89        case COLOR_INFO:
    88            init_pair(i+1, ((color) ? find_color(color) : COLOR_WHITE),
    90            init_pair(i+1, ((color) ? find_color(color) : COLOR_WHITE),
    89                      find_color(background));
    91                      find_color(background));
    90 @@ -826,6 +824,24 @@
    92 @@ -829,6 +827,24 @@
    91    settings_set_guard("color_rosternewmsg", scr_color_guard);
    93    settings_set_guard("color_rosternewmsg", scr_color_guard);
    92    settings_set_guard("color_timestamp", scr_color_guard);
    94    settings_set_guard("color_timestamp", scr_color_guard);
    93  
    95  
    94 +  { // Add default rule only if user has not defined one already
    96 +  { // Add default rule only if user has not defined one already
    95 +    GSList *rel;
    97 +    GSList *rel;
   110 +  }
   112 +  }
   111 +
   113 +
   112    getmaxyx(stdscr, maxY, maxX);
   114    getmaxyx(stdscr, maxY, maxX);
   113    Log_Win_Height = DEFAULT_LOG_WIN_HEIGHT;
   115    Log_Win_Height = DEFAULT_LOG_WIN_HEIGHT;
   114    // Note scr_draw_main_window() should be called early after scr_init_curses()
   116    // Note scr_draw_main_window() should be called early after scr_init_curses()
   115 @@ -2168,6 +2184,10 @@
   117 @@ -2200,6 +2216,10 @@
   116      // for unfolded groups.
   118      // for unfolded groups.
   117      if (ismsg && (!isgrp || ishid)) {
   119      if (ismsg && (!isgrp || ishid)) {
   118        pending = '#';
   120        pending = '#';
   119 +      // Attention sign?
   121 +      // Attention sign?
   120 +      if ((ismuc && isurg >= ui_attn_sign_prio_level_muc) ||
   122 +      if ((ismuc && isurg >= ui_attn_sign_prio_level_muc) ||
   121 +          (!ismuc && isurg >= ui_attn_sign_prio_level))
   123 +          (!ismuc && isurg >= ui_attn_sign_prio_level))
   122 +        pending = attention_sign();
   124 +        pending = attention_sign();
   123      }
   125      }
   124  
   126  
   125      if (ismuc) {
   127      if (ismuc) {
   126 @@ -2191,24 +2211,22 @@
   128 @@ -2223,24 +2243,22 @@
   127        for (n = 0; n < maxx; n++)
   129        for (n = 0; n < maxx; n++)
   128          waddch(rosterWnd, ' ');
   130          waddch(rosterWnd, ' ');
   129      } else {
   131      } else {
   130 -      if (pending == '#')
   132 -      if (pending == '#')
   131 -        wattrset(rosterWnd, get_color(COLOR_ROSTERNMSG));
   133 -        wattrset(rosterWnd, get_color(COLOR_ROSTERNMSG));
   159        }
   161        }
   160 +      wattrset(rosterWnd, color);
   162 +      wattrset(rosterWnd, color);
   161      }
   163      }
   162  
   164  
   163      if (Roster_Width > prefix_length)
   165      if (Roster_Width > prefix_length)
   164 @@ -2216,13 +2234,6 @@
   166 @@ -2248,13 +2266,6 @@
   165      else
   167      else
   166        name[0] = 0;
   168        name[0] = 0;
   167  
   169  
   168 -    if (pending == '#') {
   170 -    if (pending == '#') {
   169 -      // Attention sign?
   171 -      // Attention sign?
   173 -    }
   175 -    }
   174 -
   176 -
   175      if (isgrp) {
   177      if (isgrp) {
   176        if (ishid) {
   178        if (ishid) {
   177          int group_count = 0;
   179          int group_count = 0;
   178 diff -r f17324b6c882 mcabber/mcabber/screen.h
   180 diff -r d4907cafba88 mcabber/mcabber/screen.h
   179 --- a/mcabber/mcabber/screen.h	Tue Nov 11 21:21:09 2014 +0200
   181 --- a/mcabber/mcabber/screen.h	Fri Dec 09 01:38:34 2016 +0200
   180 +++ b/mcabber/mcabber/screen.h	Tue Nov 11 22:35:16 2014 +0200
   182 +++ b/mcabber/mcabber/screen.h	Fri Dec 09 01:48:40 2016 +0200
   181 @@ -47,7 +47,7 @@
   183 @@ -47,7 +47,7 @@
   182    COLOR_ROSTER,
   184    COLOR_ROSTER,
   183    COLOR_ROSTERSEL,
   185    COLOR_ROSTERSEL,
   184    COLOR_ROSTERSELNMSG,
   186    COLOR_ROSTERSELNMSG,
   185 -  COLOR_ROSTERNMSG,
   187 -  COLOR_ROSTERNMSG,
   186 +  COLOR_ROSTERNMSG, /* not removing this to not break binary compatibility with mainstream */
   188 +  COLOR_ROSTERNMSG, /* not removing this to not break binary compatibility with mainstream */
   187    COLOR_INFO,
   189    COLOR_INFO,
   188    COLOR_MSGIN,
   190    COLOR_MSGIN,
   189    COLOR_READMARK,
   191    COLOR_READMARK,
   190 diff -r f17324b6c882 mcabber/mcabberrc.example
   192 diff -r d4907cafba88 mcabber/mcabberrc.example
   191 --- a/mcabber/mcabberrc.example	Tue Nov 11 21:21:09 2014 +0200
   193 --- a/mcabber/mcabberrc.example	Fri Dec 09 01:38:34 2016 +0200
   192 +++ b/mcabber/mcabberrc.example	Tue Nov 11 22:35:16 2014 +0200
   194 +++ b/mcabber/mcabberrc.example	Fri Dec 09 01:48:40 2016 +0200
   193 @@ -429,16 +429,25 @@
   195 @@ -457,16 +457,25 @@
   194  #set color_bgrostersel  = cyan
   196  #set color_bgrostersel  = cyan
   195  #set color_rostersel    = blue
   197  #set color_rostersel    = blue
   196  #set color_rosterselmsg = red
   198  #set color_rosterselmsg = red
   197 -#set color_rosternewmsg = red
   199 -#set color_rosternewmsg = red
   198  #set color_readmark     = red
   200  #set color_readmark     = red