cui/inc/strings.hrc                        |    3 
 cui/source/inc/chardlg.hxx                 |    3 
 cui/source/tabpages/chardlg.cxx            |    9 --
 cui/uiconfig/ui/positionpage.ui            |   39 +--------
 solenv/sanitizers/ui/cui.suppr             |    2 
 sw/uiconfig/swriter/ui/mailmerge.ui        |  115 +++++++++++++++--------------
 sw/uiconfig/swriter/ui/printmergedialog.ui |   36 ++++-----
 7 files changed, 92 insertions(+), 115 deletions(-)

New commits:
commit dc900d108b48f2954e66746a10ce0a2d4ddae700
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Aug 8 08:56:46 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Sat Aug 9 01:00:28 2025 +0200

    sw: Resave printmergedialog.ui with glade 3.40
    
    The dialog can be triggered as follows:
    
    * start Writer
    * "Insert" -> "Field" -> "More Fields"
    * switch to "Database" tab
    * select "Mail merge fields" for the type
    * click "Browse" button next to the "Add database file"
      label and select any database file
    * in the "Database Selection" treeview, select any column
      of the database
    * press the "Insert" button
    * close the "Fields" dialog
    * press Ctrl+P to trigger the print dialog, which
      triggers the dialog asking whether to print
      a form letter
    
    Change-Id: I8eee2cb3c9ea5bd2cc342aa43222552d65168803
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189149
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/sw/uiconfig/swriter/ui/printmergedialog.ui 
b/sw/uiconfig/swriter/ui/printmergedialog.ui
index 4f3bc074fe1f..7f9f98784c1f 100644
--- a/sw/uiconfig/swriter/ui/printmergedialog.ui
+++ b/sw/uiconfig/swriter/ui/printmergedialog.ui
@@ -1,32 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.36.0 -->
+<!-- Generated with glade 3.40.0 -->
 <interface domain="sw">
   <requires lib="gtk+" version="3.20"/>
   <object class="GtkMessageDialog" id="PrintMergeDialog">
-    <property name="can_focus">False</property>
+    <property name="can-focus">False</property>
     <property name="resizable">False</property>
     <property name="modal">True</property>
-    <property name="type_hint">dialog</property>
-    <property name="skip_taskbar_hint">True</property>
-    <property name="message_type">question</property>
+    <property name="type-hint">dialog</property>
+    <property name="skip-taskbar-hint">True</property>
+    <property name="message-type">question</property>
     <property name="text" translatable="yes" 
context="printmergedialog|PrintMergeDialog">Your document contains address 
database fields. Do you want to print a form letter?</property>
     <child internal-child="vbox">
       <object class="GtkBox" id="messagedialog-vbox">
-        <property name="can_focus">False</property>
+        <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="messagedialog-action_area">
-            <property name="can_focus">False</property>
+            <property name="can-focus">False</property>
             <child>
               <object class="GtkButton" id="yes">
                 <property name="label" translatable="yes" 
context="stock">_Yes</property>
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="has_default">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_underline">True</property>
+                <property name="can-focus">True</property>
+                <property name="can-default">True</property>
+                <property name="has-default">True</property>
+                <property name="receives-default">True</property>
+                <property name="use-underline">True</property>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -38,9 +38,9 @@
               <object class="GtkButton" id="no">
                 <property name="label" translatable="yes" 
context="stock">_No</property>
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_underline">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>
@@ -52,8 +52,8 @@
               <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="can-focus">True</property>
+                <property name="receives-default">True</property>
                 <property name="use-underline">True</property>
               </object>
               <packing>
@@ -66,7 +66,7 @@
           <packing>
             <property name="expand">False</property>
             <property name="fill">True</property>
-            <property name="pack_type">end</property>
+            <property name="pack-type">end</property>
             <property name="position">0</property>
           </packing>
         </child>
commit 4dea4ceb8772cc1745c89e03daebbccac9cdf0ed
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Aug 8 08:34:17 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Sat Aug 9 01:00:21 2025 +0200

    tdf#130857 sw mailmerge: Use GtkBox instead of GtkFrame
    
    I cannot see any reason why this was using a GtkFrame
    and the GtkBox containing the "Save as single document"
    and "Save as individual documents" radiobuttons was set
    as the GtkFrame's label child. This breaks the assumption
    that the label child is always a GtkLabel object, see
    
        commit 82308d6a6853463f660dc6d6a11a2c12d198c4ed
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Thu Aug 7 16:15:12 2025 +0200
    
            tdf#130857 svx: Don't use GtkBox as GtkFrame label child
    
    for more background.
    
    Replace that unusual approach by using a GtkBox
    instead of the GtkFrame, and simply have the
    GtkBox containing the radio buttons as the
    first child of the GtkBox.
    
    No change in behavior seen in a quick test.
    
    The dialog can be triggered as follows:
    
    * start Writer
    * "Insert" -> "Field" -> "More Fields"
    * switch to "Database" tab
    * select "Mail merge fields" for the type
    * click "Browse" button next to the "Add database file"
      label and select any database file
    * in the "Database Selection" treeview, select any column
      of the database
    * press the "Insert" button
    * close the "Fields" dialog
    * press Ctrl+P to trigger the print dialog
    * in the dialog asking whether to print a form letter,
      press the "Yes" button
    
    Change-Id: I49b57c556ab81045e199ac0579bc886f0654c520
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189148
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/sw/uiconfig/swriter/ui/mailmerge.ui 
b/sw/uiconfig/swriter/ui/mailmerge.ui
index 0f5fe76f0bf0..ef7f2d3d87b9 100644
--- a/sw/uiconfig/swriter/ui/mailmerge.ui
+++ b/sw/uiconfig/swriter/ui/mailmerge.ui
@@ -369,13 +369,67 @@
                             <property name="label-xalign">0</property>
                             <property name="shadow-type">none</property>
                             <child>
-                              <object class="GtkFrame" id="frame4">
+                              <object class="GtkBox">
                                 <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="label-xalign">0</property>
-                                <property name="shadow-type">none</property>
+                                <property 
name="orientation">vertical</property>
+                                <child>
+                                  <object class="GtkBox" id="box7">
+                                    <property name="visible">True</property>
+                                    <property name="can-focus">False</property>
+                                    <property 
name="orientation">vertical</property>
+                                    <property name="spacing">6</property>
+                                    <child>
+                                      <object class="GtkRadioButton" 
id="singledocument">
+                                        <property name="label" 
translatable="yes" context="mailmerge|singledocument">S_ave as single 
document</property>
+                                        <property 
name="visible">True</property>
+                                        <property 
name="can-focus">True</property>
+                                        <property 
name="receives-default">False</property>
+                                        <property 
name="use-underline">True</property>
+                                        <property name="active">True</property>
+                                        <property 
name="draw-indicator">True</property>
+                                        <child internal-child="accessible">
+                                          <object class="AtkObject" 
id="singledocument-atkobject">
+                                            <property 
name="AtkObject::accessible-description" translatable="yes" 
context="mailmerge|extended_tip|singledocument">Create one big document 
containing all data records.</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkRadioButton" 
id="individualdocuments">
+                                        <property name="label" 
translatable="yes" context="mailmerge|individualdocuments">Sa_ve as individual 
documents</property>
+                                        <property 
name="visible">True</property>
+                                        <property 
name="can-focus">True</property>
+                                        <property 
name="receives-default">False</property>
+                                        <property 
name="use-underline">True</property>
+                                        <property 
name="draw-indicator">True</property>
+                                        <property 
name="group">singledocument</property>
+                                        <child internal-child="accessible">
+                                          <object class="AtkObject" 
id="individualdocuments-atkobject">
+                                            <property 
name="AtkObject::accessible-description" translatable="yes" 
context="mailmerge|extended_tip|individualdocuments">Create one document for 
each data record.</property>
+                                          </object>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property 
name="expand">False</property>
+                                        <property name="fill">True</property>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
                                 <child>
                                   <!-- n-columns=3 n-rows=12 -->
                                   <object class="GtkGrid" id="grid1">
@@ -726,56 +780,11 @@
                                       <placeholder/>
                                     </child>
                                   </object>
-                                </child>
-                                <child type="label">
-                                  <object class="GtkBox" id="box7">
-                                    <property name="visible">True</property>
-                                    <property name="can-focus">False</property>
-                                    <property 
name="orientation">vertical</property>
-                                    <property name="spacing">6</property>
-                                    <child>
-                                      <object class="GtkRadioButton" 
id="singledocument">
-                                        <property name="label" 
translatable="yes" context="mailmerge|singledocument">S_ave as single 
document</property>
-                                        <property 
name="visible">True</property>
-                                        <property 
name="can-focus">True</property>
-                                        <property 
name="receives-default">False</property>
-                                        <property 
name="use-underline">True</property>
-                                        <property name="active">True</property>
-                                        <property 
name="draw-indicator">True</property>
-                                        <child internal-child="accessible">
-                                          <object class="AtkObject" 
id="singledocument-atkobject">
-                                            <property 
name="AtkObject::accessible-description" translatable="yes" 
context="mailmerge|extended_tip|singledocument">Create one big document 
containing all data records.</property>
-                                          </object>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">0</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkRadioButton" 
id="individualdocuments">
-                                        <property name="label" 
translatable="yes" context="mailmerge|individualdocuments">Sa_ve as individual 
documents</property>
-                                        <property 
name="visible">True</property>
-                                        <property 
name="can-focus">True</property>
-                                        <property 
name="receives-default">False</property>
-                                        <property 
name="use-underline">True</property>
-                                        <property 
name="draw-indicator">True</property>
-                                        <property 
name="group">singledocument</property>
-                                        <child internal-child="accessible">
-                                          <object class="AtkObject" 
id="individualdocuments-atkobject">
-                                            <property 
name="AtkObject::accessible-description" translatable="yes" 
context="mailmerge|extended_tip|individualdocuments">Create one document for 
each data record.</property>
-                                          </object>
-                                        </child>
-                                      </object>
-                                      <packing>
-                                        <property 
name="expand">False</property>
-                                        <property name="fill">True</property>
-                                        <property name="position">1</property>
-                                      </packing>
-                                    </child>
-                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">True</property>
+                                    <property name="position">2</property>
+                                  </packing>
                                 </child>
                               </object>
                             </child>
commit 87e27e402edab3a231682626b6a65fa076d9ab08
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Aug 8 08:19:08 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Sat Aug 9 01:00:14 2025 +0200

    tdf#130857 cui: Don't use GtkBox as GtkFrame label child
    
    This is a similar change to previous commit
    
        commit 82308d6a6853463f660dc6d6a11a2c12d198c4ed
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Thu Aug 7 16:15:12 2025 +0200
    
            tdf#130857 svx: Don't use GtkBox as GtkFrame label child
    
    , but for a different dialog.
    See the commit message of the above-mentioned commit for more
    background.
    
    A dialog using this "Position" tab page can be triggered
    in Writer using "Format" -> "Character".
    
    Change-Id: I3d0c41c365b5f992cafc455dbe9fe3719425f09e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189147
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index 1e7bd1944f55..3bd7fe4d0bc7 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -395,6 +395,9 @@
 #define RID_CUISTR_SAVED                            NC_("RID_CUISTR_SAVED", 
"The results have been successfully saved in the file 
'GraphicTestResults.zip'!")
 #define RID_CUISTR_OPT_READONLY                     
NC_("RID_CUISTR_OPT_READONLY", "This property is locked for editing.")
 
+#define RID_CUISTR_ROTATION_SCALING                 
NC_("RID_CUISTR_ROTATION_SCALING", "Rotation / Scaling")
+#define RID_CUISTR_SCALING                          NC_("RID_CUISTR_SCALING", 
"Scaling")
+
 #define RID_LANGUAGETOOL_LEAVE_EMPTY                
NC_("RID_LANGUAGETOOL_LEAVE_EMPTY", "Leave this field empty to use the free 
version")
 #define RID_LANGUAGETOOL_REST_LEAVE_EMPTY           
NC_("RID_LANGUAGETOOL_REST_LEAVE_EMPTY", "Leave this field empty to use 
LanguageTool protocol")
 
diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx
index 03567a7f5ba4..4c2b0505e4ea 100644
--- a/cui/source/inc/chardlg.hxx
+++ b/cui/source/inc/chardlg.hxx
@@ -258,8 +258,7 @@ private:
 
     std::unique_ptr<weld::Widget> m_xRotationContainer;
 
-    std::unique_ptr<weld::Label> m_xScalingFT;
-    std::unique_ptr<weld::Label> m_xScalingAndRotationFT;
+    std::unique_ptr<weld::Frame> m_xRotationAndScalingFrame;
     std::unique_ptr<weld::RadioButton> m_x0degRB;
     std::unique_ptr<weld::RadioButton> m_x90degRB;
     std::unique_ptr<weld::RadioButton> m_x270degRB;
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 978ed42ee460..d0d293822fb7 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -2421,8 +2421,7 @@ SvxCharPositionPage::SvxCharPositionPage(weld::Container* 
pPage, weld::DialogCon
     , m_xFontSizeFT(m_xBuilder->weld_label(u"relativefontsize"_ustr))
     , m_xFontSizeMF(m_xBuilder->weld_metric_spin_button(u"fontsizesb"_ustr, 
FieldUnit::PERCENT))
     , m_xRotationContainer(m_xBuilder->weld_widget(u"rotationcontainer"_ustr))
-    , m_xScalingFT(m_xBuilder->weld_label(u"scale"_ustr))
-    , m_xScalingAndRotationFT(m_xBuilder->weld_label(u"rotateandscale"_ustr))
+    , 
m_xRotationAndScalingFrame(m_xBuilder->weld_frame(u"rotationandscalingframe"_ustr))
     , m_x0degRB(m_xBuilder->weld_radio_button(u"0deg"_ustr))
     , m_x90degRB(m_xBuilder->weld_radio_button(u"90deg"_ustr))
     , m_x270degRB(m_xBuilder->weld_radio_button(u"270deg"_ustr))
@@ -2826,14 +2825,12 @@ void SvxCharPositionPage::Reset( const SfxItemSet* rSet 
)
     if( SfxItemState::UNKNOWN == eState )
     {
         m_xRotationContainer->hide();
-        m_xScalingAndRotationFT->hide();
-        m_xScalingFT->show();
+        m_xRotationAndScalingFrame->set_label(CuiResId(RID_CUISTR_SCALING));
     }
     else
     {
         m_xRotationContainer->show();
-        m_xScalingAndRotationFT->show();
-        m_xScalingFT->hide();
+        
m_xRotationAndScalingFrame->set_label(CuiResId(RID_CUISTR_ROTATION_SCALING));
 
         if( eState >= SfxItemState::DEFAULT )
         {
diff --git a/cui/uiconfig/ui/positionpage.ui b/cui/uiconfig/ui/positionpage.ui
index 839fb45c5b33..865667496d2b 100644
--- a/cui/uiconfig/ui/positionpage.ui
+++ b/cui/uiconfig/ui/positionpage.ui
@@ -216,7 +216,7 @@
       </packing>
     </child>
     <child>
-      <object class="GtkFrame" id="frame10">
+      <object class="GtkFrame" id="rotationandscalingframe">
         <property name="visible">True</property>
         <property name="can-focus">False</property>
         <property name="label-xalign">0</property>
@@ -348,41 +348,12 @@
           </object>
         </child>
         <child type="label">
-          <object class="GtkBox" id="box1">
+          <object class="GtkLabel">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
-            <property name="orientation">vertical</property>
-            <child>
-              <object class="GtkLabel" id="rotateandscale">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="label" translatable="yes" 
context="positionpage|rotateandscale">Rotation / Scaling</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkLabel" id="scale">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="halign">start</property>
-                <property name="label" translatable="yes" 
context="positionpage|scale">Scaling</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
+            <attributes>
+              <attribute name="weight" value="bold"/>
+            </attributes>
           </object>
         </child>
       </object>
diff --git a/solenv/sanitizers/ui/cui.suppr b/solenv/sanitizers/ui/cui.suppr
index 4ed2095fb546..39a63ff63d4c 100644
--- a/solenv/sanitizers/ui/cui.suppr
+++ b/solenv/sanitizers/ui/cui.suppr
@@ -146,8 +146,6 @@ cui/uiconfig/ui/paratabspage.ui://GtkEntry[@id='ED_TABPOS'] 
no-labelled-by
 cui/uiconfig/ui/patterntabpage.ui://GtkLabel[@id='label4'] orphan-label
 cui/uiconfig/ui/percentdialog.ui://GtkSpinButton[@id='margin'] no-labelled-by
 cui/uiconfig/ui/pickgraphicpage.ui://GtkLabel[@id='errorft'] orphan-label
-cui/uiconfig/ui/positionpage.ui://GtkLabel[@id='rotateandscale'] orphan-label
-cui/uiconfig/ui/positionpage.ui://GtkLabel[@id='scale'] orphan-label
 cui/uiconfig/ui/securityoptionsdialog.ui://GtkImage[@id='lockwhenprinting'] 
no-labelled-by
 cui/uiconfig/ui/securityoptionsdialog.ui://GtkImage[@id='locksavesenddocs'] 
no-labelled-by
 cui/uiconfig/ui/securityoptionsdialog.ui://GtkImage[@id='lockwhensigning'] 
no-labelled-by

Reply via email to