[Libreoffice-commits] core.git: include/vcl vcl/source vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jul 6 15:57:25 UTC 2020
include/vcl/weld.hxx | 5 +++++
vcl/source/app/salvtables.cxx | 16 ++++++++++++++++
vcl/unx/gtk3/gtk3gtkinst.cxx | 29 +++++++++++++++++++++++++++++
3 files changed, 50 insertions(+)
New commits:
commit 57ac9d6176305ad1d405b83a9423cd103bdaa20b
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jul 6 11:27:24 2020 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Jul 6 17:56:43 2020 +0200
add get_editable and clipboard interaction to TextView
Change-Id: I5d0e1823685ef2334571d5279a300d177ac4a9db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98206
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index f2c6713dc77c..8c9788a2f589 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -2014,6 +2014,7 @@ public:
virtual bool get_selection_bounds(int& rStartPos, int& rEndPos) = 0;
virtual void replace_selection(const OUString& rText) = 0;
virtual void set_editable(bool bEditable) = 0;
+ virtual bool get_editable() const = 0;
virtual void set_monospace(bool bMonospace) = 0;
int get_height_rows(int nRows) const
{
@@ -2030,6 +2031,10 @@ public:
m_aCursorPositionHdl = rLink;
}
+ virtual void cut_clipboard() = 0;
+ virtual void copy_clipboard() = 0;
+ virtual void paste_clipboard() = 0;
+
virtual int vadjustment_get_value() const = 0;
virtual int vadjustment_get_upper() const = 0;
virtual int vadjustment_get_lower() const = 0;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 6343dfe21ffe..dcc4b53b9887 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -5463,6 +5463,7 @@ public:
}
virtual void set_editable(bool bEditable) override { m_xTextView->SetReadOnly(!bEditable); }
+ virtual bool get_editable() const override { return !m_xTextView->IsReadOnly(); }
virtual void set_monospace(bool bMonospace) override
{
@@ -5485,6 +5486,21 @@ public:
weld::TextView::connect_cursor_position(rLink);
}
+ virtual void cut_clipboard() override
+ {
+ m_xTextView->Cut();
+ }
+
+ virtual void copy_clipboard() override
+ {
+ m_xTextView->Copy();
+ }
+
+ virtual void paste_clipboard() override
+ {
+ m_xTextView->Paste();
+ }
+
virtual int vadjustment_get_value() const override
{
ScrollBar& rVertScrollBar = m_xTextView->GetVScrollBar();
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index bbcb6218aed3..9fc0809f0a3e 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -12484,6 +12484,11 @@ public:
gtk_text_view_set_editable(m_pTextView, bEditable);
}
+ virtual bool get_editable() const override
+ {
+ return gtk_text_view_get_editable(m_pTextView);
+ }
+
virtual void set_monospace(bool bMonospace) override
{
gtk_text_view_set_monospace(m_pTextView, bMonospace);
@@ -12505,6 +12510,30 @@ public:
g_signal_handler_unblock(m_pVAdjustment, m_nVAdjustChangedSignalId);
}
+ virtual void cut_clipboard() override
+ {
+ GtkClipboard *pClipboard = gtk_widget_get_clipboard(GTK_WIDGET(m_pTextView),
+ GDK_SELECTION_CLIPBOARD);
+ GtkTextBuffer* pBuffer = gtk_text_view_get_buffer(m_pTextView);
+ gtk_text_buffer_cut_clipboard(pBuffer, pClipboard, get_editable());
+ }
+
+ virtual void copy_clipboard() override
+ {
+ GtkClipboard *pClipboard = gtk_widget_get_clipboard(GTK_WIDGET(m_pTextView),
+ GDK_SELECTION_CLIPBOARD);
+ GtkTextBuffer* pBuffer = gtk_text_view_get_buffer(m_pTextView);
+ gtk_text_buffer_copy_clipboard(pBuffer, pClipboard);
+ }
+
+ virtual void paste_clipboard() override
+ {
+ GtkClipboard *pClipboard = gtk_widget_get_clipboard(GTK_WIDGET(m_pTextView),
+ GDK_SELECTION_CLIPBOARD);
+ GtkTextBuffer* pBuffer = gtk_text_view_get_buffer(m_pTextView);
+ gtk_text_buffer_paste_clipboard(pBuffer, pClipboard, nullptr, get_editable());
+ }
+
virtual int vadjustment_get_value() const override
{
return gtk_adjustment_get_value(m_pVAdjustment);
More information about the Libreoffice-commits
mailing list