summaryrefslogtreecommitdiff
path: root/src/tabs
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2014-10-31 19:15:57 +0100
committermathieui <mathieui@mathieui.net>2014-10-31 19:16:44 +0100
commit1c1ab3cb839e5509db52770e10c7190f844eb2e5 (patch)
treeb331060b3dc42651e61e4ccb2dfe6af5e2e97752 /src/tabs
parentcedc5a6ec80a46437f42464415fd1806049c593d (diff)
parentea2b703bfd07d293ba9fdd85ac657275d43da2a7 (diff)
downloadpoezio-1c1ab3cb839e5509db52770e10c7190f844eb2e5.tar.gz
poezio-1c1ab3cb839e5509db52770e10c7190f844eb2e5.tar.bz2
poezio-1c1ab3cb839e5509db52770e10c7190f844eb2e5.tar.xz
poezio-1c1ab3cb839e5509db52770e10c7190f844eb2e5.zip
Merge branch 'master' of git.poez.io:poezio into slix
Conflicts: src/bookmark.py src/config.py src/connection.py src/core/commands.py src/core/core.py src/core/handlers.py src/windows/info_bar.py src/windows/muc.py src/windows/roster_win.py src/windows/text_win.py src/xhtml.py
Diffstat (limited to 'src/tabs')
-rw-r--r--src/tabs/basetabs.py52
-rw-r--r--src/tabs/conversationtab.py15
-rw-r--r--src/tabs/muctab.py99
-rw-r--r--src/tabs/privatetab.py20
-rw-r--r--src/tabs/rostertab.py4
5 files changed, 88 insertions, 102 deletions
diff --git a/src/tabs/basetabs.py b/src/tabs/basetabs.py
index 9212278d..645a297f 100644
--- a/src/tabs/basetabs.py
+++ b/src/tabs/basetabs.py
@@ -138,7 +138,7 @@ class Tab(object):
Returns 1 or 0, depending on if we are using the vertical tab list
or not.
"""
- if config.get('enable_vertical_tab_list', False):
+ if config.get('enable_vertical_tab_list'):
return 0
return 1
@@ -296,7 +296,7 @@ class Tab(object):
return False
def refresh_tab_win(self):
- if config.get('enable_vertical_tab_list', False):
+ if config.get('enable_vertical_tab_list'):
if self.left_tab_win and not self.size.core_degrade_x:
self.left_tab_win.refresh()
elif not self.size.core_degrade_y:
@@ -471,7 +471,7 @@ class ChatTab(Tab):
self.update_keys()
# Get the logs
- log_nb = config.get('load_log', 10)
+ log_nb = config.get('load_log')
logs = self.load_logs(log_nb)
if logs:
@@ -532,7 +532,7 @@ class ChatTab(Tab):
for word in txt.split():
if len(word) >= 4 and word not in words:
words.append(word)
- words.extend([word for word in config.get('words', '').split(':') if word])
+ words.extend([word for word in config.get('words').split(':') if word])
self.input.auto_completion(words, ' ', quotify=False)
def on_enter(self):
@@ -587,8 +587,8 @@ class ChatTab(Tab):
if not self.is_muc or self.joined:
if state in ('active', 'inactive', 'gone') and self.inactive and not always_send:
return
- if config.get_by_tabname('send_chat_states', True, self.general_jid, True) and \
- self.remote_wants_chatstates is not False:
+ if (config.get_by_tabname('send_chat_states', self.general_jid)
+ and self.remote_wants_chatstates is not False):
msg = self.core.xmpp.make_message(self.get_dest_jid())
msg['type'] = self.message_type
msg['chat_state'] = state
@@ -602,7 +602,8 @@ class ChatTab(Tab):
on the the current status of the input
"""
name = self.general_jid
- if config.get_by_tabname('send_chat_states', True, name, True) and self.remote_wants_chatstates:
+ if (config.get_by_tabname('send_chat_states', name)
+ and self.remote_wants_chatstates):
needed = 'inactive' if self.inactive else 'active'
self.cancel_paused_delay()
if not empty_after:
@@ -617,7 +618,7 @@ class ChatTab(Tab):
we create a timed event that will put us to paused
in a few seconds
"""
- if not config.get_by_tabname('send_chat_states', True, self.general_jid, True):
+ if not config.get_by_tabname('send_chat_states', self.general_jid):
return
# First, cancel the delay if it already exists, before rescheduling
# it at a new date
@@ -803,32 +804,17 @@ class OneToOneTab(ChatTab):
else:
self.__initial_disco = True
- empty = not any((correct, attention, receipts))
-
- features = []
- if correct or empty:
- features.append(_('message correction (/correct)'))
- if attention or empty:
- features.append(_('attention requests (/attention)'))
- if (receipts or empty) \
- and config.get('request_message_receipts', True):
- features.append(_('message delivery receipts'))
- if len(features) > 1:
- tail = features.pop()
- else:
- tail = None
- features_str = ', '.join(features)
- if tail and empty:
- features_str += _(', or %s') % tail
- elif tail:
- features_str += _(' and %s') % tail
-
- if empty:
- msg = _('\x19%s}This contact does not support %s.')
- else:
- msg = _('\x19%s}This contact supports %s.')
+ ok = get_theme().CHAR_OK
+ nope = get_theme().CHAR_EMPTY
+
+ correct = ok if correct else nope
+ attention = ok if attention else nope
+ receipts = ok if receipts else nope
+
+ msg = _('\x19%s}Contact supports: correction [%s], '
+ 'attention [%s], receipts [%s].')
color = dump_tuple(get_theme().COLOR_INFORMATION_TEXT)
- msg = msg % (color, features_str)
+ msg = msg % (color, correct, attention, receipts)
self.add_message(msg, typ=0)
self.core.refresh_window()
diff --git a/src/tabs/conversationtab.py b/src/tabs/conversationtab.py
index cc9e6b2e..3d5769f7 100644
--- a/src/tabs/conversationtab.py
+++ b/src/tabs/conversationtab.py
@@ -108,7 +108,7 @@ class ConversationTab(OneToOneTab):
replaced = False
if correct or msg['replace']['id']:
msg['replace']['id'] = self.last_sent_message['id']
- if config.get_by_tabname('group_corrections', True, self.name):
+ if config.get_by_tabname('group_corrections', self.name):
try:
self.modify_message(msg['body'], self.last_sent_message['id'], msg['id'], jid=self.core.xmpp.boundjid,
nickname=self.core.own_nick)
@@ -121,7 +121,8 @@ class ConversationTab(OneToOneTab):
msg.enable('html')
msg['html']['body'] = xhtml.poezio_colors_to_html(msg['body'])
msg['body'] = xhtml.clean_text(msg['body'])
- if config.get_by_tabname('send_chat_states', True, self.general_jid, True) and self.remote_wants_chatstates is not False:
+ if (config.get_by_tabname('send_chat_states', self.general_jid) and
+ self.remote_wants_chatstates is not False):
needed = 'inactive' if self.inactive else 'active'
msg['chat_state'] = needed
if attention and self.remote_supports_attention:
@@ -316,7 +317,9 @@ class ConversationTab(OneToOneTab):
self.state = 'normal'
self.text_win.remove_line_separator()
self.text_win.add_line_separator(self._text_buffer)
- if config.get_by_tabname('send_chat_states', True, self.general_jid, True) and (not self.input.get_text() or not self.input.get_text().startswith('//')):
+ if (config.get_by_tabname('send_chat_states', self.general_jid)
+ and (not self.input.get_text()
+ or not self.input.get_text().startswith('//'))):
if resource:
self.send_chat_state('inactive')
self.check_scrolled()
@@ -334,7 +337,9 @@ class ConversationTab(OneToOneTab):
self.state = 'current'
curses.curs_set(1)
- if config.get_by_tabname('send_chat_states', True, self.general_jid, True) and (not self.input.get_text() or not self.input.get_text().startswith('//')):
+ if (config.get_by_tabname('send_chat_states', self.general_jid)
+ and (not self.input.get_text()
+ or not self.input.get_text().startswith('//'))):
if resource:
self.send_chat_state('active')
@@ -349,7 +354,7 @@ class ConversationTab(OneToOneTab):
def on_close(self):
Tab.on_close(self)
- if config.get_by_tabname('send_chat_states', True, self.general_jid, True):
+ if config.get_by_tabname('send_chat_states', self.general_jid):
self.send_chat_state('gone')
def matching_names(self):
diff --git a/src/tabs/muctab.py b/src/tabs/muctab.py
index f526ec80..547830cb 100644
--- a/src/tabs/muctab.py
+++ b/src/tabs/muctab.py
@@ -251,7 +251,7 @@ class MucTab(ChatTab):
def completion_nick(self, the_input):
"""Completion for /nick"""
nicks = [os.environ.get('USER'),
- config.get('default_nick', ''),
+ config.get('default_nick'),
self.core.get_bookmark_nickname(self.name)]
nicks = [i for i in nicks if i]
return the_input.auto_completion(nicks, '', quotify=False)
@@ -471,8 +471,8 @@ class MucTab(ChatTab):
char_quit = get_theme().CHAR_QUIT
spec_col = dump_tuple(get_theme().COLOR_QUIT_CHAR)
- if config.get_by_tabname('display_user_color_in_join_part', True,
- self.general_jid, True):
+ if config.get_by_tabname('display_user_color_in_join_part',
+ self.general_jid):
color = dump_tuple(get_theme().COLOR_OWN_NICK)
else:
color = 3
@@ -737,8 +737,8 @@ class MucTab(ChatTab):
msg.enable('html')
msg['html']['body'] = xhtml.poezio_colors_to_html(msg['body'])
msg['body'] = xhtml.clean_text(msg['body'])
- if (config.get_by_tabname('send_chat_states', True, self.general_jid,
- True) and self.remote_wants_chatstates is not False):
+ if (config.get_by_tabname('send_chat_states', self.general_jid)
+ and self.remote_wants_chatstates is not False):
msg['chat_state'] = needed
if correct:
msg['replace']['id'] = self.last_sent_message['id']
@@ -803,7 +803,7 @@ class MucTab(ChatTab):
Resize the whole window. i.e. all its sub-windows
"""
self.need_resize = False
- if config.get("hide_user_list", False) or self.size.tab_degrade_x:
+ if config.get('hide_user_list') or self.size.tab_degrade_x:
display_user_list = False
text_width = self.width
else:
@@ -844,7 +844,7 @@ class MucTab(ChatTab):
if self.need_resize:
self.resize()
log.debug(' TAB Refresh: %s', self.__class__.__name__)
- if config.get("hide_user_list", False) or self.size.tab_degrade_x:
+ if config.get('hide_user_list') or self.size.tab_degrade_x:
display_user_list = False
else:
display_user_list = True
@@ -887,7 +887,7 @@ class MucTab(ChatTab):
for user in sorted(self.users, key=compare_users, reverse=True):
if user.nick != self.own_nick:
word_list.append(user.nick)
- after = config.get('after_completion', ',') + ' '
+ after = config.get('after_completion') + ' '
input_pos = self.input.pos
if ' ' not in self.input.get_text()[:input_pos] or (
self.input.last_completion and
@@ -895,7 +895,7 @@ class MucTab(ChatTab):
self.input.last_completion + after):
add_after = after
else:
- if not config.get('add_space_after_completion', True):
+ if not config.get('add_space_after_completion'):
add_after = ''
else:
add_after = ' '
@@ -907,7 +907,7 @@ class MucTab(ChatTab):
self.send_composing_chat_state(empty_after)
def get_nick(self):
- if not config.get('show_muc_jid', True):
+ if not config.get('show_muc_jid'):
return safeJID(self.name).user
return self.name
@@ -924,25 +924,25 @@ class MucTab(ChatTab):
self.state = 'disconnected'
self.text_win.remove_line_separator()
self.text_win.add_line_separator(self._text_buffer)
- if config.get_by_tabname('send_chat_states', True,
- self.general_jid, True) and not self.input.get_text():
+ if (config.get_by_tabname('send_chat_states', self.general_jid) and
+ not self.input.get_text()):
self.send_chat_state('inactive')
self.check_scrolled()
def on_gain_focus(self):
self.state = 'current'
if (self.text_win.built_lines and self.text_win.built_lines[-1] is None
- and not config.get('show_useless_separator', False)):
+ and not config.get('show_useless_separator')):
self.text_win.remove_line_separator()
curses.curs_set(1)
- if self.joined and config.get_by_tabname('send_chat_states', True,
- self.general_jid, True) and not self.input.get_text():
+ if self.joined and config.get_by_tabname('send_chat_states',
+ self.general_jid) and not self.input.get_text():
self.send_chat_state('active')
def on_info_win_size_changed(self):
if self.core.information_win_size >= self.height-3:
return
- if config.get("hide_user_list", False):
+ if config.get("hide_user_list"):
text_width = self.width
else:
text_width = (self.width//10)*9
@@ -1003,7 +1003,7 @@ class MucTab(ChatTab):
new_user.color = get_theme().COLOR_OWN_NICK
if config.get_by_tabname('display_user_color_in_join_part',
- True, self.general_jid, True):
+ self.general_jid):
color = dump_tuple(new_user.color)
else:
color = 3
@@ -1122,11 +1122,11 @@ class MucTab(ChatTab):
user = User(from_nick, affiliation,
show, status, role, jid)
self.users.append(user)
- hide_exit_join = config.get_by_tabname('hide_exit_join', -1,
- self.general_jid, True)
+ hide_exit_join = config.get_by_tabname('hide_exit_join',
+ self.general_jid)
if hide_exit_join != 0:
- if config.get_by_tabname('display_user_color_in_join_part', True,
- self.general_jid, True):
+ if config.get_by_tabname('display_user_color_in_join_part',
+ self.general_jid):
color = dump_tuple(user.color)
else:
color = 3
@@ -1163,8 +1163,8 @@ class MucTab(ChatTab):
self.core.on_muc_own_nickchange(self)
user.change_nick(new_nick)
- if config.get_by_tabname('display_user_color_in_join_part', True,
- self.general_jid, True):
+ if config.get_by_tabname('display_user_color_in_join_part',
+ self.general_jid):
color = dump_tuple(user.color)
else:
color = 3
@@ -1206,10 +1206,9 @@ class MucTab(ChatTab):
self.refresh_tab_win()
self.core.current_tab().input.refresh()
self.core.doupdate()
- if config.get_by_tabname('autorejoin', False,
- self.general_jid, True):
- delay = config.get_by_tabname('autorejoin_delay', '5',
- self.general_jid, True)
+ if config.get_by_tabname('autorejoin', self.general_jid):
+ delay = config.get_by_tabname('autorejoin_delay',
+ self.general_jid)
delay = common.parse_str_to_secs(delay)
if delay <= 0:
muc.join_groupchat(self.core, self.name, self.own_nick)
@@ -1223,7 +1222,7 @@ class MucTab(ChatTab):
else:
if config.get_by_tabname('display_user_color_in_join_part',
- True, self.general_jid, True):
+ self.general_jid):
color = dump_tuple(user.color)
else:
color = 3
@@ -1278,10 +1277,9 @@ class MucTab(ChatTab):
self.core.current_tab().input.refresh()
self.core.doupdate()
# try to auto-rejoin
- if config.get_by_tabname('autorejoin', False,
- self.general_jid, True):
- delay = config.get_by_tabname('autorejoin_delay', "5",
- self.general_jid, True)
+ if config.get_by_tabname('autorejoin', self.general_jid):
+ delay = config.get_by_tabname('autorejoin_delay',
+ self.general_jid)
delay = common.parse_str_to_secs(delay)
if delay <= 0:
muc.join_groupchat(self.core, self.name, self.own_nick)
@@ -1293,8 +1291,8 @@ class MucTab(ChatTab):
self.name,
self.own_nick))
else:
- if config.get_by_tabname('display_user_color_in_join_part', True,
- self.general_jid, True):
+ if config.get_by_tabname('display_user_color_in_join_part',
+ self.general_jid):
color = dump_tuple(user.color)
else:
color = 3
@@ -1327,13 +1325,12 @@ class MucTab(ChatTab):
self.core.disable_private_tabs(from_room)
self.refresh_tab_win()
- hide_exit_join = max(config.get_by_tabname('hide_exit_join', -1,
- self.general_jid, True),
- -1)
+ hide_exit_join = config.get_by_tabname('hide_exit_join',
+ self.general_jid)
- if hide_exit_join == -1 or user.has_talked_since(hide_exit_join):
- if config.get_by_tabname('display_user_color_in_join_part', True,
- self.general_jid, True):
+ if hide_exit_join <= -1 or user.has_talked_since(hide_exit_join):
+ if config.get_by_tabname('display_user_color_in_join_part',
+ self.general_jid):
color = dump_tuple(user.color)
else:
color = 3
@@ -1373,8 +1370,8 @@ class MucTab(ChatTab):
# build the message
display_message = False # flag to know if something significant enough
# to be displayed has changed
- if config.get_by_tabname('display_user_color_in_join_part', True,
- self.general_jid, True):
+ if config.get_by_tabname('display_user_color_in_join_part',
+ self.general_jid):
color = dump_tuple(user.color)
else:
color = 3
@@ -1410,8 +1407,8 @@ class MucTab(ChatTab):
if not display_message:
return
msg = msg[:-2] # remove the last ", "
- hide_status_change = config.get_by_tabname('hide_status_change', -1,
- self.general_jid, True)
+ hide_status_change = config.get_by_tabname('hide_status_change',
+ self.general_jid)
if hide_status_change < -1:
hide_status_change = -1
if ((hide_status_change == -1 or \
@@ -1471,9 +1468,9 @@ class MucTab(ChatTab):
self.state = 'highlight'
highlighted = True
else:
- highlight_words = config.get_by_tabname('highlight_on', '',
- self.general_jid,
- True).split(':')
+ highlight_words = config.get_by_tabname('highlight_on',
+ self.general_jid)
+ highlight_words = highlight_words.split(':')
for word in highlight_words:
if word and word.lower() in txt.lower():
if self.state != 'current':
@@ -1481,10 +1478,9 @@ class MucTab(ChatTab):
highlighted = True
break
if highlighted:
- beep_on = config.get('beep_on', 'highlight private').split()
+ beep_on = config.get('beep_on').split()
if 'highlight' in beep_on and 'message' not in beep_on:
- if not config.get_by_tabname('disable_beep', False,
- self.name, False):
+ if not config.get_by_tabname('disable_beep', self.name):
curses.beep()
return highlighted
@@ -1523,8 +1519,7 @@ class MucTab(ChatTab):
if (not time and nickname and nickname != self.own_nick
and self.state != 'current'):
if (self.state != 'highlight' and
- config.get_by_tabname('notify_messages',
- True, self.name)):
+ config.get_by_tabname('notify_messages', self.name)):
self.state = 'message'
if time and not txt.startswith('/me'):
txt = '\x19%(info_col)s}%(txt)s' % {
diff --git a/src/tabs/privatetab.py b/src/tabs/privatetab.py
index c1e8c8e5..4c01cd70 100644
--- a/src/tabs/privatetab.py
+++ b/src/tabs/privatetab.py
@@ -109,7 +109,7 @@ class PrivateTab(OneToOneTab):
compare_users = lambda x: x.last_talked
word_list = [user.nick for user in sorted(self.parent_muc.users, key=compare_users, reverse=True)\
if user.nick != self.own_nick]
- after = config.get('after_completion', ',')+" "
+ after = config.get('after_completion') + ' '
input_pos = self.input.pos
if ' ' not in self.input.get_text()[:input_pos] or (self.input.last_completion and\
self.input.get_text()[:input_pos] == self.input.last_completion + after):
@@ -139,7 +139,7 @@ class PrivateTab(OneToOneTab):
replaced = False
if correct or msg['replace']['id']:
msg['replace']['id'] = self.last_sent_message['id']
- if config.get_by_tabname('group_corrections', True, self.name):
+ if config.get_by_tabname('group_corrections', self.name):
try:
self.modify_message(msg['body'], self.last_sent_message['id'], msg['id'],
user=user, jid=self.core.xmpp.boundjid, nickname=self.own_nick)
@@ -153,7 +153,8 @@ class PrivateTab(OneToOneTab):
msg.enable('html')
msg['html']['body'] = xhtml.poezio_colors_to_html(msg['body'])
msg['body'] = xhtml.clean_text(msg['body'])
- if config.get_by_tabname('send_chat_states', True, self.general_jid, True) and self.remote_wants_chatstates is not False:
+ if (config.get_by_tabname('send_chat_states', self.general_jid) and
+ self.remote_wants_chatstates is not False):
needed = 'inactive' if self.inactive else 'active'
msg['chat_state'] = needed
if attention and self.remote_supports_attention:
@@ -278,9 +279,8 @@ class PrivateTab(OneToOneTab):
self.text_win.remove_line_separator()
self.text_win.add_line_separator(self._text_buffer)
tab = self.core.get_tab_by_name(safeJID(self.name).bare, MucTab)
- if tab and tab.joined and config.get_by_tabname(
- 'send_chat_states', True, self.general_jid, True) and\
- not self.input.get_text() and self.on:
+ if tab and tab.joined and config.get_by_tabname('send_chat_states',
+ self.general_jid) and not self.input.get_text() and self.on:
self.send_chat_state('inactive')
self.check_scrolled()
@@ -288,9 +288,8 @@ class PrivateTab(OneToOneTab):
self.state = 'current'
curses.curs_set(1)
tab = self.core.get_tab_by_name(safeJID(self.name).bare, MucTab)
- if tab and tab.joined and config.get_by_tabname(
- 'send_chat_states', True, self.general_jid, True) and\
- not self.input.get_text() and self.on:
+ if tab and tab.joined and config.get_by_tabname('send_chat_states',
+ self.general_jid,) and not self.input.get_text() and self.on:
self.send_chat_state('active')
def on_info_win_size_changed(self):
@@ -334,7 +333,8 @@ class PrivateTab(OneToOneTab):
self.check_features()
tab = self.core.get_tab_by_name(safeJID(self.name).bare, MucTab)
color = 3
- if tab and config.get_by_tabname('display_user_color_in_join_part', '', self.general_jid, True):
+ if tab and config.get_by_tabname('display_user_color_in_join_part',
+ self.general_jid):
user = tab.get_user_by_name(nick)
if user:
color = dump_tuple(user.color)
diff --git a/src/tabs/rostertab.py b/src/tabs/rostertab.py
index 1ee98dd8..878e89ed 100644
--- a/src/tabs/rostertab.py
+++ b/src/tabs/rostertab.py
@@ -351,7 +351,7 @@ class RosterInfoTab(Tab):
def callback(iq):
if iq['type'] == 'result':
self.core.information('Password updated', 'Account')
- if config.get('password', ''):
+ if config.get('password'):
config.silent_set('password', arg)
else:
self.core.information('Unable to change the password', 'Account')
@@ -765,7 +765,7 @@ class RosterInfoTab(Tab):
Show or hide offline contacts
"""
option = 'roster_show_offline'
- value = config.get(option, False)
+ value = config.get(option)
success = config.silent_set(option, str(not value))
roster.modified()
if not success: