diff options
author | Zolnai Tamás <tamas.zolnai@collabora.com> | 2014-02-27 08:32:54 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-02-27 03:18:49 -0600 |
commit | e661e6cb6f9e7c45bbd97c4dc8c489a7af952d60 (patch) | |
tree | ef5722affe306f2a0af8e8d65c9f837a58ad6def | |
parent | 4274001144adeb0b0a1e7da05d52c1bedbe899e5 (diff) |
fdo#73159 Make border dialog work again
I removed border dialog with commit
8560fb88c7252e5ad60674e447f2e194298f08de
because it seems unused and when the corresponding
command was called only a blank window was opened.
It seems it was just bugous, so revert this commit
and fix the dialog.
Conflicts:
sw/inc/swabstdlg.hxx
sw/source/ui/dialog/swdlgfact.cxx
sw/source/ui/dialog/swdlgfact.hxx
(cherry picked from commit f73ffb91b85422067274fafc0d411aef8a6e6abb)
Change-Id: I68f8c13457e899a894f03bdd60ebedfb2b70afea
Reviewed-on: https://gerrit.libreoffice.org/8375
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
24 files changed, 233 insertions, 0 deletions
diff --git a/icon-themes/crystal/cmd/lc_borderdialog.png b/icon-themes/crystal/cmd/lc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..c0ca4f69fb9c --- /dev/null +++ b/icon-themes/crystal/cmd/lc_borderdialog.png diff --git a/icon-themes/crystal/cmd/sc_borderdialog.png b/icon-themes/crystal/cmd/sc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..6b6ab486b993 --- /dev/null +++ b/icon-themes/crystal/cmd/sc_borderdialog.png diff --git a/icon-themes/galaxy/cmd/lc_borderdialog.png b/icon-themes/galaxy/cmd/lc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..0cd8935914ec --- /dev/null +++ b/icon-themes/galaxy/cmd/lc_borderdialog.png diff --git a/icon-themes/galaxy/cmd/sc_borderdialog.png b/icon-themes/galaxy/cmd/sc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..c8b915bae4d5 --- /dev/null +++ b/icon-themes/galaxy/cmd/sc_borderdialog.png diff --git a/icon-themes/hicontrast/cmd/lc_borderdialog.png b/icon-themes/hicontrast/cmd/lc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..a61a1a6c31a1 --- /dev/null +++ b/icon-themes/hicontrast/cmd/lc_borderdialog.png diff --git a/icon-themes/hicontrast/cmd/sc_borderdialog.png b/icon-themes/hicontrast/cmd/sc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..6c65b3646dd9 --- /dev/null +++ b/icon-themes/hicontrast/cmd/sc_borderdialog.png diff --git a/icon-themes/human/cmd/lc_borderdialog.png b/icon-themes/human/cmd/lc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..323a8df8594a --- /dev/null +++ b/icon-themes/human/cmd/lc_borderdialog.png diff --git a/icon-themes/human/cmd/sc_borderdialog.png b/icon-themes/human/cmd/sc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..d71ad451f303 --- /dev/null +++ b/icon-themes/human/cmd/sc_borderdialog.png diff --git a/icon-themes/oxygen/cmd/lc_borderdialog.png b/icon-themes/oxygen/cmd/lc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..c0ca4f69fb9c --- /dev/null +++ b/icon-themes/oxygen/cmd/lc_borderdialog.png diff --git a/icon-themes/oxygen/cmd/sc_borderdialog.png b/icon-themes/oxygen/cmd/sc_borderdialog.png Binary files differnew file mode 100644 index 000000000000..6b6ab486b993 --- /dev/null +++ b/icon-themes/oxygen/cmd/sc_borderdialog.png diff --git a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu index 88ec469beb7c..d1a0acbfa73a 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu @@ -836,6 +836,14 @@ <value xml:lang="en-US">Name...</value> </prop> </node> + <node oor:name=".uno:BorderDialog" oor:op="replace"> + <prop oor:name="Label" oor:type="xs:string"> + <value xml:lang="en-US">Borders</value> + </prop> + <prop oor:name="Properties" oor:type="xs:int"> + <value>1</value> + </prop> + </node> <node oor:name=".uno:PageColumnDialog" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Page Columns</value> diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk index ab0c2642e78b..8ae22a60c90b 100644 --- a/sw/Library_swui.mk +++ b/sw/Library_swui.mk @@ -119,6 +119,7 @@ $(eval $(call gb_Library_add_exception_objects,swui,\ sw/source/ui/frmdlg/frmdlg \ sw/source/ui/frmdlg/frmpage \ sw/source/ui/frmdlg/pattern \ + sw/source/ui/frmdlg/uiborder \ sw/source/ui/frmdlg/wrap \ sw/source/ui/index/cntex \ sw/source/ui/index/cnttab \ diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h index 2c7afacda34a..7d506a3cd216 100644 --- a/sw/inc/cmdid.h +++ b/sw/inc/cmdid.h @@ -323,6 +323,7 @@ included in c-context files, so c++ style stuff will cause problems. #define FN_FORMAT_PAGE_SETTING_DLG (FN_FORMAT + 42) /* */ #define FN_NUM_FORMAT_TABLE_DLG (FN_FORMAT + 45) /* number format in table */ +#define FN_FORMAT_BORDER_DLG (FN_FORMAT + 48) /* */ #define FN_FORMAT_PAGE_COLUMN_DLG (FN_FORMAT + 49) /* columns per page */ #define FN_FORMAT_BACKGROUND_DLG (FN_FORMAT + 50) /* background */ #define FN_FORMAT_PAGE_DLG (FN_FORMAT + 52) /* page */ diff --git a/sw/inc/dialog.hrc b/sw/inc/dialog.hrc index b39567516224..f95ef0fda046 100644 --- a/sw/inc/dialog.hrc +++ b/sw/inc/dialog.hrc @@ -54,6 +54,7 @@ #define RC_DLG_ADDR (RC_DIALOG_BEGIN + 90) #define RC_SWDLG_BACKGROUND (RC_DIALOG_BEGIN + 91) #define RC_DLG_SWNUMFMTDLG (RC_DIALOG_BEGIN + 92) +#define RC_DLG_SWBORDERDLG (RC_DIALOG_BEGIN + 93) #define RC_DLG_SWWRAPDLG (RC_DIALOG_BEGIN + 94) #define RC_DLG_SWFLDEDITDLG (RC_DIALOG_BEGIN + 95) // Ueberlaufpruefung ******************************************************** diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx index d7b81e810557..5a163c40071c 100644 --- a/sw/inc/swabstdlg.hxx +++ b/sw/inc/swabstdlg.hxx @@ -373,6 +373,7 @@ public: virtual AbstractSwAutoFormatDlg * CreateSwAutoFormatDlg( Window* pParent, SwWrtShell* pShell, sal_Bool bSetAutoFmt = sal_True, const SwTableAutoFmt* pSelFmt = 0 ) = 0; + virtual SfxAbstractDialog * CreateSwBorderDlg ( Window* pParent, SfxItemSet& rSet, sal_uInt16 nType, int nResId ) = 0; virtual SfxAbstractDialog * CreateSwWrapDlg ( Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh, sal_Bool bDrawMode, int nResId ) = 0; virtual VclAbstractDialog * CreateSwTableWidthDlg(Window *pParent, SwTableFUNC &rFnc) = 0; diff --git a/sw/sdi/_basesh.sdi b/sw/sdi/_basesh.sdi index 060ec160605a..aabe0fc9aa38 100644 --- a/sw/sdi/_basesh.sdi +++ b/sw/sdi/_basesh.sdi @@ -276,6 +276,12 @@ interface BaseTextSelection DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] + FN_FORMAT_BORDER_DLG // status(final|play) + [ + ExecMethod = ExecDlg ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] + SID_ATTR_BORDER_INNER // status() [ StateMethod = GetBorderState ; diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi index 9cb8c62c7b03..f8218fe4b862 100644 --- a/sw/sdi/swriter.sdi +++ b/sw/sdi/swriter.sdi @@ -624,6 +624,31 @@ SfxVoidItem SwBackspace FN_BACKSPACE ] //-------------------------------------------------------------------------- +SfxVoidItem BorderDialog FN_FORMAT_BORDER_DLG +() +[ + /* flags: */ + AutoUpdate = FALSE, + Cachable = Cachable, + FastCall = TRUE, + HasCoreId = FALSE, + HasDialog = TRUE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Asynchron; + + /* config: */ + AccelConfig = TRUE, + MenuConfig = TRUE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_FORMAT; +] + +//-------------------------------------------------------------------------- SfxVoidItem BulletsAndNumberingDialog FN_NUMBER_BULLETS () [ diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index e337589c65f1..e87f631feb24 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -90,6 +90,7 @@ #include <svx/dialogs.hrc> #include <mailmergewizard.hxx> #include <mailconfigpage.hxx> +#include <uiborder.hxx> using namespace ::com::sun::star; @@ -848,6 +849,23 @@ AbstractSwAutoFormatDlg * SwAbstractDialogFactory_Impl::CreateSwAutoFormatDlg(Wi return new AbstractSwAutoFormatDlg_Impl(pDlg); } +SfxAbstractDialog * SwAbstractDialogFactory_Impl::CreateSwBorderDlg(Window* pParent, SfxItemSet& rSet, sal_uInt16 nType, int nResId ) +{ + SfxModalDialog* pDlg=NULL; + switch ( nResId ) + { + case RC_DLG_SWBORDERDLG : + pDlg = new SwBorderDlg( pParent, rSet, nType ); + break; + default: + break; + } + + if ( pDlg ) + return new SwAbstractSfxDialog_Impl( pDlg ); + return 0; +} + SfxAbstractDialog* SwAbstractDialogFactory_Impl::CreateSwWrapDlg ( Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh, sal_Bool bDrawMode, int nResId ) { SfxModalDialog* pDlg=NULL; diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index de45486a1645..f9e0101f427f 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -424,6 +424,7 @@ public: virtual AbstractSwAutoFormatDlg * CreateSwAutoFormatDlg( Window* pParent, SwWrtShell* pShell, sal_Bool bSetAutoFmt = sal_True, const SwTableAutoFmt* pSelFmt = 0 ); + virtual SfxAbstractDialog * CreateSwBorderDlg (Window* pParent, SfxItemSet& rSet, sal_uInt16 nType, int nResId ); virtual SfxAbstractDialog * CreateSwWrapDlg ( Window* pParent, SfxItemSet& rSet, SwWrtShell* pSh, sal_Bool bDrawMode, int nResId ); virtual VclAbstractDialog * CreateSwTableWidthDlg(Window *pParent, SwTableFUNC &rFnc); diff --git a/sw/source/ui/frmdlg/frmui.src b/sw/source/ui/frmdlg/frmui.src index 939f5af33e62..c6d436a8baf3 100644 --- a/sw/source/ui/frmdlg/frmui.src +++ b/sw/source/ui/frmdlg/frmui.src @@ -102,6 +102,10 @@ String STR_COLL_HEADER { Text [ en-US ] = " (Template: " ; }; +String STR_FRMUI_BORDER +{ + Text [ en-US ] = "Borders" ; +}; String STR_FRMUI_PATTERN { Text [ en-US ] = "Background" ; diff --git a/sw/source/ui/frmdlg/uiborder.cxx b/sw/source/ui/frmdlg/uiborder.cxx new file mode 100644 index 000000000000..98aace7c01cb --- /dev/null +++ b/sw/source/ui/frmdlg/uiborder.cxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * 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/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#include <svx/svxdlg.hxx> +#include <svx/svxids.hrc> +#include <svx/dialogs.hrc> +#include <svl/itemset.hxx> +#include <svx/flagsdef.hxx> +#include <sfx2/tabdlg.hxx> +#include <svl/intitem.hxx> + +#include "swtypes.hxx" +#include "uiborder.hxx" +#include "frmui.hrc" + +SwBorderDlg::SwBorderDlg(Window* pParent, SfxItemSet& rSet, sal_uInt16 nType) : + SfxSingleTabDialog(pParent, rSet) + +{ + SetText(SW_RESSTR(STR_FRMUI_BORDER)); + + SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create(); + OSL_ENSURE(pFact, "Dialogdiet fail!"); + ::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ); + + if ( fnCreatePage ) + { + SfxTabPage* pNewPage = (*fnCreatePage)( get_content_area(), rSet ); + SfxAllItemSet aSet(*(rSet.GetPool())); + aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,nType)); + if(SW_BORDER_MODE_TABLE == nType) + aSet.Put (SfxUInt32Item(SID_FLAG_TYPE,SVX_HIDESHADOWCTL)); + pNewPage->PageCreated(aSet); + setTabPage(pNewPage); + } +} + +SwBorderDlg::~SwBorderDlg() +{ +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/ui/inc/frmui.hrc b/sw/source/ui/inc/frmui.hrc index ae14bbb4e035..4e765f9c9456 100644 --- a/sw/source/ui/inc/frmui.hrc +++ b/sw/source/ui/inc/frmui.hrc @@ -44,6 +44,7 @@ #define STR_TOPPRT (STR_FRMDLG_BEGIN + 1) +#define STR_BORDER (STR_FRMDLG_BEGIN + 16) #define STR_COLUMN (STR_FRMDLG_BEGIN + 17) #define STR_CHAR (STR_FRMDLG_BEGIN + 19) diff --git a/sw/source/ui/inc/uiborder.hxx b/sw/source/ui/inc/uiborder.hxx new file mode 100644 index 000000000000..78adaeb7846d --- /dev/null +++ b/sw/source/ui/inc/uiborder.hxx @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * 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/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef _UIBORDER_HXX +#define _UIBORDER_HXX + +#include <sfx2/basedlgs.hxx> +class Window; +class SfxItemSet; + +class SwBorderDlg : public SfxSingleTabDialog +{ +public: + + // nType may be: + // SW_BORDER_MODE_PARA + // SW_BORDER_MODE_TABLE + // SW_BORDER_MODE_FRAME + + SwBorderDlg(Window* pParent, SfxItemSet& rSet, sal_uInt16 nType); + ~SwBorderDlg(); +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/ui/shells/basesh.cxx b/sw/source/ui/shells/basesh.cxx index 4b5d9f80aa4c..b5de5febe3ff 100644 --- a/sw/source/ui/shells/basesh.cxx +++ b/sw/source/ui/shells/basesh.cxx @@ -2373,6 +2373,73 @@ void SwBaseShell::ExecDlg(SfxRequest &rReq) } } break; + case FN_FORMAT_BORDER_DLG: + { + SfxItemSet aSet( rSh.GetAttrPool(), + RES_BOX , RES_SHADOW, + SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER, + 0 ); + SfxAbstractDialog * pDlg = 0; + // Table cell(s) selected? + if ( rSh.IsTableMode() ) + { + // Set border attributes Get/SetTabBorders() + ::PrepareBoxInfo( aSet, rSh ); + rSh.GetTabBorders( aSet ); + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!"); + + pDlg = pFact->CreateSwBorderDlg( pMDI, aSet, SW_BORDER_MODE_TABLE, RC_DLG_SWBORDERDLG ); + OSL_ENSURE(pDlg, "Dialogdiet fail!"); + if ( pDlg->Execute() == RET_OK ) + { + rSh.SetTabBorders( *pDlg->GetOutputItemSet() ); + pOutSet = pDlg->GetOutputItemSet(); + } + } + else if ( rSh.IsFrmSelected() ) + { + // Set border attributes via Frame-Manager + SwFlyFrmAttrMgr aMgr( sal_False, &rSh, FRMMGR_TYPE_NONE ); + aSet.Put( aMgr.GetAttrSet() ); + + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!"); + + pDlg = pFact->CreateSwBorderDlg( pMDI, aSet, SW_BORDER_MODE_FRAME, RC_DLG_SWBORDERDLG ); + OSL_ENSURE(pDlg, "Dialogdiet fail!"); + if ( pDlg->Execute() == RET_OK ) + { + aMgr.SetAttrSet( *pDlg->GetOutputItemSet() ); + aMgr.UpdateFlyFrm(); + pOutSet = pDlg->GetOutputItemSet(); + } + } + else + { + // Set border attributes via Shell quite normal + rSh.GetCurAttr( aSet ); + ::PrepareBoxInfo( aSet, rSh ); + + SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); + OSL_ENSURE(pFact, "SwAbstractDialogFactory fail!"); + + pDlg = pFact->CreateSwBorderDlg( pMDI, aSet, SW_BORDER_MODE_PARA, RC_DLG_SWBORDERDLG ); + OSL_ENSURE(pDlg, "Dialogdiet fail!"); + if ( pDlg->Execute() == RET_OK ) + { + rSh.SetAttrSet( *pDlg->GetOutputItemSet() ); + pOutSet = pDlg->GetOutputItemSet(); + } + } + if(pOutSet) + { + rReq.Done(*pOutSet); + bDone = true; + } + delete pDlg; + } + break; case FN_FORMAT_BACKGROUND_DLG: { SfxItemSet aSet( rSh.GetAttrPool(), |