Dont use depracted override_color()

This commit is contained in:
Philipp Hörist 2017-03-02 22:59:44 +01:00
parent e00341e83e
commit 9ecabd561e
6 changed files with 31 additions and 76 deletions

View File

@ -1226,7 +1226,7 @@ class ChatControl(ChatControlBase):
else:
self.old_msg_kind = kind
def get_tab_label(self, chatstate):
def get_tab_label(self):
unread = ''
if self.resource:
jid = self.contact.get_full_jid()
@ -1239,48 +1239,13 @@ class ChatControl(ChatControlBase):
elif num_unread > 1:
unread = '[' + str(num_unread) + ']'
# Draw tab label using chatstate
theme = gajim.config.get('roster_theme')
color_s = None
if not chatstate:
chatstate = self.contact.chatstate
if chatstate is not None:
if chatstate == 'composing':
color_s = gajim.config.get_per('themes', theme,
'state_composing_color')
elif chatstate == 'inactive':
color_s = gajim.config.get_per('themes', theme,
'state_inactive_color')
elif chatstate == 'gone':
color_s = gajim.config.get_per('themes', theme,
'state_gone_color')
elif chatstate == 'paused':
color_s = gajim.config.get_per('themes', theme,
'state_paused_color')
context = self.parent_win.notebook.get_style_context()
if color_s:
# We set the color for when it's the current tab or not
color = Gdk.RGBA()
ok = Gdk.RGBA.parse(color, color_s)
if not ok:
del color
color = context.get_color(Gtk.StateFlags.ACTIVE)
# In inactive tab color to be lighter against the darker inactive
# background
if chatstate in ('inactive', 'gone') and\
self.parent_win.get_active_control() != self:
color = self.lighten_color(color)
else: # active or not chatstate, get color from gtk
color = context.get_color(Gtk.StateFlags.ACTIVE)
name = self.contact.get_shown_name()
if self.resource:
name += '/' + self.resource
label_str = GLib.markup_escape_text(name)
if num_unread: # if unread, text in the label becomes bold
label_str = '<b>' + unread + label_str + '</b>'
return (label_str, color)
return label_str
def get_tab_image(self, count_unread=True):
if self.resource:

View File

@ -1181,14 +1181,6 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
message = '> %s\n' % message.replace('\n', '\n> ')
msg_buf.set_text(message)
def lighten_color(self, color):
p = 0.4
mask = 0
color.red = int((color.red * p) + (mask * (1 - p)))
color.green = int((color.green * p) + (mask * (1 - p)))
color.blue = int((color.blue * p) + (mask * (1 - p)))
return color
def widget_set_visible(self, widget, state):
"""
Show or hide a widget

View File

@ -3379,10 +3379,6 @@ class XMLConsoleWindow:
self.enabled = True
self.xml.get_object('enable_checkbutton').set_active(True)
col = Gdk.RGBA()
Gdk.RGBA.parse(col, color)
self.input_textview.override_color(Gtk.StateType.NORMAL, col)
if len(gajim.connections) > 1:
title = _('XML Console for %s') % self.account
else:

View File

@ -709,29 +709,17 @@ class GroupchatControl(ChatControlBase):
has_focus = self.parent_win.window.get_property('has-toplevel-focus')
current_tab = self.parent_win.get_active_control() == self
color_name = None
color = None
theme = gajim.config.get('roster_theme')
context = self.parent_win.notebook.get_style_context()
if chatstate == 'attention' and (not has_focus or not current_tab):
self.attention_flag = True
color_name = gajim.config.get_per('themes', theme,
'state_muc_directed_msg_color')
elif chatstate:
if chatstate == 'active' or (current_tab and has_focus):
self.attention_flag = False
# get active color from gtk
color = context.get_color(Gtk.StateFlags.ACTIVE)
elif chatstate == 'newmsg' and (not has_focus or not current_tab) \
and not self.attention_flag:
color_name = gajim.config.get_per('themes', theme,
'state_muc_msg_color')
if color_name:
color = Gdk.RGBA()
ok = Gdk.RGBA.parse(color, color_name)
if not ok:
del color
color = context.get_color(Gtk.StateFlags.ACTIVE)
color = 'state_muc_directed_msg_color'
elif chatstate == 'active' or (current_tab and has_focus):
self.attention_flag = False
# get active color from gtk
color = 'active'
elif chatstate == 'newmsg' and (not has_focus or not current_tab) \
and not self.attention_flag:
color = 'state_muc_msg_color'
if self.is_continued:
# if this is a continued conversation

View File

@ -1120,7 +1120,10 @@ def convert_config_to_css():
'state_inactive_color': ('', 'color'),
'state_gone_color': ('', 'color'),
'state_paused_color': ('', 'color'),
'msgcorrectingcolor': ('text', 'background')}
'msgcorrectingcolor': ('text', 'background'),
'state_muc_directed_msg_color': ('', 'color'),
'state_muc_msg_color': ('', 'color')}
theme = gajim.config.get('roster_theme')
for key, values in themed_widgets.items():
@ -1145,7 +1148,8 @@ def add_css_class(widget, class_name):
for css_cls in style.list_classes():
if css_cls.startswith('theme_'):
style.remove_class(css_cls)
style.add_class('theme_' + class_name)
if class_name:
style.add_class('theme_' + class_name)
def remove_css_class(widget, class_name):
style = widget.get_style_context()

View File

@ -39,6 +39,7 @@ import gtkgui_helpers
import message_control
import dialogs
from chat_control_base import ChatControlBase
from chat_control import ChatControl
from common import gajim
from gtkgui_helpers import get_action
@ -636,7 +637,7 @@ class MessageWindow(object):
window_mode == MessageWindowMgr.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER
self.notebook.set_show_tabs(show_tabs_if_one_tab)
def redraw_tab(self, ctrl, chatstate = None):
def redraw_tab(self, ctrl, chatstate=None):
tab = self.notebook.get_tab_label(ctrl.widget)
if not tab:
return
@ -653,11 +654,20 @@ class MessageWindow(object):
# Update nick
nick_label.set_max_width_chars(10)
(tab_label_str, tab_label_color) = ctrl.get_tab_label(chatstate)
if isinstance(ctrl, ChatControl):
tab_label_str = ctrl.get_tab_label()
# Set Label Color
class_name = 'state_{}_color'.format(chatstate)
gtkgui_helpers.add_css_class(nick_label, class_name)
else:
tab_label_str, color = ctrl.get_tab_label(chatstate)
# Set Label Color
if color == 'active':
gtkgui_helpers.add_css_class(nick_label, None)
elif color is not None:
gtkgui_helpers.add_css_class(nick_label, color)
nick_label.set_markup(tab_label_str)
if tab_label_color:
nick_label.override_color(Gtk.StateFlags.NORMAL, tab_label_color)
nick_label.override_color(Gtk.StateFlags.ACTIVE, tab_label_color)
tab_img = ctrl.get_tab_image()
if tab_img: