[Libreoffice] [PATCH] fdo#32413: Add an apply button to style edit dialog in Writer
Miklos Vajna
vmiklos at frugalware.org
Sat Mar 26 09:16:36 PDT 2011
On Sat, Mar 26, 2011 at 12:42:36AM +0100, Miklos Vajna <vmiklos at frugalware.org> wrote:
> Ah, I didn't see it. We talked about this with Cedric and he explained
> an idea which avoids any modification in vcl, so I'm not planning to
> push this version, a better one will come soon.
>
> The main problem is not with the modification, but if you move the
> dialog, click Apply, then its position will be reset, which is ugly.
It turns out this is a separate issue, SfxTabDialog::~SfxTabDialog()
ideally takes care of this, appearantly I agree that it does not seem to
work.
Also, the idea was to extract the OK button handler from
SwDocShell::Edit() to SwTemplateDlg where the OK button callback is, but
this seems to be too complex. I've put out an attempt to
http://people.freedesktop.org/~vmiklos/move-using-context.patch, but I
find it ugly.
So I just went the route what Michael suggested, to keep the patch sort,
see the attachement.
Of course, in a separate future patch it would be interesting to fix
SfxTabDialog to really save the position, like it does save the
currently selected tab at the moment.
Thanks.
-------------- next part --------------
From 4effd7b1b73d8d121d853fcb9d05faf4c1223370 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos at frugalware.org>
Date: Sat, 26 Mar 2011 17:07:46 +0100
Subject: [PATCH] fdo#32413: Add an apply button to style edit dialog in Writer
---
sw/inc/swabstdlg.hxx | 1 +
sw/source/ui/app/docst.cxx | 11 +++++++++--
sw/source/ui/fmtui/tmpdlg.cxx | 14 ++++++++++++++
sw/source/ui/inc/tmpdlg.hxx | 1 +
4 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx
index b000fc8..4d84284 100644
--- a/sw/inc/swabstdlg.hxx
+++ b/sw/inc/swabstdlg.hxx
@@ -323,6 +323,7 @@ public:
#define RET_EDIT_RESULT_DOC 102
#define RET_TARGET_CREATED 103
#define RET_REMOVE_TARGET 104
+#define RET_APPLY_TEMPLATE 105
class SwView;
class SwMailMergeConfigItem;
diff --git a/sw/source/ui/app/docst.cxx b/sw/source/ui/app/docst.cxx
index 6705e59..fca6e9d 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 (true)
+ {
+ short nButton = pDlg->Execute();
+ if(RET_OK == nButton || RET_APPLY_TEMPLATE == 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_TEMPLATE != nButton)
+ break;
+ }
}
else
{
diff --git a/sw/source/ui/fmtui/tmpdlg.cxx b/sw/source/ui/fmtui/tmpdlg.cxx
index 223def1..9edb36d 100644
--- a/sw/source/ui/fmtui/tmpdlg.cxx
+++ b/sw/source/ui/fmtui/tmpdlg.cxx
@@ -71,6 +71,7 @@
#include <poolfmt.hxx>
#include <uitool.hxx>
#include <shellres.hxx>
+#include <swabstdlg.hxx>
#include <cmdid.h>
#include <helpid.h>
@@ -314,12 +315,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_TEMPLATE );
+ }
+ 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110326/6be4a9ed/attachment-0001.pgp>
More information about the LibreOffice
mailing list