[Libreoffice-commits] core.git: Branch 'libreoffice-4-2' - basctl/source include/vcl vcl/source

Caolán McNamara caolanm at redhat.com
Tue Feb 4 12:23:24 PST 2014


 basctl/source/basicide/moduldl2.cxx |   33 +++++++++++++++------------------
 include/vcl/layout.hxx              |    7 +++++--
 vcl/source/window/layout.cxx        |   19 ++++++++++++++++++-
 3 files changed, 38 insertions(+), 21 deletions(-)

New commits:
commit 4b9c6542f7107be7536f239ca061fd363395b3d4
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Jan 1 20:22:00 2014 +0000

    fdo#74104 fdo#73904 backport Message dialog creation from message strings
    
    Original title:
    "allow simple MessageDialogs to be created from just message strings"
    
    Commit 9b6b03542df7f6b0feecf60a13bab7e885ef3587 upgraded
    sd/source/ui/view/Outliner.cxx to use a MessageDialog created from just a
    message string, but was done before the existence of this commit -- it's
    presumably safest to backport this commit to ensure that any other such
    changed dialogs will work as expected.
    
    (cherry picked from commit 257d1f4ff3094a42952663d620d7c49e3e7c747f)
    
    Conflicts:
    	basctl/source/basicide/moduldl2.cxx
    
    Change-Id: I9f8324d1c61bd55ccc78e67699ebdfa946e48af6
    Reviewed-on: https://gerrit.libreoffice.org/7859
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index f4d5bad..3db35b8 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <vcl/msgbox.hxx>
+#include <vcl/layout.hxx>
 #include <sot/storinfo.hxx>
 
 #include <moduldlg.hrc>
@@ -291,7 +291,7 @@ sal_Bool CheckBox::EditingEntry( SvTreeListEntry* pEntry, Selection& )
     OUString aLibName = GetEntryText( pEntry, 0 );
     if ( aLibName.equalsIgnoreAsciiCase( "Standard" ) )
     {
-        ErrorBox( this, WB_OK | WB_DEF_OK, IDE_RESSTR(RID_STR_CANNOTCHANGENAMESTDLIB) ).Execute();
+        MessageDialog(this, IDE_RESSTR(RID_STR_CANNOTCHANGENAMESTDLIB)).Execute();
         return false;
     }
 
@@ -301,7 +301,7 @@ sal_Bool CheckBox::EditingEntry( SvTreeListEntry* pEntry, Selection& )
     if ( ( xModLibContainer.is() && xModLibContainer->hasByName( aLibName ) && xModLibContainer->isLibraryReadOnly( aLibName ) && !xModLibContainer->isLibraryLink( aLibName ) ) ||
          ( xDlgLibContainer.is() && xDlgLibContainer->hasByName( aLibName ) && xDlgLibContainer->isLibraryReadOnly( aLibName ) && !xDlgLibContainer->isLibraryLink( aLibName ) ) )
     {
-        ErrorBox( this, WB_OK | WB_DEF_OK, IDE_RESSTR(RID_STR_LIBISREADONLY) ).Execute();
+        MessageDialog(this, IDE_RESSTR(RID_STR_LIBISREADONLY)).Execute();
         return false;
     }
 
@@ -353,7 +353,7 @@ sal_Bool CheckBox::EditedEntry( SvTreeListEntry* pEntry, const OUString& rNewNam
         }
         catch (const container::ElementExistException& )
         {
-            ErrorBox( this, WB_OK | WB_DEF_OK, IDE_RESSTR(RID_STR_SBXNAMEALLREADYUSED) ).Execute();
+            MessageDialog(this, IDE_RESSTR(RID_STR_SBXNAMEALLREADYUSED)).Execute();
             return false;
         }
         catch (const container::NoSuchElementException& )
@@ -366,9 +366,9 @@ sal_Bool CheckBox::EditedEntry( SvTreeListEntry* pEntry, const OUString& rNewNam
     if ( !bValid )
     {
         if ( rNewName.getLength() > 30 )
-            ErrorBox( this, WB_OK | WB_DEF_OK, IDE_RESSTR(RID_STR_LIBNAMETOLONG) ).Execute();
+            MessageDialog(this, IDE_RESSTR(RID_STR_LIBNAMETOLONG)).Execute();
         else
-            ErrorBox( this, WB_OK | WB_DEF_OK, IDE_RESSTR(RID_STR_BADSBXNAME) ).Execute();
+            MessageDialog(this, IDE_RESSTR(RID_STR_BADSBXNAME)).Execute();
     }
 
     return bValid;
@@ -384,8 +384,7 @@ IMPL_LINK_NOARG(NewObjectDialog, OkButtonHandler)
         EndDialog(1);
     else
     {
-        ErrorBox(this, WB_OK | WB_DEF_OK,
-                 IDE_RESSTR(RID_STR_BADSBXNAME)).Execute();
+        MessageDialog(this, IDE_RESSTR(RID_STR_BADSBXNAME)).Execute();
         aEdit.GrabFocus();
     }
     return 0;
@@ -893,7 +892,7 @@ void LibPage::InsertLib()
             }
 
             if ( !pLibDlg )
-                InfoBox( this, IDE_RESSTR(RID_STR_NOLIBINSTORAGE) ).Execute();
+                MessageDialog(this, IDE_RESSTR(RID_STR_NOLIBINSTORAGE), VCL_MESSAGE_INFO).Execute();
             else
             {
                 bool bChanges = false;
@@ -930,7 +929,7 @@ void LibPage::InsertLib()
                                     // check, if the library is the Standard library
                                     if ( aLibName == "Standard" )
                                     {
-                                        ErrorBox( this, WB_OK | WB_DEF_OK, IDE_RESSTR(RID_STR_REPLACESTDLIB) ).Execute();
+                                        MessageDialog(this, IDE_RESSTR(RID_STR_REPLACESTDLIB)).Execute();
                                         continue;
                                     }
 
@@ -942,7 +941,7 @@ void LibPage::InsertLib()
                                         aErrStr = aErrStr.replaceAll("XX", aLibName);
                                         aErrStr += "\n";
                                         aErrStr += IDE_RESSTR(RID_STR_LIBISREADONLY);
-                                        ErrorBox( this, WB_OK | WB_DEF_OK, aErrStr ).Execute();
+                                        MessageDialog(this, aErrStr).Execute();
                                         continue;
                                     }
 
@@ -959,7 +958,7 @@ void LibPage::InsertLib()
                                     aErrStr = aErrStr.replaceAll("XX", aLibName);
                                     aErrStr += "\n" ;
                                     aErrStr += IDE_RESSTR(RID_STR_SBXNAMEALLREADYUSED);
-                                    ErrorBox( this, WB_OK | WB_DEF_OK, aErrStr ).Execute();
+                                    MessageDialog(this, aErrStr).Execute();
                                     continue;
                                 }
                             }
@@ -978,7 +977,7 @@ void LibPage::InsertLib()
                                     {
                                         OUString aErrStr( IDE_RESSTR(RID_STR_NOIMPORT) );
                                         aErrStr = aErrStr.replaceAll("XX", aLibName);
-                                        ErrorBox( this, WB_OK | WB_DEF_OK, aErrStr ).Execute();
+                                        MessageDialog(this, aErrStr).Execute();
                                         continue;
                                     }
                                 }
@@ -1570,17 +1569,15 @@ void createLibImpl( Window* pWin, const ScriptDocument& rDocument,
 
         if ( aLibName.getLength() > 30 )
         {
-            ErrorBox( pWin, WB_OK | WB_DEF_OK, IDEResId(RID_STR_LIBNAMETOLONG).toString() ).Execute();
+            MessageDialog(pWin, IDEResId(RID_STR_LIBNAMETOLONG).toString()).Execute();
         }
         else if ( !IsValidSbxName( aLibName ) )
         {
-            ErrorBox( pWin, WB_OK | WB_DEF_OK,
-                        IDEResId(RID_STR_BADSBXNAME).toString() ).Execute();
+            MessageDialog(pWin, IDEResId(RID_STR_BADSBXNAME).toString()).Execute();
         }
         else if ( rDocument.hasLibrary( E_SCRIPTS, aLibName ) || rDocument.hasLibrary( E_DIALOGS, aLibName ) )
         {
-            ErrorBox( pWin, WB_OK | WB_DEF_OK,
-                        IDEResId(RID_STR_SBXNAMEALLREADYUSED2).toString() ).Execute();
+            MessageDialog(pWin, IDEResId(RID_STR_SBXNAMEALLREADYUSED2).toString()).Execute();
         }
         else
         {
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index 57890f2..d758d63 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -693,6 +693,8 @@ class VCL_DLLPUBLIC MessageDialog : public Dialog
 private:
     VclButtonsType m_eButtonsType;
     VclMessageType m_eMessageType;
+    VclBox *m_pOwnedContentArea;
+    VclButtonBox *m_pOwnedActionArea;
     VclGrid* m_pGrid;
     FixedImage* m_pImage;
     VclMultiLineEdit* m_pPrimaryMessage;
@@ -704,14 +706,15 @@ private:
     DECL_DLLPRIVATE_LINK(ButtonHdl, Button *);
     void setButtonHandlers(VclButtonBox *pButtonBox);
     short get_response(const Window *pWindow) const;
+    void create_owned_areas();
 public:
 
     MessageDialog(Window* pParent,
         const OUString &rMessage,
         VclMessageType eMessageType = VCL_MESSAGE_ERROR,
         VclButtonsType eButtonsType = VCL_BUTTONS_OK,
-        WinBits nStyle = WB_CLIPCHILDREN | WB_MOVEABLE | WB_3DLOOK | WB_CLOSEABLE);
-    MessageDialog(Window* pParent, WinBits nStyle = WB_CLIPCHILDREN);
+        WinBits nStyle = WB_MOVEABLE | WB_3DLOOK | WB_CLOSEABLE);
+    MessageDialog(Window* pParent, WinBits nStyle = WB_MOVEABLE | WB_3DLOOK | WB_CLOSEABLE);
     MessageDialog(Window* pParent, const OString& rID, const OUString& rUIXMLDescription);
     virtual bool set_property(const OString &rKey, const OString &rValue);
     virtual short Execute();
diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index 27746c3..35e76a4 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -1897,6 +1897,17 @@ bool VclSizeGroup::set_property(const OString &rKey, const OString &rValue)
     return true;
 }
 
+void MessageDialog::create_owned_areas()
+{
+    set_border_width(12);
+    m_pOwnedContentArea = new VclVBox(this, false, 24);
+    set_content_area(m_pOwnedContentArea);
+    m_pOwnedContentArea->Show();
+    m_pOwnedActionArea = new VclHButtonBox(m_pOwnedContentArea);
+    set_action_area(m_pOwnedActionArea);
+    m_pOwnedActionArea->Show();
+}
+
 MessageDialog::MessageDialog(Window* pParent, WinBits nStyle)
     : Dialog(pParent, nStyle)
     , m_eButtonsType(VCL_BUTTONS_NONE)
@@ -1907,6 +1918,7 @@ MessageDialog::MessageDialog(Window* pParent, WinBits nStyle)
     , m_pSecondaryMessage(NULL)
 {
     SetType(WINDOW_MESSBOX);
+    create_owned_areas();
 }
 
 MessageDialog::MessageDialog(Window* pParent,
@@ -1924,12 +1936,15 @@ MessageDialog::MessageDialog(Window* pParent,
     , m_sPrimaryString(rMessage)
 {
     SetType(WINDOW_MESSBOX);
+    create_owned_areas();
 }
 
 MessageDialog::MessageDialog(Window* pParent, const OString& rID, const OUString& rUIXMLDescription)
     : Dialog(pParent, rID, rUIXMLDescription, WINDOW_MESSBOX)
     , m_eButtonsType(VCL_BUTTONS_NONE)
     , m_eMessageType(VCL_MESSAGE_INFO)
+    , m_pOwnedContentArea(NULL)
+    , m_pOwnedActionArea(NULL)
     , m_pGrid(NULL)
     , m_pImage(NULL)
     , m_pPrimaryMessage(NULL)
@@ -1945,6 +1960,8 @@ MessageDialog::~MessageDialog()
     delete m_pPrimaryMessage;
     delete m_pImage;
     delete m_pGrid;
+    delete m_pOwnedActionArea;
+    delete m_pOwnedContentArea;
 }
 
 IMPL_LINK(MessageDialog, ButtonHdl, Button *, pButton)
@@ -2080,6 +2097,7 @@ short MessageDialog::Execute()
 
         VclButtonBox *pButtonBox = get_action_area();
         assert(pButtonBox);
+
         PushButton *pBtn;
         switch (m_eButtonsType)
         {
@@ -2135,7 +2153,6 @@ short MessageDialog::Execute()
         setButtonHandlers(pButtonBox);
         pButtonBox->sort_native_button_order();
         m_pGrid->Show();
-
     }
     return Dialog::Execute();
 }


More information about the Libreoffice-commits mailing list