helpcontent2                              |    2 
 sw/Library_swui.mk                        |    1 
 sw/UIConfig_swriter.mk                    |    1 
 sw/inc/cmdid.h                            |    1 
 sw/inc/swabstdlg.hxx                      |   13 ++
 sw/sdi/_textsh.sdi                        |    5 
 sw/sdi/swriter.sdi                        |   18 +++
 sw/source/ui/dialog/swdlgfact.cxx         |   17 +++
 sw/source/ui/dialog/swdlgfact.hxx         |    3 
 sw/source/ui/utlui/copyfielddlg.cxx       |   58 +++++++++++
 sw/source/uibase/docvw/romenu.cxx         |    6 -
 sw/source/uibase/docvw/romenu.hxx         |    1 
 sw/source/uibase/inc/copyfielddlg.hxx     |   37 +++++++
 sw/source/uibase/shells/textfld.cxx       |   32 +++++-
 sw/uiconfig/swriter/ui/copyfielddialog.ui |  157 ++++++++++++++++++++++++++++++
 sw/uiconfig/swriter/ui/readonlymenu.ui    |   14 ++
 16 files changed, 363 insertions(+), 3 deletions(-)

New commits:
commit 1c3ffcb60d55c2c2ac92bf998c98732f5d982fc2
Author:     Gabor Kelemen <gabor.kelemen.ext...@allotropia.de>
AuthorDate: Fri Jan 24 15:37:41 2025 +0100
Commit:     Gerrit Code Review <ger...@gerrit.libreoffice.org>
CommitDate: Fri Jan 24 15:37:41 2025 +0100

    Update git submodules
    
    * Update helpcontent2 from branch 'master'
      to b3d44a635cf6f1dde13883262a259c0d73e020a0
      - tdf#164318 Add help page for the new Copy Field Content dialog
    
        Change-Id: I3ea5b64ce58bcf934c3f80b2b45904bfb624f2b2
        Reviewed-on: https://gerrit.libreoffice.org/c/help/+/180419
        Reviewed-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de>
        Tested-by: Jenkins

diff --git a/helpcontent2 b/helpcontent2
index 5eeb4854797b..b3d44a635cf6 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 5eeb4854797b00302a1f78e439ec63c78e3f559c
+Subproject commit b3d44a635cf6f1dde13883262a259c0d73e020a0
commit a45428d4bdf733718bad2d87412eb0932c90d27e
Author:     Oliver Specht <oliver.spe...@cib.de>
AuthorDate: Wed Jan 8 14:20:43 2025 +0100
Commit:     Gabor Kelemen <gabor.kelemen.ext...@allotropia.de>
CommitDate: Fri Jan 24 15:37:29 2025 +0100

    tdf#164318 Add dialog to show content of fields in readonly documents
    
    Change-Id: I0036e8c02b57dab91361213489c5a6189149b553
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179953
    Tested-by: Jenkins
    Reviewed-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de>

diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk
index 2c6d8512fe44..cf025735337e 100644
--- a/sw/Library_swui.mk
+++ b/sw/Library_swui.mk
@@ -168,6 +168,7 @@ $(eval $(call gb_Library_add_exception_objects,swui,\
     sw/source/ui/table/tabledlg \
     sw/source/ui/table/tautofmt \
     sw/source/ui/utlui/swrenamexnameddlg \
+    sw/source/ui/utlui/copyfielddlg \
 ))
 
 ifneq (,$(filter DBCONNECTIVITY,$(BUILD_TYPE)))
diff --git a/sw/UIConfig_swriter.mk b/sw/UIConfig_swriter.mk
index d9df23bf27a4..6bc32a541106 100644
--- a/sw/UIConfig_swriter.mk
+++ b/sw/UIConfig_swriter.mk
@@ -138,6 +138,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/swriter,\
        sw/uiconfig/swriter/ui/contentcontroldropdown \
        sw/uiconfig/swriter/ui/contentcontrollistitemdlg \
        sw/uiconfig/swriter/ui/converttexttable \
+       sw/uiconfig/swriter/ui/copyfielddialog \
        sw/uiconfig/swriter/ui/createaddresslist \
        sw/uiconfig/swriter/ui/createauthorentry \
        sw/uiconfig/swriter/ui/createautomarkdialog \
diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index f50754b6e274..340e57c8f5b4 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -152,6 +152,7 @@ class SwUINumRuleItem;
 #define FN_REDLINE_ACCEPT_TONEXT     (FN_EDIT2 + 45)    /* Redlining Accept 
and jump to next*/
 #define FN_REDLINE_REJECT_TONEXT     (FN_EDIT2 + 46)    /* Redlining Reject 
and jump to next*/
 #define FN_TRANSFORM_DOCUMENT_STRUCTURE (FN_EDIT2 + 47) /* overwrite text of 
content control, and more*/
+#define FN_COPY_FIELD                (FN_EDIT2 + 48)    /* show field content 
in readonly documents to copy content*/
 
 // Region: View
 #define FN_DRAW_WRAP_DLG        TypedWhichId<SfxInt16Item>(FN_VIEW + 3)   /* 
Draw wrapping dlg */
diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx
index 229b2fdc042d..59768a69aa55 100644
--- a/sw/inc/swabstdlg.hxx
+++ b/sw/inc/swabstdlg.hxx
@@ -366,6 +366,16 @@ public:
              css::uno::Reference< css::container::XNameAccess > & xThird ) = 0;
 };
 
+/**
+ * Interface for copy field value dialog in read only documents. It's 
implemented by
+ * AbstractCopyFieldDlg_Impl
+ */
+class AbstractCopyFieldDlg : public VclAbstractDialog
+{
+protected:
+    virtual ~AbstractCopyFieldDlg() override = default;
+};
+
 /**
  * Interface for e.g. the form -> content control -> properties -> add dialog. 
It's implemented by
  * AbstractSwContentControlListItemDlg_Impl, but SwContentControlDlg only 
knows about this interface
@@ -547,6 +557,9 @@ public:
     virtual VclPtr<AbstractSwRenameXNamedDlg> 
CreateSwRenameXNamedDlg(weld::Widget* pParent,
         css::uno::Reference< css::container::XNamed > & xNamed,
         css::uno::Reference< css::container::XNameAccess > & xNameAccess) = 0;
+
+    virtual VclPtr<AbstractCopyFieldDlg> CreateCopyFieldDlg(weld::Widget* 
pParent, const rtl::OUString& rFieldValue ) = 0;
+
     virtual VclPtr<AbstractSwModalRedlineAcceptDlg> 
CreateSwModalRedlineAcceptDlg(weld::Window *pParent) = 0;
     virtual VclPtr<AbstractSwPageNumberDlg> 
CreateSwPageNumberDlg(weld::Window* pParent) = 0;
 
diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi
index 612f3d1955a9..a0f257d916a3 100644
--- a/sw/sdi/_textsh.sdi
+++ b/sw/sdi/_textsh.sdi
@@ -1027,6 +1027,11 @@ interface BaseText
         StateMethod = StateField ;
         DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
     ]
+    FN_COPY_FIELD // status()
+    [
+        ExecMethod = ExecField;
+        StateMethod = StateField;
+    ]
     FN_UPDATE_SEL_FIELD
     [
         ExecMethod = ExecField ;
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index bba5111a7077..dd7c1668d8b3 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -8856,3 +8856,21 @@ SfxVoidItem OutlineLevelsShown FN_OUTLINE_LEVELS_SHOWN
     ToolBoxConfig = TRUE,
     GroupId = SfxGroupId::View;
 ]
+
+SfxVoidItem CopyFieldDialog FN_COPY_FIELD
+()
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = TRUE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+    Asynchron;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Edit;
+]
diff --git a/sw/source/ui/dialog/swdlgfact.cxx 
b/sw/source/ui/dialog/swdlgfact.cxx
index 343dd34850dc..ea4e0ffa3daa 100644
--- a/sw/source/ui/dialog/swdlgfact.cxx
+++ b/sw/source/ui/dialog/swdlgfact.cxx
@@ -93,6 +93,7 @@
 #include <mmresultdialogs.hxx>
 #include <formatlinebreak.hxx>
 #include <translatelangselect.hxx>
+#include <copyfielddlg.hxx>
 
 using namespace css::frame;
 using namespace css::uno;
@@ -759,6 +760,22 @@ VclPtr<AbstractSwModalRedlineAcceptDlg> 
SwAbstractDialogFactory_Impl::CreateSwMo
     return VclPtr<AbstractSwModalRedlineAcceptDlg_Impl>::Create(pParent);
 }
 
+namespace
+{
+class AbstractCopyFieldDlg_Impl
+    : public vcl::AbstractDialogImpl_Async<AbstractCopyFieldDlg, CopyFieldDlg>
+{
+public:
+    using AbstractDialogImpl_BASE::AbstractDialogImpl_BASE;
+};
+}
+
+VclPtr<AbstractCopyFieldDlg> 
SwAbstractDialogFactory_Impl::CreateCopyFieldDlg(weld::Widget* pParent,
+    const rtl::OUString& rFieldValue)
+{
+    return VclPtr<AbstractCopyFieldDlg_Impl>::Create(pParent, rFieldValue);
+}
+
 namespace
 {
 /// Interface implementation for the insert -> fields -> page number wizard 
dialog
diff --git a/sw/source/ui/dialog/swdlgfact.hxx 
b/sw/source/ui/dialog/swdlgfact.hxx
index f33460a21840..60879d516887 100644
--- a/sw/source/ui/dialog/swdlgfact.hxx
+++ b/sw/source/ui/dialog/swdlgfact.hxx
@@ -58,6 +58,7 @@
 #include <o3tl/deleter.hxx>
 #include <pagenumberdlg.hxx>
 #include <changedb.hxx>
+#include <copyfielddlg.hxx>
 
 //AbstractDialogFactory_Impl implementations
 class SwAbstractDialogFactory_Impl : public SwAbstractDialogFactory
@@ -200,6 +201,8 @@ public:
     virtual GlossaryGetCurrGroup        GetGlossaryCurrGroupFunc() override;
     virtual GlossarySetActGroup         SetGlossaryActGroupFunc() override;
 
+    virtual VclPtr<AbstractCopyFieldDlg> CreateCopyFieldDlg(weld::Widget* 
pParent, const rtl::OUString& rFieldValue ) override;
+
     // For TabPage
     virtual CreateTabPage               GetTabPageCreatorFunc( sal_uInt16 nId 
) override;
 
diff --git a/sw/source/ui/utlui/copyfielddlg.cxx 
b/sw/source/ui/utlui/copyfielddlg.cxx
new file mode 100644
index 000000000000..6625f581e451
--- /dev/null
+++ b/sw/source/ui/utlui/copyfielddlg.cxx
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <copyfielddlg.hxx>
+#include <comphelper/string.hxx>
+
+using namespace ::com::sun::star;
+
+CopyFieldDlg::CopyFieldDlg(weld::Widget* pParent, const rtl::OUString& 
rFieldValue)
+    : GenericDialogController(pParent, 
u"modules/swriter/ui/copyfielddialog.ui"_ustr,
+                              u"CopyFieldDialog"_ustr)
+    , m_xFieldValueED(new 
ConditionEdit<weld::TextView>(m_xBuilder->weld_text_view(u"value"_ustr)))
+    , m_xCopy(m_xBuilder->weld_button(u"copy"_ustr))
+    , m_xClose(m_xBuilder->weld_button(u"cancel"_ustr))
+{
+    m_xClose->connect_clicked(LINK(this, CopyFieldDlg, CloseHdl));
+    m_xCopy->connect_clicked(LINK(this, CopyFieldDlg, CopyHdl));
+
+    m_xFieldValueED->set_text(rFieldValue);
+    sal_Int32 nRows{ comphelper::string::getTokenCount(rFieldValue, '
') };
+
+    m_xFieldValueED->get_widget().set_size_request(
+        m_xFieldValueED->get_widget().get_preferred_size().Width() * 2,
+        
m_xFieldValueED->get_widget().get_height_rows(std::min<sal_Int32>(nRows + 1, 
6)));
+}
+
+IMPL_LINK_NOARG(CopyFieldDlg, CloseHdl, weld::Button&, void) { 
m_xDialog->response(RET_OK); }
+
+IMPL_LINK_NOARG(CopyFieldDlg, CopyHdl, weld::Button&, void)
+{
+    int nStartPos;
+    int nEndPos;
+    m_xFieldValueED->get_widget().get_selection_bounds(nStartPos, nEndPos);
+    if (nStartPos == nEndPos)
+        m_xFieldValueED->get_widget().select_region(0, -1);
+
+    m_xFieldValueED->get_widget().copy_clipboard();
+    if (nStartPos == nEndPos)
+        m_xFieldValueED->get_widget().select_region(0, 0);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/docvw/romenu.cxx 
b/sw/source/uibase/docvw/romenu.cxx
index ae59afcc1abc..c5b0eb271569 100644
--- a/sw/source/uibase/docvw/romenu.cxx
+++ b/sw/source/uibase/docvw/romenu.cxx
@@ -96,6 +96,7 @@ SwReadOnlyPopup::SwReadOnlyPopup(const Point &rDPos, SwView 
&rV)
     , m_nReadonlyLoadGraphic(m_xMenu->GetItemId(u"loadgraphic"))
     , m_nReadonlyGraphicoff(m_xMenu->GetItemId(u"imagesoff"))
     , m_nReadonlyFullscreen(m_xMenu->GetItemId(u"fullscreen"))
+    , m_nReadonlyCopyField(m_xMenu->GetItemId(u"copyfield"))
     , m_nReadonlyCopy(m_xMenu->GetItemId(u"copy"))
     , m_rView(rV)
     , m_xBrushItem(std::make_unique<SvxBrushItem>(RES_BACKGROUND))
@@ -213,7 +214,8 @@ SwReadOnlyPopup::SwReadOnlyPopup(const Point &rDPos, SwView 
&rV)
         m_xMenu->EnableItem(m_nReadonlyCopylink, false);
     }
     Check(m_nReadonlyFullscreen, SID_WIN_FULLSCREEN, rDis);
-
+    eState = rVFrame.GetBindings().QueryState(FN_COPY_FIELD, pState);
+    m_xMenu->EnableItem(m_nReadonlyCopyField, eState > SfxItemState::DISABLED);
     m_xMenu->RemoveDisabledEntries( true );
 }
 
@@ -284,6 +286,8 @@ void SwReadOnlyPopup::Execute( vcl::Window* pWin, 
sal_uInt16 nId )
         nExecId = SID_BROWSE_FORWARD;
     else if (nId == m_nReadonlySourceview)
         nExecId = SID_SOURCEVIEW;
+    else if (nId == m_nReadonlyCopyField)
+        nExecId = FN_COPY_FIELD;
     else if (nId == m_nReadonlySaveGraphic || nId == m_nReadonlySaveBackground)
         SaveGraphic(nId);
     else if (nId == m_nReadonlyCopylink)
diff --git a/sw/source/uibase/docvw/romenu.hxx 
b/sw/source/uibase/docvw/romenu.hxx
index 1af58d3dee6d..fed747f33d18 100644
--- a/sw/source/uibase/docvw/romenu.hxx
+++ b/sw/source/uibase/docvw/romenu.hxx
@@ -55,6 +55,7 @@ class SwReadOnlyPopup
     sal_uInt16 m_nReadonlyLoadGraphic;
     sal_uInt16 m_nReadonlyGraphicoff;
     sal_uInt16 m_nReadonlyFullscreen;
+    sal_uInt16 m_nReadonlyCopyField;
     sal_uInt16 m_nReadonlyCopy;
 
     SwView &    m_rView;
diff --git a/sw/source/uibase/inc/copyfielddlg.hxx 
b/sw/source/uibase/inc/copyfielddlg.hxx
new file mode 100644
index 000000000000..d255930e8ea8
--- /dev/null
+++ b/sw/source/uibase/inc/copyfielddlg.hxx
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#pragma once
+
+#include <vcl/weld.hxx>
+#include <condedit.hxx>
+
+class CopyFieldDlg final : public weld::GenericDialogController
+{
+    std::unique_ptr<ConditionEdit<weld::TextView>> m_xFieldValueED;
+    std::unique_ptr<weld::Button> m_xCopy;
+    std::unique_ptr<weld::Button> m_xClose;
+
+    DECL_LINK(CloseHdl, weld::Button&, void);
+    DECL_LINK(CopyHdl, weld::Button&, void);
+
+public:
+    CopyFieldDlg(weld::Widget* pParent, const rtl::OUString& rFieldValue);
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/shells/textfld.cxx 
b/sw/source/uibase/shells/textfld.cxx
index 42fd111f2684..ea69fe7e8064 100644
--- a/sw/source/uibase/shells/textfld.cxx
+++ b/sw/source/uibase/shells/textfld.cxx
@@ -201,6 +201,24 @@ void SwTextShell::ExecField(SfxRequest &rReq)
             }
             break;
         }
+        case FN_COPY_FIELD:
+        {
+            //call copy field dialog with field string - if there is any!
+            SwField* pField = rSh.GetCurField(true);
+            if( pField && pField->GetFieldName().getLength())
+            {
+                SwAbstractDialogFactory* pFact = 
SwAbstractDialogFactory::Create();
+                VclPtr<AbstractCopyFieldDlg> pDlg(pFact->CreateCopyFieldDlg(
+                    GetView().GetFrameWeld(), pField->ExpandField(true, 
nullptr)));
+                pDlg->StartExecuteAsync(
+                    [pDlg] (sal_Int32 /*nResult*/)->void
+                    {
+                        pDlg->disposeOnce();
+                    }
+                );
+            }
+            break;
+        }
         case FN_UPDATE_SEL_FIELD:
         {
             SwField *pField = rSh.GetCurField();
@@ -1594,7 +1612,19 @@ void SwTextShell::StateField( SfxItemSet &rSet )
                 }
             }
             break;
-
+        case FN_COPY_FIELD:
+            {
+                if( !bGetField )
+                {
+                    pField = rSh.GetCurField(true);
+                    bGetField = true;
+                }
+                SwFieldIds nTempWhich = pField ? pField->GetTyp()->Which() : 
SwFieldIds::Unknown;
+                if (SwFieldIds::Unknown == nTempWhich
+                    || !pField->ExpandField(true, nullptr).getLength())
+                    rSet.DisableItem( nWhich );
+            }
+            break;
         case FN_UPDATE_SEL_FIELD:
             {
                 pField = rSh.GetCurField();
diff --git a/sw/uiconfig/swriter/ui/copyfielddialog.ui 
b/sw/uiconfig/swriter/ui/copyfielddialog.ui
new file mode 100644
index 000000000000..90d33e601b1c
--- /dev/null
+++ b/sw/uiconfig/swriter/ui/copyfielddialog.ui
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="sw">
+  <requires lib="gtk+" version="3.20"/>
+  <object class="GtkDialog" id="CopyFieldDialog">
+    <property name="can-focus">False</property>
+    <property name="border-width">6</property>
+    <property name="title" translatable="yes" 
context="copyfielddialog|CopyFieldDialog">Copy field content</property>
+    <property name="modal">True</property>
+    <property name="default-width">0</property>
+    <property name="default-height">0</property>
+    <property name="type-hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can-focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can-focus">False</property>
+            <property name="layout-style">end</property>
+            <child>
+              <object class="GtkButton" id="cancel">
+                <property name="label" translatable="yes" 
context="stock">_Cancel</property>
+                <property name="visible">True</property>
+                <property name="can-focus">True</property>
+                <property name="receives-default">True</property>
+                <property name="use-underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="help">
+                <property name="label" translatable="yes" 
context="stock">_Help</property>
+                <property name="visible">True</property>
+                <property name="can-focus">True</property>
+                <property name="receives-default">True</property>
+                <property name="use-underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="copy">
+                <property name="label" translatable="yes" 
context="stock">_Copy</property>
+                <property name="visible">True</property>
+                <property name="can-focus">True</property>
+                <property name="receives-default">True</property>
+                <property name="use-underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack-type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFrame" id="frame1">
+            <property name="visible">True</property>
+            <property name="can-focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="label-xalign">0</property>
+            <property name="shadow-type">none</property>
+            <child>
+              <!-- n-columns=2 n-rows=1 -->
+              <object class="GtkGrid" id="grid1">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="margin-start">12</property>
+                <property name="margin-top">6</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="row-spacing">6</property>
+                <property name="column-spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="label2">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="copyfielddialog|label2">Content: </property>
+                    <property name="use-underline">True</property>
+                    <property name="xalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="left-attach">0</property>
+                    <property name="top-attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                    <property name="shadow-type">in</property>
+                    <child>
+                      <object class="GtkTextView" id="value">
+                        <property name="visible">True</property>
+                        <property name="can-focus">True</property>
+                        <property name="hexpand">True</property>
+                        <property name="vexpand">True</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" id="value-atkobject">
+                            <property name="AtkObject::accessible-description" 
translatable="yes" context="copyfielddialog|extended_tip|value">Copy the 
contents of the field for reuse in other documents.</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">0</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="label">
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="label" translatable="yes" 
context="copyfielddialog|label1">Field content</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancel</action-widget>
+      <action-widget response="-11">help</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/sw/uiconfig/swriter/ui/readonlymenu.ui 
b/sw/uiconfig/swriter/ui/readonlymenu.ui
index 96ffe24346c2..0f94bea34d51 100644
--- a/sw/uiconfig/swriter/ui/readonlymenu.ui
+++ b/sw/uiconfig/swriter/ui/readonlymenu.ui
@@ -225,6 +225,20 @@
         <property name="use-underline">True</property>
       </object>
     </child>
+    <child>
+      <object class="GtkSeparatorMenuItem" id="menuitem9">
+        <property name="visible">True</property>
+        <property name="can-focus">False</property>
+      </object>
+    </child>
+    <child>
+      <object class="GtkMenuItem" id="copyfield">
+        <property name="visible">True</property>
+        <property name="can-focus">False</property>
+        <property name="label" translatable="yes" 
context="readonlymenu|copyfield">Copy _Field Contents...</property>
+        <property name="use-underline">True</property>
+      </object>
+    </child>
     <child>
       <object class="GtkSeparatorMenuItem" id="menuitem7">
         <property name="visible">True</property>

Reply via email to