summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2023-02-24 03:38:40 -0600
committerGary Kramlich <grim@reaperworld.com>2023-02-24 03:38:40 -0600
commitbf0b9cabed2bbeebd1c290dea5e52eaf388820b6 (patch)
tree7c7b2b7ff3e51a2f227db0382caa4aacbbf71bf7
parentc8ac6f53fa38f78787396b4d1caff09af2ccc67d (diff)
downloadpidgin-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.build2
-rw-r--r--pidgin/gtkconv.c10
-rw-r--r--pidgin/gtknotify.c7
-rw-r--r--pidgin/gtkpluginpref.c12
-rw-r--r--pidgin/gtkrequest.c7
-rw-r--r--pidgin/pidginabout.c5
-rw-r--r--pidgin/pidgintalkatu.c21
-rw-r--r--pidgin/resources/About/about.ui11
-rw-r--r--pidgin/resources/Prefs/conversation.ui1
-rw-r--r--pidgin/resources/Status/editor.ui11
-rw-r--r--subprojects/talkatu.wrap2
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