From 84fcc6e8ceecdfa00a87f7eeb68790cf01e30200 Mon Sep 17 00:00:00 2001 From: Stephan Erb Date: Mon, 4 Feb 2008 22:04:33 +0000 Subject: [PATCH] Do not redraw roster when opening the accounts window. Rework preference window. Fixes #3330, #1621, #2113 --- data/glade/accounts_window.glade | 1 - data/glade/preferences_window.glade | 2389 ++++++++++++++------------- src/config.py | 209 ++- 3 files changed, 1292 insertions(+), 1307 deletions(-) diff --git a/data/glade/accounts_window.glade b/data/glade/accounts_window.glade index 3b9650cbd..8d926945e 100644 --- a/data/glade/accounts_window.glade +++ b/data/glade/accounts_window.glade @@ -1310,7 +1310,6 @@ You might consider to change possible firewall settings. True 0 True - False diff --git a/data/glade/preferences_window.glade b/data/glade/preferences_window.glade index 0d19e129f..c4e2ebea9 100644 --- a/data/glade/preferences_window.glade +++ b/data/glade/preferences_window.glade @@ -21,7 +21,7 @@ True 12 - 6 + 12 True @@ -32,6 +32,7 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 12 @@ -75,6 +76,7 @@ True True + If checked, Gajim will sort contacts in roster window and groupcahts by their status and not by the shown name _Sort contacts by status True 0 @@ -117,58 +119,16 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 12 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 6 + 5 2 6 6 - - - True - 0 - 1 - Treat all incoming messages as: - - - 1 - 2 - GTK_FILL - - - - - True - 0 - 1 - _Window behavior: - True - one_window_type_combobox - - - 2 - 3 - GTK_FILL - - - - - True - Determined by sender -Chat message -Single message - - - - 1 - 2 - 1 - 2 - - 50 @@ -183,18 +143,60 @@ Detached roster with chat grouped by type 1 2 - 2 - 3 + 1 + 2 - - True - + + True + If checked, Gajim will highlight spelling errors in input fields of chat windows. If no language is explicitly set via right click on the input field, the default language will be used for this contact or group chat. + _Highlight misspelled words + True + 0 + True + - 1 2 + 4 + 5 + GTK_FILL + + + + + True + True + Some messages may include rich content (formatting, colors etc). If checked, Gajim will just display the raw message text. + Ignore rich content in incoming messages + True + 0 + True + + + + 2 + 3 + 4 + GTK_FILL + + + + + True + Hide all buttons in chat windows + _Make message windows compact + True + 0 + True + + + + 2 + 2 + 3 + GTK_FILL @@ -215,53 +217,27 @@ Detached roster with chat grouped by type - - True - Hides buttons in chatwindows to - _Make message windows compact - True - 0 - True - - - - 2 - 3 - 4 - GTK_FILL - - - - + True - True - Some messages may include rich content (formatting, colors etc). If checked, Gajim will just display the raw message text. - Ignore rich content in incoming messages - True - 0 - True - + + 1 2 - 4 - 5 - GTK_FILL - - True - _Highlight misspelled words + + True + 0 + 1 + _Window behavior: True - 0 - True - + one_window_type_combobox - 2 - 5 - 6 + 1 + 2 GTK_FILL @@ -286,156 +262,6 @@ Detached roster with chat grouped by type 1 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - GTK_SHADOW_NONE - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 12 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 3 - 4 - 6 - 6 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - 2 - 4 - 1 - 2 - - - - - True - 0 - T_heme: - True - theme_combobox - - - GTK_FILL - GTK_FILL - - - - - True - True - Configure color and font of the interface - Ma_nage... - True - 0 - - - - 2 - 3 - GTK_FILL - GTK_FILL - - - - - True - - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 0 - Status _iconset: - True - iconset_combobox - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - - - - 1 - 2 - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - True - If checked, Gajim will use protocol-specific status icons. (eg. A contact from MSN will have the equivalent msn icon for status online, away, busy, etc...) - Use _transports iconsets - True - 0 - True - - - - 4 - 2 - 3 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - 3 - 4 - - - - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Themes</b> - True - - - label_item - - - - - False - 2 - - @@ -448,446 +274,6 @@ Detached roster with chat grouped by type False - - - True - 12 - 6 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - GTK_SHADOW_NONE - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 12 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 3 - 2 - 6 - 6 - - - True - All chat states -Composing only -Disabled - - - - 1 - 2 - GTK_FILL - - - - - True - Gajim can send and receive meta-information related to a conversation you may have with a contact. Here you can specify which chatstates you want to send to the other party. - - - True - 0 - _Send chat state notifications: - True - - - - - GTK_FILL - - - - - True - Gajim can send and receive meta-information related to a conversation you may have with a contact. Here you can specify which chatstates you want to display in chat windows. - - - True - 0 - _Display chat state notifications: - True - - - - - 1 - 2 - GTK_FILL - - - - - True - All chat states -Composing only -Disabled - - - - 1 - 2 - 1 - 2 - GTK_FILL - - - - - True - True - Check this option, only if someone you don't have in the roster spams/annoys you. Use with caution, because it blocks all messages from any contact that is not in the roster - _Ignore events from contacts not in the roster - True - 0 - True - - - - 2 - 2 - 3 - GTK_FILL - - - - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Privacy</b> - True - - - label_item - - - - - False - - - - - True - 0 - GTK_SHADOW_NONE - - - True - 6 - 12 - - - True - 12 - - - True - 4 - 4 - 12 - 6 - - - True - True - Use system _default - True - 0 - True - - - - 2 - 4 - 3 - 4 - GTK_FILL - - - - - - True - 6 - - - True - 0 - _Font: - True - conversation_fontbutton - - - - - True - True - 0 - - - - False - 1 - - - - - 2 - 3 - 4 - GTK_FILL - - - - - True - - - True - - - False - - - - - True - True - False - 0 - - - - True - 0 - 0 - - - True - 2 - - - True - gtk-revert-to-saved - - - False - False - - - - - True - _Reset to Default Colors - True - - - False - False - 1 - - - - - - - - - False - False - 1 - - - - - 4 - 2 - 3 - GTK_FILL - - - - - True - True - 0 - - - - 3 - 4 - 1 - 2 - GTK_FILL - - - - - - True - 0 - _URL: - True - url_msg_colorbutton - - - 2 - 3 - 1 - 2 - GTK_FILL - - - - - - True - True - 0 - - - - 1 - 2 - 1 - 2 - - - - - - - True - 0 - _Status message: - True - GTK_JUSTIFY_CENTER - True - status_msg_colorbutton - - - 1 - 2 - GTK_FILL - - - - - - True - True - 0 - - - - 3 - 4 - GTK_FILL - - - - - - True - 0 - _Outgoing message: - True - GTK_JUSTIFY_CENTER - True - outgoing_msg_colorbutton - - - 2 - 3 - GTK_FILL - - - - - - True - True - True - True - True - 0 - - - - 1 - 2 - - - - - - - True - 0 - _Incoming message: - True - GTK_JUSTIFY_CENTER - True - incoming_msg_colorbutton - - - GTK_FILL - - - - - - False - - - - - - - - - True - <b>Format of a line</b> - True - - - label_item - - - - - False - False - 1 - - - - - 1 - - - - - True - Privacy - - - tab - 1 - False - - True @@ -933,7 +319,6 @@ Show only in roster - False 1 @@ -988,61 +373,72 @@ Show only in roster - - False + + True + False True + 0 + GTK_SHADOW_NONE - + True - True - 0 - + 6 + 12 - + True - 0 - 0 + 6 - + True - 2 - - - True - gtk-open - - - False - False - - - - - True - _Advanced Notifications Control... - True - - - False - False - 1 - - + True + If checked, Gajim will show a notification when a new e-mail is received via GMail + Notify on new _GMail email + True + 0 + True + + + False + False + + + + + True + True + If checked, Gajim will also include information about the sender of the new emails + Display _extra email details + True + 0 + True + + + + False + False + 1 + - - False - False - - + + True + <b>GMail Options</b> + True + + + label_item + + False + False 4 @@ -1075,6 +471,7 @@ Show only in roster True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 12 @@ -1220,13 +617,315 @@ Show only in roster - 2 + 1 True - Events + Notifications + + + tab + 1 + False + + + + + True + 12 + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + GTK_SHADOW_NONE + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + 2 + 6 + 6 + + + True + All chat states +Composing only +Disabled + + + 1 + 2 + + + + + True + Gajim can send and receive meta-information related to a conversation you may have with a contact. Here you can specify which chatstates you want to send to the other party. + + + True + 0 + _Send chat state notifications: + True + + + + + GTK_FILL + + + + + True + Gajim can send and receive meta-information related to a conversation you may have with a contact. Here you can specify which chatstates you want to display in chat windows. + + + True + 0 + _Display chat state notifications: + True + + + + + 1 + 2 + GTK_FILL + + + + + True + All chat states +Composing only +Disabled + + + 1 + 2 + 1 + 2 + + + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + <b>Chat state notifications</b> + True + + + label_item + + + + + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + GTK_SHADOW_NONE + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + 4 + 6 + 6 + + + True + 0 + 1 + Allow others to see your: + True + one_window_type_combobox + + + GTK_FILL + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Tune + True + 0 + True + + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + True + 0 + 1 + Receive your contact's: + True + True + one_window_type_combobox + + + 1 + 2 + GTK_FILL + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Tune + True + 0 + True + + + + 2 + 3 + GTK_FILL + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Activity + True + 0 + True + + + + 3 + 4 + GTK_FILL + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Mood + True + 0 + True + + + + 1 + 2 + GTK_FILL + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Activity + True + 0 + True + + + + 3 + 4 + 1 + 2 + GTK_FILL + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Mood + True + 0 + True + + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + <b>Publish and Subscribe</b> + True + + + label_item + + + + + False + 1 + + + + + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Personal Events tab @@ -1240,273 +939,294 @@ Show only in roster 12 12 - + True - 2 - 4 - 12 - 6 + True + 0 + GTK_SHADOW_NONE - + True - True - The auto not available status message - - - - 3 - 4 - 1 - 2 - - - - - - True - True - The auto away status message - - - - 3 - 4 - - - - - - True - 1 - 0 + 6 + 12 - - 50 + True - True - 20 1 1440 1 10 10 - 1 - - - - - - 1 - 2 - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 1 - 0 - - - 50 - True - True - 12 1 720 1 10 10 - 1 - - - - - - 1 - 2 - GTK_FILL - GTK_FILL - - - - - True - 0 - minutes - - - 2 - 3 - 1 - 2 - GTK_FILL - - - - - - True - 0 - minutes - - - 2 - 3 - GTK_FILL - - - - - - True - True - Auto _not available after: - True - 0 - True - - - - 1 - 2 - GTK_FILL - - - - - - True - True - Auto _away after: - True - 0 - True - - - - GTK_FILL - - - - - - False - - - - - True - 6 - - - True - Ask status message when I: - - - False - False - - - - - True - 14 - - - True - True - Sign _in - True - 0 - True - - - - False - False - - - - - True - True - Sign _out - True - 0 - True - - - - False - False - 1 - - - - - False - False - 1 - - - - - False - False - 1 - - - - - True - True - Works for Rhythmbox and Muine players. For more players, please visit http://trac.gajim.org/wiki/GajimAndMusicPlayer - Set status message to reflect currently playing _music track - True - 0 - True - - - - False - False - 2 - - - - - True - An example: If you have enabled status message for away, Gajim won't ask you anymore for a status message when you change your status to away; it will use the default one set here - - - True - True - - - - True - True - 6 - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN + 2 + 4 + 12 + 6 - + True True + The auto not available status message. If empty, Gajim will not change the current status message + + + 3 + 4 + 1 + 2 + + + + + + True + True + The auto away status message. If empty, Gajim will not change the current status message + + + + 3 + 4 + + + + + + True + 1 + 0 + + + 50 + True + True + 20 1 1440 1 10 10 + 1 + + + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 1 + 0 + + + 50 + True + True + 12 1 720 1 10 10 + 1 + + + + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + 0 + minutes + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + minutes + + + 2 + 3 + GTK_FILL + + + + + + True + True + If checked, Gajim will change status to Not Available when the computer has not been used even longer + _Not available after: + True + 0 + True + + + + 1 + 2 + GTK_FILL + + + + + + True + True + If checked, Gajim will change status to Away when the computer is unused. + _Away after: + True + 0 + True + + + + GTK_FILL + + - - - True - Default Status Messages - - - label_item - - + + + True + <b>Auto Status</b> + True + + + label_item + + False - 3 + False + + + + + True + 0 + GTK_SHADOW_NONE + + + True + 6 + 12 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 + + + True + 6 + + + True + Ask status message when I: + + + False + False + + + + + True + 14 + + + True + True + Sign _in + True + 0 + True + + + + False + False + + + + + True + True + Sign _out + True + 0 + True + + + + False + False + 1 + + + + + False + False + 1 + + + + + False + False + + + + + True + True + If enabled, Gajim will not ask for a status message. The specified default message will be used instead. + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + + + True + True + + + + + 1 + + + + + + + + + True + <b>Status Messages</b> + True + + + label_item + + + + + 1 @@ -1520,90 +1240,92 @@ Show only in roster 6 12 - + True - 6 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + 2 + 6 + 6 - - True - 6 - - - True - True - 5 - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - - - True - True - False - - - - - - - - - True - GTK_BUTTONBOX_START - - - True - True - True - 5 - gtk-new - True - 0 - - - - - - True - True - True - 5 - gtk-delete - True - 0 - - - - 1 - - - - - False - 1 - - - + True True - 5 - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + GTK_POLICY_NEVER + GTK_POLICY_NEVER GTK_SHADOW_IN True True + 3 + GTK_WRAP_WORD - False - False - 1 + 1 + 2 + GTK_FILL + + + + + True + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + + + True + True + False + + + + + + + + + True + 5 + GTK_BUTTONBOX_START + + + True + True + True + gtk-new + True + 0 + + + + + + True + True + True + gtk-delete + True + 0 + + + + 1 + + + + + 1 + 2 + GTK_FILL + GTK_FILL @@ -1622,7 +1344,7 @@ Show only in roster - 4 + 2 @@ -1642,70 +1364,68 @@ Show only in roster - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 6 + 12 + 12 - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 GTK_SHADOW_NONE - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 12 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 + 2 + 6 + 6 - + + + + True - True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Publish _Mood - True - 0 - True - + Chat message: - False + GTK_FILL + GTK_FILL - + True True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Publish _Activity + Use system _default True 0 True - + - False - 1 + 1 + 2 + 1 + 2 - + True True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Publish _Tune - True 0 - True - - False - 2 + 1 + 2 @@ -1713,10 +1433,9 @@ Show only in roster - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Publish Personal Events</b> + <b>Font</b> True @@ -1726,68 +1445,120 @@ Show only in roster False + False - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 GTK_SHADOW_NONE - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 12 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + 3 + 6 + 6 - + + + + + + + True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Subscribe to M_ood + 0 + T_heme: True - 0 - True - + theme_combobox - False + GTK_FILL + GTK_FILL - + True True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Subscribe to A_ctivity + Configure color and font of the interface + Ma_nage... True 0 - True - + - False - 1 + 2 + 3 + GTK_FILL + GTK_FILL - + + True + + + + 1 + 2 + + + + + True + 0 + Status _iconset: + True + iconset_combobox + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + + + + 1 + 2 + 1 + 2 + GTK_FILL + GTK_FILL + + + + True True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Subscribe to T_une + If checked, Gajim will use protocol-specific status icons. (eg. A contact from MSN will have the equivalent msn icon for status online, away, busy, etc...) + Use _transports icons True 0 True - + - False - 2 + 1 + 3 + 2 + 3 @@ -1795,10 +1566,10 @@ Show only in roster - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Subscribe to Personal Events</b> + <b>Themes</b> True @@ -1811,16 +1582,250 @@ Show only in roster 1 + + + True + 0 + GTK_SHADOW_NONE + + + True + 6 + 12 + + + True + 3 + 4 + 12 + 6 + + + True + + + True + + + False + + + + + True + True + False + 0 + + + + True + 0 + 0 + + + True + 2 + + + True + gtk-revert-to-saved + + + False + False + + + + + True + _Reset to Default Colors + True + + + False + False + 1 + + + + + + + + + False + False + 1 + + + + + 4 + 2 + 3 + GTK_FILL + + + + + True + True + 0 + + + + 3 + 4 + 1 + 2 + GTK_FILL + + + + + + True + 0 + _URL highlight: + True + url_msg_colorbutton + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + True + 0 + + + + 1 + 2 + 1 + 2 + + + + + + + True + 0 + _Status message: + True + GTK_JUSTIFY_CENTER + True + status_msg_colorbutton + + + 1 + 2 + GTK_FILL + + + + + + True + True + 0 + + + + 3 + 4 + GTK_FILL + + + + + + True + 0 + _Outgoing message: + True + GTK_JUSTIFY_CENTER + True + outgoing_msg_colorbutton + + + 2 + 3 + GTK_FILL + + + + + + True + True + True + True + True + 0 + + + + 1 + 2 + + + + + + + True + 0 + _Incoming message: + True + GTK_JUSTIFY_CENTER + True + incoming_msg_colorbutton + + + GTK_FILL + + + + + + + + + + True + <b>Chat Line Colors</b> + True + + + label_item + + + + + False + False + 2 + + 4 - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Personal Events + Style tab @@ -1832,7 +1837,7 @@ Show only in roster True 12 - 6 + 12 True @@ -1875,60 +1880,18 @@ Custom 12 6 - - True - True - - - - 1 - 2 - 2 - 3 - - - - - + True 0 - _File manager: + _Browser: True - custom_file_manager_entry + custom_browser_entry - 2 - 3 GTK_FILL - - - True - True - - - - 1 - 2 - - - - - - True - True - - - - 1 - 2 - 1 - 2 - - - True @@ -1945,18 +1908,60 @@ Custom - + True - 0 - _Browser: - True - custom_browser_entry + True + + 1 + 2 + 1 + 2 + + + + + + True + True + + + + 1 + 2 + + + + + + True + 0 + _File manager: + True + custom_file_manager_entry + + + 2 + 3 GTK_FILL + + + True + True + + + + 1 + 2 + 2 + 3 + + + @@ -1997,50 +2002,70 @@ Custom - + True - True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 GTK_SHADOW_NONE - + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 12 - + True - 6 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 3 + 1 + 6 + 6 - + True True - Notify on new _GMail email + If checked, Gajim log GPG or E2E encrypted messages. However, when using E2E encryption the remote site has to agree on logging. If the other side has declined logging, your messages will NOT be logged. + Log _encrypted chat session True 0 True - + - False - False + 2 + 3 - + True True - If checked, Gajim will also include information about the sender of the new emails - Display _extra email details + If checked, Gajim will allow others to detect the operation system you are using + Allow _OS information to be sent True 0 True - + - False - False - 1 + 1 + 2 + + + + + True + True + If checked, Gajim will ignore incoming events from unauthorized contacts. Use with caution, because it blocks all messages from any contact that is not in the roster + _Ignore events from contacts not in the roster + True + 0 + True + + + + GTK_FILL @@ -2048,9 +2073,10 @@ Custom - + True - <b>GMail Options</b> + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + <b>Privacy</b> True @@ -2060,7 +2086,6 @@ Custom False - False 1 @@ -2093,27 +2118,11 @@ Custom False - - - True - True - Allow _OS information to be sent - True - 0 - True - - - - False - False - 1 - - True True - Always check to see if Gajim is the _default Jabber client on startup + Check on startup if Gajim is the _default Jabber client True 0 True @@ -2122,7 +2131,7 @@ Custom False False - 2 + 1 diff --git a/src/config.py b/src/config.py index a57fb617e..43ede20f8 100644 --- a/src/config.py +++ b/src/config.py @@ -71,8 +71,6 @@ class PreferencesWindow: self.window = self.xml.get_widget('preferences_window') self.window.set_transient_for(gajim.interface.roster.window) self.notebook = self.xml.get_widget('preferences_notebook') - self.treat_incoming_messages_combobox =\ - self.xml.get_widget('treat_incoming_messages_combobox') self.one_window_type_combobox =\ self.xml.get_widget('one_window_type_combobox') self.iconset_combobox = self.xml.get_widget('iconset_combobox') @@ -92,8 +90,6 @@ class PreferencesWindow: 'auto_xa_time_spinbutton') self.auto_xa_message_entry = self.xml.get_widget('auto_xa_message_entry') - w = self.xml.get_widget('anc_hbox') - ### General tab ### # Display avatars in roster st = gajim.config.get('show_avatars_in_roster') @@ -134,14 +130,6 @@ class PreferencesWindow: if not gajim.config.get('emoticons_theme'): emoticons_combobox.set_active(len(l)-1) - # Set default for treat incoming messages - choices = common.config.opt_treat_incoming_messages - type = gajim.config.get('treat_incoming_messages') - if type in choices: - self.treat_incoming_messages_combobox.set_active(choices.index(type)) - else: - self.treat_incoming_messages_combobox.set_active(0) - # Set default for single window type choices = common.config.opt_one_window_types type = gajim.config.get('one_message_window') @@ -165,6 +153,7 @@ class PreferencesWindow: else: self.xml.get_widget('speller_checkbutton').set_sensitive(False) + ### Style tab ### # Themes theme_combobox = self.xml.get_widget('theme_combobox') cell = gtk.CellRendererText() @@ -208,12 +197,42 @@ class PreferencesWindow: model.append([preview, l[i]]) if gajim.config.get('iconset') == l[i]: self.iconset_combobox.set_active(i) - + # Use transports iconsets st = gajim.config.get('use_transports_iconsets') self.xml.get_widget('transports_iconsets_checkbutton').set_active(st) - ### Privacy tab ### + # Color for incoming messages + colSt = gajim.config.get('inmsgcolor') + self.xml.get_widget('incoming_msg_colorbutton').set_color( + gtk.gdk.color_parse(colSt)) + + # Color for outgoing messages + colSt = gajim.config.get('outmsgcolor') + self.xml.get_widget('outgoing_msg_colorbutton').set_color( + gtk.gdk.color_parse(colSt)) + + # Color for status messages + colSt = gajim.config.get('statusmsgcolor') + self.xml.get_widget('status_msg_colorbutton').set_color( + gtk.gdk.color_parse(colSt)) + + # Color for hyperlinks + colSt = gajim.config.get('urlmsgcolor') + self.xml.get_widget('url_msg_colorbutton').set_color( + gtk.gdk.color_parse(colSt)) + + # Font for messages + font = gajim.config.get('conversation_font') + # try to set default font for the current desktop env + fontbutton = self.xml.get_widget('conversation_fontbutton') + if font == '': + fontbutton.set_sensitive(False) + self.xml.get_widget('default_chat_font').set_active(True) + else: + fontbutton.set_font_name(font) + + ### Personal Events tab ### # outgoing send chat state notifications st = gajim.config.get('outgoing_chat_state_notifications') combo = self.xml.get_widget('outgoing_chat_states_combobox') @@ -234,11 +253,29 @@ class PreferencesWindow: else: # disabled combo.set_active(2) - # Ignore messages from unknown contacts - self.xml.get_widget('ignore_events_from_unknown_contacts_checkbutton').\ - set_active(gajim.config.get('ignore_unknown_contacts')) + # PEP + st = gajim.config.get('publish_mood') + self.xml.get_widget('publish_mood_checkbutton').set_active(st) - ### Events tab ### + st = gajim.config.get('publish_activity') + self.xml.get_widget('publish_activity_checkbutton').set_active(st) + + st = gajim.config.get('publish_tune') + self.xml.get_widget('publish_tune_checkbutton').set_active(st) + + st = gajim.config.get('subscribe_mood') + self.xml.get_widget('subscribe_mood_checkbutton').set_active(st) + + st = gajim.config.get('subscribe_activity') + self.xml.get_widget('subscribe_activity_checkbutton').set_active(st) + + st = gajim.config.get('subscribe_tune') + self.xml.get_widget('subscribe_tune_checkbutton').set_active(st) + + if not gajim.config.get('use_pep'): + self.xml.get_widget('frame_pep').set_sensitive(False) + + ### Notifications tab ### # On new event on_event_combobox = self.xml.get_widget('on_event_combobox') if gajim.config.get('autopopup'): @@ -308,6 +345,24 @@ class PreferencesWindow: self.fill_sound_treeview() + # Notify user of new gmail e-mail messages, + # make checkbox sensitive if user has a gtalk account + frame_gmail = self.xml.get_widget('frame_gmail') + notify_gmail_checkbutton = self.xml.get_widget('notify_gmail_checkbutton') + notify_gmail_extra_checkbutton = self.xml.get_widget( + 'notify_gmail_extra_checkbutton') + + for account in gajim.config.get_per('accounts'): + jid = gajim.get_jid_from_account(account) + if gajim.get_server_from_jid(jid) in gajim.gmail_domains: + frame_gmail.set_sensitive(True) + st = gajim.config.get('notify_on_new_gmail_email') + notify_gmail_checkbutton.set_active(st) + st = gajim.config.get('notify_on_new_gmail_email_extra') + notify_gmail_extra_checkbutton.set_active(st) + break + + #### Status tab ### # Autoaway st = gajim.config.get('autoaway') self.auto_away_checkbutton.set_active(st) @@ -358,7 +413,7 @@ class PreferencesWindow: renderer = gtk.CellRendererText() col.pack_start(renderer, False) col.set_attributes(renderer, text = 1) - col = gtk.TreeViewColumn('Message') + col = gtk.TreeViewColumn('Default Message') self.default_msg_tree.append_column(col) renderer = gtk.CellRendererText() col.pack_start(renderer, True) @@ -389,6 +444,7 @@ class PreferencesWindow: buf = self.xml.get_widget('msg_textview').get_buffer() buf.connect('changed', self.on_msg_textview_changed) + ### Advanced tab ### # open links with if os.name == 'nt': applications_frame = self.xml.get_widget('applications_frame') @@ -440,93 +496,21 @@ class PreferencesWindow: st = gajim.config.get('log_contact_status_changes') self.xml.get_widget('log_show_changes_checkbutton').set_active(st) + # log encrypted chat sessions + st = gajim.config.get('log_encrypted_sessions') + self.xml.get_widget('log_encrypted_chats_checkbutton').set_active(st) + # send os info st = gajim.config.get('send_os_info') self.xml.get_widget('send_os_info_checkbutton').set_active(st) - # send os info + # check if gajm is default st = gajim.config.get('check_if_gajim_is_default') self.xml.get_widget('check_default_client_checkbutton').set_active(st) - # set status msg from currently playing music track - widget = self.xml.get_widget( - 'set_status_msg_from_current_music_track_checkbutton') - if os.name == 'nt': - widget.set_no_show_all(True) - widget.hide() - elif dbus_support.supported: - st = gajim.config.get('set_status_msg_from_current_music_track') - widget.set_active(st) - else: - widget.set_sensitive(False) - - # PEP - st = gajim.config.get('publish_mood') - self.xml.get_widget('publish_mood_checkbutton').set_active(st) - - st = gajim.config.get('publish_activity') - self.xml.get_widget('publish_activity_checkbutton').set_active(st) - - st = gajim.config.get('publish_tune') - self.xml.get_widget('publish_tune_checkbutton').set_active(st) - - st = gajim.config.get('subscribe_mood') - self.xml.get_widget('subscribe_mood_checkbutton').set_active(st) - - st = gajim.config.get('subscribe_activity') - self.xml.get_widget('subscribe_activity_checkbutton').set_active(st) - - st = gajim.config.get('subscribe_tune') - self.xml.get_widget('subscribe_tune_checkbutton').set_active(st) - - # Notify user of new gmail e-mail messages, - # only show checkbox if user has a gtalk account - frame_gmail = self.xml.get_widget('frame_gmail') - notify_gmail_checkbutton = self.xml.get_widget('notify_gmail_checkbutton') - notify_gmail_extra_checkbutton = self.xml.get_widget( - 'notify_gmail_extra_checkbutton') - - for account in gajim.config.get_per('accounts'): - jid = gajim.get_jid_from_account(account) - if gajim.get_server_from_jid(jid) in gajim.gmail_domains: - frame_gmail.show_all() - st = gajim.config.get('notify_on_new_gmail_email') - notify_gmail_checkbutton.set_active(st) - st = gajim.config.get('notify_on_new_gmail_email_extra') - notify_gmail_extra_checkbutton.set_active(st) - break - else: - frame_gmail.hide() - - # Color for incoming messages - colSt = gajim.config.get('inmsgcolor') - self.xml.get_widget('incoming_msg_colorbutton').set_color( - gtk.gdk.color_parse(colSt)) - - # Color for outgoing messages - colSt = gajim.config.get('outmsgcolor') - self.xml.get_widget('outgoing_msg_colorbutton').set_color( - gtk.gdk.color_parse(colSt)) - - # Color for status messages - colSt = gajim.config.get('statusmsgcolor') - self.xml.get_widget('status_msg_colorbutton').set_color( - gtk.gdk.color_parse(colSt)) - - # Color for hyperlinks - colSt = gajim.config.get('urlmsgcolor') - self.xml.get_widget('url_msg_colorbutton').set_color( - gtk.gdk.color_parse(colSt)) - - # Font for messages - font = gajim.config.get('conversation_font') - # try to set default font for the current desktop env - fontbutton = self.xml.get_widget('conversation_fontbutton') - if font == '': - fontbutton.set_sensitive(False) - self.xml.get_widget('default_chat_font').set_active(True) - else: - fontbutton.set_font_name(font) + # Ignore messages from unknown contacts + self.xml.get_widget('ignore_events_from_unknown_contacts_checkbutton').\ + set_active(gajim.config.get('ignore_unknown_contacts')) self.xml.signal_autoconnect(self) @@ -542,8 +526,7 @@ class PreferencesWindow: self.theme_preferences = None self.notebook.set_current_page(0) - if not gajim.config.get('use_pep'): - self.notebook.remove_page(4) + self.window.show_all() gtkgui_helpers.possibly_move_window_in_current_desktop(self.window) @@ -635,11 +618,6 @@ class PreferencesWindow: for win in gajim.interface.msg_win_mgr.windows(): win.toggle_emoticons() - def on_treat_incoming_messages_combobox_changed(self, widget): - active = widget.get_active() - config_type = common.config.opt_treat_incoming_messages[active] - gajim.config.set('treat_incoming_messages', config_type) - def on_one_window_type_combo_changed(self, widget): active = widget.get_active() config_type = common.config.opt_one_window_types[active] @@ -1013,6 +991,9 @@ class PreferencesWindow: def on_log_show_changes_checkbutton_toggled(self, widget): self.on_checkbutton_toggled(widget, 'log_contact_status_changes') + + def on_log_encrypted_chats_checkbutton_toggled(self, widget): + self.on_checkbutton_toggled(widget, 'log_encrypted_sessions') def on_send_os_info_checkbutton_toggled(self, widget): self.on_checkbutton_toggled(widget, 'send_os_info') @@ -1102,16 +1083,10 @@ class PreferencesWindow: 'contact_disconnected': _('Contact Disconnected'), 'message_sent': _('Message Sent'), 'muc_message_highlight': _('Group Chat Message Highlight'), - 'muc_message_received': _('Group Chat Message Received') + 'muc_message_received': _('Group Chat Message Received'), + 'gmail_received': _('GMail Email Received') } - # In case of a GMail account we provide a sound notification option - for account in gajim.config.get_per('accounts'): - jid = gajim.get_jid_from_account(account) - if gajim.get_server_from_jid(jid) in gajim.gmail_domains: - sounds_dict['gmail_received'] = _('GMail Email Received') - break - for sound_event_config_name, sound_ui_name in sounds_dict.items(): enabled = gajim.config.get_per('soundevents', sound_event_config_name, 'enabled') @@ -1388,7 +1363,10 @@ class AccountsWindow: # Merge accounts st = gajim.config.get('mergeaccounts') - self.xml.get_widget('merge_checkbutton').set_active(st) + checkbutton = self.xml.get_widget('merge_checkbutton') + checkbutton.set_active(st) + # prevent roster redraws by connecting the signal after button state is set + checkbutton.connect('toggled', self.on_merge_checkbutton_toggled) self.avahi_available = True try: @@ -1416,7 +1394,6 @@ class AccountsWindow: self.remove_button.set_sensitive(False) self.rename_button.set_sensitive(False) self.current_account = None - self.init_account() model = self.accounts_treeview.get_model() model.clear() for account in gajim.config.get_per('accounts'):