[Libreoffice-commits] core.git: 6 commits - basctl/source cui/uiconfig dbaccess/source include/sfx2 include/vcl sc/source sd/source sfx2/source sfx2/uiconfig sfx2/UIConfig_sfx.mk svx/source sw/source sw/uiconfig uui/source vcl/source

Caolán McNamara caolanm at redhat.com
Wed May 1 06:46:48 PDT 2013


 basctl/source/basicide/baside3.cxx                      |    2 
 cui/uiconfig/ui/namedialog.ui                           |    2 
 cui/uiconfig/ui/objectnamedialog.ui                     |    2 
 cui/uiconfig/ui/objecttitledescdialog.ui                |    3 
 dbaccess/source/ui/dlg/sqlmessage.cxx                   |   20 
 dbaccess/source/ui/relationdesign/RelationTableView.cxx |    6 
 include/sfx2/QuerySaveDocument.hxx                      |    8 
 include/sfx2/sfx.hrc                                    |    4 
 include/vcl/builder.hxx                                 |   29 
 include/vcl/layout.hxx                                  |   26 
 include/vcl/msgbox.hxx                                  |   22 
 include/vcl/vclenum.hxx                                 |   14 
 sc/source/ui/dbgui/pvfundlg.cxx                         |    2 
 sd/source/ui/annotations/annotationmanager.cxx          |    4 
 sd/source/ui/func/fuoaprms.cxx                          |    2 
 sd/source/ui/func/fuprlout.cxx                          |    2 
 sd/source/ui/view/Outliner.cxx                          |    2 
 sfx2/UIConfig_sfx.mk                                    |    1 
 sfx2/source/doc/QuerySaveDocument.cxx                   |   26 
 sfx2/source/doc/doc.hrc                                 |    2 
 sfx2/source/doc/doc.src                                 |   13 
 sfx2/uiconfig/ui/querysavedialog.ui                     |   83 ++
 svx/source/form/datanavi.cxx                            |    4 
 svx/source/tbxctrls/tbunosearchcontrollers.cxx          |    1 
 sw/source/ui/fldui/fldedt.cxx                           |    2 
 sw/uiconfig/swriter/ui/wordcount.ui                     |  483 +++++++---------
 uui/source/iahndl-errorhandler.cxx                      |   10 
 uui/source/iahndl.cxx                                   |   10 
 vcl/source/window/builder.cxx                           |  105 +++
 vcl/source/window/dialog.cxx                            |    3 
 vcl/source/window/layout.cxx                            |  176 +++++
 vcl/source/window/msgbox.cxx                            |   30 
 32 files changed, 726 insertions(+), 373 deletions(-)

New commits:
commit 761f4572daf3ab10fd9ebffbc8327c4669be8220
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 1 14:32:00 2013 +0100

    debugging assert for unlocked solarmutex in launching find dialog
    
    Change-Id: Iee89ae367d5c282cc1d06889765376982a7d37ed

diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
index ad15872..d67e5ac 100644
--- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx
+++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
@@ -855,6 +855,7 @@ void SAL_CALL FindbarDispatcher::dispatch( const css::util::URL& aURL, const css
                         FindTextFieldControl* pFindTextFieldControl = dynamic_cast<FindTextFieldControl*>(pItemWin);
                         if ( pFindTextFieldControl )
                             pFindTextFieldControl->SetTextToSelected_Impl();
+                        SolarMutexGuard aSolarMutexGuard;
                         pItemWin->GrabFocus();
                         return;
                     }
commit 2b449f5f9ad126618ec85d442ec149c5864853de
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 1 14:30:14 2013 +0100

    remove unnecessary widgets from word count dialog
    
    Change-Id: Ia490b8eb4367e54a73fbf9d54a76cf3155eb1615

diff --git a/sw/uiconfig/swriter/ui/wordcount.ui b/sw/uiconfig/swriter/ui/wordcount.ui
index d9350f1..0aff653 100644
--- a/sw/uiconfig/swriter/ui/wordcount.ui
+++ b/sw/uiconfig/swriter/ui/wordcount.ui
@@ -54,272 +54,249 @@
           </packing>
         </child>
         <child>
-          <object class="GtkBox" id="box1">
+          <object class="GtkGrid" id="grid1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="orientation">vertical</property>
-            <property name="spacing">12</property>
+            <property name="hexpand">True</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">12</property>
             <child>
-              <object class="GtkAlignment" id="alignment1">
+              <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="top_padding">12</property>
-                <property name="bottom_padding">6</property>
-                <property name="left_padding">5</property>
-                <child>
-                  <object class="GtkGrid" id="grid1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="hexpand">True</property>
-                    <property name="row_spacing">6</property>
-                    <property name="column_spacing">12</property>
-                    <child>
-                      <object class="GtkLabel" id="label1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">10</property>
-                        <property name="label" translatable="yes">Words</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">10</property>
-                        <property name="label" translatable="yes">Characters including spaces</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label3">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">10</property>
-                        <property name="label" translatable="yes">Characters excluding spaces</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">3</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="selectwords">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="selectchars">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="selectcharsnospaces">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">3</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label9">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="label" translatable="yes">Selection</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label10">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="label" translatable="yes">Document</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="docwords">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="docchars">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="doccharsnospaces">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">3</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="cjkcharsft">
-                        <property name="can_focus">False</property>
-                        <property name="no_show_all">True</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">10</property>
-                        <property name="label" translatable="yes">Asian characters and Korean syllables</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">4</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="selectcjkchars">
-                        <property name="can_focus">False</property>
-                        <property name="no_show_all">True</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">4</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="doccjkchars">
-                        <property name="can_focus">False</property>
-                        <property name="no_show_all">True</property>
-                        <property name="halign">end</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">1</property>
-                        <property name="label">            0</property>
-                        <property name="justify">right</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">4</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                </child>
+                <property name="xalign">0</property>
+                <property name="xpad">10</property>
+                <property name="label" translatable="yes">Words</property>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">1</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="xalign">0</property>
+                <property name="xpad">10</property>
+                <property name="label" translatable="yes">Characters including spaces</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">2</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="xalign">0</property>
+                <property name="xpad">10</property>
+                <property name="label" translatable="yes">Characters excluding spaces</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">3</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="selectwords">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">1</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkLabel" id="selectchars">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">2</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="selectcharsnospaces">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">3</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label9">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">Selection</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">0</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label10">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="label" translatable="yes">Document</property>
+                <attributes>
+                  <attribute name="weight" value="bold"/>
+                </attributes>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="top_attach">0</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="docwords">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="docchars">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="doccharsnospaces">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="top_attach">3</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="cjkcharsft">
+                <property name="can_focus">False</property>
+                <property name="no_show_all">True</property>
+                <property name="xalign">0</property>
+                <property name="xpad">10</property>
+                <property name="label" translatable="yes">Asian characters and Korean syllables</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">4</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="selectcjkchars">
+                <property name="can_focus">False</property>
+                <property name="no_show_all">True</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">4</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="doccjkchars">
+                <property name="can_focus">False</property>
+                <property name="no_show_all">True</property>
+                <property name="halign">end</property>
+                <property name="hexpand">True</property>
+                <property name="xalign">1</property>
+                <property name="label">            0</property>
+                <property name="justify">right</property>
+              </object>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="top_attach">4</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">True</property>
-            <property name="padding">3</property>
             <property name="position">1</property>
           </packing>
         </child>
commit cd841115fa28f8be5778e540819f963407b4c05b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 1 13:39:31 2013 +0100

    use new MessageDialog
    
    Change-Id: I4fdc54d5a6e0f133c53588e255274b9f103269b4

diff --git a/include/sfx2/QuerySaveDocument.hxx b/include/sfx2/QuerySaveDocument.hxx
index e442b48..ecdf0aa 100644
--- a/include/sfx2/QuerySaveDocument.hxx
+++ b/include/sfx2/QuerySaveDocument.hxx
@@ -19,11 +19,11 @@
 #ifndef SFX_QUERYSAVEDOCUMENT_HXX
 #define SFX_QUERYSAVEDOCUMENT_HXX
 
-#include "sal/config.h"
-#include "sfx2/dllapi.h"
+#include <rtl/ustring.hxx>
+#include <sfx2/dllapi.h>
 
 class Window;
-class String;
+
 /** Opens the general query save document dialog.
     @param  _pParent
         The parent window.
@@ -31,7 +31,7 @@ class String;
         The title of the document.
 */
 SFX2_DLLPUBLIC short ExecuteQuerySaveDocument(
-    Window* _pParent,const String& _rTitle);
+    Window* _pParent, const OUString& _rTitle);
 
 #endif //SFX_QUERYSAVEDOCUMENT_HXX
 
diff --git a/include/sfx2/sfx.hrc b/include/sfx2/sfx.hrc
index 245daa2..b018a73 100644
--- a/include/sfx2/sfx.hrc
+++ b/include/sfx2/sfx.hrc
@@ -152,12 +152,12 @@
 
 #define STR_SFX_FILTERNAME_ALL              (RID_SFX_START+106)
 #define STR_EDIT                            (RID_SFX_START+108)
-#define STR_QUERY_SAVE_DOCUMENT             (RID_SFX_START+110)
+
 #define STR_BYTES                           (RID_SFX_START+111)
 #define STR_KB                              (RID_SFX_START+112)
 #define STR_MB                              (RID_SFX_START+113)
 #define STR_GB                              (RID_SFX_START+114)
-#define STR_QUERY_SAVE_DOCUMENT_TITLE       (RID_SFX_START+115)
+
 
 #define STR_STANDARD_SHORTCUT               (RID_SFX_START+117)
 #define STR_REPAIREDDOCUMENT                (RID_SFX_START+118)
diff --git a/sfx2/UIConfig_sfx.mk b/sfx2/UIConfig_sfx.mk
index 2a55193..2adb858 100644
--- a/sfx2/UIConfig_sfx.mk
+++ b/sfx2/UIConfig_sfx.mk
@@ -20,6 +20,7 @@ $(eval $(call gb_UIConfig_add_uifiles,sfx,\
 	sfx2/uiconfig/ui/optprintpage \
 	sfx2/uiconfig/ui/password \
 	sfx2/uiconfig/ui/printeroptionsdialog \
+	sfx2/uiconfig/ui/querysavedialog \
 	sfx2/uiconfig/ui/securityinfopage \
 	sfx2/uiconfig/ui/singletabdialog \
 	sfx2/uiconfig/ui/documentfontspage \
diff --git a/sfx2/source/doc/QuerySaveDocument.cxx b/sfx2/source/doc/QuerySaveDocument.cxx
index 7b24f7d..9c073d0 100644
--- a/sfx2/source/doc/QuerySaveDocument.cxx
+++ b/sfx2/source/doc/QuerySaveDocument.cxx
@@ -17,29 +17,21 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "sfx2/QuerySaveDocument.hxx"
-
-#include <sfx2/sfx.hrc>
-#include "sfx2/sfxresid.hxx"
-#include <sfx2/sfxuno.hxx>
-#include "doc.hrc"
-#include <vcl/msgbox.hxx>
+#include <sfx2/QuerySaveDocument.hxx>
+#include <vcl/layout.hxx>
 #include <vcl/svapp.hxx>
-// -----------------------------------------------------------------------------
-short ExecuteQuerySaveDocument(Window* _pParent,const String& _rTitle)
+
+short ExecuteQuerySaveDocument(Window* _pParent, const OUString& _rTitle)
 {
     if (Application::IsHeadlessModeEnabled())
-    {   // don't block Desktop::terminate() if there's no user to ask
+    {
+        // don't block Desktop::terminate() if there's no user to ask
         return RET_NO;
     }
-    OUString aText( SfxResId(STR_QUERY_SAVE_DOCUMENT).toString() );
-    aText = aText.replaceFirst( "$(DOC)", _rTitle );
-    QueryBox aQBox( _pParent, WB_YES_NO_CANCEL | WB_DEF_YES, aText );
-    aQBox.SetText(SfxResId(STR_QUERY_SAVE_DOCUMENT_TITLE).toString()); // Window title
-    aQBox.SetButtonText( BUTTONID_NO, SfxResId(STR_NOSAVEANDCLOSE).toString() );
-    aQBox.SetButtonText( BUTTONID_YES, SfxResId(STR_SAVEDOC).toString() );
+
+    MessageDialog aQBox(_pParent, "QuerySaveDialog", "sfx/ui/querysavedialog.ui");
+    aQBox.set_primary_text(aQBox.get_primary_text().replaceFirst("$(DOC)", _rTitle));
     return aQBox.Execute();
 }
-// -----------------------------------------------------------------------------
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/doc/doc.hrc b/sfx2/source/doc/doc.hrc
index 26947bd..0ccbede 100644
--- a/sfx2/source/doc/doc.hrc
+++ b/sfx2/source/doc/doc.hrc
@@ -114,7 +114,7 @@
 #define STR_DOCTYPENAME_MESSAGE             (RID_SFX_DOC_START+ 75)
 #define RID_STR_NEW_TASK                    (RID_SFX_DOC_START+ 76)
 
-#define STR_NOSAVEANDCLOSE                  (RID_SFX_DOC_START+ 78)
+
 #define STR_PACKNGO_NOACCESS                (RID_SFX_DOC_START+ 79)
 #define STR_PACKNGO_NEWMEDIUM               (RID_SFX_DOC_START+ 80)
 
diff --git a/sfx2/source/doc/doc.src b/sfx2/source/doc/doc.src
index fa5889e..c1341cd 100644
--- a/sfx2/source/doc/doc.src
+++ b/sfx2/source/doc/doc.src
@@ -47,14 +47,6 @@ QueryBox MSG_REGION_NOTEMPTY
     DefButton = WB_DEF_NO ;
     Message [ en-US ] = "The category is not empty.\nDelete anyway?" ;
 };
-String STR_QUERY_SAVE_DOCUMENT_TITLE
-{
-    Text [ en-US ] = "Save document" ;
-};
-String STR_QUERY_SAVE_DOCUMENT
-{
-    Text [ en-US ] = "Save changes to document \"$(DOC)\" before closing?" ;
-};
 Bitmap BMP_STYLES_CLOSED { File = "newex.bmp" ; };
 Bitmap BMP_STYLES_OPENED { File = "newex.bmp" ; };
 
@@ -314,11 +306,6 @@ String STR_DOCTYPENAME_MESSAGE
     Text [ en-US ] = "Message";
 };
 
-String STR_NOSAVEANDCLOSE
-{
-    Text [ en-US ] = "Close ~without saving" ;
-};
-
 String STR_PACKNGO_NOACCESS
 {
     Text [ en-US ] = "Access to the current data medium not possible." ;
diff --git a/sfx2/uiconfig/ui/querysavedialog.ui b/sfx2/uiconfig/ui/querysavedialog.ui
new file mode 100644
index 0000000..42d0371
--- /dev/null
+++ b/sfx2/uiconfig/ui/querysavedialog.ui
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkMessageDialog" id="QuerySaveDialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">12</property>
+    <property name="title" translatable="yes">Save document</property>
+    <property name="type_hint">dialog</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="message_type">warning</property>
+    <property name="text" translatable="yes">Save changes to document "$(DOC)" before closing?</property>
+    <property name="secondary_text" translatable="yes">Your changes will be lost if you don't save them.</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="messagedialog-vbox">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">24</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="messagedialog-action_area">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button3">
+                <property name="label" translatable="yes">Close _without saving</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">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button1">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+                <property name="image_position">bottom</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="button2">
+                <property name="label">gtk-save</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_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</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>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="3">button3</action-widget>
+      <action-widget response="0">button1</action-widget>
+      <action-widget response="2">button2</action-widget>
+    </action-widgets>
+  </object>
+</interface>
commit 9e5c35454d07f880a2cb52d9a808633b908bb859
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 30 20:44:06 2013 +0100

    create a HIG compliant MessageDialog and map to GtkMessageDialog
    
    Change-Id: If86387619ff00a652ea418292fbb0026b867a431

diff --git a/include/vcl/builder.hxx b/include/vcl/builder.hxx
index 83532dd..fc7a286 100644
--- a/include/vcl/builder.hxx
+++ b/include/vcl/builder.hxx
@@ -50,6 +50,13 @@ private:
     //exist for the duration of the dialog
     vcl::detail::ModuleMap m_aModuleMap;
 
+    //If the toplevel window has any properties which need to be set on it,
+    //but the toplevel is the owner of the builder, then its ctor
+    //has not been completed during the building, so properties for it
+    //are collected here and need to be set afterwards, e.g. during
+    //Show or Execute
+    stringmap m_aDeferredProperties;
+
     struct PackingData
     {
         bool m_bVerticalOrient;
@@ -65,10 +72,12 @@ private:
     {
         OString m_sID;
         Window *m_pWindow;
+        short m_nResponseId;
         PackingData m_aPackingData;
         WinAndId(const OString &rId, Window *pWindow, bool bVertical)
             : m_sID(rId)
             , m_pWindow(pWindow)
+            , m_nResponseId(RET_CANCEL)
             , m_aPackingData(bVertical)
         {
         }
@@ -215,6 +224,7 @@ private:
     ResHookProc m_pStringReplace;
     Window *m_pParent;
     bool m_bToplevelHasDeferredInit;
+    bool m_bToplevelHasDeferredProperties;
     bool m_bToplevelParentFound;
     ParserState *m_pParserState;
 
@@ -266,14 +276,23 @@ public:
     //sID may not exist
     PopupMenu* get_menu(OString sID);
 
+    //given an sID return the response value for that widget
+    short get_response(const Window *pWindow) const;
+
     OString get_by_window(const Window *pWindow) const;
     void delete_by_window(const Window *pWindow);
 
+    //apply the properties of rProps to pWindow
+    static void set_properties(Window *pWindow, const stringmap &rProps);
+
     //Convert _ gtk markup to ~ vcl markup
     static OString convertMnemonicMarkup(const OString &rIn);
 
     static OString extractCustomProperty(stringmap &rMap);
 
+    //see m_aDeferredProperties
+    void setDeferredProperties();
+
 private:
     Window *insertObject(Window *pParent, const OString &rClass, const OString &rID,
         stringmap &rProps, stringmap &rPangoAttributes,
@@ -322,12 +341,16 @@ private:
 
     void handleAtkObject(xmlreader::XmlReader &reader, const OString &rID, Window *pWindow);
 
+    void handleActionWidget(xmlreader::XmlReader &reader);
+
     PackingData get_window_packing_data(const Window *pWindow) const;
     void set_window_packing_position(const Window *pWindow, sal_Int32 nPosition);
 
     Window* prepareWidgetOwnScrolling(Window *pParent, WinBits &rWinStyle);
     void cleanupWidgetOwnScrolling(Window *pScrollParent, Window *pWindow, stringmap &rMap);
 
+    void set_response(OString sID, short nResponse);
+
     //Helpers to retrofit all the existing code to the builder
     static void reorderWithinParent(Window &rWindow, sal_uInt16 nNewPosition);
 };
@@ -368,6 +391,12 @@ public:
     {
         return m_pUIBuilder->get_menu(sID);
     }
+    void setDeferredProperties()
+    {
+        if (!m_pUIBuilder)
+            return;
+        m_pUIBuilder->setDeferredProperties();
+    }
 };
 
 /*
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index c6b6a12..f45fcb2 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -12,7 +12,10 @@
 
 #include <vcl/dllapi.h>
 #include <vcl/button.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/fixed.hxx>
 #include <vcl/scrbar.hxx>
+#include <vcl/vclmedit.hxx>
 #include <vcl/window.hxx>
 #include <boost/multi_array.hpp>
 #include <set>
@@ -638,6 +641,29 @@ public:
     bool set_property(const OString &rKey, const OString &rValue);
 };
 
+class VCL_DLLPUBLIC MessageDialog : public Dialog
+{
+private:
+    VclGrid* m_pGrid;
+    FixedImage* m_pImage;
+    VclMultiLineEdit* m_pPrimaryMessage;
+    VclMultiLineEdit* m_pSecondaryMessage;
+    OUString m_sPrimaryString;
+    OUString m_sSecondaryString;
+    DECL_DLLPRIVATE_LINK(ButtonHdl, Button *);
+    void setButtonHandlers();
+public:
+    MessageDialog(Window* pParent, WinBits nStyle);
+    MessageDialog(Window* pParent, const OString& rID, const OUString& rUIXMLDescription);
+    virtual bool set_property(const OString &rKey, const OString &rValue);
+    virtual short Execute();
+    OUString get_primary_text() const;
+    OUString get_secondary_text() const;
+    void set_primary_text(const OUString &rPrimaryString);
+    void set_secondary_text(const OUString &rSecondaryString);
+    ~MessageDialog();
+};
+
 VCL_DLLPUBLIC Size bestmaxFrameSizeForScreenSize(const Size &rScreenSize);
 
 //Get first window of a pTopLevel window as
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index a879eb3..2f3b364 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -144,6 +144,7 @@ VclBuilder::VclBuilder(Window *pParent, OUString sUIDir, OUString sUIFile, OStri
     , m_pParserState(new ParserState)
 {
     m_bToplevelHasDeferredInit = (pParent && pParent->IsDialog()) ? ((Dialog*)pParent)->isDeferredInit() : false;
+    m_bToplevelHasDeferredProperties = m_bToplevelHasDeferredInit;
 
     sal_Int32 nIdx = m_sHelpRoot.lastIndexOf('.');
     if (nIdx != -1)
@@ -944,6 +945,13 @@ Window *VclBuilder::makeObject(Window *pParent, const OString &name, const OStri
             nBits |= WB_SIZEABLE;
         pWindow = new Dialog(pParent, nBits);
     }
+    else if (name == "GtkMessageDialog")
+    {
+        WinBits nBits = WB_MOVEABLE|WB_3DLOOK|WB_CLOSEABLE;
+        if (extractResizable(rMap))
+            nBits |= WB_SIZEABLE;
+        pWindow = new MessageDialog(pParent, nBits);
+    }
     else if (name == "GtkBox")
     {
         bVertical = extractOrientation(rMap);
@@ -1256,6 +1264,27 @@ namespace
     }
 }
 
+//Any properties from .ui load we couldn't set because of potential virtual methods
+//during ctor are applied here
+void VclBuilder::setDeferredProperties()
+{
+    if (!m_bToplevelHasDeferredProperties)
+        return;
+    set_properties(m_pParent, m_aDeferredProperties);
+    m_aDeferredProperties.clear();
+    m_bToplevelHasDeferredProperties = false;
+}
+
+void VclBuilder::set_properties(Window *pWindow, const stringmap &rProps)
+{
+    for (stringmap::const_iterator aI = rProps.begin(), aEnd = rProps.end(); aI != aEnd; ++aI)
+    {
+        const OString &rKey = aI->first;
+        const OString &rValue = aI->second;
+        pWindow->set_property(rKey, rValue);
+    }
+}
+
 Window *VclBuilder::insertObject(Window *pParent, const OString &rClass,
     const OString &rID, stringmap &rProps, stringmap &rPango,
     stringmap &rAtk,
@@ -1294,12 +1323,10 @@ Window *VclBuilder::insertObject(Window *pParent, const OString &rClass,
 
     if (pCurrentChild)
     {
-        for (stringmap::iterator aI = rProps.begin(), aEnd = rProps.end(); aI != aEnd; ++aI)
-        {
-            const OString &rKey = aI->first;
-            const OString &rValue = aI->second;
-            pCurrentChild->set_property(rKey, rValue);
-        }
+        if (pCurrentChild == m_pParent && m_bToplevelHasDeferredProperties)
+            m_aDeferredProperties = rProps;
+        else
+            set_properties(pCurrentChild, rProps);
 
         for (stringmap::iterator aI = rPango.begin(), aEnd = rPango.end(); aI != aEnd; ++aI)
         {
@@ -1529,15 +1556,19 @@ void VclBuilder::handleChild(Window *pParent, xmlreader::XmlReader &reader)
                             if (VclFrame *pFrameParent = dynamic_cast<VclFrame*>(pParent))
                                 pFrameParent->designate_label(pCurrentChild);
                         }
-                        if (sInternalChild.equals("vbox"))
+                        if (sInternalChild.equals("vbox") || sInternalChild.equals("messagedialog-vbox"))
                         {
                             if (Dialog *pBoxParent = dynamic_cast<Dialog*>(pParent))
                                 pBoxParent->set_content_area(static_cast<VclBox*>(pCurrentChild));
                         }
-                        else if (sInternalChild.equals("action_area"))
+                        else if (sInternalChild.equals("action_area") || sInternalChild.equals("messagedialog-action_area"))
                         {
-                            if (Dialog *pBoxParent = dynamic_cast<Dialog*>(pParent))
+                            Window *pContentArea = pCurrentChild->GetParent();
+                            assert(pContentArea && pContentArea->GetType() == WINDOW_CONTAINER);
+                            if (Dialog *pBoxParent = dynamic_cast<Dialog*>(pContentArea ? pContentArea->GetParent() : NULL))
+                            {
                                 pBoxParent->set_action_area(static_cast<VclButtonBox*>(pCurrentChild));
+                            }
                         }
 
                         //To-Do make reorder a virtual in Window, move this foo
@@ -2222,6 +2253,8 @@ Window* VclBuilder::handleObject(Window *pParent, xmlreader::XmlReader &reader)
                     collectPangoAttribute(reader, aPangoAttributes);
                 else if (name.equals("relation"))
                     collectAtkAttribute(reader, aAtkAttributes);
+                else if (name.equals("action-widget"))
+                    handleActionWidget(reader);
             }
         }
 
@@ -2424,6 +2457,28 @@ void VclBuilder::collectProperty(xmlreader::XmlReader &reader, const OString &rI
     }
 }
 
+void VclBuilder::handleActionWidget(xmlreader::XmlReader &reader)
+{
+    xmlreader::Span name;
+    int nsId;
+
+    OString sResponse;
+
+    while (reader.nextAttribute(&nsId, &name))
+    {
+        if (name.equals("response"))
+        {
+            name = reader.getAttributeValue(false);
+            sResponse = OString(name.begin, name.length);
+        }
+    }
+
+    reader.nextItem(xmlreader::XmlReader::TEXT_RAW, &name, &nsId);
+    OString sID = OString(name.begin, name.length);
+    set_response(sID, sResponse.toInt32());
+}
+
+
 void VclBuilder::collectAccelerator(xmlreader::XmlReader &reader, stringmap &rMap)
 {
     xmlreader::Span name;
@@ -2482,6 +2537,38 @@ PopupMenu *VclBuilder::get_menu(OString sID)
     return NULL;
 }
 
+short VclBuilder::get_response(const Window *pWindow) const
+{
+    for (std::vector<WinAndId>::const_iterator aI = m_aChildren.begin(),
+         aEnd = m_aChildren.end(); aI != aEnd; ++aI)
+    {
+        if (aI->m_pWindow == pWindow)
+        {
+            return aI->m_nResponseId;
+        }
+    }
+
+    //how did we not find sID ?
+    assert(false);
+    return RET_CANCEL;
+}
+
+void VclBuilder::set_response(OString sID, short nResponse)
+{
+    for (std::vector<WinAndId>::iterator aI = m_aChildren.begin(),
+         aEnd = m_aChildren.end(); aI != aEnd; ++aI)
+    {
+        if (aI->m_sID.equals(sID))
+        {
+            aI->m_nResponseId = nResponse;
+            return;
+        }
+    }
+
+    //how did we not find sID ?
+    assert(false);
+}
+
 void VclBuilder::delete_by_name(OString sID)
 {
     for (std::vector<WinAndId>::iterator aI = m_aChildren.begin(),
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index c37588a..4ea01eb 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -711,6 +711,7 @@ void Dialog::StateChanged( StateChangedType nType )
         if (isLayoutEnabled())
         {
             mbIsCalculatingInitialLayoutSize = true;
+            setDeferredProperties();
             setOptimalLayoutSize();
             mbIsCalculatingInitialLayoutSize = false;
         }
@@ -900,6 +901,8 @@ void Dialog::ImplEndExecuteModal()
 
 short Dialog::Execute()
 {
+    setDeferredProperties();
+
     if ( !ImplStartExecuteModal() )
         return 0;
 
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index 27bb34d..84351e2 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -10,6 +10,7 @@
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <vcl/dialog.hxx>
 #include <vcl/layout.hxx>
+#include <vcl/msgbox.hxx>
 #include "window.h"
 
 VclContainer::VclContainer(Window *pParent, WinBits nStyle)
@@ -1565,6 +1566,181 @@ bool VclSizeGroup::set_property(const OString &rKey, const OString &rValue)
     return true;
 }
 
+MessageDialog::MessageDialog(Window* pParent, WinBits nStyle)
+    : Dialog(pParent, nStyle)
+    , m_pGrid(NULL)
+    , m_pImage(NULL)
+    , m_pPrimaryMessage(NULL)
+    , m_pSecondaryMessage(NULL)
+{
+    SetType(WINDOW_MESSBOX);
+}
+
+MessageDialog::MessageDialog(Window* pParent, const OString& rID, const OUString& rUIXMLDescription)
+    : Dialog(pParent, rID, rUIXMLDescription, WINDOW_MESSBOX)
+    , m_pGrid(NULL)
+    , m_pImage(NULL)
+    , m_pPrimaryMessage(NULL)
+    , m_pSecondaryMessage(NULL)
+{
+}
+
+MessageDialog::~MessageDialog()
+{
+    delete m_pSecondaryMessage;
+    delete m_pPrimaryMessage;
+    delete m_pImage;
+    delete m_pGrid;
+}
+
+IMPL_LINK(MessageDialog, ButtonHdl, Button *, pButton)
+{
+    //for now insist that we have a builder, we can relax that in
+    //the future if we need it
+    assert(m_pUIBuilder);
+    EndDialog(m_pUIBuilder->get_response(pButton));
+    return 0;
+}
+
+void MessageDialog::setButtonHandlers()
+{
+    SAL_WARN_IF(!m_pUIBuilder, "vcl.layout", "MessageDialog non-ui load button responses not implemented yet");
+    if (!m_pUIBuilder)
+        return;
+    VclButtonBox *pButtonBox = get_action_area();
+    assert(pButtonBox);
+    for (Window* pChild = pButtonBox->GetWindow(WINDOW_FIRSTCHILD); pChild;
+        pChild = pChild->GetWindow(WINDOW_NEXT))
+    {
+        switch (pChild->GetType())
+        {
+            case WINDOW_PUSHBUTTON:
+            {
+                PushButton* pButton = (PushButton*)pChild;
+                pButton->SetClickHdl(LINK(this, MessageDialog, ButtonHdl));
+                break;
+            }
+            //for now at least, insist that the response ids match
+            //the default actions for those widgets, and leave
+            //their default handlers in place
+            case WINDOW_OKBUTTON:
+                assert(m_pUIBuilder->get_response(pChild) == RET_OK);
+                break;
+            case WINDOW_CANCELBUTTON:
+                assert(m_pUIBuilder->get_response(pChild) == RET_CANCEL);
+                break;
+            case WINDOW_HELPBUTTON:
+                assert(m_pUIBuilder->get_response(pChild) == RET_HELP);
+                break;
+            default:
+                SAL_WARN("vcl.layout", "The type of widget " <<
+                    pChild->GetHelpId() << " is currently not handled");
+                break;
+        }
+        //The default is to stick the focus into the first widget
+        //that accepts it, and if that happens and its a button
+        //then that becomes the new default button, so explicitly
+        //put the focus into the default button
+        if (pChild->GetStyle() & WB_DEFBUTTON)
+            pChild->GrabFocus();
+    }
+}
+
+short MessageDialog::Execute()
+{
+    setDeferredProperties();
+
+    if (!m_pGrid)
+    {
+        VclContainer *pContainer = get_content_area();
+        assert(pContainer);
+
+        m_pGrid = new VclGrid(pContainer);
+        m_pGrid->set_column_spacing(12);
+
+        m_pImage = new FixedImage(m_pGrid, WB_CENTER | WB_VCENTER | WB_3DLOOK);
+        m_pImage->SetImage(WarningBox::GetStandardImage());
+        m_pImage->set_grid_left_attach(0);
+        m_pImage->set_grid_top_attach(0);
+        m_pImage->set_valign(VCL_ALIGN_START);
+        m_pImage->Show();
+
+        WinBits nWinStyle = WB_LEFT | WB_VCENTER | WB_WORDBREAK | WB_NOLABEL | WB_NOTABSTOP;
+
+        m_pPrimaryMessage = new VclMultiLineEdit(m_pGrid, nWinStyle);
+        m_pPrimaryMessage->SetPaintTransparent(true);
+        m_pPrimaryMessage->EnableCursor(false);
+        Font aFont = GetSettings().GetStyleSettings().GetLabelFont();
+        aFont.SetSize( Size( 0, aFont.GetSize().Height() * 1.2 ) );
+        aFont.SetWeight(WEIGHT_BOLD);
+        m_pPrimaryMessage->SetControlFont(aFont);
+        m_pPrimaryMessage->set_grid_left_attach(1);
+        m_pPrimaryMessage->set_grid_top_attach(0);
+        m_pPrimaryMessage->set_hexpand(true);
+        m_pPrimaryMessage->SetText(m_sPrimaryString);
+        m_pPrimaryMessage->Show(!m_sPrimaryString.isEmpty());
+
+        m_pSecondaryMessage = new VclMultiLineEdit(m_pGrid, nWinStyle);
+        m_pSecondaryMessage->SetPaintTransparent(true);
+        m_pSecondaryMessage->EnableCursor(false);
+        m_pSecondaryMessage->set_grid_left_attach(1);
+        m_pSecondaryMessage->set_grid_top_attach(1);
+        m_pSecondaryMessage->set_hexpand(true);
+        m_pSecondaryMessage->SetText(m_sSecondaryString);
+        m_pSecondaryMessage->Show(!m_sSecondaryString.isEmpty());
+
+        m_pGrid->Show();
+
+        setButtonHandlers();
+    }
+    return Dialog::Execute();
+}
+
+OUString MessageDialog::get_primary_text() const
+{
+    const_cast<MessageDialog*>(this)->setDeferredProperties();
+
+    return m_sPrimaryString;
+}
+
+OUString MessageDialog::get_secondary_text() const
+{
+    const_cast<MessageDialog*>(this)->setDeferredProperties();
+
+    return m_sSecondaryString;
+}
+
+bool MessageDialog::set_property(const OString &rKey, const OString &rValue)
+{
+    if (rKey == "text")
+        set_primary_text(OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
+    else if (rKey == "secondary-text")
+        set_secondary_text(OStringToOUString(rValue, RTL_TEXTENCODING_UTF8));
+    else
+        return Dialog::set_property(rKey, rValue);
+    return true;
+}
+
+void MessageDialog::set_primary_text(const OUString &rPrimaryString)
+{
+    m_sPrimaryString = rPrimaryString;
+    if (m_pPrimaryMessage)
+    {
+        m_pPrimaryMessage->SetText(m_sPrimaryString);
+        m_pPrimaryMessage->Show(!m_sPrimaryString.isEmpty());
+    }
+}
+
+void MessageDialog::set_secondary_text(const OUString &rSecondaryString)
+{
+    m_sSecondaryString = rSecondaryString;
+    if (m_pSecondaryMessage)
+    {
+        m_pSecondaryMessage->SetText(OUString("\n") + m_sSecondaryString);
+        m_pSecondaryMessage->Show(!m_sSecondaryString.isEmpty());
+    }
+}
+
 Size getLegacyBestSizeForChildren(const Window &rWindow)
 {
     Rectangle aBounds;
commit 26bda9f4a82c9b1956a10e3dc52a99bc2f850ada
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 1 10:08:20 2013 +0100

    convert message box return types to an enum
    
    Change-Id: I20889dc94aac1119c1ee9da873ce911887c1c335

diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index 6cafb44..debf652 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -931,7 +931,7 @@ LanguageMismatchQueryBox::LanguageMismatchQueryBox( Window* pParent,
         BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_OKBUTTON | BUTTONDIALOG_FOCUSBUTTON );
     AddButton( IDE_RESSTR(RID_STR_DLGIMP_MISMATCH_OMIT), RET_NO, 0 );
     AddButton( BUTTON_CANCEL, RET_CANCEL, BUTTONDIALOG_CANCELBUTTON );
-    AddButton( BUTTON_HELP, BUTTONID_HELP, BUTTONDIALOG_HELPBUTTON, 4 );
+    AddButton( BUTTON_HELP, RET_HELP, BUTTONDIALOG_HELPBUTTON, 4 );
 
     SetImage( QueryBox::GetStandardImage() );
 }
diff --git a/dbaccess/source/ui/dlg/sqlmessage.cxx b/dbaccess/source/ui/dlg/sqlmessage.cxx
index d263417..c35fba5 100644
--- a/dbaccess/source/ui/dlg/sqlmessage.cxx
+++ b/dbaccess/source/ui/dlg/sqlmessage.cxx
@@ -39,7 +39,7 @@
 
 #include <tools/urlobj.hxx>
 
-#define BUTTONID_MORE   BUTTONID_RETRY + 1
+#define RET_MORE   RET_RETRY + 1
 
 #define DIALOG_WIDTH    220
 #define OUTER_MARGIN    6
@@ -458,12 +458,12 @@ namespace
         sal_uInt16 nButtonID = 0;
         switch ( _eType )
         {
-        case BUTTON_YES:    nButtonID = BUTTONID_YES; break;
-        case BUTTON_NO:     nButtonID = BUTTONID_NO; break;
-        case BUTTON_OK:     nButtonID = BUTTONID_OK; break;
-        case BUTTON_CANCEL: nButtonID = BUTTONID_CANCEL; break;
-        case BUTTON_RETRY:  nButtonID = BUTTONID_RETRY; break;
-        case BUTTON_HELP:   nButtonID = BUTTONID_HELP; break;
+        case BUTTON_YES:    nButtonID = RET_YES; break;
+        case BUTTON_NO:     nButtonID = RET_NO; break;
+        case BUTTON_OK:     nButtonID = RET_OK; break;
+        case BUTTON_CANCEL: nButtonID = RET_CANCEL; break;
+        case BUTTON_RETRY:  nButtonID = RET_RETRY; break;
+        case BUTTON_HELP:   nButtonID = RET_HELP; break;
         default:
             OSL_FAIL( "lcl_addButton: invalid button id!" );
             break;
@@ -623,7 +623,7 @@ void OSQLMessageBox::impl_createStandardButtons( WinBits _nStyle )
     else
     {
         OSL_ENSURE( WB_OK & _nStyle, "OSQLMessageBox::impl_createStandardButtons: unsupported dialog style requested!" );
-        AddButton( BUTTON_OK, BUTTONID_OK, BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON );
+        AddButton( BUTTON_OK, RET_OK, BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON );
     }
 
     if ( !m_sHelpURL.isEmpty() )
@@ -666,8 +666,8 @@ void OSQLMessageBox::impl_addDetailsButton()
 
     if ( bMoreDetailsAvailable )
     {
-        AddButton( BUTTON_MORE, BUTTONID_MORE, 0 );
-        PushButton* pButton = GetPushButton( BUTTONID_MORE );
+        AddButton( BUTTON_MORE, RET_MORE, 0 );
+        PushButton* pButton = GetPushButton( RET_MORE );
         OSL_ENSURE( pButton, "OSQLMessageBox::impl_addDetailsButton: just added this button, why isn't it there?" );
         pButton->SetClickHdl( LINK( this, OSQLMessageBox, ButtonClickHdl ) );
         pButton->SetUniqueId( UID_SQLERROR_BUTTONMORE );
diff --git a/dbaccess/source/ui/relationdesign/RelationTableView.cxx b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
index 5a3d724..f6a0ac6 100644
--- a/dbaccess/source/ui/relationdesign/RelationTableView.cxx
+++ b/dbaccess/source/ui/relationdesign/RelationTableView.cxx
@@ -365,9 +365,9 @@ void ORelationTableView::lookForUiActivities()
         OSQLMessageBox aDlg(this,ModuleRes(STR_QUERY_REL_EDIT_RELATION),String(),0);
         aDlg.SetText(sTitle);
         aDlg.RemoveButton(aDlg.GetButtonId(0));
-        aDlg.AddButton( ModuleRes(STR_QUERY_REL_EDIT), BUTTONID_OK, BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON);
-        aDlg.AddButton( ModuleRes(STR_QUERY_REL_CREATE), BUTTONID_YES, 0);
-        aDlg.AddButton(BUTTON_CANCEL,BUTTONID_CANCEL,0);
+        aDlg.AddButton( ModuleRes(STR_QUERY_REL_EDIT), RET_OK, BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON);
+        aDlg.AddButton( ModuleRes(STR_QUERY_REL_CREATE), RET_YES, 0);
+        aDlg.AddButton(BUTTON_CANCEL,RET_CANCEL,0);
         sal_uInt16 nRet = aDlg.Execute();
         if( nRet == RET_CANCEL)
         {
diff --git a/include/vcl/msgbox.hxx b/include/vcl/msgbox.hxx
index 594d248..93689f8 100644
--- a/include/vcl/msgbox.hxx
+++ b/include/vcl/msgbox.hxx
@@ -29,28 +29,6 @@ class VclMultiLineEdit;
 class FixedImage;
 class CheckBox;
 
-// -----------------
-// - MessBox-Types -
-// -----------------
-
-// Return-Werte von Execute
-//!!! bei Aenderungen \basic\source\runtime\methods.cxx msgbox anpassen
-
-#define RET_CANCEL           0
-#define RET_OK               1
-#define RET_YES              2
-#define RET_NO               3
-#define RET_RETRY            4
-#define RET_IGNORE           5
-
-#define BUTTONID_OK          RET_OK
-#define BUTTONID_CANCEL      RET_CANCEL
-#define BUTTONID_YES         RET_YES
-#define BUTTONID_NO          RET_NO
-#define BUTTONID_RETRY       RET_RETRY
-#define BUTTONID_IGNORE      RET_IGNORE
-#define BUTTONID_HELP        10
-
 // -----------
 // - MessBox -
 // -----------
diff --git a/include/vcl/vclenum.hxx b/include/vcl/vclenum.hxx
index e0760b1..d37b11b 100644
--- a/include/vcl/vclenum.hxx
+++ b/include/vcl/vclenum.hxx
@@ -132,6 +132,20 @@ enum VclPackType
     VCL_PACK_END = 1
 };
 
+// Return Values from Dialog::Execute
+//!!! bei Aenderungen \basic\source\runtime\methods.cxx msgbox anpassen
+
+enum VclResponseType
+{
+    RET_CANCEL  = 0,
+    RET_OK      = 1,
+    RET_YES     = 2,
+    RET_NO      = 3,
+    RET_RETRY   = 4,
+    RET_IGNORE  = 5,
+    RET_HELP    = 10
+};
+
 #endif  // _VCL_VCLENUM_HXX
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx
index 42d048f..f9e468b 100644
--- a/sc/source/ui/dbgui/pvfundlg.cxx
+++ b/sc/source/ui/dbgui/pvfundlg.cxx
@@ -817,7 +817,7 @@ ScDPShowDetailDlg::ScDPShowDetailDlg( Window* pParent, ScDPObject& rDPObj, sal_u
 
 short ScDPShowDetailDlg::Execute()
 {
-    return maLbDims.GetEntryCount() ? ModalDialog::Execute() : RET_CANCEL;
+    return maLbDims.GetEntryCount() ? ModalDialog::Execute() : static_cast<short>(RET_CANCEL);
 }
 
 OUString ScDPShowDetailDlg::GetDimensionName() const
diff --git a/sd/source/ui/annotations/annotationmanager.cxx b/sd/source/ui/annotations/annotationmanager.cxx
index 2153af4..3a50ba4 100644
--- a/sd/source/ui/annotations/annotationmanager.cxx
+++ b/sd/source/ui/annotations/annotationmanager.cxx
@@ -729,8 +729,8 @@ void AnnotationManagerImpl::SelectNextAnnotation(bool bForeward)
         // The dialog is made modal with respect to the whole application.
         QueryBox aQuestionBox ( NULL, (WB_YES_NO | WB_DEF_YES), String(SdResId(nStringId)));
         aQuestionBox.SetImage (QueryBox::GetStandardImage());
-        sal_uInt16 nBoxResult = aQuestionBox.Execute();
-        if(nBoxResult != BUTTONID_YES)
+        short nBoxResult = aQuestionBox.Execute();
+        if (nBoxResult != RET_YES)
             break;
     }
     while( true );
diff --git a/sd/source/ui/func/fuoaprms.cxx b/sd/source/ui/func/fuoaprms.cxx
index bb03105..3efc8ae 100644
--- a/sd/source/ui/func/fuoaprms.cxx
+++ b/sd/source/ui/func/fuoaprms.cxx
@@ -450,7 +450,7 @@ void FuObjectAnimationParameters::DoExecute( SfxRequest& rReq )
         SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
         SfxAbstractDialog* pDlg = pFact ? pFact->CreatSdActionDialog( NULL, &aSet, mpView ) : 0;
 
-        sal_uInt16 nResult = pDlg ? pDlg->Execute() : RET_CANCEL;
+        short nResult = pDlg ? pDlg->Execute() : static_cast<short>(RET_CANCEL);
 
         if( nResult == RET_OK )
         {
diff --git a/sd/source/ui/func/fuprlout.cxx b/sd/source/ui/func/fuprlout.cxx
index 9df2ef1..67ae4ca 100644
--- a/sd/source/ui/func/fuprlout.cxx
+++ b/sd/source/ui/func/fuprlout.cxx
@@ -149,7 +149,7 @@ void FuPresentationLayout::DoExecute( SfxRequest& rReq )
         SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
         AbstractSdPresLayoutDlg* pDlg = pFact ? pFact->CreateSdPresLayoutDlg(mpDocSh, NULL, aSet ) : 0;
 
-        sal_uInt16 nResult = pDlg ? pDlg->Execute() : RET_CANCEL;
+        sal_uInt16 nResult = pDlg ? pDlg->Execute() : static_cast<short>(RET_CANCEL);
 
         switch (nResult)
         {
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index 1bd2eff..d6b9e60 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -1151,7 +1151,7 @@ bool Outliner::ShowWrapArroundDialog (void)
             String(SdResId(nStringId)));
         aQuestionBox.SetImage (QueryBox::GetStandardImage());
         sal_uInt16 nBoxResult = ShowModalMessageBox(aQuestionBox);
-        bDoWrapArround = (nBoxResult == BUTTONID_YES);
+        bDoWrapArround = (nBoxResult == RET_YES);
     }
 
     return bDoWrapArround;
diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx
index b523d22..71986a6 100644
--- a/svx/source/form/datanavi.cxx
+++ b/svx/source/form/datanavi.cxx
@@ -3689,8 +3689,8 @@ namespace svxform
     {
         SetText( Application::GetDisplayName() );
         SetImage( QueryBox::GetStandardImage() );
-        AddButton( SVX_RESSTR( RID_STR_DATANAV_LINKWARN_BUTTON ), BUTTONID_OK, BUTTONDIALOG_DEFBUTTON );
-        AddButton( BUTTON_CANCEL, BUTTONID_CANCEL, BUTTONDIALOG_CANCELBUTTON );
+        AddButton( SVX_RESSTR( RID_STR_DATANAV_LINKWARN_BUTTON ), RET_OK, BUTTONDIALOG_DEFBUTTON );
+        AddButton( BUTTON_CANCEL, RET_CANCEL, BUTTONDIALOG_CANCELBUTTON );
     }
 
 //............................................................................
diff --git a/sw/source/ui/fldui/fldedt.cxx b/sw/source/ui/fldui/fldedt.cxx
index 41320d4..b376360 100644
--- a/sw/source/ui/fldui/fldedt.cxx
+++ b/sw/source/ui/fldui/fldedt.cxx
@@ -248,7 +248,7 @@ IMPL_LINK_NOARG(SwFldEditDlg, OKHdl)
 short SwFldEditDlg::Execute()
 {
     // without TabPage no dialog
-    return GetTabPage() ? Dialog::Execute() : RET_CANCEL;
+    return GetTabPage() ? Dialog::Execute() : static_cast<short>(RET_CANCEL);
 }
 
 /*--------------------------------------------------------------------
diff --git a/uui/source/iahndl-errorhandler.cxx b/uui/source/iahndl-errorhandler.cxx
index 3208d23..beedaab 100644
--- a/uui/source/iahndl-errorhandler.cxx
+++ b/uui/source/iahndl-errorhandler.cxx
@@ -106,19 +106,19 @@ executeErrorDialog(
     sal_uInt16 aResult = xBox->Execute();
     switch( aResult )
     {
-    case BUTTONID_OK:
+    case RET_OK:
         aResult = ERRCODE_BUTTON_OK;
         break;
-    case BUTTONID_CANCEL:
+    case RET_CANCEL:
         aResult = ERRCODE_BUTTON_CANCEL;
         break;
-    case BUTTONID_YES:
+    case RET_YES:
         aResult = ERRCODE_BUTTON_YES;
         break;
-    case BUTTONID_NO:
+    case RET_NO:
         aResult = ERRCODE_BUTTON_NO;
         break;
-    case BUTTONID_RETRY:
+    case RET_RETRY:
         aResult = ERRCODE_BUTTON_RETRY;
         break;
     }
diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
index 77fa9ba..c14784b 100644
--- a/uui/source/iahndl.cxx
+++ b/uui/source/iahndl.cxx
@@ -1080,19 +1080,19 @@ executeMessageBox(
     sal_uInt16 aResult = xBox.Execute();
     switch( aResult )
     {
-    case BUTTONID_OK:
+    case RET_OK:
         aResult = ERRCODE_BUTTON_OK;
         break;
-    case BUTTONID_CANCEL:
+    case RET_CANCEL:
         aResult = ERRCODE_BUTTON_CANCEL;
         break;
-    case BUTTONID_YES:
+    case RET_YES:
         aResult = ERRCODE_BUTTON_YES;
         break;
-    case BUTTONID_NO:
+    case RET_NO:
         aResult = ERRCODE_BUTTON_NO;
         break;
-    case BUTTONID_RETRY:
+    case RET_RETRY:
         aResult = ERRCODE_BUTTON_RETRY;
         break;
     }
diff --git a/vcl/source/window/msgbox.cxx b/vcl/source/window/msgbox.cxx
index c7f7da7..9e27767 100644
--- a/vcl/source/window/msgbox.cxx
+++ b/vcl/source/window/msgbox.cxx
@@ -83,8 +83,8 @@ void MessBox::ImplInitButtons()
         else // WB_DEF_OK
             nOKFlags |= BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON;
 
-        AddButton( BUTTON_OK, BUTTONID_OK, nOKFlags );
-        AddButton( BUTTON_CANCEL, BUTTONID_CANCEL, nCancelFlags );
+        AddButton( BUTTON_OK, RET_OK, nOKFlags );
+        AddButton( BUTTON_CANCEL, RET_CANCEL, nCancelFlags );
     }
     else if ( nStyle & WB_YES_NO )
     {
@@ -94,8 +94,8 @@ void MessBox::ImplInitButtons()
             nNoFlags |= BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON;
         nNoFlags |= BUTTONDIALOG_CANCELBUTTON;
 
-        AddButton( BUTTON_YES, BUTTONID_YES, nYesFlags );
-        AddButton( BUTTON_NO, BUTTONID_NO, nNoFlags );
+        AddButton( BUTTON_YES, RET_YES, nYesFlags );
+        AddButton( BUTTON_NO, RET_NO, nNoFlags );
     }
     else if ( nStyle & WB_YES_NO_CANCEL )
     {
@@ -106,9 +106,9 @@ void MessBox::ImplInitButtons()
         else
             nCancelFlags |= BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON;
 
-        AddButton( BUTTON_YES, BUTTONID_YES, nYesFlags );
-        AddButton( BUTTON_NO, BUTTONID_NO, nNoFlags );
-        AddButton( BUTTON_CANCEL, BUTTONID_CANCEL, nCancelFlags );
+        AddButton( BUTTON_YES, RET_YES, nYesFlags );
+        AddButton( BUTTON_NO, RET_NO, nNoFlags );
+        AddButton( BUTTON_CANCEL, RET_CANCEL, nCancelFlags );
     }
     else if ( nStyle & WB_RETRY_CANCEL )
     {
@@ -117,8 +117,8 @@ void MessBox::ImplInitButtons()
         else // WB_DEF_RETRY
             nRetryFlags |= BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON;
 
-        AddButton( BUTTON_RETRY, BUTTONID_RETRY, nRetryFlags );
-        AddButton( BUTTON_CANCEL, BUTTONID_CANCEL, nCancelFlags );
+        AddButton( BUTTON_RETRY, RET_RETRY, nRetryFlags );
+        AddButton( BUTTON_CANCEL, RET_CANCEL, nCancelFlags );
     }
     else if ( nStyle & WB_ABORT_RETRY_IGNORE )
     {
@@ -132,15 +132,15 @@ void MessBox::ImplInitButtons()
         else if ( nStyle & WB_DEF_IGNORE )
             nIgnoreFlags |= BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON;
 
-        AddButton( BUTTON_ABORT, BUTTONID_CANCEL, nAbortFlags );
-        AddButton( BUTTON_RETRY, BUTTONID_RETRY, nRetryFlags );
-        AddButton( BUTTON_IGNORE, BUTTONID_IGNORE, nIgnoreFlags );
+        AddButton( BUTTON_ABORT, RET_CANCEL, nAbortFlags );
+        AddButton( BUTTON_RETRY, RET_RETRY, nRetryFlags );
+        AddButton( BUTTON_IGNORE, RET_IGNORE, nIgnoreFlags );
     }
     else if ( nStyle & WB_OK )
     {
         nOKFlags |= BUTTONDIALOG_DEFBUTTON | BUTTONDIALOG_FOCUSBUTTON;
 
-        AddButton( BUTTON_OK, BUTTONID_OK, nOKFlags );
+        AddButton( BUTTON_OK, RET_OK, nOKFlags );
     }
 }
 
@@ -208,7 +208,7 @@ void MessBox::ImplPosControls()
     {
         if ( !mbHelpBtn )
         {
-            AddButton( BUTTON_HELP, BUTTONID_HELP, BUTTONDIALOG_HELPBUTTON, 3 );
+            AddButton( BUTTON_HELP, RET_HELP, BUTTONDIALOG_HELPBUTTON, 3 );
             mbHelpBtn = sal_True;
         }
     }
@@ -216,7 +216,7 @@ void MessBox::ImplPosControls()
     {
         if ( mbHelpBtn )
         {
-            RemoveButton( BUTTONID_HELP );
+            RemoveButton( RET_HELP );
             mbHelpBtn = sal_False;
         }
     }
commit 1680b036c5a9bf50b10580ee995f91ca6f873ef5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed May 1 10:58:15 2013 +0100

    clear gtk enum value response ids
    
    Change-Id: I4cf3d81bcfe31e8a2b99c0f770bc1f999205f110

diff --git a/cui/uiconfig/ui/namedialog.ui b/cui/uiconfig/ui/namedialog.ui
index 39a4e29..c21d411 100644
--- a/cui/uiconfig/ui/namedialog.ui
+++ b/cui/uiconfig/ui/namedialog.ui
@@ -113,7 +113,7 @@
       </object>
     </child>
     <action-widgets>
-      <action-widget response="-3">ok</action-widget>
+      <action-widget response="0">ok</action-widget>
       <action-widget response="0">cancel</action-widget>
       <action-widget response="0">help</action-widget>
     </action-widgets>
diff --git a/cui/uiconfig/ui/objectnamedialog.ui b/cui/uiconfig/ui/objectnamedialog.ui
index 8f15934..4b2909e 100644
--- a/cui/uiconfig/ui/objectnamedialog.ui
+++ b/cui/uiconfig/ui/objectnamedialog.ui
@@ -114,7 +114,7 @@
     </child>
     <action-widgets>
       <action-widget response="0">help</action-widget>
-      <action-widget response="-3">ok</action-widget>
+      <action-widget response="0">ok</action-widget>
       <action-widget response="0">cancel</action-widget>
     </action-widgets>
   </object>
diff --git a/cui/uiconfig/ui/objecttitledescdialog.ui b/cui/uiconfig/ui/objecttitledescdialog.ui
index 2e639b9..b8c09b1 100644
--- a/cui/uiconfig/ui/objecttitledescdialog.ui
+++ b/cui/uiconfig/ui/objecttitledescdialog.ui
@@ -110,7 +110,6 @@
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">_Description</property>
                 <property name="use_underline">True</property>
-                <property name="mnemonic_widget">desc_entry</property>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -150,7 +149,7 @@
     </child>
     <action-widgets>
       <action-widget response="0">help</action-widget>
-      <action-widget response="-3">ok</action-widget>
+      <action-widget response="0">ok</action-widget>
       <action-widget response="0">cancel</action-widget>
     </action-widgets>
   </object>


More information about the Libreoffice-commits mailing list