Compact View:

* Move checkbox to preferences. Fixes #2662
 * Merge option for muc and chat
This commit is contained in:
Stephan Erb 2007-06-25 23:51:44 +00:00
parent 9a4a6a7eda
commit 7be506e3f5
10 changed files with 2183 additions and 3417 deletions

View File

@ -65,16 +65,6 @@
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="compact_view_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">_Compact View Alt+C</property>
<property name="use_underline">True</property>
<property name="active">False</property>
<signal name="activate" handler="_on_compact_view_menuitem_activate" last_modification_time="Tue, 03 Jan 2006 04:26:30 GMT"/>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="add_to_roster_menuitem">
<property name="visible">True</property>

View File

@ -83,12 +83,6 @@
</child>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="compact_view_menuitem">
<property name="label" translatable="yes">_Compact View Alt+C</property>
<property name="use_underline">True</property>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="minimize_menuitem">
<property name="visible">True</property>

File diff suppressed because it is too large Load Diff

View File

@ -496,7 +496,7 @@ class ChatControlBase(MessageControl):
self.clear(self.msg_textview) # clear message textview too
return True
elif message == 'compact' and not len(message_array):
self.chat_buttons_set_visible(not self.hide_chat_buttons_current)
self.chat_buttons_set_visible(not self.hide_chat_buttons)
self.clear(self.msg_textview)
return True
return False
@ -666,10 +666,6 @@ class ChatControlBase(MessageControl):
gajim.interface.instances['logs'][jid] = \
history_window.HistoryWindow(jid, self.account)
def _on_compact_view_menuitem_activate(self, widget):
isactive = widget.get_active()
self.chat_buttons_set_visible(isactive)
def on_minimize_menuitem_toggled(self, widget):
'''When a grouchat is minimized, unparent the tab, put it in roster etc'''
old_value = False
@ -911,9 +907,8 @@ class ChatControl(ChatControlBase):
id = widget.connect('clicked', self.on_actions_button_clicked)
self.handlers[id] = widget
hide_chat_buttons_always = gajim.config.get(
'always_hide_chat_buttons')
self.chat_buttons_set_visible(hide_chat_buttons_always)
compact_view = gajim.config.get('compact_view')
self.chat_buttons_set_visible(compact_view)
self.widget_set_visible(self.xml.get_widget('banner_eventbox'),
gajim.config.get('hide_chat_banner'))
# Initialize drag-n-drop
@ -1485,7 +1480,6 @@ class ChatControl(ChatControlBase):
toggle_gpg_menuitem = xml.get_widget('toggle_gpg_menuitem')
add_to_roster_menuitem = xml.get_widget('add_to_roster_menuitem')
send_file_menuitem = xml.get_widget('send_file_menuitem')
compact_view_menuitem = xml.get_widget('compact_view_menuitem')
information_menuitem = xml.get_widget('information_menuitem')
contact = self.parent_win.get_active_contact()
@ -1512,9 +1506,6 @@ class ChatControl(ChatControlBase):
else:
send_file_menuitem.set_sensitive(False)
# compact_view_menuitem
compact_view_menuitem.set_active(self.hide_chat_buttons_current)
# add_to_roster_menuitem
if _('Not in Roster') in contact.groups:
add_to_roster_menuitem.show()
@ -1531,9 +1522,6 @@ class ChatControl(ChatControlBase):
id = send_file_menuitem.connect('activate',
self._on_send_file_menuitem_activate)
self.handlers[id] = send_file_menuitem
id = compact_view_menuitem.connect('activate',
self._on_compact_view_menuitem_activate)
self.handlers[id] = compact_view_menuitem
id = add_to_roster_menuitem.connect('activate',
self._on_add_to_roster_menuitem_activate)
self.handlers[id] = add_to_roster_menuitem

View File

@ -210,8 +210,7 @@ class Config:
_('Controls the window where new messages are placed.\n\'always\' - All messages are sent to a single window.\n\'never\' - All messages get their own window.\n\'peracct\' - Messages for each account are sent to a specific window.\n\'pertype\' - Each message type (e.g., chats vs. groupchats) are sent to a specific window. Note, changing this option requires restarting Gajim before the changes will take effect.')],
'show_avatar_in_chat': [opt_bool, True, _('If False, you will no longer see the avatar in the chat window.')],
'escape_key_closes': [opt_bool, True, _('If True, pressing the escape key closes a tab/window.')],
'always_hide_groupchat_buttons': [opt_bool, False, _('Hides the buttons in group chat window.')],
'always_hide_chat_buttons': [opt_bool, False, _('Hides the buttons in two persons chat window.')],
'compact_view': [opt_bool, False, _('Hides the buttons in chat windows.')],
'hide_groupchat_banner': [opt_bool, False, _('Hides the banner in a group chat window')],
'hide_chat_banner': [opt_bool, False, _('Hides the banner in two persons chat window')],
'hide_groupchat_occupants_list': [opt_bool, False, _('Hides the group chat occupants list in group chat window.')],

View File

@ -153,6 +153,8 @@ class OptionsParser:
self.update_config_to_01101()
if old < [0, 11, 0, 2] and new >= [0, 11, 0, 2]:
self.update_config_to_01102()
if old < [0, 12] and new >= [0, 12]:
self.update_config_to_012()
gajim.logger.init_vars()
gajim.config.set('version', new_version)
@ -384,3 +386,12 @@ class OptionsParser:
gajim.config.set('ft_add_hosts_to_send',
self.old_values['ft_override_host_to_send'])
gajim.config.set('version', '0.11.0.2')
def update_config_to_012(self):
'''always_hide_chatbuttons -> compact_view'''
if self.old_values.has_key('always_hide_groupchat_buttons') and \
self.old_values.has_key('always_hide_chat_buttons'):
gajim.config.set('compact_view', self.old_values['always_hide_groupchat_buttons'] and \
self.old_values['always_hide_chat_buttons'])
gajim.config.set('version', '0.12')

View File

@ -186,6 +186,10 @@ class PreferencesWindow:
else:
self.one_window_type_combobox.set_active(0)
# Compact View
st = gajim.config.get('compact_view')
self.xml.get_widget('compact_view_checkbutton').set_active(st)
# Set default for treat incoming messages
choices = common.config.opt_treat_incoming_messages
type = gajim.config.get('treat_incoming_messages')
@ -675,6 +679,15 @@ class PreferencesWindow:
if spell_obj:
spell_obj.detach()
def on_compact_view_checkbutton_toggled(self, widget):
active = widget.get_active()
for ctl in gajim.interface.msg_win_mgr.controls():
ctl.chat_buttons_set_visible(active)
gajim.config.set('compact_view', active)
gajim.interface.save_config()
gajim.interface.roster.draw_roster()
def on_speller_checkbutton_toggled(self, widget):
active = widget.get_active()
gajim.config.set('use_speller', active)

View File

@ -185,9 +185,8 @@ class GroupchatControl(ChatControlBase):
self.nick = contact.name
self.name = self.room_jid.split('@')[0]
hide_chat_buttons_always = gajim.config.get(
'always_hide_groupchat_buttons')
self.chat_buttons_set_visible(hide_chat_buttons_always)
compact_view = gajim.config.get('compact_view')
self.chat_buttons_set_visible(compact_view)
self.widget_set_visible(self.xml.get_widget('banner_eventbox'),
gajim.config.get('hide_groupchat_banner'))
self.widget_set_visible(self.xml.get_widget('list_scrolledwindow'),
@ -239,11 +238,6 @@ class GroupchatControl(ChatControlBase):
self._on_change_subject_menuitem_activate)
self.handlers[id] = self.change_subject_menuitem
self.compact_view_menuitem = xm.get_widget('compact_view_menuitem')
id = self.compact_view_menuitem.connect('activate',
self._on_compact_view_menuitem_activate)
self.handlers[id] = self.compact_view_menuitem
widget = xm.get_widget('history_menuitem')
id = widget.connect('activate', self._on_history_menuitem_activate)
self.handlers[id] = widget
@ -488,10 +482,7 @@ class GroupchatControl(ChatControlBase):
self.name_label.set_markup(text)
def prepare_context_menu(self):
'''sets compact view menuitem active state
sets sensitivity state for configure_room'''
# Check compact view menuitem
self.compact_view_menuitem.set_active(self.hide_chat_buttons_current)
'''sets sensitivity state for configure_room'''
if self.contact.jid in gajim.config.get_per('accounts', self.account,
'minimized_gc').split(' '):
self.minimize_menuitem.set_active(True)

View File

@ -34,7 +34,7 @@ class MessageControl:
self.widget_name = widget_name
self.contact = contact
self.account = account
self.hide_chat_buttons_current = False
self.hide_chat_buttons = False
self.resource = resource
gajim.last_message_time[self.account][self.get_full_jid()] = 0
@ -99,7 +99,7 @@ class MessageControl:
def chat_buttons_set_visible(self, state):
# NOTE: Derived classes MAY implement this
self.hide_chat_buttons_current = state
self.hide_chat_buttons = state
def got_connected(self):
pass

View File

@ -550,7 +550,7 @@ class MessageWindow:
(event.state & gtk.gdk.MOD1_MASK): # ALT + 1,2,3..
self.notebook.set_current_page(st.index(event.string))
elif event.keyval == gtk.keysyms.c: # ALT + C toggles chat buttons
ctrl.chat_buttons_set_visible(not ctrl.hide_chat_buttons_current)
ctrl.chat_buttons_set_visible(not ctrl.hide_chat_buttons)
# Close tab bindings
elif event.keyval == gtk.keysyms.Escape and \
gajim.config.get('escape_key_closes'): # Escape