Hi, I'm attaching two patches, one for vcl, one for sw. Of course I could introduce the define in sw, but that would cause problems when someone would introduce a new define in vcl, so I did it this way. Also, I can change the indentation in sw/source/ui/app/docst.cxx, I didn't do it yet for easier review. What's your opinion, OK to push? Thanks.
From c63be26e98290cb024078ba260b6bead796e6eca Mon Sep 17 00:00:00 2001 From: Miklos Vajna <vmiklos@frugalware.org> Date: Thu, 24 Mar 2011 11:54:09 +0100 Subject: [PATCH] fdo#32413: Add an apply button to style edit dialog in Writer --- vcl/inc/vcl/msgbox.hxx | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/vcl/inc/vcl/msgbox.hxx b/vcl/inc/vcl/msgbox.hxx index b834843..315e412 100644 --- a/vcl/inc/vcl/msgbox.hxx +++ b/vcl/inc/vcl/msgbox.hxx @@ -51,6 +51,7 @@ class CheckBox; #define RET_NO 3 #define RET_RETRY 4 #define RET_IGNORE 5 +#define RET_APPLY 6 #define BUTTONID_OK RET_OK #define BUTTONID_CANCEL RET_CANCEL -- 1.7.4.1
From 9bee07e4a4abe1cb18a841c03fcb8e5606b1c8a6 Mon Sep 17 00:00:00 2001 From: Miklos Vajna <vmiklos@frugalware.org> Date: Thu, 24 Mar 2011 11:54:59 +0100 Subject: [PATCH] fdo#32413: Add an apply button to style edit dialog in Writer --- sw/source/ui/app/docst.cxx | 11 +++++++++-- sw/source/ui/fmtui/tmpdlg.cxx | 13 +++++++++++++ sw/source/ui/inc/tmpdlg.hxx | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/sw/source/ui/app/docst.cxx b/sw/source/ui/app/docst.cxx index 6705e59..7525d37 100644 --- a/sw/source/ui/app/docst.cxx +++ b/sw/source/ui/app/docst.cxx @@ -663,7 +663,10 @@ sal_uInt16 SwDocShell::Edit( const String &rName, const String &rParent, sal_uIn 0, *(xTmp.get()), nFamily, bColumn, pActShell ? pActShell : pWrtShell, bNew); OSL_ENSURE(pDlg, "Dialogdiet fail!"); - if(RET_OK == pDlg->Execute()) + while (1) + { + short nButton = pDlg->Execute(); + if(RET_OK == nButton || RET_APPLY == nButton) { GetWrtShell()->StartAllAction(); @@ -726,7 +729,8 @@ sal_uInt16 SwDocShell::Edit( const String &rName, const String &rParent, sal_uIn // Destroy dialog before EndAction - with page-templates the // ItemSet must be destroyed, so that the cursors get removed // from Headers/Footers. Otherwise "GPF" happen!!! - delete pDlg; + if(RET_OK == nButton) + delete pDlg; pDoc->SetModified(); if( !bModified ) // Bug 57028 @@ -748,6 +752,9 @@ sal_uInt16 SwDocShell::Edit( const String &rName, const String &rParent, sal_uIn pDoc->ResetModified(); delete pDlg; } + if(RET_APPLY != nButton) + break; + } } else { diff --git a/sw/source/ui/fmtui/tmpdlg.cxx b/sw/source/ui/fmtui/tmpdlg.cxx index 223def1..37a72e7 100644 --- a/sw/source/ui/fmtui/tmpdlg.cxx +++ b/sw/source/ui/fmtui/tmpdlg.cxx @@ -314,12 +314,25 @@ SwTemplateDlg::SwTemplateDlg(Window* pParent, OSL_ENSURE(!this, "wrong family"); } + EnableApplyButton( true ); + SetApplyHandler( LINK(this, SwTemplateDlg, ApplyHdl ) ); } SwTemplateDlg::~SwTemplateDlg() { } +IMPL_LINK( SwTemplateDlg, ApplyHdl, void*, pVoid ) +{ + (void)pVoid; //unused + if ( OK_Impl() ) + { + Ok(); + EndDialog( RET_APPLY ); + } + return 0; +} + short SwTemplateDlg::Ok() { short nRet = SfxTabDialog::Ok(); diff --git a/sw/source/ui/inc/tmpdlg.hxx b/sw/source/ui/inc/tmpdlg.hxx index 6a8e7de..eca821e 100644 --- a/sw/source/ui/inc/tmpdlg.hxx +++ b/sw/source/ui/inc/tmpdlg.hxx @@ -45,6 +45,7 @@ class SwTemplateDlg: public SfxStyleDialog sal_Bool bNewStyle; DECL_LINK( NumOptionsHdl, PushButton* ); + DECL_LINK( ApplyHdl, void* ); public: SwTemplateDlg( Window* pParent, -- 1.7.4.1
Attachment:
pgp7mgxvZNphu.pgp
Description: PGP signature