[vte] widget: Move some methods to VteTerminalPrivate
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] widget: Move some methods to VteTerminalPrivate
- Date: Fri, 20 Nov 2015 19:59:32 +0000 (UTC)
commit 8ea73b295bac5c5fd1fa37759140297d83c6cbb3
Author: Christian Persch <chpe gnome org>
Date: Fri Nov 20 20:58:31 2015 +0100
widget: Move some methods to VteTerminalPrivate
src/vte.cc | 58 ++++++++++++++++--------------------------
src/vtegtk.cc | 70 +++++++++++++++++++++++++++------------------------
src/vtegtk.hh | 4 +++
src/vteinternal.hh | 3 ++
4 files changed, 66 insertions(+), 69 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index 91f6bcb..576ed9b 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -825,19 +825,20 @@ VteTerminalPrivate::invalidate_cursor_periodic()
}
/* Emit a "selection_changed" signal. */
-static void
-vte_terminal_emit_selection_changed(VteTerminal *terminal)
+void
+VteTerminalPrivate::emit_selection_changed()
{
_vte_debug_print(VTE_DEBUG_SIGNALS,
"Emitting `selection-changed'.\n");
- g_signal_emit_by_name(terminal, "selection-changed");
+ g_signal_emit(m_terminal, signals[SIGNAL_SELECTION_CHANGED], 0);
}
/* Emit a "commit" signal. */
-static void
-vte_terminal_emit_commit(VteTerminal *terminal, const gchar *text, gssize length)
+void
+VteTerminalPrivate::emit_commit(char const* text,
+ gssize length)
{
- const char *result = NULL;
+ char const* result = NULL;
char *wrapped = NULL;
_vte_debug_print(VTE_DEBUG_SIGNALS,
@@ -847,37 +848,18 @@ vte_terminal_emit_commit(VteTerminal *terminal, const gchar *text, gssize length
length = strlen(text);
result = text;
} else {
+ // FIXMEchpe why use the slice allocator here?
result = wrapped = (char *) g_slice_alloc(length + 1);
memcpy(wrapped, text, length);
wrapped[length] = '\0';
}
- g_signal_emit_by_name(terminal, "commit", result, length);
+ g_signal_emit(m_terminal, signals[SIGNAL_COMMIT], 0, result, (guint)length);
if(wrapped)
g_slice_free1(length+1, wrapped);
}
-/* Emit an "encoding-changed" signal. */
-static void
-vte_terminal_emit_encoding_changed(VteTerminal *terminal)
-{
- _vte_debug_print(VTE_DEBUG_SIGNALS,
- "Emitting `encoding-changed'.\n");
- g_signal_emit_by_name(terminal, "encoding-changed");
- g_object_notify(G_OBJECT(terminal), "encoding");
-}
-
-/* Emit a "child-exited" signal. */
-static void
-vte_terminal_emit_child_exited(VteTerminal *terminal,
- int status)
-{
- _vte_debug_print(VTE_DEBUG_SIGNALS,
- "Emitting `child-exited'.\n");
- g_signal_emit_by_name(terminal, "child-exited", status);
-}
-
void
_vte_terminal_queue_contents_changed(VteTerminal *terminal)
{
@@ -1016,7 +998,7 @@ VteTerminalPrivate::deselect_all()
/* Don't free the current selection, as we need to keep
* hold of it for async copying from the clipboard. */
- vte_terminal_emit_selection_changed(m_terminal);
+ emit_selection_changed();
sx = m_selection_start.col;
sy = m_selection_start.row;
@@ -2402,7 +2384,10 @@ VteTerminalPrivate::set_encoding(char const* codeset)
_vte_debug_print(VTE_DEBUG_IO,
"Set terminal encoding to `%s'.\n",
m_encoding);
- vte_terminal_emit_encoding_changed(m_terminal);
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `encoding-changed'.\n");
+ g_signal_emit(object, signals[SIGNAL_ENCODING_CHANGED], 0);
+ g_object_notify_by_pspec(object, pspecs[PROP_ENCODING]);
g_object_thaw_notify(object);
@@ -3584,7 +3569,9 @@ vte_terminal_child_watch_cb(GPid pid,
vte_terminal_set_pty(terminal, NULL);
/* Tell observers what's happened. */
- vte_terminal_emit_child_exited(terminal, status);
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `child-exited'.\n");
+ g_signal_emit(object, signals[SIGNAL_CHILD_EXITED], 0, status);
g_object_thaw_notify(object);
g_object_unref(object);
@@ -4582,7 +4569,7 @@ vte_terminal_send(VteTerminal *terminal, const char *encoding,
}
/* Tell observers that we're sending this to the child. */
if (cooked_length > 0) {
- vte_terminal_emit_commit(terminal,
+ terminal->pvt->emit_commit(
cooked, cooked_length);
}
/* Echo the text if we've been asked to do so. */
@@ -4678,8 +4665,7 @@ VteTerminalPrivate::feed_child_binary(guint8 const* data,
/* Tell observers that we're sending this to the child. */
if (length > 0) {
- vte_terminal_emit_commit(m_terminal,
- (char*)data, length);
+ emit_commit((char const*)data, length);
/* If there's a place for it to go, add the data to the
* outgoing buffer. */
@@ -6669,7 +6655,7 @@ _vte_terminal_maybe_end_selection (VteTerminal *terminal)
!terminal->pvt->selecting_restart &&
terminal->pvt->selecting_had_delta) {
vte_terminal_copy_primary(terminal);
- vte_terminal_emit_selection_changed(terminal);
+ terminal->pvt->emit_selection_changed();
}
terminal->pvt->selecting = FALSE;
@@ -7148,7 +7134,7 @@ VteTerminalPrivate::select_all()
_vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n");
vte_terminal_copy_primary(m_terminal);
- vte_terminal_emit_selection_changed(m_terminal);
+ emit_selection_changed();
invalidate_all();
}
@@ -10745,7 +10731,7 @@ _vte_terminal_select_text(VteTerminal *terminal,
terminal->pvt->selection_end.col = end_col;
terminal->pvt->selection_end.row = end_row;
vte_terminal_copy_primary(terminal);
- vte_terminal_emit_selection_changed(terminal);
+ terminal->pvt->emit_selection_changed();
_vte_invalidate_region (terminal,
MIN (start_col, end_col), MAX (start_col, end_col),
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index f134257..f9a2b56 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -659,15 +659,16 @@ vte_terminal_class_init(VteTerminalClass *klass)
* This signal is emitted when the terminal detects that a child
* watched using vte_terminal_watch_child() has exited.
*/
- g_signal_new(I_("child-exited"),
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(VteTerminalClass, child_exited),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__INT,
- G_TYPE_NONE,
- 1, G_TYPE_INT);
+ signals[SIGNAL_CHILD_EXITED] =
+ g_signal_new(I_("child-exited"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, child_exited),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__INT,
+ G_TYPE_NONE,
+ 1, G_TYPE_INT);
/**
* VteTerminal::window-title-changed:
@@ -741,14 +742,15 @@ vte_terminal_class_init(VteTerminalClass *klass)
* as a result of receiving a control sequence which toggled between the
* local and UTF-8 encodings, or at the parent application's request.
*/
- g_signal_new(I_("encoding-changed"),
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(VteTerminalClass, encoding_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ signals[SIGNAL_ENCODING_CHANGED] =
+ g_signal_new(I_("encoding-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, encoding_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
/**
* VteTerminal::commit:
@@ -760,14 +762,15 @@ vte_terminal_class_init(VteTerminalClass *klass)
* prepares to send it to the child process. The signal is emitted even
* when there is no child process.
*/
- g_signal_new(I_("commit"),
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(VteTerminalClass, commit),
- NULL,
- NULL,
- _vte_marshal_VOID__STRING_UINT,
- G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_UINT);
+ signals[SIGNAL_COMMIT] =
+ g_signal_new(I_("commit"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, commit),
+ NULL,
+ NULL,
+ _vte_marshal_VOID__STRING_UINT,
+ G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_UINT);
/**
* VteTerminal::char-size-changed:
@@ -793,14 +796,15 @@ vte_terminal_class_init(VteTerminalClass *klass)
*
* Emitted whenever the contents of terminal's selection changes.
*/
- g_signal_new (I_("selection-changed"),
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(VteTerminalClass, selection_changed),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ signals[SIGNAL_SELECTION_CHANGED] =
+ g_signal_new (I_("selection-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, selection_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
/**
* VteTerminal::contents-changed:
diff --git a/src/vtegtk.hh b/src/vtegtk.hh
index a442572..3255eb5 100644
--- a/src/vtegtk.hh
+++ b/src/vtegtk.hh
@@ -26,11 +26,15 @@
#pragma once
enum {
+ SIGNAL_CHILD_EXITED,
+ SIGNAL_COMMIT,
SIGNAL_CONTENTS_CHANGED,
SIGNAL_CURRENT_DIRECTORY_URI_CHANGED,
SIGNAL_CURRENT_FILE_URI_CHANGED,
SIGNAL_CURSOR_MOVED,
+ SIGNAL_ENCODING_CHANGED,
SIGNAL_ICON_TITLE_CHANGED,
+ SIGNAL_SELECTION_CHANGED,
SIGNAL_TEXT_DELETED,
SIGNAL_TEXT_INSERTED,
SIGNAL_TEXT_MODIFIED,
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index aa5a543..44ca058 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -531,6 +531,9 @@ public:
void beep();
void emit_adjustment_changed();
+ void emit_commit(char const* text,
+ gssize length);
+ void emit_selection_changed();
void queue_adjustment_changed();
void queue_adjustment_value_changed(double v);
void queue_adjustment_value_changed_clamped(double v);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]