diff options
author | Gary Kramlich <grim@reaperworld.com> | 2023-02-24 03:38:40 -0600 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2023-02-24 03:38:40 -0600 |
commit | bf0b9cabed2bbeebd1c290dea5e52eaf388820b6 (patch) | |
tree | 7c7b2b7ff3e51a2f227db0382caa4aacbbf71bf7 | |
parent | c8ac6f53fa38f78787396b4d1caff09af2ccc67d (diff) | |
download | pidgin-bf0b9cabed2bbeebd1c290dea5e52eaf388820b6.tar.gz |
Update to talkatu 0.2.0
Testing Done:
Compiled, ran, and veried the status editor and about dialogs worked as expected.
Reviewed at https://reviews.imfreedom.org/r/2279/
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | pidgin/gtkconv.c | 10 | ||||
-rw-r--r-- | pidgin/gtknotify.c | 7 | ||||
-rw-r--r-- | pidgin/gtkpluginpref.c | 12 | ||||
-rw-r--r-- | pidgin/gtkrequest.c | 7 | ||||
-rw-r--r-- | pidgin/pidginabout.c | 5 | ||||
-rw-r--r-- | pidgin/pidgintalkatu.c | 21 | ||||
-rw-r--r-- | pidgin/resources/About/about.ui | 11 | ||||
-rw-r--r-- | pidgin/resources/Prefs/conversation.ui | 1 | ||||
-rw-r--r-- | pidgin/resources/Status/editor.ui | 11 | ||||
-rw-r--r-- | subprojects/talkatu.wrap | 2 |
11 files changed, 68 insertions, 21 deletions
diff --git a/meson.build b/meson.build index 64b62c8fe4..1ab00a864c 100644 --- a/meson.build +++ b/meson.build @@ -240,7 +240,7 @@ if get_option('gtkui') libadwaita = dependency('libadwaita-1', version : '>= 1.2') talkatu_dep = dependency('talkatu', - version: '>=0.1.0', + version: '>=0.2.0', fallback: ['talkatu', 'talkatu_dep']) endif # GTK diff --git a/pidgin/gtkconv.c b/pidgin/gtkconv.c index d908515b05..54dc0e161c 100644 --- a/pidgin/gtkconv.c +++ b/pidgin/gtkconv.c @@ -440,6 +440,8 @@ pidgin_conv_switch_active_conversation(PurpleConversation *conv) static GtkWidget * setup_common_pane(PidginConversation *gtkconv) { + GSimpleActionGroup *ag = NULL; + GtkTextBuffer *buffer = NULL; GtkWidget *vbox, *input, *hpaned, *sw; GtkEventController *key = NULL; PurpleConversation *conv = gtkconv->active_conv; @@ -482,7 +484,13 @@ setup_common_pane(PidginConversation *gtkconv) /* Setup the entry widget and all signals */ gtkconv->editor = talkatu_editor_new(); - talkatu_editor_set_buffer(TALKATU_EDITOR(gtkconv->editor), talkatu_html_buffer_new()); + ag = talkatu_action_group_new(TALKATU_FORMAT_HTML); + buffer = talkatu_buffer_new(ag); + talkatu_action_group_set_buffer(TALKATU_ACTION_GROUP(ag), buffer); + g_clear_object(&ag); + + talkatu_editor_set_buffer(TALKATU_EDITOR(gtkconv->editor), buffer); + g_clear_object(&buffer); gtk_box_append(GTK_BOX(vbox), gtkconv->editor); input = talkatu_editor_get_input(TALKATU_EDITOR(gtkconv->editor)); diff --git a/pidgin/gtknotify.c b/pidgin/gtknotify.c index b334088eaa..30aa690424 100644 --- a/pidgin/gtknotify.c +++ b/pidgin/gtknotify.c @@ -254,6 +254,7 @@ pidgin_notify_formatted(const char *title, const char *primary, GtkWidget *sw; GtkWidget *view; GtkTextBuffer *buffer; + GSimpleActionGroup *ag = NULL; char label_text[2048]; char *linked_text, *primary_esc, *secondary_esc; @@ -291,7 +292,11 @@ pidgin_notify_formatted(const char *title, const char *primary, gtk_box_append(GTK_BOX(vbox), sw); gtk_widget_set_vexpand(sw, TRUE); - buffer = talkatu_html_buffer_new(); + ag = talkatu_action_group_new(TALKATU_FORMAT_HTML); + buffer = talkatu_buffer_new(ag); + talkatu_action_group_set_buffer(TALKATU_ACTION_GROUP(ag), buffer); + g_clear_object(&ag); + view = talkatu_view_new_with_buffer(buffer); gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(sw), view); gtk_widget_set_name(view, "pidgin_notify_view"); diff --git a/pidgin/gtkpluginpref.c b/pidgin/gtkpluginpref.c index 903fab4dae..a4c3292c65 100644 --- a/pidgin/gtkpluginpref.c +++ b/pidgin/gtkpluginpref.c @@ -94,6 +94,7 @@ make_string_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) { GtkWidget *editor; GtkWidget *input; GtkTextBuffer *buffer; + GSimpleActionGroup *ag = NULL; box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6); @@ -120,10 +121,15 @@ make_string_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) { input = talkatu_editor_get_input(TALKATU_EDITOR(editor)); if ((format & PURPLE_STRING_FORMAT_TYPE_HTML) != 0) { - buffer = talkatu_html_buffer_new(); - } else { - buffer = talkatu_buffer_new(NULL); + ag = talkatu_action_group_new(TALKATU_FORMAT_HTML); + } + + buffer = talkatu_buffer_new(ag); + if(TALKATU_IS_ACTION_GROUP(ag)) { + talkatu_action_group_set_buffer(TALKATU_ACTION_GROUP(ag), + buffer); } + g_clear_object(&ag); gtk_text_view_set_buffer(GTK_TEXT_VIEW(input), buffer); diff --git a/pidgin/gtkrequest.c b/pidgin/gtkrequest.c index 16421d25d4..6c6256676a 100644 --- a/pidgin/gtkrequest.c +++ b/pidgin/gtkrequest.c @@ -632,7 +632,12 @@ pidgin_request_input(const char *title, const char *primary, gtk_box_append(GTK_BOX(vbox), editor); if (purple_strequal(data->u.input.hint, "html")) { - buffer = talkatu_html_buffer_new(); + GSimpleActionGroup *ag = NULL; + + ag = talkatu_action_group_new(TALKATU_FORMAT_HTML); + buffer = talkatu_buffer_new(ag); + talkatu_action_group_set_buffer(TALKATU_ACTION_GROUP(ag), buffer); + g_clear_object(&ag); if(default_value != NULL) { talkatu_markup_set_html(TALKATU_BUFFER(buffer), default_value, -1); diff --git a/pidgin/pidginabout.c b/pidgin/pidginabout.c index b7fd09f578..c35448fe31 100644 --- a/pidgin/pidginabout.c +++ b/pidgin/pidginabout.c @@ -80,7 +80,6 @@ pidgin_about_dialog_load_main_page(PidginAboutDialog *about) { GtkTextIter start; GInputStream *istream = NULL; GString *str = NULL; - TalkatuMarkdownBuffer *md_buffer = NULL; gchar buffer[8192]; gssize read = 0, size = 0; @@ -98,8 +97,8 @@ pidgin_about_dialog_load_main_page(PidginAboutDialog *about) { gtk_text_buffer_get_start_iter(about->main_buffer, &start); - md_buffer = TALKATU_MARKDOWN_BUFFER(about->main_buffer); - talkatu_markdown_buffer_insert_markdown(md_buffer, &start, str->str, size); + talkatu_markdown_insert(TALKATU_BUFFER(about->main_buffer), &start, + str->str, size); g_string_free(str, TRUE); diff --git a/pidgin/pidgintalkatu.c b/pidgin/pidgintalkatu.c index 00569db184..cdaf4fbde9 100644 --- a/pidgin/pidgintalkatu.c +++ b/pidgin/pidgintalkatu.c @@ -43,18 +43,29 @@ GtkTextBuffer * pidgin_talkatu_buffer_new_for_connection(PurpleConnection *pc) { PurpleConnectionFlags flags = 0; GtkTextBuffer *buffer = NULL; + GSimpleActionGroup *ag = NULL; + TalkatuBufferStyle style = TALKATU_BUFFER_STYLE_RICH; g_return_val_if_fail(pc != NULL, NULL); flags = purple_connection_get_flags(pc); if(flags & PURPLE_CONNECTION_FLAG_HTML) { - buffer = talkatu_html_buffer_new(); - } else if(flags & PURPLE_CONNECTION_FLAG_FORMATTING_WBFO) { - buffer = talkatu_whole_buffer_new(); - } else { - buffer = talkatu_buffer_new(NULL); + ag = talkatu_action_group_new(TALKATU_FORMAT_HTML); } + if(flags & PURPLE_CONNECTION_FLAG_FORMATTING_WBFO) { + style = TALKATU_BUFFER_STYLE_WHOLE; + } + + buffer = g_object_new(TALKATU_TYPE_BUFFER, + "action-group", ag, + "style", style, + NULL); + if(TALKATU_IS_ACTION_GROUP(ag)) { + talkatu_action_group_set_buffer(TALKATU_ACTION_GROUP(ag), buffer); + } + g_clear_object(&ag); + return buffer; } diff --git a/pidgin/resources/About/about.ui b/pidgin/resources/About/about.ui index cf792e4bcf..998f38b934 100644 --- a/pidgin/resources/About/about.ui +++ b/pidgin/resources/About/about.ui @@ -21,12 +21,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --> <interface> <requires lib="gtk" version="4.0"/> - <requires lib="Talkatu" version="0.0"/> + <requires lib="Talkatu" version="0.2.0"/> <!-- interface-license-type gplv2 --> <!-- interface-name Pidgin --> <!-- interface-description Internet Messenger --> <!-- interface-copyright Pidgin Developers <devel@pidgin.im> --> - <object class="TalkatuMarkdownBuffer" id="main_buffer"/> + <object class="TalkatuBuffer" id="main_buffer"> + <property name="action-group"> + <object class="TalkatuActionGroup"> + <property name="format">markdown</property> + <property name="buffer">main_buffer</property> + </object> + </property> + </object> <template class="PidginAboutDialog" parent="GtkDialog"> <property name="default-height">600</property> <signal name="response" handler="pidgin_about_dialog_response_cb" swapped="no"/> diff --git a/pidgin/resources/Prefs/conversation.ui b/pidgin/resources/Prefs/conversation.ui index 8482f309c8..f29f9e740d 100644 --- a/pidgin/resources/Prefs/conversation.ui +++ b/pidgin/resources/Prefs/conversation.ui @@ -19,7 +19,6 @@ along with this program; if not, see <https://www.gnu.org/licenses/>. <interface> <requires lib="gtk" version="4.0"/> <requires lib="Adw" version="1.0"/> - <requires lib="Talkatu" version="0.0"/> <!-- interface-license-type gplv2 --> <!-- interface-name Pidgin --> <!-- interface-description Internet Messenger --> diff --git a/pidgin/resources/Status/editor.ui b/pidgin/resources/Status/editor.ui index 82620cc90c..19fbd96d86 100644 --- a/pidgin/resources/Status/editor.ui +++ b/pidgin/resources/Status/editor.ui @@ -18,7 +18,7 @@ along with this library; if not, see <https://www.gnu.org/licenses/>. --> <interface> <requires lib="gtk" version="4.0"/> - <requires lib="Talkatu" version="0.1"/> + <requires lib="Talkatu" version="0.2.0"/> <requires lib="pidgin" version="3.0"/> <!-- interface-license-type gplv2 --> <!-- interface-name Pidgin --> @@ -157,5 +157,12 @@ along with this library; if not, see <https://www.gnu.org/licenses/>. <widget name="label3"/> </widgets> </object> - <object class="TalkatuHtmlBuffer" id="buffer"/> + <object class="TalkatuBuffer" id="buffer"> + <property name="action-group"> + <object class="TalkatuActionGroup"> + <property name="format">html</property> + <property name="buffer">buffer</property> + </object> + </property> + </object> </interface> diff --git a/subprojects/talkatu.wrap b/subprojects/talkatu.wrap index bdeb71d65b..21ba2b6132 100644 --- a/subprojects/talkatu.wrap +++ b/subprojects/talkatu.wrap @@ -1,4 +1,4 @@ [wrap-hg] directory = talkatu url = https://keep.imfreedom.org/talkatu/talkatu -revision = v0.1.0
\ No newline at end of file +revision = v0.2.0 |