diff options
author | Jan Holesovsky <kendy@collabora.com> | 2015-12-18 21:19:10 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-03-18 09:13:56 +0100 |
commit | 827ff2e8531619e96666a5690f538a0a27e5780f (patch) | |
tree | 0472e3a2be1e81bc4f8f87e4f9b8462b85567f3c | |
parent | 299cc331bebe951b8b6fcfdd1e279ce6d2123ece (diff) |
mailmerge: Introduce buttons for first/prev/next/last mailmerge entry.
Change-Id: I3dc63d568dc4cd6f7e06b057ca4a387e4ad0677e
-rw-r--r-- | officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu | 20 | ||||
-rw-r--r-- | sw/inc/cmdid.h | 5 | ||||
-rw-r--r-- | sw/sdi/swriter.sdi | 68 | ||||
-rw-r--r-- | sw/sdi/wrtapp.sdi | 24 | ||||
-rw-r--r-- | sw/source/uibase/app/apphdl.cxx | 69 | ||||
-rw-r--r-- | sw/uiconfig/swform/toolbar/mailmerge.xml | 6 | ||||
-rw-r--r-- | sw/uiconfig/swreport/toolbar/mailmerge.xml | 6 | ||||
-rw-r--r-- | sw/uiconfig/swriter/toolbar/mailmerge.xml | 6 | ||||
-rw-r--r-- | sw/uiconfig/swxform/toolbar/mailmerge.xml | 6 |
9 files changed, 210 insertions, 0 deletions
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu index 24754b86cfbc..ae855d7efa8d 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu @@ -527,6 +527,26 @@ <value xml:lang="en-US">Mail Merge Wi~zard...</value> </prop> </node> + <node oor:name=".uno:MailMergeFirstEntry" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">First Mail Merge Entry</value> + </prop> + </node> + <node oor:name=".uno:MailMergePrevEntry" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Previous Mail Merge Entry</value> + </prop> + </node> + <node oor:name=".uno:MailMergeNextEntry" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Next Mail Merge Entry</value> + </prop> + </node> + <node oor:name=".uno:MailMergeLastEntry" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Last Mail Merge Entry</value> + </prop> + </node> <node oor:name=".uno:SetAnchorToFrame" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Anchor To Frame</value> diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index acb112b13669..a2b192c9bc14 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -252,6 +252,11 @@ #define FN_MAILMERGE_CHILDWINDOW (FN_INSERT + 68) /* back-to-mail-merge-wizard child window*/ #define FN_INSERT_SMA (FN_INSERT + 69) /* insert StarMath */ +#define FN_MAILMERGE_FIRST_ENTRY (FN_INSERT+ 70) /* mail merge wizard - go to the first entry */ +#define FN_MAILMERGE_PREV_ENTRY (FN_INSERT + 71) /* mail merge wizard - go to the previous entry */ +#define FN_MAILMERGE_NEXT_ENTRY (FN_INSERT + 72) /* mail merge wizard - go to the next entry */ +#define FN_MAILMERGE_LAST_ENTRY (FN_INSERT + 73) /* mail merge wizard - go to the next entry */ + #define FN_DRAWTEXT_ATTR_DLG (FN_INSERT + 76) /* position DrawText */ #define FN_TOOL_ANCHOR_CHAR (FN_INSERT + 84) /* anchor Draw object to character */ diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index 9a1bee2effee..a5b12586adf1 100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -3773,6 +3773,74 @@ SfxVoidItem MailMergeWizard FN_MAILMERGE_WIZARD GroupId = GID_DOCUMENT; ] +SfxVoidItem MailMergeFirstEntry FN_MAILMERGE_FIRST_ENTRY +() +[ + AutoUpdate = TRUE, + FastCall = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = TRUE, + RecordAbsolute = FALSE, + RecordPerSet; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = GID_DOCUMENT; +] + +SfxVoidItem MailMergePrevEntry FN_MAILMERGE_PREV_ENTRY +() +[ + AutoUpdate = TRUE, + FastCall = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = TRUE, + RecordAbsolute = FALSE, + RecordPerSet; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = GID_DOCUMENT; +] + +SfxVoidItem MailMergeNextEntry FN_MAILMERGE_NEXT_ENTRY +() +[ + AutoUpdate = TRUE, + FastCall = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = TRUE, + RecordAbsolute = FALSE, + RecordPerSet; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = GID_DOCUMENT; +] + +SfxVoidItem MailMergeLastEntry FN_MAILMERGE_LAST_ENTRY +() +[ + AutoUpdate = TRUE, + FastCall = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = TRUE, + RecordAbsolute = FALSE, + RecordPerSet; + + AccelConfig = TRUE, + MenuConfig = TRUE, + ToolBoxConfig = TRUE, + GroupId = GID_DOCUMENT; +] + SfxBoolItem MergeTable FN_TABLE_MERGE_TABLE () [ diff --git a/sw/sdi/wrtapp.sdi b/sw/sdi/wrtapp.sdi index 57a7e8aec006..9e8d3587b9fd 100644 --- a/sw/sdi/wrtapp.sdi +++ b/sw/sdi/wrtapp.sdi @@ -62,6 +62,30 @@ interface StarWriter ExecMethod = ExecOther ; ] + FN_MAILMERGE_FIRST_ENTRY + [ + ExecMethod = ExecOther ; + StateMethod = StateOther ; + ] + + FN_MAILMERGE_PREV_ENTRY + [ + ExecMethod = ExecOther ; + StateMethod = StateOther ; + ] + + FN_MAILMERGE_NEXT_ENTRY + [ + ExecMethod = ExecOther ; + StateMethod = StateOther ; + ] + + FN_MAILMERGE_LAST_ENTRY + [ + ExecMethod = ExecOther ; + StateMethod = StateOther ; + ] + FN_SET_MODOPT_TBLNUMFMT // status() [ ExecMethod = ExecOther ; diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx index 3bd9d4132d84..0f1209c2df0c 100644 --- a/sw/source/uibase/app/apphdl.cxx +++ b/sw/source/uibase/app/apphdl.cxx @@ -22,6 +22,7 @@ #include <hintids.hxx> #include <comphelper/processfactory.hxx> +#include <comphelper/propertysequence.hxx> #include <osl/diagnose.h> #include <tools/link.hxx> #include <svl/urihelper.hxx> @@ -201,6 +202,35 @@ void SwModule::StateOther(SfxItemSet &rSet) rSet.Put( SfxBoolItem( nWhich, m_pModuleConfig-> IsInsTableFormatNum( bWebView ))); break; + case FN_MAILMERGE_FIRST_ENTRY: + case FN_MAILMERGE_PREV_ENTRY: + case FN_MAILMERGE_NEXT_ENTRY: + case FN_MAILMERGE_LAST_ENTRY: + { + /* + SwView* pView = ::GetActiveView(); + SwMailMergeConfigItem* pConfigItem = pView->GetMailMergeConfigItem(); + if (!pConfigItem) + rSet.DisableItem(nWhich); + else + { + bool bFirst, bLast; + bool bValid = pConfigItem->IsResultSetFirstLast(bFirst, bLast); + + if (!bValid || + (bFirst && (nWhich == FN_MAILMERGE_FIRST_ENTRY || nWhich == FN_MAILMERGE_PREV_ENTRY)) || + (bLast && (nWhich == FN_MAILMERGE_LAST_ENTRY || nWhich == FN_MAILMERGE_NEXT_ENTRY))) + { + rSet.DisableItem(nWhich); + } + else + { + rSet.Put(SfxVoidItem(nWhich)); + } + } + */ + } + break; default: OSL_FAIL("::StateOther: default"); } @@ -699,6 +729,45 @@ void SwModule::ExecOther(SfxRequest& rReq) } } break; + case FN_MAILMERGE_FIRST_ENTRY: + case FN_MAILMERGE_PREV_ENTRY: + case FN_MAILMERGE_NEXT_ENTRY: + case FN_MAILMERGE_LAST_ENTRY: + { + SwView* pView = ::GetActiveView(); + SwMailMergeConfigItem* pConfigItem = pView->GetMailMergeConfigItem(); + if (!pConfigItem) + return; + + sal_Int32 nPos = pConfigItem->GetResultSetPosition(); + switch (nWhich) + { + case FN_MAILMERGE_FIRST_ENTRY: pConfigItem->MoveResultSet(1); break; + case FN_MAILMERGE_PREV_ENTRY: pConfigItem->MoveResultSet(nPos - 1); break; + case FN_MAILMERGE_NEXT_ENTRY: pConfigItem->MoveResultSet(nPos + 1); break; + case FN_MAILMERGE_LAST_ENTRY: pConfigItem->MoveResultSet(-1); break; + default: break; + } + + //now the record has to be merged into the source document + const SwDBData& rDBData = pConfigItem->GetCurrentDBData(); + uno::Sequence<uno::Any> vSelection({ uno::makeAny(pConfigItem->GetResultSetPosition()) }); + svx::ODataAccessDescriptor aDescriptor(::comphelper::InitPropertySequence({ + {"Selection", uno::makeAny(vSelection)}, + {"DataSourceName", uno::makeAny(rDBData.sDataSource)}, + {"Command", uno::makeAny(rDBData.sCommand)}, + {"CommandType", uno::makeAny(rDBData.nCommandType)}, + {"ActiveConnection", uno::makeAny(pConfigItem->GetConnection().getTyped())}, + {"Filter", uno::makeAny(pConfigItem->GetFilter())}, + {"Cursor", uno::makeAny(pConfigItem->GetResultSet())} + })); + + SwView* pActView = ::GetActiveView(); + SwWrtShell& rSh = pActView->GetWrtShell(); + SwMergeDescriptor aMergeDesc(DBMGR_MERGE, rSh, aDescriptor); + rSh.GetDBManager()->MergeNew(aMergeDesc); + } + break; #endif } } diff --git a/sw/uiconfig/swform/toolbar/mailmerge.xml b/sw/uiconfig/swform/toolbar/mailmerge.xml index f80aeb421d66..662a0000ed70 100644 --- a/sw/uiconfig/swform/toolbar/mailmerge.xml +++ b/sw/uiconfig/swform/toolbar/mailmerge.xml @@ -7,6 +7,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar"> <toolbar:toolbaritem xlink:href=".uno:MailMergeWizard"/> + <toolbar:toolbarseparator/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeFirstEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergePrevEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeNextEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeLastEntry"/> </toolbar:toolbar> diff --git a/sw/uiconfig/swreport/toolbar/mailmerge.xml b/sw/uiconfig/swreport/toolbar/mailmerge.xml index f80aeb421d66..662a0000ed70 100644 --- a/sw/uiconfig/swreport/toolbar/mailmerge.xml +++ b/sw/uiconfig/swreport/toolbar/mailmerge.xml @@ -7,6 +7,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar"> <toolbar:toolbaritem xlink:href=".uno:MailMergeWizard"/> + <toolbar:toolbarseparator/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeFirstEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergePrevEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeNextEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeLastEntry"/> </toolbar:toolbar> diff --git a/sw/uiconfig/swriter/toolbar/mailmerge.xml b/sw/uiconfig/swriter/toolbar/mailmerge.xml index f80aeb421d66..662a0000ed70 100644 --- a/sw/uiconfig/swriter/toolbar/mailmerge.xml +++ b/sw/uiconfig/swriter/toolbar/mailmerge.xml @@ -7,6 +7,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar"> <toolbar:toolbaritem xlink:href=".uno:MailMergeWizard"/> + <toolbar:toolbarseparator/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeFirstEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergePrevEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeNextEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeLastEntry"/> </toolbar:toolbar> diff --git a/sw/uiconfig/swxform/toolbar/mailmerge.xml b/sw/uiconfig/swxform/toolbar/mailmerge.xml index f80aeb421d66..662a0000ed70 100644 --- a/sw/uiconfig/swxform/toolbar/mailmerge.xml +++ b/sw/uiconfig/swxform/toolbar/mailmerge.xml @@ -7,6 +7,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + <toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar"> <toolbar:toolbaritem xlink:href=".uno:MailMergeWizard"/> + <toolbar:toolbarseparator/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeFirstEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergePrevEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeNextEntry"/> + <toolbar:toolbaritem xlink:href=".uno:MailMergeLastEntry"/> </toolbar:toolbar> |