From 13473c36ba0f0d21b16d2553e94590291ba52f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= <philipp@hoerist.com> Date: Thu, 27 Sep 2018 21:37:01 +0200 Subject: [PATCH] Preferences: Update layout and some options - Add a 'convert ascii emoji' checkbutton - Remove 'Disabled' from Emoji theme - Change the layout of the style tab --- gajim/data/gui/preferences_window.ui | 587 ++++++++++++++++----------- gajim/data/style/gajim.css | 4 + gajim/gtk/preferences.py | 39 +- gajim/gui_interface.py | 5 + 4 files changed, 370 insertions(+), 265 deletions(-) diff --git a/gajim/data/gui/preferences_window.ui b/gajim/data/gui/preferences_window.ui index 1c5f6a9fc7..3e4571f530 100644 --- a/gajim/data/gui/preferences_window.ui +++ b/gajim/data/gui/preferences_window.ui @@ -355,75 +355,15 @@ <property name="row_spacing">6</property> <property name="column_spacing">12</property> <child> - <object class="GtkEventBox" id="eventbox5"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">If not disabled, Gajim will replace ascii smilies like ':)' with equivalent animated or static graphical emoticons</property> - <child> - <object class="GtkLabel" id="label381"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">_Emoticons</property> - <property name="use_underline">True</property> - <property name="justify">right</property> - <style> - <class name="dim-label"/> - </style> - </object> - </child> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label379"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">_Window behavior</property> - <property name="use_underline">True</property> - <property name="justify">right</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label28"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">_Show roster on startup</property> - <property name="use_underline">True</property> - <property name="justify">right</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="xhtml_checkbutton"> - <property name="label" translatable="yes">_Ignore rich content in incoming messages</property> - <property name="visible">True</property> + <object class="GtkCheckButton" id="speller_checkbutton"> + <property name="label" translatable="yes">_Highlight misspelled words</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Some messages may include rich content (formatting, colors etc). If checked, Gajim will just display the raw message text.</property> + <property name="tooltip_text" translatable="yes">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.</property> <property name="halign">start</property> - <property name="margin_top">18</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_xhtml_checkbutton_toggled" swapped="no"/> + <signal name="toggled" handler="on_speller_checkbutton_toggled" swapped="no"/> </object> <packing> <property name="left_attach">0</property> @@ -432,15 +372,14 @@ </packing> </child> <child> - <object class="GtkCheckButton" id="speller_checkbutton"> - <property name="label" translatable="yes">_Highlight misspelled words</property> + <object class="GtkCheckButton" id="positive_184_ack_checkbutton"> + <property name="label" translatable="yes">Notify by icon when your messages are received</property> + <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">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.</property> <property name="halign">start</property> - <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_speller_checkbutton_toggled" swapped="no"/> + <signal name="toggled" handler="on_positive_184_ack_checkbutton_toggled" swapped="no"/> </object> <packing> <property name="left_attach">0</property> @@ -449,14 +388,14 @@ </packing> </child> <child> - <object class="GtkCheckButton" id="positive_184_ack_checkbutton"> - <property name="label" translatable="yes">Notify by icon when your messages are received</property> + <object class="GtkCheckButton" id="show_avatar_in_tabs_checkbutton"> + <property name="label" translatable="yes">Show avatar in chat tabs</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="halign">start</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_positive_184_ack_checkbutton_toggled" swapped="no"/> + <signal name="toggled" handler="on_show_avatar_in_tabs_checkbutton_toggled" swapped="no"/> </object> <packing> <property name="left_attach">0</property> @@ -465,14 +404,31 @@ </packing> </child> <child> - <object class="GtkComboBox" id="show_roster_on_startup"> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Window behavior</property> + <property name="use_underline">True</property> + <property name="justify">right</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="one_window_type_combobox"> <property name="width_request">50</property> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="model">liststore7</property> - <signal name="changed" handler="on_show_roster_on_startup_changed" swapped="no"/> + <property name="model">liststore6</property> + <signal name="changed" handler="on_one_window_type_combo_changed" swapped="no"/> <child> - <object class="GtkCellRendererText" id="cellrenderertext7"/> + <object class="GtkCellRendererText" id="cellrenderertext6"/> <attributes> <attribute name="text">0</attribute> </attributes> @@ -480,18 +436,18 @@ </object> <packing> <property name="left_attach">1</property> - <property name="top_attach">2</property> + <property name="top_attach">0</property> </packing> </child> <child> - <object class="GtkComboBox" id="one_window_type_combobox"> + <object class="GtkComboBox" id="show_roster_on_startup"> <property name="width_request">50</property> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="model">liststore6</property> - <signal name="changed" handler="on_one_window_type_combo_changed" swapped="no"/> + <property name="model">liststore7</property> + <signal name="changed" handler="on_show_roster_on_startup_changed" swapped="no"/> <child> - <object class="GtkCellRendererText" id="cellrenderertext6"/> + <object class="GtkCellRendererText" id="cellrenderertext7"/> <attributes> <attribute name="text">0</attribute> </attributes> @@ -503,36 +459,45 @@ </packing> </child> <child> - <object class="GtkCheckButton" id="show_avatar_in_tabs_checkbutton"> - <property name="label" translatable="yes">Show avatar in chat tabs</property> + <object class="GtkLabel"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="halign">start</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_show_avatar_in_tabs_checkbutton_toggled" swapped="no"/> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">_Show roster on startup</property> + <property name="use_underline">True</property> + <property name="justify">right</property> + <style> + <class name="dim-label"/> + </style> </object> <packing> <property name="left_attach">0</property> - <property name="top_attach">6</property> - <property name="width">2</property> + <property name="top_attach">1</property> </packing> </child> <child> - <object class="GtkComboBoxText" id="emoticons_combobox"> + <object class="GtkCheckButton" id="xhtml_checkbutton"> + <property name="label" translatable="yes">_Ignore rich content in incoming messages</property> <property name="visible">True</property> - <property name="can_focus">False</property> - <signal name="changed" handler="on_emoticons_combobox_changed" swapped="no"/> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip_text" translatable="yes">Some messages may include rich content (formatting, colors etc). If checked, Gajim will just display the raw message text.</property> + <property name="halign">start</property> + <property name="margin_top">18</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_xhtml_checkbutton_toggled" swapped="no"/> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> + <property name="left_attach">0</property> + <property name="top_attach">2</property> + <property name="width">2</property> </packing> </child> </object> </child> <child type="label"> - <object class="GtkLabel" id="label2"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> @@ -1499,7 +1464,7 @@ $T will be replaced by auto-not-available timeout</property> </packing> </child> <child> - <object class="GtkBox" id="vbox58"> + <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="margin_left">18</property> @@ -1509,170 +1474,300 @@ $T will be replaced by auto-not-available timeout</property> <property name="orientation">vertical</property> <property name="spacing">12</property> <child> - <object class="GtkFrame" id="frame3"> + <object class="GtkGrid"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label_xalign">0</property> - <property name="shadow_type">none</property> + <property name="row_spacing">6</property> + <property name="column_spacing">12</property> <child> - <object class="GtkGrid" id="grid10"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">12</property> - <property name="margin_top">6</property> - <property name="row_spacing">6</property> - <property name="column_spacing">12</property> - <child> - <object class="GtkLabel" id="label249"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">T_heme</property> - <property name="use_underline">True</property> - <property name="justify">right</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="theme_combobox"> - <property name="width_request">200</property> - <property name="visible">True</property> - <property name="can_focus">False</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkComboBox" id="iconset_combobox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <signal name="changed" handler="on_iconset_combobox_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkButton" id="manage_theme_button"> - <property name="label" translatable="yes">Ma_nage...</property> - <property name="width_request">120</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Configure color and font of the interface</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_manage_theme_button_clicked" swapped="no"/> - </object> - <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> - </packing> - </child> - <child> - <object class="GtkCheckButton" id="transports_iconsets_checkbutton"> - <property name="label" translatable="yes">Use _transports icons</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">If checked, Gajim will use protocol-specific status icons. (e.g. A contact from ICQ will have the equivalent ICQ icon for status online, away, busy, etc...)</property> - <property name="halign">start</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_transports_iconsets_checkbutton_toggled" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">3</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label174"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">Status _iconset</property> - <property name="use_underline">True</property> - <property name="justify">right</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - </packing> - </child> - <child> - <object class="GtkLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="halign">end</property> - <property name="label" translatable="yes">Dark Theme</property> - <property name="use_underline">True</property> - <property name="justify">right</property> - <style> - <class name="dim-label"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="dark_theme_combobox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <items> - <item id="2" translatable="yes">System</item> - <item id="1" translatable="yes">Enabled</item> - <item id="0" translatable="yes">Disabled</item> - </items> - <signal name="changed" handler="on_dark_theme_changed" swapped="no"/> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child> - <placeholder/> - </child> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Themes</property> + <style> + <class name="bold"/> + </style> </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">2</property> + </packing> </child> - <child type="label"> - <object class="GtkLabel" id="label3"> + <child> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label" translatable="yes"><b>Themes</b></property> - <property name="use_markup">True</property> + <property name="halign">end</property> + <property name="label" translatable="yes">Theme</property> + <property name="use_underline">True</property> + <property name="justify">right</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="theme_combobox"> + <property name="width_request">200</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="manage_theme_button"> + <property name="label" translatable="yes">Ma_nage...</property> + <property name="width_request">120</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip_text" translatable="yes">Configure color and font of the interface</property> + <property name="use_underline">True</property> + <signal name="clicked" handler="on_manage_theme_button_clicked" swapped="no"/> + </object> + <packing> + <property name="left_attach">3</property> + <property name="top_attach">1</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">Dark Theme</property> + <property name="use_underline">True</property> + <property name="justify">right</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">2</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="dark_theme_combobox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <items> + <item id="2" translatable="yes">System</item> + <item id="1" translatable="yes">Enabled</item> + <item id="0" translatable="yes">Disabled</item> + </items> + <signal name="changed" handler="on_dark_theme_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Emojis</property> + <style> + <class name="bold"/> + <class name="margin-top6"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">3</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">Emoji Theme</property> + <property name="use_underline">True</property> + <property name="justify">right</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">4</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="emoticons_combobox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <signal name="changed" handler="on_emoticons_combobox_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">4</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Icons</property> + <style> + <class name="bold"/> + <class name="margin-top6"/> + </style> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">6</property> + <property name="width">2</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <property name="label" translatable="yes">Status iconset</property> + <property name="use_underline">True</property> + <property name="justify">right</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">7</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="iconset_combobox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <signal name="changed" handler="on_iconset_combobox_changed" swapped="no"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">7</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="transports_iconsets_checkbutton"> + <property name="label" translatable="yes">Use _transports icons</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip_text" translatable="yes">If checked, Gajim will use protocol-specific status icons. (e.g. A contact from ICQ will have the equivalent ICQ icon for status online, away, busy, etc...)</property> + <property name="halign">start</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_transports_iconsets_checkbutton_toggled" swapped="no"/> + </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">8</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">end</property> + <style> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">5</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="ascii_emoticons"> + <property name="label" translatable="yes">_Convert ASCII Emojis</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_convert_ascii_toggle" swapped="no"/> </object> + <packing> + <property name="left_attach">2</property> + <property name="top_attach">5</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> </child> </object> <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">1</property> + <property name="position">0</property> </packing> </child> </object> diff --git a/gajim/data/style/gajim.css b/gajim/data/style/gajim.css index e79fe55594..f95340fd71 100644 --- a/gajim/data/style/gajim.css +++ b/gajim/data/style/gajim.css @@ -190,6 +190,7 @@ list.settings > row > box { /* Text style */ +.bold { font-weight: bold; } .bold16 { font-size: 16px; font-weight: bold; } .bold24 { font-size: 24px; font-weight: bold; } .large-header { font-size: 20px; font-weight: bold; } @@ -197,6 +198,9 @@ list.settings > row > box { .status-dnd { color: #e62e00;} .status-online { color: #66bf10;} +/* Padding/Margins */ +.margin-top6 { margin-top: 6px; } + /* Treeview */ treeview.space { padding: 6px; } diff --git a/gajim/gtk/preferences.py b/gajim/gtk/preferences.py index 5517174d95..723f97d4a9 100644 --- a/gajim/gtk/preferences.py +++ b/gajim/gtk/preferences.py @@ -110,20 +110,6 @@ class Preferences(Gtk.ApplicationWindow): st = app.config.get('sort_by_show_in_muc') self.xml.get_object('sort_by_show_in_muc_checkbutton').set_active(st) - # emoticons - emoticons_combobox = self.xml.get_object('emoticons_combobox') - emoticon_themes = helpers.get_available_emoticon_themes() - - emoticons_combobox.append_text(_('Disabled')) - for theme in emoticon_themes: - emoticons_combobox.append_text(theme) - - config_theme = app.config.get('emoticons_theme') - if config_theme not in emoticon_themes: - config_theme = _('Disabled') - emoticons_combobox.set_id_column(0) - emoticons_combobox.set_active_id(config_theme) - # Set default for single window type choices = c_config.opt_one_window_types type_ = app.config.get('one_message_window') @@ -213,6 +199,21 @@ class Preferences(Gtk.ApplicationWindow): dark_theme_combo = self.xml.get_object('dark_theme_combobox') dark_theme_combo.set_active_id(str(app.config.get('dark_theme'))) + # Emoticons + emoticons_combobox = self.xml.get_object('emoticons_combobox') + emoticon_themes = helpers.get_available_emoticon_themes() + + for theme in emoticon_themes: + emoticons_combobox.append_text(theme) + + config_theme = app.config.get('emoticons_theme') + if config_theme not in emoticon_themes: + config_theme = 'font' + emoticons_combobox.set_id_column(0) + emoticons_combobox.set_active_id(config_theme) + + self.xml.ascii_emoticons.set_active(app.config.get('ascii_emoticons')) + ### Personal Events tab ### # outgoing send chat state notifications st = app.config.get('outgoing_chat_state_notifications') @@ -564,11 +565,7 @@ class Preferences(Gtk.ApplicationWindow): active = widget.get_active() model = widget.get_model() emot_theme = model[active][0] - if emot_theme == _('Disabled'): - app.config.set('emoticons_theme', '') - else: - app.config.set('emoticons_theme', emot_theme) - + app.config.set('emoticons_theme', emot_theme) from gajim.gtk.emoji_chooser import emoji_chooser emoji_chooser.load() self.toggle_emoticons() @@ -657,6 +654,10 @@ class Preferences(Gtk.ApplicationWindow): app.config.set('iconset', icon_string) gtkgui_helpers.reload_jabber_state_images() + def on_convert_ascii_toggle(self, widget): + app.config.set('ascii_emoticons', widget.get_active()) + app.interface.make_regexps() + def on_transports_iconsets_checkbutton_toggled(self, widget): self.on_checkbutton_toggled(widget, 'use_transports_iconsets') gtkgui_helpers.reload_jabber_state_images() diff --git a/gajim/gui_interface.py b/gajim/gui_interface.py index f61c1b2d0c..41d2e0d5de 100644 --- a/gajim/gui_interface.py +++ b/gajim/gui_interface.py @@ -1819,6 +1819,11 @@ class Interface: # so http://be) will match http://be and http://be)be) will match # http://be)be + self._basic_pattern_re = None + self._emot_and_basic_re = None + self._sth_at_sth_dot_sth_re = None + self._invalid_XML_chars_re = None + legacy_prefixes = r"((?<=\()(www|ftp)\.([A-Za-z0-9\.\-_~:/\?#\[\]@!\$"\ r"&'\(\)\*\+,;=]|%[A-Fa-f0-9]{2})+(?=\)))"\ r"|((www|ftp)\.([A-Za-z0-9\.\-_~:/\?#\[\]@!\$&'\(\)\*\+,;=]"\ -- GitLab