diff options
author | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2012-12-20 09:51:59 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2012-12-20 18:02:52 +0100 |
commit | b4c18dc0ea32af9f070d43278e547ee0b2e540a4 (patch) | |
tree | a3957e77b0e01429138e256ce47f5930e5941f9b | |
parent | 6085c81008d768298acfa69ee6ef531ac3c57aab (diff) |
Templates Manager: removed the old dialogs and menu entries
Change-Id: I5aa9dd8c0bfb95c26bca14962f60041e892ea2ea
46 files changed, 0 insertions, 4443 deletions
diff --git a/basctl/uiconfig/basicide/menubar/menubar.xml b/basctl/uiconfig/basicide/menubar/menubar.xml index 886909d66af9..2c12262e28c1 100644 --- a/basctl/uiconfig/basicide/menubar/menubar.xml +++ b/basctl/uiconfig/basicide/menubar/menubar.xml @@ -32,14 +32,6 @@ <menu:menuitem menu:id=".uno:CheckOut"/> <menu:menuitem menu:id=".uno:CancelCheckOut"/> <menu:menuitem menu:id=".uno:CheckIn"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:SaveAsTemplate"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:Signature"/> <menu:menuseparator/> diff --git a/extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml b/extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml index 32419a7de2e6..39d113b12451 100644 --- a/extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml +++ b/extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml @@ -19,14 +19,6 @@ <menu:menuitem menu:id=".uno:SendToMenu"/> <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:SaveAsTemplate"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:PrintPreview"/> <menu:menuitem menu:id=".uno:Print"/> diff --git a/framework/uiconfig/startmodule/menubar/menubar.xml b/framework/uiconfig/startmodule/menubar/menubar.xml index 92826403d641..c9f96226ac80 100644 --- a/framework/uiconfig/startmodule/menubar/menubar.xml +++ b/framework/uiconfig/startmodule/menubar/menubar.xml @@ -31,13 +31,6 @@ <menu:menuitem menu:id=".uno:SaveAll"/> <menu:menuseparator/> <menu:menuitem menu:id=".uno:SendMail"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> <menu:menuseparator/> diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu index aa55b280069e..42188b60de65 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu @@ -2352,11 +2352,6 @@ <value>1</value> </prop> </node> - <node oor:name=".uno:Organizer" oor:op="replace"> - <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">~Organize...</value> - </prop> - </node> <node oor:name=".uno:OutlineFormat" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Formatting On/Off</value> @@ -2720,11 +2715,6 @@ <value xml:lang="en-US">Open Smart Tag Menu</value> </prop> </node> - <node oor:name=".uno:StyleCatalog" oor:op="replace"> - <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">~Catalog...</value> - </prop> - </node> <node oor:name=".uno:InsertImage" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">Insert from Image Editor</value> @@ -5328,11 +5318,6 @@ <value xml:lang="en-US">~Tools</value> </prop> </node> - <node oor:name=".uno:TemplateMenu" oor:op="replace"> - <prop oor:name="Label" oor:type="xs:string"> - <value xml:lang="en-US">~Templates</value> - </prop> - </node> <node oor:name=".uno:SpellingMenu" oor:op="replace"> <prop oor:name="Label" oor:type="xs:string"> <value xml:lang="en-US">~Spellcheck</value> diff --git a/sc/sdi/drawsh.sdi b/sc/sdi/drawsh.sdi index ab2337f4a803..6c9ec0bcf14a 100644 --- a/sc/sdi/drawsh.sdi +++ b/sc/sdi/drawsh.sdi @@ -37,7 +37,6 @@ interface TableDraw // andere: SID_DRAW_CHART [ StateMethod = StateDisableItems; Export = FALSE; ] //! SID_STYLE_DESIGNER [ StateMethod = StateDisableItems; Export = FALSE; ] - SID_STYLE_CATALOG [ StateMethod = StateDisableItems; Export = FALSE; ] //! SID_OPENDLG_FUNCTION[ StateMethod = StateDisableItems; Export = FALSE; ] SID_STYLE_FAMILY2 [ StateMethod = StateDisableItems; Export = FALSE; ] SID_STYLE_FAMILY4 [ StateMethod = StateDisableItems; Export = FALSE; ] diff --git a/sc/sdi/drtxtob.sdi b/sc/sdi/drtxtob.sdi index 0bb35fc223ef..ebc091264133 100644 --- a/sc/sdi/drtxtob.sdi +++ b/sc/sdi/drtxtob.sdi @@ -34,7 +34,6 @@ interface TableDrawText SID_OPENDLG_EDIT_PRINTAREA [ StateMethod = StateDisableItems; Export = FALSE; ] // andere: SID_DRAW_CHART [ StateMethod = StateDisableItems; Export = FALSE; ] - SID_STYLE_CATALOG [ StateMethod = StateDisableItems; Export = FALSE; ] SID_OPENDLG_FUNCTION [ StateMethod = StateDisableItems; Export = FALSE; ] SID_STYLE_FAMILY2 [ StateMethod = StateDisableItems; Export = FALSE; ] SID_STYLE_FAMILY4 [ StateMethod = StateDisableItems; Export = FALSE; ] diff --git a/sc/uiconfig/scalc/menubar/menubar.xml b/sc/uiconfig/scalc/menubar/menubar.xml index b2a3fd835a7c..aabe873819d6 100644 --- a/sc/uiconfig/scalc/menubar/menubar.xml +++ b/sc/uiconfig/scalc/menubar/menubar.xml @@ -52,13 +52,6 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> <menu:menuitem menu:id=".uno:Signature"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:WebHtml"/> <menu:menuseparator/> diff --git a/sd/sdi/SlideSorterController.sdi b/sd/sdi/SlideSorterController.sdi index 53ea834ed1f9..a71f43171ce1 100644 --- a/sd/sdi/SlideSorterController.sdi +++ b/sd/sdi/SlideSorterController.sdi @@ -200,11 +200,6 @@ interface SlideSorterView ExecMethod = ExecCtrl ; StateMethod = GetMenuState ; ] - SID_STYLE_CATALOG // ole : no, status : ? - [ - ExecMethod = FuTemporary ; - StateMethod = GetMenuState ; - ] SID_SLIDE_TRANSITIONS_PANEL // ole : no, status : ? [ ExecMethod = FuTemporary ; diff --git a/sd/sdi/outlnvsh.sdi b/sd/sdi/outlnvsh.sdi index 82e5fb7a800f..b98cfdb42f86 100644 --- a/sd/sdi/outlnvsh.sdi +++ b/sd/sdi/outlnvsh.sdi @@ -250,11 +250,6 @@ interface OutlineView ExecMethod = FuTemporaryModify ; StateMethod = GetMenuState ; ] - SID_STYLE_CATALOG // ole : no, status : ? - [ - ExecMethod = FuTemporary ; - StateMethod = GetMenuState ; - ] // Vorlagen // kein Menueeintrag SID_STYLE_FAMILY2 // ole : no, status : ? diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx index 493ebdcc50b0..d3e20cea55e9 100644 --- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx +++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx @@ -527,9 +527,6 @@ void SlotManager::GetMenuState (SfxItemSet& rSet) rSet.Put( SfxBoolItem( SID_NOTESMODE, sal_False ) ); rSet.Put( SfxBoolItem( SID_HANDOUTMODE, sal_False ) ); - // Vorlagenkatalog darf nicht aufgerufen werden - rSet.DisableItem(SID_STYLE_CATALOG); - if (pShell!=NULL && pShell->IsMainViewShell()) { rSet.DisableItem(SID_SPELL_DIALOG); diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx index 5fbb6f343e7c..6469ef017270 100644 --- a/sd/source/ui/view/outlnvsh.cxx +++ b/sd/source/ui/view/outlnvsh.cxx @@ -780,9 +780,6 @@ void OutlineViewShell::GetMenuState( SfxItemSet &rSet ) { ViewShell::GetMenuState(rSet); - // Style catalog must not be called - rSet.DisableItem( SID_STYLE_CATALOG ); - rSet.Put(SfxBoolItem(SID_DIAMODE, sal_False)); rSet.Put(SfxBoolItem(SID_DRAWINGMODE, sal_False)); rSet.Put(SfxBoolItem(SID_OUTLINEMODE, sal_True)); diff --git a/sd/uiconfig/sdraw/menubar/menubar.xml b/sd/uiconfig/sdraw/menubar/menubar.xml index b776517af47d..85ea0e028868 100644 --- a/sd/uiconfig/sdraw/menubar/menubar.xml +++ b/sd/uiconfig/sdraw/menubar/menubar.xml @@ -48,13 +48,6 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> <menu:menuitem menu:id=".uno:Signature"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:WebHtml"/> <menu:menuseparator/> diff --git a/sd/uiconfig/simpress/menubar/menubar.xml b/sd/uiconfig/simpress/menubar/menubar.xml index 0d619cae358f..9fd07b1ea8b9 100644 --- a/sd/uiconfig/simpress/menubar/menubar.xml +++ b/sd/uiconfig/simpress/menubar/menubar.xml @@ -50,13 +50,6 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> <menu:menuitem menu:id=".uno:Signature"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:WebHtml"/> <menu:menuseparator/> diff --git a/sfx2/AllLangResTarget_sfx2.mk b/sfx2/AllLangResTarget_sfx2.mk index d2f43ec2919d..5f4eef1ced39 100644 --- a/sfx2/AllLangResTarget_sfx2.mk +++ b/sfx2/AllLangResTarget_sfx2.mk @@ -66,7 +66,6 @@ $(eval $(call gb_SrsTarget_add_files,sfx/res,\ sfx2/source/dialog/titledockwin.src \ sfx2/source/dialog/versdlg.src \ sfx2/source/doc/doc.src \ - sfx2/source/doc/doctdlg.src \ sfx2/source/doc/doctempl.src \ sfx2/source/doc/graphhelp.src \ sfx2/source/doc/new.src \ diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk index f252e5b9254e..bab643a6be30 100644 --- a/sfx2/Library_sfx.mk +++ b/sfx2/Library_sfx.mk @@ -193,11 +193,9 @@ $(eval $(call gb_Library_add_exception_objects,sfx,\ sfx2/source/doc/docinsert \ sfx2/source/doc/docmacromode \ sfx2/source/doc/docstoragemodifylistener \ - sfx2/source/doc/doctdlg \ sfx2/source/doc/doctempl \ sfx2/source/doc/doctemplates \ sfx2/source/doc/doctemplateslocal \ - sfx2/source/doc/docvor \ sfx2/source/doc/frmdescr \ sfx2/source/doc/graphhelp \ sfx2/source/doc/guisaveas \ @@ -237,7 +235,6 @@ $(eval $(call gb_Library_add_exception_objects,sfx,\ sfx2/source/view/frame2 \ sfx2/source/view/frmload \ sfx2/source/view/ipclient \ - sfx2/source/view/orgmgr \ sfx2/source/view/printer \ sfx2/source/view/sfxbasecontroller \ sfx2/source/view/userinputinterception \ diff --git a/sfx2/Package_inc.mk b/sfx2/Package_inc.mk index 05727d45bad5..aa368b7e4f00 100644 --- a/sfx2/Package_inc.mk +++ b/sfx2/Package_inc.mk @@ -47,7 +47,6 @@ $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docinsert.hxx,sfx2/docinsert $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/dockwin.hxx,sfx2/dockwin.hxx)) $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docmacromode.hxx,sfx2/docmacromode.hxx)) $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/docstoragemodifylistener.hxx,sfx2/docstoragemodifylistener.hxx)) -$(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/doctdlg.hxx,sfx2/doctdlg.hxx)) $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/doctempl.hxx,sfx2/doctempl.hxx)) $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/event.hxx,sfx2/event.hxx)) $(eval $(call gb_Package_add_file,sfx2_inc,inc/sfx2/evntconf.hxx,sfx2/evntconf.hxx)) diff --git a/sfx2/inc/docvor.hxx b/sfx2/inc/docvor.hxx deleted file mode 100644 index 1627fa0ce601..000000000000 --- a/sfx2/inc/docvor.hxx +++ /dev/null @@ -1,146 +0,0 @@ -/* -*- 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 _SFXDOCVOR_HXX -#define _SFXDOCVOR_HXX - - -#include <vcl/dialog.hxx> -#include <svtools/treelistbox.hxx> - -#include <sfx2/objsh.hxx> -#include "orgmgr.hxx" - -//========================================================================= - -class SfxDocumentTemplates; -class Path; - -//========================================================================= - -#ifndef _SFX_HXX - -class SfxOrganizeDlg_Impl; - -class SfxOrganizeListBox_Impl : public SvTreeListBox -{ - enum BMPTYPE { BMPTYPE_FOLDER, BMPTYPE_DOC }; - -friend class SfxOrganizeDlg_Impl; - - Image aOpenedFolderBmp; - Image aClosedFolderBmp; - Image aOpenedDocBmp; - Image aClosedDocBmp; - - SfxOrganizeMgr* pMgr; - SfxOrganizeDlg_Impl* pDlg; - - static sal_Bool bDropMoveOk; - - DECL_LINK( OnAsyncExecuteDrop, ExecuteDropEvent* ); - -protected: - virtual sal_Bool EditingEntry( SvTreeListEntry* pEntry, Selection & ); - virtual sal_Bool EditedEntry( SvTreeListEntry* pEntry, const rtl::OUString& rNewText ); - virtual sal_Bool NotifyMoving(SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, sal_uIntPtr &); - virtual sal_Bool NotifyCopying(SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, sal_uIntPtr &); - virtual void RequestingChildren( SvTreeListEntry* pParent ); - virtual long ExpandingHdl(); - virtual sal_Bool Select( SvTreeListEntry* pEntry, sal_Bool bSelect=sal_True ); - - using SvTreeListBox::ExecuteDrop; - // new d&d - virtual DragDropMode NotifyStartDrag( TransferDataContainer&, SvTreeListEntry* ); - virtual sal_Bool NotifyAcceptDrop( SvTreeListEntry* ); - virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); - virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); - virtual void DragFinished( sal_Int8 nDropAction ); - -public: - using SvListView::Select; - enum DataEnum { VIEW_TEMPLATES, VIEW_FILES } eViewType; - - SfxOrganizeListBox_Impl(Window* pParent, WinBits nBits); - - void Init(SfxOrganizeDlg_Impl* pArgDlg, DataEnum eType); - - DataEnum GetViewType() const { return eViewType; } - void SetViewType(DataEnum eType) { eViewType = eType; } - - void SetMgr(SfxOrganizeMgr *pM) { pMgr = pM; } - void Reset(); - inline void SetBitmaps( - const Image &rOFolderBmp, const Image &rCFolderBmp, const Image &rODocBmp, const Image &rCDocBmp - ); - const Image &GetClosedBmp(sal_uInt16 nLevel) const; - const Image &GetOpenedBmp(sal_uInt16 nLevel) const; - - virtual PopupMenu* CreateContextMenu(); - -private: - sal_Bool IsStandard_Impl( SvTreeListEntry *) const; - sal_Bool MoveOrCopyTemplates(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy); - sal_Bool MoveOrCopyContents(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy); - inline sal_uInt16 GetDocLevel() const; - SfxObjectShellRef GetObjectShell( const Path& ); - sal_Bool IsUniqName_Impl( const String &rText, - SvTreeListEntry* pParent, SvTreeListEntry* pEntry = 0 ) const; - sal_uInt16 GetLevelCount_Impl( SvTreeListEntry* pParent ) const; - - SvTreeListEntry* InsertEntryByBmpType( const OUString& rText, BMPTYPE eBmpType, - SvTreeListEntry* pParent = NULL, sal_Bool bChildrenOnDemand = sal_False, - sal_uIntPtr nPos = LIST_APPEND, void* pUserData = NULL ); -}; - -#endif // _SFX_HXX - -//========================================================================= - -class SfxTemplateOrganizeDlg : public ModalDialog -{ -friend class SfxOrganizeListBox_Impl; - - class SfxOrganizeDlg_Impl *pImp; - -public: - SfxTemplateOrganizeDlg(Window * pParent, SfxDocumentTemplates* = 0); - ~SfxTemplateOrganizeDlg(); - -#define RET_EDIT_STYLE 100 - - virtual short Execute(); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/inc/orgmgr.hxx b/sfx2/inc/orgmgr.hxx deleted file mode 100644 index 17b396ed2c8a..000000000000 --- a/sfx2/inc/orgmgr.hxx +++ /dev/null @@ -1,89 +0,0 @@ -/* -*- 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 _SFX_ORGMGR_HXX -#define _SFX_ORGMGR_HXX - -#include <o3tl/sorted_vector.hxx> - -class SfxDocumentTemplates; -class SfxOrganizeListBox_Impl; -struct _FileListEntry; - -//========================================================================= - -class SfxObjectList : public o3tl::sorted_vector<_FileListEntry*, o3tl::less_ptr_to<_FileListEntry> > -{ -public: - SfxObjectList(); - ~SfxObjectList(); - - const String& GetBaseName( const _FileListEntry* p ) const; -}; - -class IntlWrapper; -struct SfxOrganizeMgr_Impl -{ - SfxObjectList* pDocList; - IntlWrapper* pIntlWrapper; - - SfxOrganizeMgr_Impl() : pDocList( NULL ), pIntlWrapper( NULL ) {} -}; - -//========================================================================= - -class SfxOrganizeMgr -{ -private: - SfxOrganizeMgr_Impl* pImpl; - SfxDocumentTemplates* pTemplates; - sal_Bool bDeleteTemplates :1; - sal_Bool bModified :1; - -public: - SfxOrganizeMgr(SfxDocumentTemplates* pTempl = NULL); - ~SfxOrganizeMgr(); - - sal_Bool Copy( sal_uInt16 nTargetRegion, sal_uInt16 nTargetIdx, sal_uInt16 nSourceRegion, sal_uInt16 nSourceIdx ); - sal_Bool Move( sal_uInt16 nTargetRegion, sal_uInt16 nTargetIdx, sal_uInt16 nSourceRegion, sal_uInt16 nSourceIdx ); - sal_Bool Delete( SfxOrganizeListBox_Impl* pCaller, sal_uInt16 nRegion, sal_uInt16 nIdx ); - sal_Bool InsertDir( SfxOrganizeListBox_Impl* pCaller, const String& rName, sal_uInt16 nRegion ); - sal_Bool SetName( const String& rName, sal_uInt16 nRegion, sal_uInt16 nIdx = USHRT_MAX ); - sal_Bool CopyTo( sal_uInt16 nRegion, sal_uInt16 nIdx, const String& rName ) const; - sal_Bool CopyFrom( SfxOrganizeListBox_Impl* pCaller, sal_uInt16 nRegion, sal_uInt16 nIdx, String& rName ); - - sal_Bool Rescan(); - sal_Bool InsertFile( SfxOrganizeListBox_Impl* pCaller, const String& rFileName ); - - sal_Bool IsModified() const { return bModified ? sal_True : sal_False; } - - const SfxDocumentTemplates* GetTemplates() const { return pTemplates; } - SfxObjectList& GetObjectList() { return *pImpl->pDocList; } - const SfxObjectList& GetObjectList() const { return *pImpl->pDocList; } - - SfxObjectShellRef CreateObjectShell( sal_uInt16 nIdx ); - SfxObjectShellRef CreateObjectShell( sal_uInt16 nRegion, sal_uInt16 nIdx ); - sal_Bool DeleteObjectShell( sal_uInt16 ); - sal_Bool DeleteObjectShell( sal_uInt16, sal_uInt16 ); - void SaveAll( Window* pParent ); -}; - -#endif // #ifndef _SFX_ORGMGR_HXX - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/inc/sfx2/doctdlg.hxx b/sfx2/inc/sfx2/doctdlg.hxx deleted file mode 100644 index 2c9520e2eb8f..000000000000 --- a/sfx2/inc/sfx2/doctdlg.hxx +++ /dev/null @@ -1,75 +0,0 @@ -/* -*- 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 _SFXDOCTDLG_HXX -#define _SFXDOCTDLG_HXX - -#include <comphelper/string.hxx> -#include <sfx2/doctempl.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/edit.hxx> -#include <vcl/fixed.hxx> -#include <vcl/button.hxx> -#include <vcl/dialog.hxx> - -class SfxModalDefParentHelper; - -class SfxDocumentTemplateDlg : public ModalDialog -{ -private: - - FixedLine aEditFL; - Edit aNameEd; - FixedLine aTemplateFL; - FixedText aRegionFt; - ListBox aRegionLb; - FixedText aTemplateFt; - ListBox aTemplateLb; - - OKButton aOkBt; - CancelButton aCancelBt; - HelpButton aHelpBt; - PushButton aEditBt; - PushButton aOrganizeBt; - - SfxDocumentTemplates *pTemplates; - - SfxModalDefParentHelper* pHelper; - - void Init(); - - DECL_LINK( OrganizeHdl, Button * ); - DECL_LINK( OkHdl, Control * ); - DECL_LINK( RegionSelect, ListBox * ); - DECL_LINK( TemplateSelect, ListBox * ); - DECL_LINK( NameModify, Edit * ); - DECL_LINK( EditHdl, Button * ); - -public: - SfxDocumentTemplateDlg(Window * pParent, SfxDocumentTemplates* pTempl ); - ~SfxDocumentTemplateDlg(); - - String GetTemplateName() const - { return comphelper::string::stripStart(aNameEd.GetText(), ' '); } - sal_uInt16 GetRegion() const { return aRegionLb.GetSelectEntryPos(); } - String GetRegionName() const { return aRegionLb.GetSelectEntry(); } -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/inc/sfx2/sfxcommands.h b/sfx2/inc/sfx2/sfxcommands.h index f054ca959d90..3f4df5cb5220 100644 --- a/sfx2/inc/sfx2/sfxcommands.h +++ b/sfx2/inc/sfx2/sfxcommands.h @@ -62,7 +62,6 @@ #define CMD_SID_DOCTEMPLATE ".uno:SaveAsTemplate" #define CMD_SID_SEARCH_DLG ".uno:SearchDialog" #define CMD_SID_SHOW_BROWSER ".uno:ShowBrowser" -#define CMD_SID_STYLE_CATALOG ".uno:StyleCatalog" #define CMD_SID_STYLE_NEW_BY_EXAMPLE ".uno:StyleNewByExample" #define CMD_SID_INET_DLG ".uno:InternetDialog" diff --git a/sfx2/inc/sfx2/sfxsids.hrc b/sfx2/inc/sfx2/sfxsids.hrc index 0dee08891291..9a18100f5648 100644 --- a/sfx2/inc/sfx2/sfxsids.hrc +++ b/sfx2/inc/sfx2/sfxsids.hrc @@ -334,8 +334,6 @@ // Floating Window Template #define SID_STYLE_DESIGNER (SID_SFX_START + 539) -// Organizer -#define SID_ORGANIZER (SID_SFX_START + 540) #define SID_TEMPLATE_ADDRESSBOKSOURCE (SID_SFX_START + 1655) // Ruby dialog @@ -379,7 +377,6 @@ #define SID_ACTIVEDOCUMENT (SID_SFX_START + 570) #define SID_DEFAULTFILEPATH (SID_SFX_START + 571) -#define SID_STYLE_CATALOG (SID_SFX_START + 573) #define SID_OBJECT (SID_SFX_START + 575) // Doc-Properties diff --git a/sfx2/inc/sfx2/templdlg.hxx b/sfx2/inc/sfx2/templdlg.hxx index 92008b316c3b..e9fb3a5e4c51 100644 --- a/sfx2/inc/sfx2/templdlg.hxx +++ b/sfx2/inc/sfx2/templdlg.hxx @@ -29,7 +29,6 @@ #include <sfx2/basedlgs.hxx> class SfxTemplateDialog_Impl; -class SfxTemplateCatalog_Impl; // class ISfxTemplateCommon ---------------------------------------------- @@ -68,19 +67,6 @@ public: void SetParagraphFamily(); }; -// class SfxTemplateCatalog ---------------------------------------------- - -class SfxTemplateCatalog : public SfxModalDialog -{ -private: - SfxTemplateCatalog_Impl *pImpl; - -public: - SfxTemplateCatalog(Window * pParent, SfxBindings *pBindings); - ~SfxTemplateCatalog(); - friend class SfxTemplateCatalog_Impl; -}; - // class SfxTemplateDialogWrapper ---------------------------------------- class SFX2_DLLPUBLIC SfxTemplateDialogWrapper : public SfxChildWindow diff --git a/sfx2/sdi/appslots.sdi b/sfx2/sdi/appslots.sdi index 9f7d6cc3a805..aa1da36faebf 100644 --- a/sfx2/sdi/appslots.sdi +++ b/sfx2/sdi/appslots.sdi @@ -123,10 +123,6 @@ interface Application ExecMethod = MiscExec_Impl ; StateMethod = MiscState_Impl ; ] - SID_ORGANIZER // ole(no) api(final/play/rec) - [ - ExecMethod = MiscExec_Impl ; - ] SID_TEMPLATE_ADDRESSBOKSOURCE // ole(no) api(final/play/rec) [ ExecMethod = MiscExec_Impl ; diff --git a/sfx2/sdi/sfx.sdi b/sfx2/sdi/sfx.sdi index 7c19226bcb3e..607f2060af38 100644 --- a/sfx2/sdi/sfx.sdi +++ b/sfx2/sdi/sfx.sdi @@ -4646,31 +4646,6 @@ SfxVoidItem TemplateManager SID_TEMPLATE_MANAGER ] //-------------------------------------------------------------------------- -SfxVoidItem Organizer SID_ORGANIZER -() -[ - /* flags: */ - AutoUpdate = FALSE, - Cachable = Cachable, - FastCall = FALSE, - HasCoreId = FALSE, - HasDialog = FALSE, - ReadOnlyDoc = TRUE, - Toggle = FALSE, - Container = TRUE, - RecordAbsolute = FALSE, - RecordPerSet; - Asynchron; - - /* config: */ - AccelConfig = TRUE, - MenuConfig = TRUE, - StatusBarConfig = FALSE, - ToolBoxConfig = TRUE, - GroupId = GID_TEMPLATE; -] - -//-------------------------------------------------------------------------- SfxTemplateItem PageStyle SID_STYLE_FAMILY4 [ @@ -6472,31 +6447,6 @@ SfxTemplateItem StyleApplyState SID_STYLE_APPLY ] //-------------------------------------------------------------------------- -SfxVoidItem StyleCatalog SID_STYLE_CATALOG -() -[ - /* flags: */ - AutoUpdate = FALSE, - Cachable = Cachable, - FastCall = FALSE, - 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_TEMPLATE; -] - -//-------------------------------------------------------------------------- SfxVoidItem StyleNewByExample SID_STYLE_NEW_BY_EXAMPLE (SfxStringItem Param SID_STYLE_NEW_BY_EXAMPLE,SfxUInt16Item Family SID_STYLE_FAMILY) [ diff --git a/sfx2/sdi/viwslots.sdi b/sfx2/sdi/viwslots.sdi index bfc770cb6503..941374564f69 100644 --- a/sfx2/sdi/viwslots.sdi +++ b/sfx2/sdi/viwslots.sdi @@ -77,11 +77,6 @@ interface View ExecMethod = ExecPrint_Impl ; StateMethod = GetState_Impl ; ] - SID_STYLE_CATALOG // ole(no) api(play/rec) - [ - ExecMethod = ExecMisc_Impl ; - StateMethod = GetState_Impl ; - ] SID_ACTIVATE_STYLE_APPLY [ ExecMethod = ExecMisc_Impl ; diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx index fd224a5edd37..4a4fc90f94a5 100644 --- a/sfx2/source/appl/appserv.cxx +++ b/sfx2/source/appl/appserv.cxx @@ -96,9 +96,7 @@ #include <sfx2/docfac.hxx> #include <sfx2/docfile.hxx> #include <sfx2/docfilt.hxx> -#include "docvor.hxx" #include <sfx2/new.hxx> -#include <sfx2/templdlg.hxx> #include "sfxtypes.hxx" #include <sfx2/tabdlg.hxx> #include "arrdecl.hxx" @@ -602,17 +600,6 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) break; } - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - case SID_ORGANIZER: - { - SfxTemplateOrganizeDlg *pDlg = - new SfxTemplateOrganizeDlg(NULL); - pDlg->Execute(); - delete pDlg; - bDone = true; - break; - } - case SID_TEMPLATE_ADDRESSBOKSOURCE: { svt::AddressBookSourceDialog aDialog(GetTopWindow(), ::comphelper::getProcessServiceFactory()); diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index d497711dac72..0af6d770116f 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -55,7 +55,6 @@ #include "fltfnc.hxx" #include <sfx2/docfilt.hxx> #include <sfx2/docfac.hxx> -#include "docvor.hxx" #include <sfx2/doctempl.hxx> #include <sfx2/module.hxx> #include "sfx2/imgmgr.hxx" @@ -91,7 +90,6 @@ static sal_uInt16 nLastItemId = USHRT_MAX; TYPEINIT0(SfxCommonTemplateDialog_Impl); TYPEINIT1(SfxTemplateDialog_Impl,SfxCommonTemplateDialog_Impl); -TYPEINIT1(SfxTemplateCatalog_Impl,SfxCommonTemplateDialog_Impl); SFX_IMPL_DOCKINGWINDOW_WITHID(SfxTemplateDialogWrapper, SID_STYLE_DESIGNER) @@ -230,21 +228,6 @@ SfxChildAlignment SfxTemplateDialog::CheckAlignment(SfxChildAlignment eActAlign, //------------------------------------------------------------------------- -SfxTemplateCatalog::SfxTemplateCatalog(Window *pParent, SfxBindings *pBindings) - : SfxModalDialog(pParent,SfxResId(RID_STYLECATALOG)) -{ - pImpl = new SfxTemplateCatalog_Impl(pParent, pBindings, this); -} - -//------------------------------------------------------------------------- - -SfxTemplateCatalog::~SfxTemplateCatalog() -{ - delete pImpl; -} - -//------------------------------------------------------------------------- - void DropListBox_Impl::MouseButtonDown( const MouseEvent& rMEvt ) { nModifier = rMEvt.GetModifier(); @@ -2158,8 +2141,6 @@ IMPL_LINK( SfxCommonTemplateDialog_Impl, ApplyHdl, Control *, pControl ) GetSelectedEntry(), String(), ( sal_uInt16 )GetFamilyItem_Impl()->GetFamily(), 0, 0, &nModifier ); - if(ISA(SfxTemplateCatalog_Impl)) - ((SfxTemplateCatalog_Impl*) this)->pReal->EndDialog(RET_OK); } ResetFocus(); return 0; @@ -2641,218 +2622,6 @@ IMPL_LINK( SfxTemplateDialog_Impl, MenuSelectHdl, Menu*, pMenu) } //------------------------------------------------------------------------- -SfxTemplateCatalog_Impl::SfxTemplateCatalog_Impl( Window* /*pParent*/, SfxBindings* pB, - SfxTemplateCatalog* pTmpWindow ) : - - SfxCommonTemplateDialog_Impl( pB, pTmpWindow ), - - aFamList ( pTmpWindow, SfxResId( BT_TOOL ) ), - aOkBtn ( pTmpWindow, SfxResId( BT_OK ) ), - aCancelBtn ( pTmpWindow, SfxResId( BT_CANCEL ) ), - aNewBtn ( pTmpWindow, SfxResId( BT_NEW ) ), - aChangeBtn ( pTmpWindow, SfxResId( BT_EDIT ) ), - aDelBtn ( pTmpWindow, SfxResId( BT_DEL ) ), - aOrgBtn ( pTmpWindow, SfxResId( BT_ORG ) ), - aHelpBtn ( pTmpWindow, SfxResId( BT_HELP ) ), - pReal ( pTmpWindow ), - aHelper ( pTmpWindow ) - -{ - aNewBtn.Disable(); - aDelBtn.Disable(); - aChangeBtn.Disable(); - - SFX_APP()->Get_Impl()->pTemplateCommon = GetISfxTemplateCommon(); - pTmpWindow->FreeResource(); - - Initialize(); - - aFamList.SetSelectHdl( LINK( this, SfxTemplateCatalog_Impl, FamListSelect ) ); - aOkBtn.SetClickHdl( LINK( this, SfxTemplateCatalog_Impl, OkHdl ) ); - aCancelBtn.SetClickHdl( LINK( this, SfxTemplateCatalog_Impl, CancelHdl ) ); - aNewBtn.SetClickHdl( LINK( this, SfxTemplateCatalog_Impl, NewHdl ) ); - aDelBtn.SetClickHdl( LINK( this, SfxTemplateCatalog_Impl, DelHdl ) ); - aChangeBtn.SetClickHdl( LINK( this, SfxTemplateCatalog_Impl, ChangeHdl ) ); - aOrgBtn.SetClickHdl( LINK( this, SfxTemplateCatalog_Impl, OrgHdl ) ); -} - -//------------------------------------------------------------------------- - -SfxTemplateCatalog_Impl::~SfxTemplateCatalog_Impl() -{ - SFX_APP()->Get_Impl()->pTemplateCommon = 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxTemplateCatalog_Impl, OkHdl, Button *, pButton ) -{ - (void)pButton; //unused - ApplyHdl( NULL ); - pReal->EndDialog( RET_OK ); - return 0; -} -IMPL_LINK_INLINE_END( SfxTemplateCatalog_Impl, OkHdl, Button *, pButton ) - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxTemplateCatalog_Impl, CancelHdl, Button *, pButton ) -{ - (void)pButton; //unused - pReal->EndDialog( RET_CANCEL ); - return 0; -} -IMPL_LINK_INLINE_END( SfxTemplateCatalog_Impl, CancelHdl, Button *, pButton ) - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxTemplateCatalog_Impl, NewHdl, Button *, pButton ) -{ - (void)pButton; //unused - aCancelBtn.SetText( SfxResId(STR_CLOSE).toString() ); - SfxCommonTemplateDialog_Impl::NewHdl( NULL ); - return 0; -} -IMPL_LINK_INLINE_END( SfxTemplateCatalog_Impl, NewHdl, Button *, pButton ) - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxTemplateCatalog_Impl, ChangeHdl, Button *, pButton ) -{ - (void)pButton; //unused - aCancelBtn.SetText( SfxResId(STR_CLOSE).toString() ); - SfxCommonTemplateDialog_Impl::EditHdl( NULL ); - return 0; -} -IMPL_LINK_INLINE_END( SfxTemplateCatalog_Impl, ChangeHdl, Button *, pButton ) - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxTemplateCatalog_Impl, DelHdl, Button *, pButton ) -{ - (void)pButton; //unused - SfxCommonTemplateDialog_Impl::DeleteHdl( NULL ); - return 0; -} -IMPL_LINK_INLINE_END( SfxTemplateCatalog_Impl, DelHdl, Button *, pButton ) - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxTemplateCatalog_Impl, OrgHdl, Button *, pButton ) -{ - (void)pButton; //unused - aCancelBtn.SetText( SfxResId(STR_CLOSE).toString() ); - SfxDocumentTemplates aTemplates; - aTemplates.Construct(); - SfxTemplateOrganizeDlg* pDlg = new SfxTemplateOrganizeDlg( pReal, &aTemplates ); - const short nRet = pDlg->Execute(); - delete pDlg; - if ( RET_OK == nRet ) - Update_Impl(); - else if ( RET_EDIT_STYLE == nRet ) - pReal->EndDialog( RET_CANCEL ); - return 0; -} - -//------------------------------------------------------------------------- - -void SfxTemplateCatalog_Impl::EnableEdit( sal_Bool bEnable ) -{ - SfxCommonTemplateDialog_Impl::EnableEdit( bEnable ); - aChangeBtn.Enable( bEnable ); -} - -//------------------------------------------------------------------------- - -void SfxTemplateCatalog_Impl::EnableDel( sal_Bool bEnable ) -{ - SfxCommonTemplateDialog_Impl::EnableDel( bEnable ); - aDelBtn.Enable( bEnable ); -} - -void SfxTemplateCatalog_Impl::EnableNew(sal_Bool bEnable) -{ - SfxCommonTemplateDialog_Impl::EnableNew( bEnable ); - aNewBtn.Enable( bEnable ); -} - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxTemplateCatalog_Impl, FamListSelect, ListBox *, pList ) -{ - const sal_uInt16 nEntry = aFamIds[pList->GetSelectEntryPos()]; - FamilySelect(nEntry); - return 0; -} -IMPL_LINK_INLINE_END( SfxTemplateCatalog_Impl, FamListSelect, ListBox *, pList ) - -//------------------------------------------------------------------------- - -void SfxTemplateCatalog_Impl::EnableItem( sal_uInt16 nMesId, sal_Bool bCheck ) -{ - if ( nMesId == SID_STYLE_WATERCAN ) - aOkBtn.Enable( bCheck ); - if ( nMesId > SFX_STYLE_FAMILY_PSEUDO || nMesId < SFX_STYLE_FAMILY_CHAR ) - return; -} - -//------------------------------------------------------------------------- - -void SfxTemplateCatalog_Impl::CheckItem(sal_uInt16 nMesId, sal_Bool /*bCheck*/) -{ - if ( nMesId > SFX_STYLE_FAMILY_PSEUDO || nMesId < SFX_STYLE_FAMILY_CHAR ) - return; - sal_uInt16 i; - for ( i = 0; i < aFamIds.size() && aFamIds[i] != nMesId; i++ ) ; - aFamList.SelectEntryPos(i); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxTemplateCatalog_Impl::IsCheckedItem(sal_uInt16 nMesId) -{ - if ( nMesId > SFX_STYLE_FAMILY_PSEUDO || nMesId < SFX_STYLE_FAMILY_CHAR ) - return sal_False; - sal_uInt16 i; - for ( i = 0; i < aFamIds.size() && aFamIds[i] != nMesId; i++ ) - ; - return aFamList.IsEntrySelected( rtl::OUString::valueOf(static_cast<sal_Int32>(i)) ); -} - -//------------------------------------------------------------------------- -// The list has only to master the disabling, since during his life time no -// changes in selection can be made, -void SfxTemplateCatalog_Impl::EnableFamilyItem( sal_uInt16 nId, sal_Bool bEnable ) -{ - if ( !bEnable ) - for ( sal_uInt16 nPos = aFamIds.size(); nPos--; ) - if ( aFamIds[ nPos ] == nId ) - { - aFamIds.erase( aFamIds.begin() + nPos ); - aFamList.RemoveEntry( nPos ); - } -} - -void SfxTemplateCatalog_Impl::InsertFamilyItem( sal_uInt16 nId, const SfxStyleFamilyItem* pItem ) -{ - if ( nId > SFX_STYLE_FAMILY_PSEUDO || nId < SFX_STYLE_FAMILY_CHAR ) - return; - aFamList.InsertEntry( pItem->GetText(), 0 ); - aFamIds.insert( aFamIds.begin(), nId ); -} - -void SfxTemplateCatalog_Impl::ClearFamilyList() -{ - aFamList.Clear(); - aFamIds.clear(); -} - -void SfxTemplateCatalog_Impl::PrepareDeleteAction() -{ - aDelBtn.Disable(); - aCancelBtn.SetText( SfxResId(STR_CLOSE).toString() ); -} - void SfxCommonTemplateDialog_Impl::SetFamily( sal_uInt16 nId ) { diff --git a/sfx2/source/dialog/templdlg.hrc b/sfx2/source/dialog/templdlg.hrc index 6d33c291a6cd..4918d4c25956 100644 --- a/sfx2/source/dialog/templdlg.hrc +++ b/sfx2/source/dialog/templdlg.hrc @@ -15,20 +15,7 @@ * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#define LB_FMT 3 -#define BTN_EDIT 11 -#define BTN_DELETE 12 #define TB_ACTION 15 -#define BTN_NEW 10 -#define LB_FILTER 4 -#define BT_OK 1 -#define BT_CANCEL 2 -#define BT_ORG 3 -#define BT_DEL 4 -#define BT_EDIT 5 -#define BT_NEW 6 -#define BT_HELP 7 #define BT_FLIST 8 #define BT_VLIST 9 -#define BT_TOOL 10 diff --git a/sfx2/source/dialog/templdlg.src b/sfx2/source/dialog/templdlg.src index 5e8d7ac6bada..38a3604c5d9f 100644 --- a/sfx2/source/dialog/templdlg.src +++ b/sfx2/source/dialog/templdlg.src @@ -34,95 +34,6 @@ ImageList DLG_STYLE_DESIGNER IdCount = { 3 ; }; }; - // RID_STYLECATALOG ------------------------------------------------------ -ModalDialog RID_STYLECATALOG -{ - HelpId = CMD_SID_STYLE_CATALOG ; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 181 , 134 ) ; - Text [ en-US ] = "Style Catalog" ; - Moveable = TRUE ; - OKButton BT_OK - { - DefButton = TRUE ; - Pos = MAP_APPFONT ( 123 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - CancelButton BT_CANCEL - { - Pos = MAP_APPFONT ( 123 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - PushButton BT_ORG - { - HelpID = "sfx2:PushButton:RID_STYLECATALOG:BT_ORG"; - Pos = MAP_APPFONT ( 123 , 97 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Organizer..." ; - TabStop = TRUE ; - }; - PushButton BT_DEL - { - HelpID = "sfx2:PushButton:RID_STYLECATALOG:BT_DEL"; - Pos = MAP_APPFONT ( 123 , 78 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Delete..." ; - TabStop = TRUE ; - }; - PushButton BT_EDIT - { - HelpID = "sfx2:PushButton:RID_STYLECATALOG:BT_EDIT"; - Pos = MAP_APPFONT ( 123 , 60 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Modify..." ; - TabStop = TRUE ; - }; - PushButton BT_NEW - { - HelpID = "sfx2:PushButton:RID_STYLECATALOG:BT_NEW"; - Pos = MAP_APPFONT ( 123 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~New..." ; - TabStop = TRUE ; - }; - HelpButton BT_HELP - { - Pos = MAP_APPFONT ( 123 , 114 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - TabStop = TRUE ; - }; - ListBox BT_TOOL - { - HelpID = "sfx2:ListBox:RID_STYLECATALOG:BT_TOOL"; - Border = TRUE ; - Pos = MAP_APPFONT ( 6 , 6 ) ; - Size = MAP_APPFONT ( 110 , 55 ) ; - TabStop = TRUE ; - DropDown = TRUE ; - }; - Control BT_VLIST - { - HelpId = HID_TEMPLATE_FMT ; - Border = TRUE ; - Pos = MAP_APPFONT ( 6 , 23 ) ; - Size = MAP_APPFONT ( 110 , 89 ) ; - TabStop = TRUE ; - }; - ListBox BT_FLIST - { - HelpID = "sfx2:ListBox:RID_STYLECATALOG:BT_FLIST"; - Border = TRUE ; - Pos = MAP_APPFONT ( 6 , 114 ) ; - Size = MAP_APPFONT ( 110 , 77 ) ; - TabStop = TRUE ; - Hide = TRUE ; - DropDown = TRUE ; - }; -}; - // Strings --------------------------------------------------------------- String STR_STYLE_ELEMTLIST { diff --git a/sfx2/source/doc/doctdlg.cxx b/sfx2/source/doc/doctdlg.cxx deleted file mode 100644 index 0c151035c8a2..000000000000 --- a/sfx2/source/doc/doctdlg.cxx +++ /dev/null @@ -1,206 +0,0 @@ -/* -*- 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 <vcl/msgbox.hxx> -#include <svl/stritem.hxx> - -#include <sfx2/doctdlg.hxx> -#include "docvor.hxx" -#include "sfx2/sfxresid.hxx" -#include "sfxtypes.hxx" -#include <sfx2/dispatch.hxx> -#include <sfx2/app.hxx> - -#include <sfx2/sfx.hrc> -#include "doc.hrc" -#include "doctdlg.hrc" -#include <sfx2/basedlgs.hxx> - -//========================================================================= - -SfxDocumentTemplateDlg::SfxDocumentTemplateDlg( Window * pParent, SfxDocumentTemplates* pTempl ) : - - ModalDialog( pParent, SfxResId( DLG_DOC_TEMPLATE ) ), - - aEditFL ( this, SfxResId( FL_EDIT ) ), - aNameEd ( this, SfxResId( ED_NAME ) ), - aTemplateFL ( this, SfxResId( FL_STYLESHEETS ) ), - aRegionFt ( this, SfxResId( FT_SECTION ) ), - aRegionLb ( this, SfxResId( LB_SECTION ) ), - aTemplateFt ( this, SfxResId( FT_STYLESHEETS ) ), - aTemplateLb ( this, SfxResId( LB_STYLESHEETS ) ), - - aOkBt ( this, SfxResId( BT_OK ) ), - aCancelBt ( this, SfxResId( BT_CANCEL ) ), - aHelpBt ( this, SfxResId( BT_HELP ) ), - aEditBt ( this, SfxResId( BT_EDIT ) ), - aOrganizeBt ( this, SfxResId( BT_ORGANIZE ) ), - - pTemplates ( pTempl ), - pHelper ( NULL ) - -{ - FreeResource(); - - pHelper = new SfxModalDefParentHelper( this ); - aOrganizeBt.SetClickHdl(LINK(this, SfxDocumentTemplateDlg, OrganizeHdl)); - aNameEd.SetModifyHdl(LINK(this, SfxDocumentTemplateDlg, NameModify)); - aOkBt.SetClickHdl(LINK(this, SfxDocumentTemplateDlg, OkHdl)); - aEditBt.SetClickHdl(LINK(this, SfxDocumentTemplateDlg, EditHdl)); - Init(); -} - -//------------------------------------------------------------------------- - -SfxDocumentTemplateDlg::~SfxDocumentTemplateDlg() -{ - delete pHelper; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxDocumentTemplateDlg, EditHdl, Button *, pBut ) -{ - (void)pBut; //unused - if ( !aRegionLb.GetSelectEntryCount() || - !aTemplateLb.GetSelectEntryCount()) - return 0; - - const SfxStringItem aRegion( SID_TEMPLATE_REGIONNAME, aRegionLb.GetSelectEntry() ); - const SfxStringItem aName( SID_TEMPLATE_NAME, aTemplateLb.GetSelectEntry() ); - SFX_APP()->GetAppDispatcher_Impl()->Execute( SID_OPENTEMPLATE, SFX_CALLMODE_ASYNCHRON|SFX_CALLMODE_RECORD, &aRegion, &aName, 0L ); - EndDialog(RET_EDIT_STYLE); - - return 0; -} - -//------------------------------------------------------------------------- - -void SfxDocumentTemplateDlg::Init() -{ - if(!pTemplates->IsConstructed()) - pTemplates->Construct(); - - const sal_uInt16 nCount = pTemplates->GetRegionCount(); - for(sal_uInt16 i = 0; i < nCount; ++i) - aRegionLb.InsertEntry(pTemplates->GetFullRegionName(i)); - if(!nCount) - aRegionLb.InsertEntry(SfxResId(STR_STANDARD).toString()); - aRegionLb.SelectEntryPos(0); - if(nCount) - { - aRegionLb.SetSelectHdl(LINK(this, SfxDocumentTemplateDlg, RegionSelect)); - RegionSelect(&aRegionLb); - aTemplateLb.SetSelectHdl(LINK(this, SfxDocumentTemplateDlg, TemplateSelect)); - aTemplateLb.SetDoubleClickHdl(LINK(this, SfxDocumentTemplateDlg, EditHdl)); - } - else { - Link aLink; - aTemplateLb.SetSelectHdl(aLink); - aTemplateLb.SetDoubleClickHdl(aLink); - } -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxDocumentTemplateDlg, OrganizeHdl, Button *, pButton ) -{ - (void)pButton; //unused - SfxTemplateOrganizeDlg *pDlg = - new SfxTemplateOrganizeDlg(this, pTemplates); - const short nRet = pDlg->Execute(); - delete pDlg; - if(RET_OK == nRet) - { - // View aktualisieren - aRegionLb.SetUpdateMode( sal_False ); - aRegionLb.Clear(); - Init(); - aRegionLb.SetUpdateMode( sal_True ); - aRegionLb.Invalidate(); - aRegionLb.Update(); - aCancelBt.SetText(SfxResId(STR_CLOSE).toString()); - } - else if(RET_EDIT_STYLE == nRet) - EndDialog(RET_CANCEL); - return 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxDocumentTemplateDlg, OkHdl, Control *, pControl ) -{ - (void)pControl; //unused - // Test whether a template with this name exists - if(LISTBOX_ENTRY_NOTFOUND != aTemplateLb.GetEntryPos( - GetTemplateName())) { - QueryBox aQuery(this, SfxResId(MSG_CONFIRM_OVERWRITE_TEMPLATE)); - if(RET_NO == aQuery.Execute()) - return 0; - } - EndDialog(RET_OK); - return 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxDocumentTemplateDlg, RegionSelect, ListBox *, pBox ) -{ - const sal_uInt16 nRegion = pBox->GetSelectEntryPos(); - const sal_uInt16 nCount = pTemplates->GetCount(nRegion); - aTemplateLb.SetUpdateMode(sal_False); - aTemplateLb.Clear(); - for(sal_uInt16 i = 0; i < nCount; ++i) - aTemplateLb.InsertEntry(pTemplates->GetName(nRegion, i)); - aTemplateLb.SelectEntryPos(0); - aTemplateLb.SetUpdateMode(sal_True); - aTemplateLb.Invalidate(); - aTemplateLb.Update(); - return 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxDocumentTemplateDlg, TemplateSelect, ListBox *, pBox ) -{ - aNameEd.SetText(pBox->GetSelectEntry()); - NameModify(&aNameEd); - return 0; -} -IMPL_LINK_INLINE_END( SfxDocumentTemplateDlg, TemplateSelect, ListBox *, pBox ) - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxDocumentTemplateDlg, NameModify, Edit *, pBox ) -{ - const String &rText=pBox->GetText(); - if(!rText.Len()) - aEditBt.Enable(); - else - { - aTemplateLb.SelectEntry(rText); - aEditBt.Enable( aTemplateLb.GetSelectEntry() == rText ); - } - - aOkBt.Enable( rText.Len() > 0 ); - return 0; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/doc/doctdlg.hrc b/sfx2/source/doc/doctdlg.hrc deleted file mode 100644 index 219db5b696ff..000000000000 --- a/sfx2/source/doc/doctdlg.hrc +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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 . - */ -#define FT_SECTION 1 -#define LB_SECTION 2 -#define FT_STYLESHEETS 3 -#define LB_STYLESHEETS 4 -#define BT_ORGANIZE 20 -#define BT_HELP 21 -#define FL_EDIT 5 -#define FT_NAME 6 -#define ED_NAME 7 -#define BT_OK 10 -#define BT_EDIT 12 -#define BT_NEW 13 -#define BT_DELETE 15 -#define BT_CANCEL 16 -#define FL_STYLESHEETS 17 diff --git a/sfx2/source/doc/doctdlg.src b/sfx2/source/doc/doctdlg.src deleted file mode 100644 index 3aaf703d1c9c..000000000000 --- a/sfx2/source/doc/doctdlg.src +++ /dev/null @@ -1,108 +0,0 @@ -/* - * 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 <sfx2/sfx.hrc> -#include "doc.hrc" -#include "doctdlg.hrc" -#include <sfx2/sfxcommands.h> - -ModalDialog DLG_DOC_TEMPLATE -{ - HelpId = CMD_SID_DOCTEMPLATE ; - OutputSize = TRUE ; - SVLook = TRUE ; - Size = MAP_APPFONT ( 280 , 128 ) ; - Text [ en-US ] = "Templates" ; - Moveable = TRUE ; - FixedLine FL_EDIT - { - Pos = MAP_APPFONT ( 6 , 3 ) ; - Size = MAP_APPFONT ( 212 , 8 ) ; - Text [ en-US ] = "New template" ; - }; - Edit ED_NAME - { - HelpID = "sfx2:Edit:DLG_DOC_TEMPLATE:ED_NAME"; - Border = TRUE ; - Pos = MAP_APPFONT ( 12 , 14 ) ; - Size = MAP_APPFONT ( 200 , 12 ) ; - }; - FixedLine FL_STYLESHEETS - { - Pos = MAP_APPFONT ( 6 , 32 ) ; - Size = MAP_APPFONT ( 212 , 8 ) ; - Text [ en-US ] = "Templates" ; - }; - FixedText FT_SECTION - { - Pos = MAP_APPFONT ( 12 , 43 ) ; - Size = MAP_APPFONT ( 97 , 10 ) ; - Text [ en-US ] = "~Categories" ; - }; - ListBox LB_SECTION - { - HelpID = "sfx2:ListBox:DLG_DOC_TEMPLATE:LB_SECTION"; - Border = TRUE ; - Pos = MAP_APPFONT ( 12 , 56 ) ; - Size = MAP_APPFONT ( 97 , 66 ) ; - }; - FixedText FT_STYLESHEETS - { - Pos = MAP_APPFONT ( 115 , 43 ) ; - Size = MAP_APPFONT ( 97 , 10 ) ; - Text [ en-US ] = "~Templates" ; - }; - ListBox LB_STYLESHEETS - { - HelpID = "sfx2:ListBox:DLG_DOC_TEMPLATE:LB_STYLESHEETS"; - Border = TRUE ; - Pos = MAP_APPFONT ( 115 , 56 ) ; - Size = MAP_APPFONT ( 97 , 66 ) ; - }; - OKButton BT_OK - { - Pos = MAP_APPFONT ( 224 , 6 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - DefButton = TRUE ; - Disable = TRUE ; - }; - CancelButton BT_CANCEL - { - Pos = MAP_APPFONT ( 224 , 23 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - HelpButton BT_HELP - { - Pos = MAP_APPFONT ( 224 , 43 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - }; - PushButton BT_EDIT - { - HelpID = "sfx2:PushButton:DLG_DOC_TEMPLATE:BT_EDIT"; - Pos = MAP_APPFONT ( 224 , 62 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Edit" ; - }; - PushButton BT_ORGANIZE - { - HelpID = "sfx2:PushButton:DLG_DOC_TEMPLATE:BT_ORGANIZE"; - Pos = MAP_APPFONT ( 224 , 79 ) ; - Size = MAP_APPFONT ( 50 , 14 ) ; - Text [ en-US ] = "~Organizer..." ; - }; -}; diff --git a/sfx2/source/doc/docvor.cxx b/sfx2/source/doc/docvor.cxx deleted file mode 100644 index 81bf89d3f16f..000000000000 --- a/sfx2/source/doc/docvor.cxx +++ /dev/null @@ -1,2390 +0,0 @@ -/* -*- 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 <com/sun/star/embed/XStorage.hpp> -#include <com/sun/star/embed/ElementModes.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include "com/sun/star/ui/dialogs/TemplateDescription.hpp" - -#include <stdio.h> - -#include <svtools/prnsetup.hxx> -#include <vcl/cmdevt.hxx> -#include <vcl/menubtn.hxx> -#include <vcl/msgbox.hxx> -#include <vcl/print.hxx> -#include <svl/style.hxx> -#include <svl/stritem.hxx> -#include <svl/eitem.hxx> -#include <svtools/sfxecode.hxx> -#include <svtools/ehdl.hxx> -#include <svtools/imagemgr.hxx> -#include <vcl/waitobj.hxx> -#include <tools/urlobj.hxx> -#include <tools/color.hxx> -#include <unotools/pathoptions.hxx> -#include <unotools/moduleoptions.hxx> -#include <sot/exchange.hxx> -#include <comphelper/storagehelper.hxx> - -#include "helpid.hrc" -#include "docvor.hxx" -#include <sfx2/docfac.hxx> -#include "orgmgr.hxx" -#include <sfx2/doctempl.hxx> -#include <sfx2/templdlg.hxx> -#include "sfxtypes.hxx" -#include <sfx2/app.hxx> -#include <sfx2/dispatch.hxx> -#include "sfx2/sfxresid.hxx" -#include "doc.hrc" -#include <sfx2/sfx.hrc> -#include <sfx2/docfilt.hxx> -#include <sfx2/filedlghelper.hxx> -#include <sfx2/fcontnr.hxx> -#include <svtools/localresaccess.hxx> -#include <svtools/addresstemplate.hxx> -#include "svtools/treelistentry.hxx" -#include <comphelper/processfactory.hxx> - -#define ID_NEW 1 -#define ID_DELETE 2 -#define ID_EDIT 3 -//seperator -#define ID_COPY_FROM 5 -#define ID_COPY_TO 6 -//seperator -#define ID_PRINT 8 -#define ID_PRINTER_SETUP 9 -//seperator -#define ID_RESCAN 11 -//seperator -#define ID_DEFAULT_TEMPLATE 13 -#define ID_RESET_DEFAULT_TEMPLATE 14 - -sal_Bool SfxOrganizeListBox_Impl::bDropMoveOk = sal_True; - -using namespace ::com::sun::star; - -//========================================================================= - -class SuspendAccel -{ -public: - Accelerator* pAccel; - - SuspendAccel( Accelerator* pA ) - { - pAccel=pA; - GetpApp()->RemoveAccel( pAccel ); - } - ~SuspendAccel() - { - GetpApp()->InsertAccel( pAccel ); - } -}; - -//========================================================================= - -extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSfxOrganizeListBox(Window *pParent, - VclBuilder::stringmap &) -{ - return new SfxOrganizeListBox_Impl(pParent, WB_BORDER | WB_TABSTOP | WB_HSCROLL); -} - -inline void SfxOrganizeListBox_Impl::SetBitmaps( - const Image &rOFolder, const Image &rCFolder, const Image &rODoc, const Image &rCDoc ) -{ - aOpenedFolderBmp = rOFolder; - aClosedFolderBmp = rCFolder; - aOpenedDocBmp = rODoc; - aClosedDocBmp = rCDoc; - -} - -//========================================================================= - -#define NO_DROP_ACTION ((sal_Int8)-1) - -class SfxOrganizeDlg_Impl -{ -friend class SfxTemplateOrganizeDlg; -friend class SfxOrganizeListBox_Impl; - - SuspendAccel* pSuspend; - SfxTemplateOrganizeDlg* pDialog; - - SfxOrganizeListBox_Impl* pFocusBox; - Printer* pPrt; - - // save pointer for asynchronous D&D - SvTreeListBox* pSourceView; - SvTreeListEntry* pTargetEntry; - SfxOrganizeListBox_Impl* pFinishedBox; - sal_Int8 nDropAction; - bool bExecDropFinished; - - // save some variables for the asynchronous file dialog - sal_uInt16 m_nRegion; - sal_uInt16 m_nIndex; - String m_sExtension4Save; - - SfxOrganizeListBox_Impl* m_pLeftLb; - ListBox* m_pLeftTypLb; - - SfxOrganizeListBox_Impl* m_pRightLb; - ListBox* m_pRightTypLb; - - MenuButton* m_pEditBtn; - PushButton* m_pAddressTemplateBtn; - PushButton* m_pFilesBtn; - - Accelerator aEditAcc; - - String aLastDir; - SfxOrganizeMgr aMgr; - sfx2::FileDialogHelper* pFileDlg; - - std::vector<rtl::OUString> GetAllFactoryURLs_Impl() const; - sal_Bool GetServiceName_Impl( String& rFactoryURL, String& rFileURL ) const; - long Dispatch_Impl( sal_uInt16 nId, Menu* _pMenu ); - String GetPath_Impl( sal_Bool bOpen, const String& rFileName ); - ::com::sun::star::uno::Sequence< ::rtl::OUString > - GetPaths_Impl( const String& rFileName ); - void InitBitmaps( void ); - - DECL_LINK( GetFocus_Impl, SfxOrganizeListBox_Impl * ); - DECL_LINK( LeftListBoxSelect_Impl, ListBox * ); - DECL_LINK( RightListBoxSelect_Impl, ListBox * ); - DECL_LINK( AccelSelect_Impl, Accelerator * ); - DECL_LINK( MenuSelect_Impl, Menu * ); - DECL_LINK( MenuActivate_Impl, Menu * ); - DECL_LINK( AddFiles_Impl, Button * ); - DECL_LINK( OnAddressTemplateClicked, void * ); - DECL_LINK( Close_Impl, void * ); - - DECL_LINK(ImportHdl, void *); - DECL_LINK(ExportHdl, void *); - DECL_LINK(AddFilesHdl, void *); - - sal_Bool DontDelete_Impl( SvTreeListEntry* pEntry ); - -public: - SfxOrganizeDlg_Impl( SfxTemplateOrganizeDlg* pParent, SfxDocumentTemplates* pTempl ); - ~SfxOrganizeDlg_Impl(); -}; - -//------------------------------------------------------------------------- - -SfxOrganizeDlg_Impl::SfxOrganizeDlg_Impl( SfxTemplateOrganizeDlg* pParent, - SfxDocumentTemplates* pTempl ) : - pSuspend ( NULL ), - pDialog ( pParent ), - pFocusBox ( NULL ), - pPrt ( NULL ), - pSourceView ( NULL ), - pTargetEntry ( NULL ), - pFinishedBox ( NULL ), - nDropAction ( NO_DROP_ACTION ), - bExecDropFinished ( true ), - - aMgr ( pTempl ), - pFileDlg ( NULL ) - -{ - aEditAcc.InsertItem(ID_NEW, KeyCode(KEY_INSERT)); - aEditAcc.InsertItem(ID_DELETE, KeyCode(KEY_DELETE)); - - pDialog->get(m_pLeftTypLb, "lefttype"); - pDialog->get(m_pLeftLb, "leftorganizer"); - m_pLeftLb->Init(this, SfxOrganizeListBox_Impl::VIEW_TEMPLATES); - - //20 lines - m_pLeftLb->set_height_request(m_pLeftLb->GetEntryHeight() * 20); - - pDialog->get(m_pRightTypLb, "righttype"); - pDialog->get(m_pRightLb, "rightorganizer"); - m_pRightLb->Init(this, SfxOrganizeListBox_Impl::VIEW_FILES); - - pDialog->get(m_pEditBtn, "commands"); - pDialog->get(m_pAddressTemplateBtn, "addressbook"); - pDialog->get(m_pFilesBtn, "file"); - - PushButton *pClose = pDialog->get<PushButton>("close"); - pClose->SetClickHdl(LINK(this,SfxOrganizeDlg_Impl, Close_Impl)); - - // update the SfxDocumentTemplates the manager works with - if ( aMgr.GetTemplates() ) // should never fail, but who knows .... - { - // for this, show a wait cursor (it may take a while) - Window* pWaitObjectRange = pDialog ? pDialog->GetParent() : NULL; - if ( !pWaitObjectRange ) - pWaitObjectRange = pDialog; - - WaitObject aWaitCursor( pWaitObjectRange ); - const_cast< SfxDocumentTemplates* >( aMgr.GetTemplates() )->Update( sal_True /* be smart */ ); - // this const_cast is a hack - but the alternative would be to - // * have a method which returns the templates non-const - // * use a new SfxDocumentTemplates instance for the update - // (knowing that they all share the same implementation class) - // * always work with an own instance, even if we get only NULL in this ctor - } - - String aWorkPath = SvtPathOptions().GetWorkPath(); - if ( aWorkPath.Len() ) - { - INetURLObject aObj( aWorkPath ); - DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "Illegal URL !" ); - aObj.setFinalSlash(); - aLastDir = aObj.GetMainURL( INetURLObject::DECODE_TO_IURI ); - } - else - { - // fallback - String aProgURL = SvtPathOptions().SubstituteVariable( rtl::OUString("$(PROGURL)") ); - INetURLObject aObj( aProgURL ); - DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "Illegal URL !" ); - aLastDir = aObj.GetMainURL( INetURLObject::DECODE_TO_IURI ); - } - - InitBitmaps(); - - m_pEditBtn->GetPopupMenu()->SetSelectHdl( LINK( this, SfxOrganizeDlg_Impl, MenuSelect_Impl ) ); - m_pEditBtn->GetPopupMenu()->SetActivateHdl( LINK( this, SfxOrganizeDlg_Impl, MenuActivate_Impl ) ); - aEditAcc.SetSelectHdl( LINK( this, SfxOrganizeDlg_Impl, AccelSelect_Impl ) ); - GetpApp()->InsertAccel( &aEditAcc ); - - m_pFilesBtn->SetClickHdl( - LINK(this,SfxOrganizeDlg_Impl, AddFiles_Impl)); - m_pAddressTemplateBtn->SetClickHdl( - LINK(this,SfxOrganizeDlg_Impl, OnAddressTemplateClicked)); - m_pLeftTypLb->SetSelectHdl( - LINK(this, SfxOrganizeDlg_Impl, LeftListBoxSelect_Impl)); - m_pRightTypLb->SetSelectHdl( - LINK(this, SfxOrganizeDlg_Impl, RightListBoxSelect_Impl)); - m_pLeftLb->SetGetFocusHdl( - LINK(this, SfxOrganizeDlg_Impl, GetFocus_Impl)); - m_pRightLb->SetGetFocusHdl( - LINK(this, SfxOrganizeDlg_Impl, GetFocus_Impl)); - m_pLeftLb->SetPosSizePixel(pParent->LogicToPixel(Point(3, 6), MAP_APPFONT), - pParent->LogicToPixel(Size(94, 132), MAP_APPFONT)); - m_pRightLb->SetPosSizePixel(pParent->LogicToPixel(Point(103, 6), MAP_APPFONT), - pParent->LogicToPixel(Size(94, 132), MAP_APPFONT)); - - if ( !SvtModuleOptions().IsModuleInstalled(SvtModuleOptions::E_SDATABASE) ) - m_pAddressTemplateBtn->Hide(); - Font aFont(m_pLeftLb->GetFont()); - aFont.SetWeight(WEIGHT_NORMAL); - m_pLeftLb->SetFont(aFont); - m_pRightLb->SetFont(aFont); - const long nIndent = m_pLeftLb->GetIndent() / 2; - m_pLeftLb->SetIndent( (short)nIndent ); - m_pRightLb->SetIndent( (short)nIndent ); - - m_pLeftLb->SetMgr(&aMgr); - m_pRightLb->SetMgr(&aMgr); - m_pLeftLb->Reset(); - m_pRightLb->Reset();//SetModel(m_pLeftLb->GetModel()); - - m_pLeftLb->Show(); - m_pRightLb->Show(); - - m_pLeftLb->SelectAll( sal_False ); - m_pRightLb->SelectAll( sal_False ); - m_pRightLb->GrabFocus(); -} - -//------------------------------------------------------------------------- - -SfxOrganizeDlg_Impl::~SfxOrganizeDlg_Impl() -{ - delete pFileDlg; -} - -//------------------------------------------------------------------------- - -void SfxOrganizeDlg_Impl::InitBitmaps( void ) -{ - const Image& rOpenedFolderBmp(pDialog->get<FixedImage>("folderop")->GetImage()); - const Image& rClosedFolderBmp(pDialog->get<FixedImage>("foldercl")->GetImage()); - const Image& rOpenedDocBmp(pDialog->get<FixedImage>("docop")->GetImage()); - const Image& rClosedDocBmp(pDialog->get<FixedImage>("doccl")->GetImage()); - - m_pLeftLb->SetBitmaps(rOpenedFolderBmp, rClosedFolderBmp, rOpenedDocBmp, rClosedDocBmp); - m_pRightLb->SetBitmaps(rOpenedFolderBmp, rClosedFolderBmp, rOpenedDocBmp, rClosedDocBmp); -} - -//========================================================================= - -sal_Bool QueryDelete_Impl(Window *pParent, // Parent to QueryBox - sal_uInt16 nId, // Resource Id - const String &rTemplateName) // Name of template to be deleted -/* [Description] - - Delete Query - -*/ -{ - SfxResId aResId( nId ); - String aEntryText( aResId.toString() ); - aEntryText.SearchAndReplaceAscii( "$1", rTemplateName ); - QueryBox aBox( pParent, WB_YES_NO | WB_DEF_NO, aEntryText ); - return RET_NO != aBox.Execute(); -} - -//------------------------------------------------------------------------- - -void ErrorDelete_Impl(Window *pParent, const String &rName, sal_Bool bFolder = sal_False ) - -/* [Description] - - User information that the template rName could not be deleted. -*/ -{ - if ( bFolder ) - { - rtl::OUString aText(SfxResId(STR_ERROR_DELETE_TEMPLATE_DIR).toString()); - ErrorBox( pParent, WB_OK, aText ).Execute(); - } - else - { - String aText( SfxResId(STR_ERROR_DELETE_TEMPLATE).toString() ); - aText.SearchAndReplaceAscii( "$1", rName ); - ErrorBox( pParent, WB_OK, aText ).Execute(); - } -} - - -//========================================================================= - -/* [Description] - - Implementation class, the benchmark for sal_uInt16-Array -*/ - -struct ImpPath_Impl -{ - std::vector<sal_uInt16> aUS; - sal_uInt16 nRef; - - ImpPath_Impl(); - ImpPath_Impl( const ImpPath_Impl& rCopy ); -}; - -//------------------------------------------------------------------------- - -ImpPath_Impl::ImpPath_Impl() : nRef(1) -{ -} - -//------------------------------------------------------------------------- - -ImpPath_Impl::ImpPath_Impl( const ImpPath_Impl& rCopy ) : - - aUS(rCopy.aUS), nRef( 1 ) - -{ -} - -//========================================================================== - -/* [Description] - - Implementation class, presentation of a position in the Outline- - Listbox ass sal_uInt16-Array, this describes the position of each as - Postions relative to the parent entry -*/ -class Path -{ - ImpPath_Impl *pData; -public: - Path(SvTreeListBox *pBox, SvTreeListEntry *pEntry); - Path(const Path &rPath): - pData(rPath.pData) - { - ++pData->nRef; - } - const Path &operator=(const Path &rPath) - { - if(&rPath != this) - { - if(!--pData->nRef) - delete pData; - pData = rPath.pData; - pData->nRef++; - } - return *this; - } - ~Path() - { - if(!--pData->nRef) - delete pData; - } - sal_uInt16 Count() const { return pData->aUS.size(); } - sal_uInt16 operator[]( sal_uInt16 i ) const - { - return i < Count()? pData->aUS[i]: INDEX_IGNORE; - } -}; - -//------------------------------------------------------------------------- - -Path::Path(SvTreeListBox *pBox, SvTreeListEntry *pEntry) : - pData(new ImpPath_Impl) -{ - DBG_ASSERT(pEntry != 0, "EntryPtr ist NULL"); - if(!pEntry) - return; - SvTreeListEntry *pParent = pBox->GetParent(pEntry); - do { - pData->aUS.insert(pData->aUS.begin(), - (sal_uInt16)pBox->GetModel()->GetRelPos(pEntry)); - if(0 == pParent) - break; - pEntry = pParent; - pParent = pBox->GetParent(pEntry); - } while(1); -} - -//------------------------------------------------------------------------- - -SvTreeListEntry *GetIndices_Impl(SvTreeListBox *pBox, - SvTreeListEntry *pEntry, - sal_uInt16 &rRegion, - sal_uInt16 &rOffset) -/* [Description] - - Region and position within a range for a template is determined. - - [Parameter] - - SvTreeListBox *pBox Listbox where the event occurred - SvTreeListEntry *pEntry Entry whose position is to be determined - sal_uInt16 &rRegion the region within the region of the - document template (Out-Parameter) - sal_uInt16 &rOffset the position within the region of the - document template (Out-Parameter) - - - [Cross-references] - - <class Path> (in certain circumstances this function can also be - dispensed in favor of the Path) -*/ - -{ - if(!pEntry) - { - rRegion = rOffset = 0; - return pEntry; - } - if(0 == pBox->GetModel()->GetDepth(pEntry)) - { - rRegion = (sal_uInt16)pBox->GetModel()->GetRelPos(pEntry); - rOffset = USHRT_MAX; - return pEntry; - } - SvTreeListEntry *pParent = pBox->GetParent(pEntry); - rRegion = (sal_uInt16)pBox->GetModel()->GetRelPos(pParent); - rOffset = (sal_uInt16)pBox->GetModel()->GetRelPos(pEntry); - return pEntry; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::Select( SvTreeListEntry* pEntry, sal_Bool bSelect ) -{ - if(!bSelect) - return SvTreeListBox::Select(pEntry,bSelect); - sal_uInt16 nLevel = GetDocLevel(); - if(GetModel()->GetDepth(pEntry)+nLevel<3) - return SvTreeListBox::Select(pEntry,bSelect); - - Path aPath(this, pEntry); - - // it is ok to use the SfxObjectShellRef here since the object that - // provides it ( GetObjectShell() calls CreateObjectShell() ) has a lock on it - GetObjectShell(aPath)->TriggerHelpPI( - aPath[nLevel+1], aPath[nLevel+2]); - return SvTreeListBox::Select(pEntry,bSelect); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::MoveOrCopyTemplates(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy) -/* [Description] - - Move or copy a document templates - - [Parameter] - - SvTreeListBox *pSourceBox Source Listbox, at which the event occurred - SvTreeListEntry* pTarget Target entry, to where it will be moved - SvTreeListEntry *pSource Source entry, to be copied / moved - SvTreeListEntry *&pNewParent the parent of the target position generated - at entry (out parameter) - sal_uIntPtr &rIdx Index of the target entry - sal_Bool bCopy Flag for Copy / Move - - - [Return value] sal_Bool: Success or failure - - [Cross-references] - - <SfxOrganizeListBox_Impl::MoveOrCopyContents(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy)> - <sal_Bool SfxOrganizeListBox_Impl::NotifyMoving(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx)> - <sal_Bool SfxOrganizeListBox_Impl::NotifyCopying(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx)> -*/ - -{ - sal_Bool bOk = sal_False; - - if(pSource) - { - sal_uInt16 nTargetRegion = 0, nTargetIndex = 0; - GetIndices_Impl(this, pTarget, nTargetRegion, nTargetIndex); - - sal_uInt16 nSourceRegion = 0, nSourceIndex = 0; - GetIndices_Impl(pSourceBox, pSource, nSourceRegion, nSourceIndex); - - bOk = bCopy ? - pMgr->Copy(nTargetRegion, nTargetIndex+1, - nSourceRegion, nSourceIndex): - pMgr->Move(nTargetRegion, nTargetIndex+1, - nSourceRegion, nSourceIndex); - - if(bOk) - { - if(pSourceBox->GetModel()->GetDepth(pSource) == GetModel()->GetDepth(pTarget)) - { - pNewParent = GetParent(pTarget); - rIdx = GetModel()->GetRelPos(pTarget)+1; - } - else - { - if(nTargetIndex == USHRT_MAX) - { - pNewParent = pTarget; - rIdx = 0; - } - else - SvTreeListBox::NotifyCopying( - pTarget, pSource, pNewParent, rIdx); - } - } - else if ( bCopy ) - { - // the template organizer always tries copy after the move, so no error is required for move case - String aText( SfxResId( bCopy ? STR_ERROR_COPY_TEMPLATE : STR_ERROR_MOVE_TEMPLATE ).toString() ); - aText.SearchAndReplaceAscii( "$1", - ( (SvTreeListBox *)pSourceBox )->GetEntryText( pSource ) ); - ErrorBox( this, WB_OK, aText ).Execute(); - } - } - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::MoveOrCopyContents(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy) -/* [Description] - - Move or copy document contents - - [Parameter] - - SvTreeListBox *pSourceBox Source Listbox, at which the event occurred - SvTreeListEntry* pTarget Target entry, to where it will be moved - SvTreeListEntry *pSource Source entry, to be copied / moved - SvTreeListEntry *&pNewParent the parent of the target position generated - at entry (out parameter) - sal_uIntPtr &rIdx Index of the target entry - sal_Bool bCopy Flag for Copy / Move - - - [Return value] sal_Bool: Success or failure - - [Cross-references] - - <SfxOrganizeListBox_Impl::MoveOrCopyTemplates(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy)> - <sal_Bool SfxOrganizeListBox_Impl::NotifyMoving(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx)> - <sal_Bool SfxOrganizeListBox_Impl::NotifyCopying(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx)> -*/ - -{ - SfxErrorContext aEc( ERRCTX_SFX_MOVEORCOPYCONTENTS, this); - sal_Bool bOk = sal_False, bKeepExpansion = sal_False; - sal_Bool bRemovedFromSource = sal_False; - Path aSource(pSourceBox, pSource); - Path aTarget(this, pTarget); - - // it is ok to use the SfxObjectShellRef here since the object that - // provides it ( GetObjectShell() calls CreateObjectShell() ) has a lock on it - SfxObjectShellRef aSourceDoc = ((SfxOrganizeListBox_Impl *)pSourceBox)->GetObjectShell(aSource); - SfxObjectShellRef aTargetDoc = GetObjectShell(aTarget); - - const sal_uInt16 nSLevel = - ((SfxOrganizeListBox_Impl *)pSourceBox)->GetDocLevel(); - const sal_uInt16 nTLevel = GetDocLevel(); - - if(aSourceDoc.Is() && aTargetDoc.Is()) - { - if (aSourceDoc->GetStyleSheetPool()) - aSourceDoc->GetStyleSheetPool()->SetSearchMask( - SFX_STYLE_FAMILY_ALL, SFXSTYLEBIT_USERDEF | SFXSTYLEBIT_USED); - - if (aTargetDoc->GetStyleSheetPool()) - aTargetDoc->GetStyleSheetPool()->SetSearchMask( - SFX_STYLE_FAMILY_ALL, SFXSTYLEBIT_USERDEF | SFXSTYLEBIT_USED); - sal_uInt16 p[3]; - sal_uInt16 nIdxDeleted = INDEX_IGNORE; - p[0]=aTarget[nTLevel+1]; - p[1]=aTarget[nTLevel+2]; - if(p[1]!=INDEX_IGNORE)p[1]++; - p[2]=aTarget[nTLevel+3]; - - bOk = aTargetDoc->Insert( - *aSourceDoc, aSource[nSLevel+1], - aSource[nSLevel+2], aSource[nSLevel+3], - p[0], p[1], p[2], nIdxDeleted); - // Evaluate Position correction - // a = Document content - // b = Position Sub-content 1 - // c = Position Sub-content 2 - // Delete duplicate entries - if(bOk) - { - SvTreeListEntry *pParentIter = pTarget; - // Up to the document level as - // the general reference point - while(GetModel()->GetDepth(pParentIter) != nTLevel) - pParentIter = GetParent(pParentIter); - if(pParentIter->HasChildrenOnDemand() && - !GetModel()->HasChildren(pParentIter)) - RequestingChildren(pParentIter); - SvTreeListEntry *pChildIter = 0; - - sal_uInt16 i = 0; - while(i < 2 && p[i+1] != INDEX_IGNORE) - { - pChildIter = FirstChild(pParentIter); - // To the index of the current level - for(sal_uInt16 j = 0; j < p[i]; ++j) - pChildIter = NextSibling(pChildIter); - // If possible, fill in Items onDemand - ++i; - if(i < 2 && p[i+1] != INDEX_IGNORE && - pChildIter->HasChildrenOnDemand() && - !GetModel()->HasChildren(pChildIter)) - RequestingChildren(pChildIter); - pParentIter = pChildIter; - } - rIdx = p[i]; - pNewParent = pParentIter; - if(!IsExpanded(pNewParent) && - pNewParent->HasChildrenOnDemand() && - !GetModel()->HasChildren(pNewParent)) - { - bOk = sal_False; - if(!bCopy) - pSourceBox->GetModel()->Remove(pSource); - } - // Remove deleted items - // (can be done by overwriting) - if(nIdxDeleted != INDEX_IGNORE) - { - pChildIter = FirstChild(pParentIter); - for(sal_uInt16 j = 0; j < nIdxDeleted; ++j) - pChildIter = NextSibling(pChildIter); - if( pChildIter && pChildIter != pSource ) - { - bKeepExpansion = IsExpanded(pParentIter); - GetModel()->Remove(pChildIter); - } - else - bOk = sal_False; - } - if(!bCopy && &aSourceDoc != &aTargetDoc) - { - //pool styles that are moved produce - //an rIdx == INDEX_IGNORE - //the method has to return true to keep the box content consistent - bRemovedFromSource = aSourceDoc->Remove(aSource[nSLevel+1], - aSource[nSLevel+2], - aSource[nSLevel+3]); - } - } - } - return (((rIdx != INDEX_IGNORE)|| bRemovedFromSource) && bOk ) - ? bKeepExpansion? (sal_Bool)2: sal_True: sal_False; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::NotifyMoving(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx) - -/* [Description] - - Notification that an item will be moved. - (SV-Handler) - - [Parameter] - - SvTreeListEntry* pTarget Target entry, to where it will be moved - SvTreeListEntry *pSource Source entry, to be moved - SvTreeListEntry *&pNewParent the parent of the target position generated - at entry (out parameter) - sal_uIntPtr &rIdx Index of the target entry - - - [Return value] sal_Bool: Sucess or failure - - [Cross-references] - - <SfxOrganizeListBox_Impl::MoveOrCopyTemplates(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy)> - <SfxOrganizeListBox_Impl::MoveOrCopyContents(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy)> - <sal_Bool SfxOrganizeListBox_Impl::NotifyCopying(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx)> -*/ - -{ - sal_Bool bOk = sal_False; - SvTreeListBox* pSourceBox = GetSourceView(); - if ( !pSourceBox ) - pSourceBox = pDlg->pSourceView; - DBG_ASSERT( pSourceBox, "no source view" ); - if ( !pTarget ) - pTarget = pDlg->pTargetEntry; - - if ( pSourceBox->GetModel()->GetDepth( pSource ) <= GetDocLevel() && - GetModel()->GetDepth( pTarget ) <= GetDocLevel() ) - bOk = MoveOrCopyTemplates( pSourceBox, pSource, pTarget, pNewParent, rIdx, sal_False ); - else - bOk = MoveOrCopyContents(pSourceBox, pSource, pTarget, pNewParent, rIdx, sal_False ); - - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::NotifyCopying(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx) -/* [Description] - - Notification that an item will be moved. - (SV-Handler) - - [Parameter] - - SvTreeListEntry* pTarget Target entry, to where it will be copied - SvTreeListEntry *pSource Source entry, to be copied - SvTreeListEntry *&pNewParent the parent of the target position generated - at entry (out parameter) - sal_uIntPtr &rIdx Index of the target entry - - [Return value] sal_Bool: Sucess or failure - - [Cross-references] - - <SfxOrganizeListBox_Impl::MoveOrCopyTemplates(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy)> - <SfxOrganizeListBox_Impl::MoveOrCopyContents(SvTreeListBox *pSourceBox, - SvTreeListEntry *pSource, - SvTreeListEntry* pTarget, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx, - sal_Bool bCopy)> - <sal_Bool SfxOrganizeListBox_Impl::NotifyMoving(SvTreeListEntry *pTarget, - SvTreeListEntry* pSource, - SvTreeListEntry *&pNewParent, - sal_uIntPtr &rIdx)> -*/ -{ - sal_Bool bOk = sal_False; - SvTreeListBox* pSourceBox = GetSourceView(); - if ( !pSourceBox ) - pSourceBox = pDlg->pSourceView; - DBG_ASSERT( pSourceBox, "no source view" ); - if ( !pTarget ) - pTarget = pDlg->pTargetEntry; - if ( pSourceBox->GetModel()->GetDepth( pSource ) <= GetDocLevel() && - GetModel()->GetDepth( pTarget ) <= GetDocLevel() ) - bOk = MoveOrCopyTemplates( pSourceBox, pSource, pTarget, pNewParent, rIdx, sal_True ); - else - bOk = MoveOrCopyContents( pSourceBox, pSource, pTarget, pNewParent, rIdx, sal_True ); - - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::EditingEntry( SvTreeListEntry* pEntry, Selection& ) - -/* [Description] - - Check whether an item can be edited - (SV-Handler) - - [Cross-references] - <SfxOrganizeListBox_Impl::EditedEntry(SvTreeListEntry* pEntry, const rtl::OUString& rText)> -*/ - -{ - if( VIEW_TEMPLATES == eViewType && - GetModel()->GetDepth(pEntry) < 2 ) - { - pDlg->pSuspend = new SuspendAccel( &pDlg->aEditAcc ); - return sal_True; - } - return sal_False; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::EditedEntry(SvTreeListEntry* pEntry, const rtl::OUString& rText) - -/* [Description] - - The name of an entry has been processed, if the name you entered is a - valid name (length> 0) then the model is updated. - (SV-Handler) - - [Return value] - - sal_Bool sal_True: The name in the display should be changed - sal_False: The name should not be changed - - [Cross-references] - <SfxOrganizeListBox_Impl::EditingEntry(SvTreeListEntry* pEntry, const String& rText)> -*/ - -{ - DBG_ASSERT(pEntry, "No Entry selected"); - delete pDlg->pSuspend; - pDlg->pSuspend = NULL; - SvTreeListEntry* pParent = GetParent(pEntry); - if( rText.isEmpty() ) - { - ErrorBox aBox( this, SfxResId( MSG_ERROR_EMPTY_NAME ) ); - aBox.GrabFocus(); - aBox.Execute(); - return sal_False; - } - if ( !IsUniqName_Impl( rText, pParent, pEntry ) ) - { - ErrorBox aBox( this, SfxResId( MSG_ERROR_UNIQ_NAME ) ); - aBox.GrabFocus(); - aBox.Execute(); - return sal_False; - } - sal_uInt16 nRegion = 0, nIndex = 0; - GetIndices_Impl( this, pEntry, nRegion, nIndex ); - String aOldName; - if ( USHRT_MAX != nIndex ) - aOldName = pMgr->GetTemplates()->GetName( nRegion, nIndex ); - else - aOldName = pMgr->GetTemplates()->GetRegionName( nRegion ); - - if ( !pMgr->SetName( rText, nRegion, nIndex ) ) - { - SfxResId aResId( USHRT_MAX != nIndex ? MSG_ERROR_RENAME_TEMPLATE - : MSG_ERROR_RENAME_TEMPLATE_REGION ); - ErrorBox( this, aResId ).Execute(); - return sal_False; - } - - return sal_True; -} - -//------------------------------------------------------------------------- - -DragDropMode SfxOrganizeListBox_Impl::NotifyStartDrag( TransferDataContainer&, SvTreeListEntry* pEntry ) -{ - sal_uInt16 nSourceLevel = GetModel()->GetDepth( pEntry ); - if ( VIEW_FILES == GetViewType() ) - ++nSourceLevel; - if ( nSourceLevel >= 2 ) - bDropMoveOk = sal_False; - else - bDropMoveOk = sal_True; - - return GetDragDropMode(); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::NotifyAcceptDrop( SvTreeListEntry* pEntry ) -{ - if(!pEntry) - return sal_False; - SvTreeListBox *pSource = GetSourceView(); - SvTreeListEntry *pSourceEntry = pSource->FirstSelected(); - if(pEntry == pSourceEntry) - return sal_False; - sal_uInt16 nSourceLevel = pSource->GetModel()->GetDepth(pSourceEntry); - if(VIEW_FILES == ((SfxOrganizeListBox_Impl *)pSource)->GetViewType()) - ++nSourceLevel; - sal_uInt16 nTargetLevel = GetModel()->GetDepth(pEntry); - if(VIEW_FILES == GetViewType()) - ++nTargetLevel; - Path aSource(pSource, pSourceEntry); - Path aTarget(this, pEntry); - const sal_uInt16 SL = ((SfxOrganizeListBox_Impl *)pSource)->GetDocLevel(); - const sal_uInt16 TL = GetDocLevel(); - - return( (nSourceLevel == 1 && nTargetLevel == 0 && - VIEW_TEMPLATES == - ((SfxOrganizeListBox_Impl *)pSource)->GetViewType()) || - (nSourceLevel == 1 && nTargetLevel == 1 && - VIEW_TEMPLATES == - ((SfxOrganizeListBox_Impl *)pSource)->GetViewType() && - VIEW_TEMPLATES == GetViewType()) || - (nSourceLevel == 3 && nTargetLevel == 1) || - (nSourceLevel == 3 && nTargetLevel == 2 && - aSource[1+SL] == aTarget[1+TL]) || - (nSourceLevel == 3 && nTargetLevel == 3 && - aSource[1+SL] == aTarget[1+TL]) || - (nSourceLevel == 4 && nTargetLevel == 3 && - aSource[1+SL] == aTarget[1+TL] && - aSource[2+SL] == aTarget[2+TL]) || - (nSourceLevel == 4 && nTargetLevel == 4 && - aSource[1+SL] == aTarget[1+TL] && - aSource[2+SL] == aTarget[2+TL])); -} - -//------------------------------------------------------------------------- - -sal_Int8 SfxOrganizeListBox_Impl::AcceptDrop( const AcceptDropEvent& rEvt ) -{ - sal_Bool bAccept = ( eViewType == VIEW_FILES && IsDropFormatSupported( SOT_FORMAT_FILE ) ); - if ( bAccept ) - return rEvt.mnAction; - else - return SvTreeListBox::AcceptDrop( rEvt ); -} - -//------------------------------------------------------------------------- - -sal_Int8 SfxOrganizeListBox_Impl::ExecuteDrop( const ExecuteDropEvent& rEvt ) -{ - TransferableDataHelper aHelper( rEvt.maDropEvent.Transferable ); - sal_uInt32 nFormatCount = aHelper.GetFormatCount(); - sal_Bool bSuccess = sal_False; - for ( sal_uInt32 i = 0; i < nFormatCount; ++i ) - { - String aFileName; - SotFormatStringId nId = aHelper.GetFormat(i); - - if ( SOT_FORMAT_FILE == nId && aHelper.GetString( nId, aFileName ) ) - { - INetURLObject aObj( aFileName, INET_PROT_FILE ); - bSuccess |= pMgr->InsertFile( this, aObj.GetMainURL(INetURLObject::DECODE_TO_IURI) ); - } - } - bDropMoveOk = sal_True; - sal_Int8 nRet = rEvt.mnAction; - if ( !bSuccess ) - { - // asynchronous, because of MessBoxes - pDlg->pSourceView = GetSourceView(); - pDlg->pTargetEntry = pTargetEntry; - pDlg->pFinishedBox = NULL; - pDlg->nDropAction = NO_DROP_ACTION; - PostUserEvent( LINK( this, SfxOrganizeListBox_Impl, OnAsyncExecuteDrop ), - new ExecuteDropEvent( rEvt ) ); - } - - return nRet; -} - -//------------------------------------------------------------------------- - -void SfxOrganizeListBox_Impl::DragFinished( sal_Int8 nDropAction ) -{ - if ( pDlg->bExecDropFinished ) - { - if ( pDlg->nDropAction != NO_DROP_ACTION ) - nDropAction = pDlg->nDropAction; - SvTreeListBox::DragFinished( nDropAction ); - pDlg->nDropAction = NO_DROP_ACTION; - } - else - pDlg->pFinishedBox = this; -} - -//------------------------------------------------------------------------- - -inline sal_uInt16 SfxOrganizeListBox_Impl::GetDocLevel() const - -/* [Description] - - Determines on which level there are documents (in the template view or - the document view) - - [Return value] - - sal_uInt16 Document level - -*/ - -{ - return eViewType == VIEW_FILES? 0: 1; -} - -//------------------------------------------------------------------------- - -SfxObjectShellRef SfxOrganizeListBox_Impl::GetObjectShell(const Path &rPath) - -/* [Description] - - Access to the ObjectShell to which the current entry is connected. - - [Parameter] - - const Path &rPath Description of the current entry - - [Return value] - - SfxObjectShellRef Reference to the ObjectShell - - [Cross-references] - - <class Path> - -*/ - -{ - SfxObjectShellRef aDoc; - if(eViewType == VIEW_FILES) - aDoc = pMgr->CreateObjectShell(rPath[0]); - else - aDoc = pMgr->CreateObjectShell(rPath[0], rPath[1]); - return aDoc; -} - -//------------------------------------------------------------------------- - -void SfxOrganizeListBox_Impl::RequestingChildren( SvTreeListEntry* pEntry ) - -/* [Description] - - Sent to the children of an entry that is going to be inserted. - (SV-Handler) - - [Parameter] - - SvTreeListEntry* pEntry the entry whose children is requested -*/ - -{ - if ( !GetModel()->HasChildren( pEntry ) ) - { - WaitObject aWaitCursor( this ); - - // Choose the correct mask color dependent from eColorMode. This - // must be adopted if we change the mask color for normal images, too! - Color aMaskColor( COL_LIGHTMAGENTA ); - - // Here are all the initial inserted - SfxErrorContext aEc(ERRCTX_SFX_CREATEOBJSH, pDlg->pDialog); - if(VIEW_TEMPLATES == GetViewType() && 0 == GetModel()->GetDepth(pEntry)) - { - sal_uInt16 i = (sal_uInt16)GetModel()->GetRelPos(pEntry); - const sal_uInt16 nEntryCount = pMgr->GetTemplates()->GetCount(i); - for(sal_uInt16 j = 0; j < nEntryCount; ++j) - InsertEntryByBmpType( pMgr->GetTemplates()->GetName( i, j ), BMPTYPE_DOC, pEntry, sal_True ); - } - else - { - const sal_uInt16 nDocLevel = GetDocLevel(); - Path aPath(this, pEntry); - - // it is ok to use the SfxObjectShellRef here since the object that - // provides it ( GetObjectShell() calls CreateObjectShell() ) has a lock on it - SfxObjectShellRef aRef = GetObjectShell(aPath); - if(aRef.Is()) - { - const sal_uInt16 nCount = aRef->GetContentCount(aPath[nDocLevel+1]); - String aText; - Bitmap aClosedBmp, aOpenedBmp; - const bool bCanHaveChildren = - aRef->CanHaveChildren(aPath[nDocLevel+1], - aPath[nDocLevel+2]); - for(sal_uInt16 i = 0; i < nCount; ++i) - { - sal_Bool bDeletable; - aRef->GetContent( - aText, aClosedBmp, aOpenedBmp, bDeletable, - i, aPath[nDocLevel+1]); - - // Create image with the correct mask color - Image aClosedImage( aClosedBmp, aMaskColor ); - Image aOpenedImage( aOpenedBmp, aMaskColor ); - - SvTreeListEntry *pNew = SvTreeListBox::InsertEntry( - aText, aOpenedImage, aClosedImage, - pEntry, bCanHaveChildren); - pNew->SetUserData(bDeletable ? &bDeletable : 0); - } - } - } - } -} - -//------------------------------------------------------------------------- - -long SfxOrganizeListBox_Impl::ExpandingHdl() - -/* [Description] - - SV-handler, before and after the unfolding of an entry is called. - Used if possibly to close the ObjectShell again, the entries with the - contents of this shell are also removed. -*/ - -{ - if ( !(nImpFlags & SVLBOX_IS_EXPANDING) ) - { - SvTreeListEntry* pEntry = GetHdlEntry(); - const sal_uInt16 nLevel = GetModel()->GetDepth(pEntry); - if((eViewType == VIEW_FILES && nLevel == 0) || - (eViewType == VIEW_TEMPLATES && nLevel == 1)) - { - Path aPath(this, pEntry); - // Release ObjectShell when closing the files - if(eViewType == VIEW_FILES && nLevel == 0) - pMgr->DeleteObjectShell(aPath[0]); - else - pMgr->DeleteObjectShell(aPath[0], aPath[1]); - // Delete all SubEntries - SvTreeListEntry *pToDel = SvTreeListBox::GetEntry(pEntry, 0); - while(pToDel) - { - GetModel()->Remove(pToDel); - pToDel = SvTreeListBox::GetEntry(pEntry, 0); - } - } - } - return sal_True; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeListBox_Impl::IsUniqName_Impl(const String &rText, - SvTreeListEntry* pParent, SvTreeListEntry *pEntry) const - -/* [Description] - - Checks whether a name is unique at its level. - - [Parameter] - - const String & Name of the search entry - SvTreeListEntry* pSibling Siblings (referred to the level) - - [Return value] - - sal_Bool sal_True, if the name is unique, otherwise sal_False -*/ - -{ - SvTreeListEntry* pChild = FirstChild(pParent); - while(pChild) { - const String aEntryText(GetEntryText(pChild)); - if(COMPARE_EQUAL == aEntryText.CompareIgnoreCaseToAscii(rText)&&(!pEntry || pEntry!=pChild)) - return sal_False; - pChild = NextSibling(pChild); - } - return sal_True; -} - -//------------------------------------------------------------------------- - -sal_uInt16 SfxOrganizeListBox_Impl::GetLevelCount_Impl(SvTreeListEntry* pParent) const -{ - SvTreeListEntry* pChild = FirstChild(pParent); - sal_uInt16 nCount = 0; - while(pChild) { - pChild = NextSibling(pChild); - ++nCount; - } - return nCount; -} - -//------------------------------------------------------------------------- - -SvTreeListEntry* SfxOrganizeListBox_Impl::InsertEntryByBmpType( - const OUString& rText, - BMPTYPE eBmpType, - SvTreeListEntry* pParent, - sal_Bool bChildrenOnDemand, - sal_uIntPtr nPos, - void* pUserData -) -{ - SvTreeListEntry* pEntry = NULL; - const Image* pExp = NULL; - const Image* pCol = NULL; - - switch( eBmpType ) - { - case BMPTYPE_FOLDER: - pExp = &aOpenedFolderBmp; - pCol = &aClosedFolderBmp; - break; - - case BMPTYPE_DOC: - pExp = &aOpenedDocBmp; - pCol = &aClosedDocBmp; - break; - - default: - OSL_FAIL( "SfxOrganizeListBox_Impl::InsertEntryByBmpType(): something forgotten?!" ); - } - - pEntry = SvTreeListBox::InsertEntry( rText, *pExp, *pCol, pParent, bChildrenOnDemand, nPos, pUserData ); - - return pEntry; -} - -SfxOrganizeListBox_Impl::SfxOrganizeListBox_Impl(Window* pParent, WinBits nBits) - : SvTreeListBox( pParent, nBits ) - , pMgr( NULL ) - , pDlg( NULL ) - , eViewType( SfxOrganizeListBox_Impl::VIEW_TEMPLATES ) -{ - SetDragDropMode( - SV_DRAGDROP_CTRL_MOVE | SV_DRAGDROP_CTRL_COPY | - SV_DRAGDROP_APP_MOVE | SV_DRAGDROP_APP_COPY | SV_DRAGDROP_APP_DROP ); - SetEntryHeight( 16 ); - SetSelectionMode( SINGLE_SELECTION ); - GetModel()->SetSortMode( SortNone ); - - EnableContextMenuHandling(); -} - -void SfxOrganizeListBox_Impl::Init(SfxOrganizeDlg_Impl* pArgDlg, DataEnum eType) -{ - pDlg = pArgDlg; - eViewType = eType; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxOrganizeListBox_Impl, OnAsyncExecuteDrop, ExecuteDropEvent*, pEvent ) -{ - DBG_ASSERT( pEvent, "invalid DropEvent" ); - if ( pEvent ) - { - SvTreeListBox* pSourceView = GetSourceView(); - if ( !pSourceView ) - pSourceView = pDlg->pSourceView; - pDlg->bExecDropFinished = false; - // if a template can not be moved it should be copied - if ( pEvent->mnAction == DND_ACTION_MOVE ) - pEvent->mnAction = DND_ACTION_COPYMOVE; - pDlg->nDropAction = SvTreeListBox::ExecuteDrop( *pEvent, pSourceView ); - delete pEvent; - pDlg->pSourceView = NULL; - pDlg->pTargetEntry = NULL; - pDlg->bExecDropFinished = true; - if ( pDlg->pFinishedBox ) - { - pDlg->pFinishedBox->DragFinished( pDlg->nDropAction ); - pDlg->pFinishedBox = NULL; - } - } - return 0; -} - -//------------------------------------------------------------------------- - -void SfxOrganizeListBox_Impl::Reset() - -/* [Description] - - Paste the items in the ListBox -*/ - -{ - DBG_ASSERT( pMgr != 0, "No Manager" ); - // Delete contents - SetUpdateMode(sal_False); - Clear(); - if ( VIEW_TEMPLATES == eViewType ) - { - const sal_uInt16 nCount = pMgr->GetTemplates()->GetRegionCount(); - for ( sal_uInt16 i = 0; i < nCount; ++i ) - InsertEntryByBmpType( pMgr->GetTemplates()->GetFullRegionName(i), BMPTYPE_FOLDER, 0, sal_True ); - } - else - { - const SfxObjectList& rList = pMgr->GetObjectList(); - for ( SfxObjectList::const_iterator it = rList.begin(); it != rList.end(); ++it ) - InsertEntryByBmpType( rList.GetBaseName(*it), BMPTYPE_DOC, 0, sal_True ); - - } - SetUpdateMode(sal_True); - Invalidate(); - Update(); -} - -//------------------------------------------------------------------------- - -const Image &SfxOrganizeListBox_Impl::GetClosedBmp(sal_uInt16 nLevel) const - -/* [Description] - - Access to the bitmap for a closed entry at each level - - [Parameter] - - sal_uInt16 nLevel Indicator of the level, 2 levels are allowed - - [Return value] - - const Image & The Image on level nLevel -*/ - -{ - const Image* pRet = NULL; - - switch( nLevel ) - { - default: OSL_FAIL( "Bitmap index overflow" ); - - case 0: pRet = &aClosedFolderBmp; - break; - case 1: pRet = &aClosedDocBmp; - break; - } - - return *pRet; -} - -//------------------------------------------------------------------------- - -const Image &SfxOrganizeListBox_Impl::GetOpenedBmp(sal_uInt16 nLevel) const - -/* [Description] - - Access to the bitmap for an open entry at each level - - [Parameter] - - sal_uInt16 nLevel Indicator of the level, 2 levels are allowed - - [Return value] - - const Image & the image on the level nLevel - -*/ - -{ - const Image* pRet = NULL; - - switch( nLevel ) - { - case 0: - pRet = &aOpenedFolderBmp; break; - case 1: - pRet = &aOpenedDocBmp; break; - default: - pRet = &aClosedFolderBmp; break; - } - - return *pRet; -} - -//------------------------------------------------------------------------- - -PopupMenu* SfxOrganizeListBox_Impl::CreateContextMenu() -{ - return new PopupMenu( *( pDlg->m_pEditBtn->GetPopupMenu() ) ); -} - -//------------------------------------------------------------------------- - -String SfxOrganizeDlg_Impl::GetPath_Impl( sal_Bool bOpen, const String& rFileName ) - -/* [Description] - - Get path from FileDialog, for Import / Export of Templates - - [Parameter] - - sal_Bool bOpen Flag: Open / Save - const String& rFileName Current file name as default - - [Return value] File name with path or empty string if - users has pressed 'Cancel' -*/ - -{ - String aPath; - m_sExtension4Save = DEFINE_CONST_UNICODE( "vor" ); - sal_Int16 nDialogType = bOpen - ? com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE - : com::sun::star::ui::dialogs::TemplateDescription::FILESAVE_SIMPLE; - if ( pFileDlg ) - delete pFileDlg; - pFileDlg = new sfx2::FileDialogHelper( nDialogType, 0L ); - - // add "All" filter - pFileDlg->AddFilter( SfxResId(STR_SFX_FILTERNAME_ALL).toString(), - DEFINE_CONST_UNICODE( FILEDIALOG_FILTER_ALL ) ); - // add template filter - String sFilterName( SfxResId(STR_TEMPLATE_FILTER).toString() ); - String sFilterExt; - // add filters of modules which are installed - SvtModuleOptions aModuleOpt; - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) ) - sFilterExt += DEFINE_CONST_UNICODE( "*.ott;*.stw;*.oth" ); - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) ) - { - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.ots;*.stc" ); - } - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) ) - { - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.otp;*.sti" ); - } - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) ) - { - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.otg;*.std" ); - } - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.vor" ); - - sFilterName += DEFINE_CONST_UNICODE( " (" ); - sFilterName += sFilterExt; - sFilterName += ')'; - pFileDlg->AddFilter( sFilterName, sFilterExt ); - pFileDlg->SetCurrentFilter( sFilterName ); - - if ( aLastDir.Len() || rFileName.Len() ) - { - INetURLObject aObj; - if ( aLastDir.Len() ) - { - aObj.SetURL( aLastDir ); - if ( rFileName.Len() ) - aObj.insertName( rFileName ); - } - else - aObj.SetURL( rFileName ); - - if ( aObj.hasExtension() ) - { - m_sExtension4Save = aObj.getExtension( - INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET ); - aObj.removeExtension(); - } - - DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" ); - pFileDlg->SetDisplayDirectory( aObj.GetMainURL( INetURLObject::NO_DECODE ) ); - } - - pFileDlg->StartExecuteModal( LINK( this, SfxOrganizeDlg_Impl, ExportHdl ) ); - - return aPath; -} - -//------------------------------------------------------------------------- - -::com::sun::star::uno::Sequence< ::rtl::OUString > - SfxOrganizeDlg_Impl::GetPaths_Impl( const String& rFileName ) - -/* [Description] - - Query plural paths by FileDialog, for Import / Export from document - templates - - [Parameter] - - const String& rFileName The default file name when dialog executes - - [Return value] Empty sequence when users have clicked - 'Cancel', a sequence just containing one - file name with path when they have - choosed one file or a sequence containing - path and file names without path -*/ - -{ - ::com::sun::star::uno::Sequence< ::rtl::OUString > aPaths; - m_sExtension4Save = DEFINE_CONST_UNICODE( "vor" ); - if ( pFileDlg ) - delete pFileDlg; - pFileDlg = new sfx2::FileDialogHelper( - com::sun::star::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE, SFXWB_MULTISELECTION ); - - // add "All" filter - pFileDlg->AddFilter( SfxResId(STR_SFX_FILTERNAME_ALL).toString(), - DEFINE_CONST_UNICODE( FILEDIALOG_FILTER_ALL ) ); - - // add template filter - String sFilterName( SfxResId(STR_TEMPLATE_FILTER).toString() ); - String sFilterExt; - // add filters of modules which are installed - SvtModuleOptions aModuleOpt; - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) ) - sFilterExt += DEFINE_CONST_UNICODE( "*.ott;*.stw;*.oth;*.dot;*.dotm;*.dotx" ); - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) ) - { - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.ots;*.stc;*.xlt;*.xltm;*.xltx" ); - } - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) ) - { - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.otp;*.sti;*.pot;*.potm;*.potx" ); - } - if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SDRAW ) ) - { - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.otg;*.std" ); - } - if ( sFilterExt.Len() > 0 ) - sFilterExt += ';'; - sFilterExt += DEFINE_CONST_UNICODE( "*.vor" ); - - sFilterName += DEFINE_CONST_UNICODE( " (" ); - sFilterName += sFilterExt; - sFilterName += ')'; - pFileDlg->AddFilter( sFilterName, sFilterExt ); - pFileDlg->SetCurrentFilter( sFilterName ); - - if ( aLastDir.Len() || rFileName.Len() ) - { - INetURLObject aObj; - if ( aLastDir.Len() ) - { - aObj.SetURL( aLastDir ); - if ( rFileName.Len() ) - aObj.insertName( rFileName ); - } - else - aObj.SetURL( rFileName ); - - if ( aObj.hasExtension() ) - { - m_sExtension4Save = aObj.getExtension( - INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET ); - aObj.removeExtension(); - } - - DBG_ASSERT( aObj.GetProtocol() != INET_PROT_NOT_VALID, "Invalid URL!" ); - pFileDlg->SetDisplayDirectory( aObj.GetMainURL( INetURLObject::NO_DECODE ) ); - } - - pFileDlg->StartExecuteModal( LINK( this, SfxOrganizeDlg_Impl, ImportHdl ) ); - - return aPaths; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeDlg_Impl::DontDelete_Impl( SvTreeListEntry* pEntry ) -{ - sal_uInt16 nDepth = pFocusBox->GetModel()->GetDepth(pEntry); - if(SfxOrganizeListBox_Impl::VIEW_FILES == - pFocusBox->GetViewType()) - nDepth++; - if( (nDepth > 2 && !pEntry->GetUserData()) || - //Delete using GetContent forbidden - nDepth==2 || // Template / Not deleting config header - (nDepth==1 && SfxOrganizeListBox_Impl::VIEW_FILES == - pFocusBox->GetViewType()) || //Not deleting Files - (0 == nDepth && pFocusBox->GetLevelCount_Impl(0) < 2)) - //At least keep one template - { - return sal_True; - } - - //If delete is pressed on e.g. a style entry go up the chain to find the - //owning template - while (nDepth > 1) - { - pEntry = pFocusBox->GetParent(pEntry); - --nDepth; - } - SvTreeListEntry *pTemplateEntry = pEntry; - - sal_uInt16 nRegion = 0, nIndex = 0; - GetIndices_Impl( pFocusBox, pTemplateEntry, nRegion, nIndex ); - const SfxDocumentTemplates* pTemplates = aMgr.GetTemplates(); - if ( !pTemplates || !pTemplates->HasUserContents( nRegion, nIndex ) ) - return sal_True; - - return sal_False; -} - -std::vector<rtl::OUString> SfxOrganizeDlg_Impl::GetAllFactoryURLs_Impl( ) const -{ - SvtModuleOptions aModOpt; - const ::com::sun::star::uno::Sequence < ::rtl::OUString >& aServiceNames = aModOpt.GetAllServiceNames() ; - std::vector<rtl::OUString> aList; - sal_Int32 nCount = aServiceNames.getLength(); - for( sal_Int32 i=0; i<nCount; ++i ) - { - if ( SfxObjectFactory::GetStandardTemplate( aServiceNames[i] ).Len() > 0 ) - { - SvtModuleOptions::EFactory eFac = SvtModuleOptions::E_WRITER; - SvtModuleOptions::ClassifyFactoryByName( aServiceNames[i], eFac ); - aList.push_back(aModOpt.GetFactoryEmptyDocumentURL(eFac)); - } - } - - return aList; -} - -sal_Bool SfxOrganizeDlg_Impl::GetServiceName_Impl( String& rName, String& rFileURL ) const -{ - sal_Bool bRet = sal_False; - const SfxDocumentTemplates* pTemplates = aMgr.GetTemplates(); - SvTreeListEntry* pEntry = pFocusBox ? pFocusBox->FirstSelected() : NULL; - sal_uInt16 nRegion = 0, nIndex = 0; - GetIndices_Impl( pFocusBox, pEntry, nRegion, nIndex ); - rFileURL = pTemplates->GetPath( nRegion, nIndex ); - if ( rFileURL.Len() > 0 ) - { - try - { - uno::Reference< embed::XStorage > xStorage = ::comphelper::OStorageHelper::GetStorageFromURL( - rFileURL, - embed::ElementModes::READ ); - sal_uIntPtr nFormat = SotStorage::GetFormatID( xStorage ); - const SfxFilter* pFilter = - SFX_APP()->GetFilterMatcher().GetFilter4ClipBoardId( nFormat ); - if ( pFilter ) - { - rName = pFilter->GetServiceName(); - bRet = sal_True; - } - } - catch( uno::Exception& ) - {} - } - - return bRet; -} - -long SfxOrganizeDlg_Impl::Dispatch_Impl( sal_uInt16 nId, Menu* _pMenu ) - -/* [Description] - - Processing the events from MenuButton or Accelerator - - [Parameter] - - sal_uInt16 nId Event ID - - [Return value] 1: Event has been processed, - 0: Event has not been processed (SV-Menu) -*/ - -{ - SuspendAccel aTmp(&aEditAcc); - SvTreeListEntry *pEntry = pFocusBox? pFocusBox->FirstSelected(): 0; - sal_Bool bHandled = sal_True; - switch(nId) - { - case ID_NEW: - { - if(!pEntry) - return 1; - if(pFocusBox->GetViewType() == SfxOrganizeListBox_Impl::VIEW_TEMPLATES) - { - if(0 == pFocusBox->GetModel()->GetDepth(pEntry)) - { - const rtl::OUString aNoName(SFX2_RESSTR(STR_NONAME)); - SvTreeListEntry* pParent = pFocusBox->GetParent(pEntry); - rtl::OUString aName(aNoName); - sal_Int32 n = 1; - while(!pFocusBox->IsUniqName_Impl(aName, pParent)) - { - aName = aNoName + rtl::OUString::valueOf(n++); - } - aMgr.InsertDir( pFocusBox, aName, - (sal_uInt16)pFocusBox->GetModel()->GetRelPos(pEntry)+1); - } - } - break; - } - - case ID_DELETE: - { - if(!pEntry || DontDelete_Impl(pEntry)) - return 1; - const sal_uInt16 nDepth = pFocusBox->GetModel()->GetDepth(pEntry); - if(nDepth < 2) - { - if(0 == nDepth && pFocusBox->GetLevelCount_Impl(0) < 2) return 1; - if(SfxOrganizeListBox_Impl::VIEW_TEMPLATES == pFocusBox->GetViewType()) - { - sal_uInt16 nResId = nDepth? STR_DELETE_TEMPLATE : - STR_DELETE_REGION; - if( !QueryDelete_Impl( - pDialog, nResId, pFocusBox->GetEntryText(pEntry))) - return 1; - if ( STR_DELETE_REGION == nResId && - pFocusBox->GetChildCount(pEntry)) - { - QueryBox aQBox(pDialog, SfxResId(MSG_REGION_NOTEMPTY)); - if(RET_NO == aQBox.Execute()) - return 1; - } - sal_uInt16 nRegion = 0, nIndex = 0; - GetIndices_Impl(pFocusBox, pEntry, nRegion, nIndex); - - sal_uInt16 nDeleteInd = ( STR_DELETE_REGION == nResId? USHRT_MAX: nIndex ); - if ( !aMgr.Delete( pFocusBox, nRegion, nDeleteInd ) ) - ErrorDelete_Impl( - pDialog, - pFocusBox->GetEntryText(pEntry), - ( nDeleteInd == USHRT_MAX && pFocusBox->GetChildCount(pEntry) ) ); - } - } - //Content Format - else if(nDepth + pFocusBox->GetDocLevel() >= 2) - { - if(!QueryDelete_Impl(pDialog, STR_DELETE_TEMPLATE, pFocusBox->GetEntryText(pEntry))) - return 1; - Path aPath(pFocusBox, pEntry); - - // it is ok to use the SfxObjectShellRef here since the object that - // provides it ( GetObjectShell() calls CreateObjectShell() ) has a lock on it - SfxObjectShellRef aRef = pFocusBox->GetObjectShell(aPath); - if(aRef.Is() && - aRef->Remove(aPath[1+pFocusBox->GetDocLevel()], - aPath[2+pFocusBox->GetDocLevel()], - aPath[3+pFocusBox->GetDocLevel()])) - pFocusBox->GetModel()->Remove(pEntry); - else - ErrorDelete_Impl(pDialog, pFocusBox->GetEntryText(pEntry), sal_False ); - } - break; - } - - case ID_EDIT: - { - if(!pEntry) - return 1; - sal_uInt16 nRegion = 0, nIndex = 0; - GetIndices_Impl( pFocusBox, pEntry, nRegion, nIndex ); - const SfxStringItem aName( SID_FILE_NAME, aMgr.GetTemplates()->GetPath( nRegion, nIndex ) ); - const SfxStringItem aLongName( SID_FILE_LONGNAME, pFocusBox->GetEntryText( pEntry ) ); - const SfxStringItem aReferer( SID_REFERER, DEFINE_CONST_UNICODE( "private:user" ) ); - const SfxStringItem aTargetName( SID_TARGETNAME, DEFINE_CONST_UNICODE( "_default" ) ); - const SfxBoolItem aTemplateIndicator( SID_TEMPLATE, sal_False ); - - SFX_APP()->GetAppDispatcher_Impl()->Execute( SID_OPENTEMPLATE, SFX_CALLMODE_ASYNCHRON | SFX_CALLMODE_RECORD, - &aName, &aLongName, &aReferer, &aTargetName, &aTemplateIndicator, 0L ); - pDialog->EndDialog( RET_EDIT_STYLE ); - break; - } - - case ID_COPY_FROM: - { - if ( !pEntry ) - return 1; - m_nRegion = 0; - m_nIndex = 0; - GetIndices_Impl( pFocusBox, pEntry, m_nRegion, m_nIndex ); - GetPaths_Impl( String() ); - break; - } - - case ID_COPY_TO: - { - if ( !pEntry ) - return 1; - m_nRegion = 0; - m_nIndex = 0; - GetIndices_Impl( pFocusBox, pEntry, m_nRegion, m_nIndex ); - GetPath_Impl( sal_False, aMgr.GetTemplates()->GetFileName( m_nRegion, m_nIndex ) ); - break; - } - - case ID_RESCAN: - if ( !aMgr.Rescan() ) - ErrorBox( pDialog, SfxResId( MSG_ERROR_RESCAN ) ).Execute(); - if ( SfxOrganizeListBox_Impl::VIEW_TEMPLATES == m_pLeftLb->GetViewType() ) - m_pLeftLb->Reset(); - if ( SfxOrganizeListBox_Impl::VIEW_TEMPLATES == m_pRightLb->GetViewType() ) - m_pRightLb->Reset(); - break; - - case ID_PRINT: - { - if ( !pEntry ) - return 1; - Path aPath( pFocusBox, pEntry ); - - // it is ok to use the SfxObjectShellRef here since the object that - // provides it ( GetObjectShell() calls CreateObjectShell() ) has a lock on it - SfxObjectShellRef aRef = pFocusBox->GetObjectShell( aPath ); - if ( aRef.Is() ) - { - const sal_uInt16 nDocLevel = pFocusBox->GetDocLevel(); - if ( !pPrt ) - pPrt = new Printer; - SvTreeListEntry *pDocEntry = pEntry; - while ( pFocusBox->GetModel()->GetDepth( pDocEntry ) > nDocLevel ) - pDocEntry = pFocusBox->GetParent( pDocEntry ); - const String aName(pFocusBox->GetEntryText(pDocEntry)); - if ( !aRef->Print( *pPrt, aPath[1+nDocLevel], - aPath[2+nDocLevel], aPath[3+nDocLevel], &aName ) ) - ErrorBox( pDialog, SfxResId( MSG_PRINT_ERROR ) ).Execute(); - } - break; - } - - case ID_PRINTER_SETUP: - { - PrinterSetupDialog* pDlg = new PrinterSetupDialog( pDialog ); - if ( !pPrt ) - pPrt = new Printer; - pDlg->SetPrinter( pPrt ); - pDlg->Execute(); - delete pDlg; - break; - } - - case ID_DEFAULT_TEMPLATE: - { - String aServiceName, aFileURL; - if ( GetServiceName_Impl( aServiceName, aFileURL ) ) - SfxObjectFactory::SetStandardTemplate( aServiceName, aFileURL ); - break; - } - - default: - bHandled = sal_False; - } - - if ( !bHandled && nId > ID_RESET_DEFAULT_TEMPLATE ) - { - Menu* pSubMenu = _pMenu ? _pMenu : m_pEditBtn->GetPopupMenu()->GetPopupMenu( ID_RESET_DEFAULT_TEMPLATE ); - if ( pSubMenu ) - { - String aServiceName = SfxObjectShell::GetServiceNameFromFactory( pSubMenu->GetItemCommand( nId ) ); - SfxObjectFactory::SetStandardTemplate( aServiceName, String() ); - bHandled = sal_True; - } - } - - return bHandled ? 1 : 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK_INLINE_START( SfxOrganizeDlg_Impl, MenuSelect_Impl, Menu *, pMenu ) - -/* [Description] - - SelectHandler of Menu and Menubuttons (SV) - - [Parameter] - - MenuButton *pBtn Button triggering the event - - [Return value] 1: Event has been processed, - 0: Event has not been processed (SV-Menu) -*/ -{ - return Dispatch_Impl( pMenu->GetCurItemId(), pMenu ); -} -IMPL_LINK_INLINE_END( SfxOrganizeDlg_Impl, MenuSelect_Impl, Menu *, pMenu ) - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxOrganizeDlg_Impl, AccelSelect_Impl, Accelerator *, pAccel ) - -/* [Description] - - SelectHandler of Accelerators (SV) - - [Parameter] - - Accelerator *pAccel Accelerator triggering the event - - [Return value] 1: Event has been processed, - 0: Event has not been processed (SV) -*/ - -{ - SvTreeListEntry* pEntry = pFocusBox && pFocusBox->GetSelectionCount() ? - pFocusBox->FirstSelected() : NULL ; - return pEntry && ( pAccel->GetCurItemId() == ID_NEW || !DontDelete_Impl( pEntry ) ) ? - Dispatch_Impl( pAccel->GetCurItemId(), NULL ) : 0; -} - -IMPL_LINK( SfxOrganizeDlg_Impl, MenuActivate_Impl, Menu *, pMenu ) - -/* [Description] - - ActivateHandler of Menu and Menubuttons (SV) - - [Parameter] - - Menu *pMenu Event triggering the Menu - - [Return value] 1: Event has been processed, - 0: Event has not been processed (SV-Menu) -*/ -{ - if ( pFocusBox && pFocusBox->IsEditingActive() ) - pFocusBox->EndEditing( sal_False ); - sal_Bool bEnable = ( pFocusBox && pFocusBox->GetSelectionCount() ); - SvTreeListEntry* pEntry = bEnable ? pFocusBox->FirstSelected() : NULL; - const sal_uInt16 nDepth = - ( bEnable && pFocusBox->GetSelectionCount() ) ? pFocusBox->GetModel()->GetDepth( pEntry ) : 0; - const sal_uInt16 nDocLevel = bEnable ? pFocusBox->GetDocLevel() : 0; - int eVT = pFocusBox ? pFocusBox->GetViewType() : 0; - // Create only Template - pMenu->EnableItem( ID_NEW, bEnable && 0 == nDepth && SfxOrganizeListBox_Impl::VIEW_TEMPLATES == eVT ); - // Template: Delete level 0,1,3ff - // At least one region must be retained - // Files: Delete level> 2 - - pMenu->EnableItem( ID_DELETE, bEnable && !DontDelete_Impl( pEntry ) ); - pMenu->EnableItem( ID_EDIT, - bEnable && eVT == SfxOrganizeListBox_Impl::VIEW_TEMPLATES && nDepth == nDocLevel - && !DontDelete_Impl( pEntry ) ); - pMenu->EnableItem( ID_COPY_FROM, - bEnable && eVT == SfxOrganizeListBox_Impl::VIEW_TEMPLATES && - ( nDepth == nDocLevel || nDepth == nDocLevel - 1 ) ); - pMenu->EnableItem( ID_COPY_TO, - bEnable && eVT == SfxOrganizeListBox_Impl::VIEW_TEMPLATES && - nDepth == nDocLevel ); - pMenu->EnableItem( ID_RESCAN, - SfxOrganizeListBox_Impl::VIEW_TEMPLATES == m_pRightLb->GetViewType() || - SfxOrganizeListBox_Impl::VIEW_TEMPLATES == m_pLeftLb->GetViewType() ); - sal_Bool bPrint = bEnable && nDepth > pFocusBox->GetDocLevel(); - if ( bPrint && pPrt ) - bPrint = !pPrt->IsPrinting() && !pPrt->IsJobActive(); - if ( bPrint && bEnable ) - { - // only styles printable - Path aPath( pFocusBox, pFocusBox->FirstSelected() ); - sal_uInt16 nIndex = aPath[ nDocLevel + 1 ]; - bPrint = ( nIndex == CONTENT_STYLE ); - } - pMenu->EnableItem( ID_PRINT, bPrint ); - - if ( bEnable && eVT == SfxOrganizeListBox_Impl::VIEW_TEMPLATES && nDepth == nDocLevel ) - { - String aFactoryURL, aFileURL; - bEnable = GetServiceName_Impl( aFactoryURL, aFileURL ); - } - else if ( bEnable ) - bEnable = sal_False; - pMenu->EnableItem( ID_DEFAULT_TEMPLATE, bEnable ); - - bEnable = sal_True; - std::vector<rtl::OUString> aList(GetAllFactoryURLs_Impl()); - if (!aList.empty()) - { - PopupMenu* pSubMenu = new PopupMenu; - sal_uInt16 nItemId = ID_RESET_DEFAULT_TEMPLATE + 1; - for(std::vector<rtl::OUString>::const_iterator i = aList.begin(); i != aList.end(); ++i) - { - INetURLObject aObj(*i); - String aTitle = SvFileInformationManager::GetDescription(aObj); - pSubMenu->InsertItem(nItemId, aTitle, SvFileInformationManager::GetImage(aObj, false)); - pSubMenu->SetItemCommand(nItemId++, *i); - } - pMenu->SetPopupMenu( ID_RESET_DEFAULT_TEMPLATE, pSubMenu ); - } - else - bEnable = sal_False; - - pMenu->EnableItem( ID_RESET_DEFAULT_TEMPLATE, bEnable ); - - return 1; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxOrganizeDlg_Impl, GetFocus_Impl, SfxOrganizeListBox_Impl *, pBox ) - -/* [Description] - - GetFocus-Handler, is called from the Select-Handler of ListBox - Used in the listBox that has the focus and to determine its condition. - - [Parameter] - - SfxOrganizeListBox *pBox The calling Box -*/ - -{ - if(pFocusBox && pFocusBox != pBox) - pFocusBox->SelectAll(sal_False); - pFocusBox = pBox; - m_pFilesBtn->Enable( SfxOrganizeListBox_Impl::VIEW_FILES == - pFocusBox->GetViewType() ); - return 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxOrganizeDlg_Impl, LeftListBoxSelect_Impl, ListBox *, pBox ) - -/* [Description] - - Select-Handler, is called from the Select-Handler of ListBox. - If the mode of the Boxes are different (Document view or Template view) - then the models are separated, otherwise joined together. - - [Parameter] - - ListBox *pBox The calling Box -*/ -{ - const SfxOrganizeListBox_Impl::DataEnum - eViewType = pBox->GetSelectEntryPos() == 0 ? - SfxOrganizeListBox_Impl::VIEW_TEMPLATES : SfxOrganizeListBox_Impl::VIEW_FILES; - if(eViewType!= m_pLeftLb->GetViewType()) { - m_pLeftLb->SetViewType(eViewType); - if(m_pRightLb->GetViewType() == eViewType) - m_pLeftLb->SetModel(m_pRightLb->GetModel()); - else { - // Models trennen - m_pLeftLb->DisconnectFromModel(); - m_pLeftLb->Reset(); - } - } - GetFocus_Impl(m_pLeftLb); - return 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxOrganizeDlg_Impl, RightListBoxSelect_Impl, ListBox *, pBox ) - -/* [Description] - - Select-Handler, will be called by Select-Handler of the ListBox. - If the mode of the Boxes are different (Document view or Template view) - then the models are separated, otherwise joined together. - - [Parameter] - - ListBox *pBox The calling Box -*/ -{ - const SfxOrganizeListBox_Impl::DataEnum eViewType = - pBox->GetSelectEntryPos() == 0 ? - SfxOrganizeListBox_Impl::VIEW_TEMPLATES : SfxOrganizeListBox_Impl::VIEW_FILES; - if(eViewType!= m_pRightLb->GetViewType()) - { - m_pRightLb->SetViewType(eViewType); - if(m_pLeftLb->GetViewType() == eViewType) - m_pRightLb->SetModel(m_pLeftLb->GetModel()); - else - { - // Separate models - m_pRightLb->DisconnectFromModel(); - m_pRightLb->Reset(); - } - } - m_pRightLb->GrabFocus(); - GetFocus_Impl(m_pRightLb); - return 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK_NOARG(SfxOrganizeDlg_Impl, OnAddressTemplateClicked) -{ - svt::AddressBookSourceDialog aDialog(pDialog, ::comphelper::getProcessServiceFactory()); - aDialog.Execute(); - return 0L; -} - -IMPL_LINK_NOARG(SfxOrganizeDlg_Impl, Close_Impl) -{ - pDialog->EndDialog( sal_True ); - return 0L; -} - -//------------------------------------------------------------------------- - -IMPL_LINK( SfxOrganizeDlg_Impl, AddFiles_Impl, Button *, pButton ) - -/* [Description] - - Handler of the button for adding files through Dialog. - - [Parameter] - - Button * Button, triggering this Event - -*/ -{ - (void)pButton; //unused - if ( pFileDlg ) - delete pFileDlg; - pFileDlg = new sfx2::FileDialogHelper( - ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION, - 0, String() ); - - // add config and basic filter - static String sOpenBracket( DEFINE_CONST_UNICODE( " (" ) ); - static String sCloseBracket( DEFINE_CONST_UNICODE( ")" ) ); - static String sConfigExt( DEFINE_CONST_UNICODE( "*.cfg" ) ); - static String sBasicExt( DEFINE_CONST_UNICODE( "*.sbl" ) ); - - String sFilterName( SfxResId(RID_STR_FILTCONFIG).toString() ); - sFilterName += sOpenBracket; - sFilterName += sConfigExt; - sFilterName += sCloseBracket; - pFileDlg->AddFilter( sFilterName, sConfigExt ); - - sFilterName = SfxResId(RID_STR_FILTBASIC).toString(); - sFilterName += sOpenBracket; - sFilterName += sBasicExt; - sFilterName += sCloseBracket; - pFileDlg->AddFilter( sFilterName, sBasicExt ); - - // set "All" filter as current - pFileDlg->SetCurrentFilter( SfxResId(STR_SFX_FILTERNAME_ALL).toString() ); - - if ( aLastDir.Len() ) - pFileDlg->SetDisplayDirectory( aLastDir ); - - pFileDlg->StartExecuteModal( LINK( this, SfxOrganizeDlg_Impl, AddFilesHdl ) ); - - return 0; -} - -//------------------------------------------------------------------------- - -IMPL_LINK_NOARG(SfxOrganizeDlg_Impl, ExportHdl) -{ - DBG_ASSERT( pFileDlg, "SfxOrganizeDlg_Impl::ExportHdl(): no file dialog" ); - - if ( ERRCODE_NONE == pFileDlg->GetError() ) - { - String aPath = pFileDlg->GetPath(); - INetURLObject aObj( aPath ); - - // we want to keep the original extension when exporting, the file open dialog - // always sets the extension to *.vor - if ( pFileDlg->GetDialogType() == - com::sun::star::ui::dialogs::TemplateDescription::FILESAVE_SIMPLE ) - { - if ( aObj.hasExtension() ) - aObj.removeExtension(); - - aObj.setExtension( m_sExtension4Save ); - aPath = aObj.GetMainURL( INetURLObject::DECODE_TO_IURI ); - } - - aObj.removeSegment(); - aLastDir = aObj.GetMainURL( INetURLObject::DECODE_TO_IURI ); - - if ( aPath.Len() && !aMgr.CopyTo( m_nRegion, m_nIndex, aPath ) ) - { - String aText( SfxResId(STR_ERROR_COPY_TEMPLATE).toString() ); - aText.SearchAndReplaceAscii( "$1", aPath ); - ErrorBox( pDialog, WB_OK, aText ).Execute(); - } - } - - return 0L; -} - -//------------------------------------------------------------------------- - -IMPL_LINK_NOARG(SfxOrganizeDlg_Impl, ImportHdl) -{ - DBG_ASSERT( pFileDlg, "SfxOrganizeDlg_Impl::ImportHdl(): no file dialog" ); - ::com::sun::star::uno::Sequence< ::rtl::OUString > aPaths; - - if ( ERRCODE_NONE == pFileDlg->GetError() ) - { - aPaths = pFileDlg->GetMPath(); - sal_Int32 lastCount = aPaths.getLength() - 1; - INetURLObject aObj( aPaths.getArray()[ lastCount ] ); - - aObj.removeSegment(); - aLastDir = aObj.GetMainURL( INetURLObject::DECODE_TO_IURI ); - } - - sal_Int32 nCount = aPaths.getLength(); - if ( 1 == nCount ) - { - String aPath = String( aPaths.getArray()[0] ); - if ( aPath.Len() && !aMgr.CopyFrom( pFocusBox, m_nRegion, m_nIndex, aPath ) ) - { - String aText( SfxResId(STR_ERROR_COPY_TEMPLATE).toString() ); - aText.SearchAndReplaceAscii( "$1", aPath ); - ErrorBox( pDialog, WB_OK, aText ).Execute(); - } - } - else if ( nCount > 1 ) - { - INetURLObject aPathObj( aPaths[0] ); - aPathObj.setFinalSlash(); - for ( sal_uInt16 i = 1; i < nCount; ++i ) - { - if ( 1 == i ) - aPathObj.Append( aPaths[i] ); - else - aPathObj.setName( aPaths[i] ); - String aPath = aPathObj.GetMainURL( INetURLObject::NO_DECODE ); - if ( aPath.Len() && !aMgr.CopyFrom( pFocusBox, m_nRegion, m_nIndex, aPath ) ) - { - String aText( SfxResId(STR_ERROR_COPY_TEMPLATE).toString() ); - aText.SearchAndReplaceAscii( "$1", aPath ); - ErrorBox( pDialog, WB_OK, aText ).Execute(); - } - } - } - - return 0L; -} - -//------------------------------------------------------------------------- - -IMPL_LINK_NOARG(SfxOrganizeDlg_Impl, AddFilesHdl) -{ - if ( ERRCODE_NONE == pFileDlg->GetError() ) - { - String aPath = pFileDlg->GetPath(); - aMgr.InsertFile( pFocusBox, aPath ); - INetURLObject aObj( aPath ); - aObj.removeSegment(); - aObj.setFinalSlash(); - aLastDir = aObj.GetMainURL( INetURLObject::DECODE_TO_IURI ); - } - - return 0L; -} - -//------------------------------------------------------------------------- - -short SfxTemplateOrganizeDlg::Execute() - -/* [Description] - - Overloaded Execute method; stores changes to the document templates - (SV-Methode) - -*/ - -{ - const short nRet = ModalDialog::Execute(); - if(RET_CANCEL != nRet) - { - pImp->aMgr.SaveAll(this); - SfxTemplateDialog* pTemplDlg = SFX_APP()->GetTemplateDialog(); - if(pTemplDlg) - pTemplDlg->Update(); - } - return nRet; -} - - -//------------------------------------------------------------------------- - -SfxTemplateOrganizeDlg::SfxTemplateOrganizeDlg(Window * pParent, - SfxDocumentTemplates *pTempl) - : ModalDialog(pParent, "TemplateManagementDialog", - "sfx/ui/templatemanagementdialog.ui") - , pImp( new SfxOrganizeDlg_Impl(this, pTempl) ) -{ -} - -//------------------------------------------------------------------------- - -SfxTemplateOrganizeDlg::~SfxTemplateOrganizeDlg() -{ - GetpApp()->RemoveAccel(&pImp->aEditAcc); - delete pImp->pPrt; - delete pImp; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx index 7d313e7867de..afb115bc3bc6 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -69,7 +69,6 @@ #include <sfx2/request.hxx> #include <sfx2/printer.hxx> #include <sfx2/viewsh.hxx> -#include <sfx2/doctdlg.hxx> #include <sfx2/docfilt.hxx> #include <sfx2/docfile.hxx> #include <sfx2/dispatch.hxx> diff --git a/sfx2/source/inc/templdgi.hxx b/sfx2/source/inc/templdgi.hxx index 3363e58ed4c7..2d92b719ae67 100644 --- a/sfx2/source/inc/templdgi.hxx +++ b/sfx2/source/inc/templdgi.hxx @@ -323,57 +323,6 @@ public: ~SfxTemplateDialog_Impl(); }; -// class SfxTemplateCatalog_Impl ----------------------------------------- - -class SfxTemplateCatalog_Impl : public SfxCommonTemplateDialog_Impl -{ -private: - friend class SfxTemplateControllerItem; - friend class SfxCommonTemplateDialog_Impl; - - ListBox aFamList; - OKButton aOkBtn; - CancelButton aCancelBtn; - PushButton aNewBtn; - PushButton aChangeBtn; - PushButton aDelBtn; - PushButton aOrgBtn; - HelpButton aHelpBtn; - - SfxTemplateCatalog* pReal; - std::vector<sal_uInt16> aFamIds; - SfxModalDefParentHelper aHelper; - -protected: - virtual void EnableItem( sal_uInt16 nMesId, sal_Bool bCheck = sal_True ); - virtual void CheckItem( sal_uInt16 nMesId, sal_Bool bCheck = sal_True ); - virtual sal_Bool IsCheckedItem( sal_uInt16 nMesId ); - virtual void InsertFamilyItem( sal_uInt16 nId, const SfxStyleFamilyItem* pIten ); - virtual void EnableFamilyItem( sal_uInt16 nId, sal_Bool bEnabled = sal_True ); - virtual void ClearFamilyList(); - virtual void EnableEdit( sal_Bool = sal_True ); - virtual void EnableDel( sal_Bool = sal_True ); - virtual void EnableNew( sal_Bool = sal_True ); - - using SfxCommonTemplateDialog_Impl::NewHdl; - DECL_LINK( FamListSelect, ListBox * ); - DECL_LINK( OkHdl, Button * ); - DECL_LINK( CancelHdl, Button * ); - DECL_LINK( NewHdl, Button * ); - DECL_LINK( ChangeHdl, Button * ); - DECL_LINK( DelHdl, Button * ); - DECL_LINK( OrgHdl, Button * ); - -public: - TYPEINFO(); - SfxTemplateCatalog_Impl( Window* pParent, SfxBindings*, SfxTemplateCatalog* pWindow ); - ~SfxTemplateCatalog_Impl(); - -friend class SfxTemplateCatalog; - - virtual void PrepareDeleteAction(); -}; - #endif // #ifndef _SFX_TEMPDLGI_HXX diff --git a/sfx2/source/view/orgmgr.cxx b/sfx2/source/view/orgmgr.cxx deleted file mode 100644 index 798731bc6558..000000000000 --- a/sfx2/source/view/orgmgr.cxx +++ /dev/null @@ -1,766 +0,0 @@ -/* -*- 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 <com/sun/star/embed/XStorage.hpp> -#include <com/sun/star/embed/XTransactedObject.hpp> -#include <com/sun/star/embed/ElementModes.hpp> - -#include <vcl/msgbox.hxx> -#include <tools/urlobj.hxx> - -#include <comphelper/processfactory.hxx> -#include <unotools/intlwrapper.hxx> - -#include <comphelper/storagehelper.hxx> - -#include <sfx2/app.hxx> -#include <sfx2/objsh.hxx> -#include <sfx2/docfile.hxx> -#include <sfx2/docfac.hxx> -#include <sfx2/doctempl.hxx> -#include "docvor.hxx" -#include "orgmgr.hxx" -#include "sfxtypes.hxx" -#include "sfx2/sfxresid.hxx" -#include "view.hrc" -#include <sfx2/docfilt.hxx> -#include "fltfnc.hxx" - -using namespace ::com::sun::star; - -//========================================================================= - -/* [Description] - - Implementation class, single entry in the file view. -*/ - -struct _FileListEntry -{ - String aFileName; // File Name with complete path - String aBaseName; // File Name - const CollatorWrapper* pCollator; - SfxObjectShellLock aDocShell; // ObjectShell as reference class - - sal_Bool bFile; // As File on disk - // (!= not processed, not loaded as document - // these are not saved!) - sal_Bool bOwner; // self-generated - sal_Bool bNoName; - sal_Bool bOwnFormat; - - _FileListEntry( const String& rFileName, - const CollatorWrapper* pColl, const String* pTitle = NULL ); - ~_FileListEntry(); - - int operator==( const _FileListEntry &rCmp) const; - int operator< ( const _FileListEntry &rCmp) const; - sal_Bool DeleteObjectShell(); -}; - -//------------------------------------------------------------------------- - -inline int _FileListEntry::operator==(const _FileListEntry &rCmp) const -{ - DBG_ASSERT( pCollator, "invalid CollatorWrapper" ); - return COMPARE_EQUAL == pCollator->compareString(aBaseName, rCmp.aBaseName); -} - -//------------------------------------------------------------------------- - -inline int _FileListEntry::operator< (const _FileListEntry &rCmp) const -{ - DBG_ASSERT( pCollator, "invalid CollatorWrapper" ); - return COMPARE_LESS == pCollator->compareString(aBaseName, rCmp.aBaseName); -} - -//------------------------------------------------------------------------- - -_FileListEntry::_FileListEntry( const String& rFileName, - const CollatorWrapper* pColl, const String* pTitle ) : - - aFileName ( rFileName ), - pCollator ( pColl ), - bFile ( sal_False ), - bOwner ( sal_False ), - bNoName ( sal_True ), - bOwnFormat ( sal_True ) -{ - if ( pTitle ) - aBaseName = *pTitle; - else - { - INetURLObject aObj( rFileName, INET_PROT_FILE ); - aBaseName = aObj.getName( INetURLObject::LAST_SEGMENT, true, - INetURLObject::DECODE_WITH_CHARSET ); - } -} - -//------------------------------------------------------------------------- - -_FileListEntry::~_FileListEntry() -{ - DeleteObjectShell(); -} - -//========================================================================= - -sal_Bool _FileListEntry::DeleteObjectShell() - -/* [Description] - - Release of ther DocumentShell - - [Return value] TRUE: Everything is ok - FALSE: An error occured - (the document could not be saved) -*/ - -{ - sal_Bool bRet = sal_True; - - if(bOwner && aDocShell.Is() && aDocShell->IsModified()) - { - // Converted? - if( bOwnFormat ) - { - if(!aDocShell->Save() ) - bRet = sal_False; - else - { - try { - uno::Reference< embed::XTransactedObject > xTransact( aDocShell->GetStorage(), uno::UNO_QUERY ); - OSL_ENSURE( xTransact.is(), "Storage must implement XTransactedObject!\n" ); - if ( !xTransact.is() ) - throw uno::RuntimeException(); - - xTransact->commit(); - } - catch( uno::Exception& ) - { - } - - } - } - else - { - // If converted save in native format - INetURLObject aObj( aFileName ); - String aTitle = aObj.getName( INetURLObject::LAST_SEGMENT, true, - INetURLObject::DECODE_WITH_CHARSET ); - bRet = aDocShell->PreDoSaveAs_Impl( - aTitle, aDocShell->GetFactory().GetFilterContainer()->GetAnyFilter( SFX_FILTER_IMPORT | SFX_FILTER_EXPORT )->GetFilterName(), 0 ); - } - } - - if( bOwner) - { - aDocShell.Clear(); - } - - return bRet; -} - -//------------------------------------------------------------------------- - -SfxObjectList::SfxObjectList() -{ -} - -//------------------------------------------------------------------------- - -SfxObjectList::~SfxObjectList() -{ - for( const_iterator it = begin(); it != end(); ++it ) - delete *it; - clear(); -} - -//------------------------------------------------------------------------- - -const String &SfxObjectList::GetBaseName(const _FileListEntry* p) const -{ - return p->aBaseName; -} - -//------------------------------------------------------------------------- - -SfxOrganizeMgr::SfxOrganizeMgr(SfxDocumentTemplates *pTempl) : - pImpl(new SfxOrganizeMgr_Impl), - pTemplates(pTempl? pTempl: new SfxDocumentTemplates), - bDeleteTemplates(pTempl == 0), - bModified(0) - -/* [Description] - - Constructor. The current document is added to the list of documents. -*/ -{ - pImpl->pDocList = new SfxObjectList; - pImpl->pIntlWrapper = new IntlWrapper( Application::GetSettings().GetLanguageTag() ); - const CollatorWrapper* pCollator = pImpl->pIntlWrapper->getCaseCollator(); - for ( SfxObjectShell* pTmp = SfxObjectShell::GetFirst(); pTmp; pTmp = SfxObjectShell::GetNext(*pTmp) ) - { - if ( pTmp->GetCreateMode() != SFX_CREATE_MODE_STANDARD || - !( pTmp->GetFlags() & SFXOBJECTSHELL_HASOPENDOC ) || !pTmp->GetStyleSheetPool() ) - continue; - _FileListEntry* pNewEntry = NULL; - String aTitle = pTmp->GetTitle( SFX_TITLE_TITLE ); - pNewEntry = new _FileListEntry( pTmp->GetMedium()->GetName(), pCollator, &aTitle ); - pNewEntry->aDocShell = pTmp; - pImpl->pDocList->insert( pNewEntry ); - } -} - -//------------------------------------------------------------------------- - -SfxOrganizeMgr::~SfxOrganizeMgr() -{ - if ( bDeleteTemplates ) - delete pTemplates; - delete pImpl->pDocList; - delete pImpl->pIntlWrapper; - delete pImpl; -} - -//------------------------------------------------------------------------- - -SfxObjectShellRef SfxOrganizeMgr::CreateObjectShell( sal_uInt16 nIdx ) - -/* [Description] - - Access to the DocumentShell at the position nIdx. - - [Return value] Reference to the DocumentShell - -*/ - -{ - _FileListEntry* pEntry = (*pImpl->pDocList)[nIdx]; - // otherwise create Doc-Shell - if ( !pEntry->aDocShell.Is() ) - { - INetURLObject aFileObj( pEntry->aFileName ); - sal_Bool bDum = sal_False; - SfxApplication* pSfxApp = SFX_APP(); - String aFilePath = aFileObj.GetMainURL( INetURLObject::NO_DECODE ); - pEntry->aDocShell = pSfxApp->DocAlreadyLoaded( aFilePath, sal_False, bDum ); - if ( !pEntry->aDocShell.Is() ) - { - pEntry->bOwner = sal_True; - SfxMedium* pMed = new SfxMedium( - aFilePath, ( STREAM_READ | STREAM_SHARE_DENYWRITE ) ); - const SfxFilter* pFilter = NULL; - pMed->UseInteractionHandler(sal_True); - if ( - pSfxApp->GetFilterMatcher().GuessFilter(*pMed, &pFilter, SFX_FILTER_TEMPLATE, 0) || - (pFilter && !pFilter->IsOwnFormat()) || - (pFilter && !pFilter->UsesStorage()) - ) - { - pSfxApp->LoadTemplate( pEntry->aDocShell, aFilePath ); - pEntry->bOwnFormat = sal_False; - delete pMed; - if ( pEntry->aDocShell.Is() ) - return (SfxObjectShellRef)(SfxObjectShell*)(pEntry->aDocShell); - } - else - { - if ( pFilter ) - { - pEntry->bOwnFormat = sal_True; - pEntry->aDocShell = SfxObjectShell::CreateObject( pFilter->GetServiceName(), SFX_CREATE_MODE_ORGANIZER ); - if ( pEntry->aDocShell.Is() ) - { - pEntry->aDocShell->DoInitNew(0); - pEntry->aDocShell->LoadFrom( *pMed ); - // Medium is now owned by DocShell - pEntry->aDocShell->DoSaveCompleted( pMed ); - } - } - } - } - } - return ( SfxObjectShellRef )(SfxObjectShell*)(pEntry->aDocShell); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::DeleteObjectShell(sal_uInt16 nIdx) - -/* [Description] - - Release DocumentShell at position nIdx - - [Return value] TRUE: Everything is ok - FALSE: An error occured - (the document could not be saved) -*/ -{ - return (*pImpl->pDocList)[nIdx]->DeleteObjectShell(); -} - -//------------------------------------------------------------------------- - -SfxObjectShellRef SfxOrganizeMgr::CreateObjectShell(sal_uInt16 nRegion, - sal_uInt16 nIdx) -/* [Description] - - Access to the DocumentShell at Position nIdx in Region - nRegion (Document template) - - [Return value] Reference to the DocumentShell - -*/ -{ - return pTemplates->CreateObjectShell(nRegion, nIdx); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::DeleteObjectShell(sal_uInt16 nRegion, sal_uInt16 nIdx) - -/* [Description] - - Release of the DocumentShell at Position nIdx in Region - nRegion (Document template) - - [Return value] TRUE: Everything is ok - FALSE: An error occured - (the document could not be saved) -*/ - -{ - return pTemplates->DeleteObjectShell(nRegion, nIdx); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::Copy(sal_uInt16 nTargetRegion, - sal_uInt16 nTargetIdx, - sal_uInt16 nSourceRegion, - sal_uInt16 nSourceIdx) - -/* [Description] - - Copy of a Document Template - - [Parameter] - - sal_uInt16 nTargetRegion Index of the Target Region - sal_uInt16 nTargetIdx Index of the Target Position - sal_uInt16 nSourceRegion Index of the Source Region - sal_uInt16 nSourceIdx Index of the template to be - copied/moved. - - [Return value] Success (TRUE) or Failure (FALSE) - - - [Cross-reference] - - <SfxDocumentTemplates::Copy(sal_uInt16 nTargetRegion, - sal_uInt16 nTargetIdx, - sal_uInt16 nSourceRegion, - sal_uInt16 nSourceIdx)> - -*/ - -{ - if(nSourceIdx == USHRT_MAX) // No directories copied - return sal_False ; - const sal_Bool bOk = pTemplates->Copy(nTargetRegion, nTargetIdx, - nSourceRegion, nSourceIdx); - if(bOk) - bModified = 1; - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::Move(sal_uInt16 nTargetRegion, - sal_uInt16 nTargetIdx, - sal_uInt16 nSourceRegion, - sal_uInt16 nSourceIdx) - -/* [Description] - - Moving a template - - [Parameter] - - sal_uInt16 nTargetRegion Index of the Target Region - sal_uInt16 nTargetIdx Index of the Target Position - sal_uInt16 nSourceRegion Index of the Source Region - sal_uInt16 nSourceIdx Index of the template to be - copied/moved. - - [Return value] Success (TRUE) or Failure (FALSE) - - [Cross-reference] - - <SfxDocumentTemplates::Move(sal_uInt16 nTargetRegion, - sal_uInt16 nTargetIdx, - sal_uInt16 nSourceRegion, - sal_uInt16 nSourceIdx)> -*/ - -{ - if(nSourceIdx == USHRT_MAX) // No directory moved - return sal_False ; - const sal_Bool bOk = pTemplates->Move(nTargetRegion, nTargetIdx, - nSourceRegion, nSourceIdx); - if(bOk) - bModified = 1; - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::Delete(SfxOrganizeListBox_Impl *pCaller, - sal_uInt16 nRegion, sal_uInt16 nIdx) - -/* [Description] - - Delete a Document Template - - [Parameter] - - SfxOrganizeListBox *pCaller calling ListBox, since this event - is triggered by the menu or the - keyboard, the ListBox must be updated. - sal_uInt16 nRegion Index for Region - sal_uInt16 nIdx Index of Document template - - [Return value] Success (TRUE) or Failure (FALSE) - - [Cross-reference] - - <SfxDocumentTemplates::Delete(sal_uInt16 nRegion, sal_uInt16 nIdx)> - -*/ - -{ - sal_Bool bOk = sal_False; - - if ( USHRT_MAX == nIdx ) - { - // deleting of a group - - SvTreeListEntry *pGroupToDelete = pCaller->GetEntry(nRegion); - if ( pGroupToDelete ) - { - sal_uInt16 nItemNum = (sal_uInt16)( pCaller->GetModel()->GetChildCount( pGroupToDelete ) ); - typedef std::deque<SvTreeListEntry*> BoxEntries; - BoxEntries pEntriesToDelete; - - sal_uInt16 nInd = 0; - for ( nInd = 0; nInd < nItemNum; nInd++ ) - { - // TODO/LATER: check that nInd is the same index that is used in pTemplates - if ( pTemplates->Delete( nRegion, nInd ) ) - { - bModified = 1; - pEntriesToDelete.push_back( pCaller->GetEntry( pGroupToDelete, nInd ) ); - } - } - - for ( BoxEntries::const_iterator aIt( pEntriesToDelete.begin() ), aEnd( pEntriesToDelete.end() ); aIt != aEnd; ++aIt ) - pCaller->GetModel()->Remove( *aIt ); - - if ( !pCaller->GetModel()->GetChildCount( pGroupToDelete ) ) - { - bOk = pTemplates->Delete( nRegion, nIdx ); - if ( bOk ) - pCaller->GetModel()->Remove( pGroupToDelete ); - } - } - } - else - { - // deleting of a template - bOk = pTemplates->Delete(nRegion, nIdx); - if(bOk) - { - bModified = 1; - // Entry to be deleted. - SvTreeListEntry *pEntryToDelete = pCaller->GetEntry(pCaller->GetEntry(nRegion), nIdx); - - pCaller->GetModel()->Remove(pEntryToDelete); - } - } - - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::InsertDir -( - SfxOrganizeListBox_Impl* pCaller, /* calling ListBox, since this event - is triggered by the menu or the - keyboard, the ListBox must be updated. */ - const String& rText, // logical Name of Region - sal_uInt16 nRegion // Index of Region -) - -/* [Description] - - Insert Region. - - [Return value] Success (TRUE) or Failure (FALSE) - - [Cross-reference] - - <SfxDocumentTemplates::InsertDir(const String &, sal_uInt16 nRegion)> -*/ - -{ - const sal_Bool bOk = pTemplates->InsertDir(rText, nRegion); - if(bOk) - { - bModified = 1; - SvTreeListEntry *pEntry = pCaller->InsertEntry(rText, - pCaller->GetOpenedBmp(0), - pCaller->GetClosedBmp(0), - 0, sal_True, nRegion); - pCaller->Update(); - pCaller->EditEntry(pEntry); - } - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::SetName(const String &rName, - sal_uInt16 nRegion, sal_uInt16 nIdx) - -/* [Description] - - Set (logical) Name - - [Parameter] - - const String &rName The new Name - sal_uInt16 nRegion Index of Region - sal_uInt16 nIdx Index of Document template - - [Return value] Success (TRUE) or Failure (FALSE) - - [Cross-reference] - - <SfxDocumentTemplates::SetName(const String &, sal_uInt16 nRegion, sal_uInt16 nIdx)> -*/ - -{ - const sal_Bool bOk = pTemplates->SetName(rName, nRegion, nIdx); - if(bOk) - bModified = 1; - return bOk; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::CopyTo(sal_uInt16 nRegion, sal_uInt16 nIdx, const String &rName) const - -/* [Description] - - Export of a Template - - [Parameter] - - sal_uInt16 nRegion Index of Region - sal_uInt16 nIdx Index of Document Template - const String &rName File name - - [Return value] Success (TRUE) or Failure (FALSE) - - [Cross-reference] - - <SfxDocumentTemplates::CopyTo( sal_uInt16 nRegion, sal_uInt16 nIdx, const String &)> -*/ - -{ - return pTemplates->CopyTo(nRegion, nIdx, rName); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::CopyFrom(SfxOrganizeListBox_Impl *pCaller, - sal_uInt16 nRegion, sal_uInt16 nIdx, String &rName) - -/* [Description] - - Import of Document Template - - [Parameter] - - SfxOrganizeListBox *pCaller calling ListBox, since this event - is triggered by the menu or the - keyboard, the ListBox must be updated. - - sal_uInt16 nRegion Index of Region - sal_uInt16 nIdx Index of Document Template - String &rName File name - - [Return value] Success (TRUE) or Failure (FALSE) - - [Cross-reference] - - <SfxDocumentTemplates::CopyFrom( sal_uInt16 nRegion, sal_uInt16 nIdx, const String &)> -*/ - -{ - SvTreeListEntry *pParent = pCaller->FirstSelected(); - if( nIdx!=USHRT_MAX ) - pParent = pCaller->GetParent(pParent); - if( pTemplates->CopyFrom( nRegion, nIdx, rName ) ) - { - // Update pCaller - if( nIdx == USHRT_MAX ) - nIdx = 0; - else nIdx++; - - pCaller->InsertEntry( rName, - pCaller->GetOpenedBmp(1), - pCaller->GetClosedBmp(1), - pParent, - sal_True, - nIdx); - pCaller->Update(); - pCaller->Expand( pParent ); - bModified = sal_True; - return sal_True; - } - return sal_False; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::InsertFile( SfxOrganizeListBox_Impl* pCaller, const String& rFileName ) - -/* [Description] - - Insert a file in the file view. - - [Parameter] - - SfxOrganizeListBox *pCaller calling ListBox, since this event - is triggered by the menu or the - keyboard, the ListBox must be updated. - - const String &rFileName Name of inserted File. - - [Return value] Success (TRUE) or Failure (FALSE) -*/ - -{ - const CollatorWrapper* pCollator = pImpl->pIntlWrapper->getCaseCollator(); - _FileListEntry* pEntry = new _FileListEntry( rFileName, pCollator ); - std::pair<SfxObjectList::const_iterator, bool> aRes = pImpl->pDocList->insert( pEntry ); - if ( aRes.second ) - { - sal_uInt16 nPos = aRes.first - pImpl->pDocList->begin(); - pCaller->InsertEntry( pEntry->aBaseName, pCaller->GetOpenedBmp(1), - pCaller->GetClosedBmp(1), 0, sal_True, nPos ); - return sal_True; - } - else - delete pEntry; - return sal_False; -} - -//------------------------------------------------------------------------- - -sal_Bool SfxOrganizeMgr::Rescan() - -/* [Description] - - Updating the database. - - [Return value] - - TRUE Changes were made - FALSE No changes - - [Cross-reference] - - <SfxDocumentTemplates::Rescan()> -*/ - -{ - if(pTemplates->Rescan()) - { - bModified = sal_True; - return sal_True; - } - return sal_False; -} - -//------------------------------------------------------------------------- - -void SfxOrganizeMgr::SaveAll(Window *pParent) - -/* [Description] - - Save all Documents that have been modified - - [Parameter] - - Window *pParent Parent of the Error message Box -*/ - -{ - sal_uInt16 nRangeCount = pTemplates->GetRegionCount(); - sal_uInt16 i; - for(i = 0; i < nRangeCount; ++i) - { - if( pTemplates->IsRegionLoaded( i )) - { - const sal_uInt16 nCount = pTemplates->GetCount(i); - for(sal_uInt16 j = 0; j < nCount; ++j) - { - if(!pTemplates->DeleteObjectShell(i, j)) - { - String aText = SfxResId(STR_ERROR_SAVE_TEMPLATE).toString(); - aText += pTemplates->GetName(i, j); - ErrorBox aBox(pParent, - WinBits(WB_OK_CANCEL | WB_DEF_CANCEL), - aText); - if(RET_CANCEL == aBox.Execute()) - break; - } - } - } - } - for( SfxObjectList::const_iterator it = pImpl->pDocList->begin(); it != pImpl->pDocList->end(); ++it ) - { - _FileListEntry *pEntry = *it; - if(!pEntry->DeleteObjectShell()) - { - String aText(SfxResId(STR_ERROR_SAVE_TEMPLATE).toString()); - aText += pEntry->aBaseName; - ErrorBox aBox(pParent, WinBits(WB_OK_CANCEL | WB_DEF_CANCEL), aText); - if(RET_CANCEL == aBox.Execute()) - break; - } - } -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index d865d2687709..466d8261b595 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -451,14 +451,6 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq ) } break; } - case SID_STYLE_CATALOG: - { - SfxTemplateCatalog aCatalog( - SFX_APP()->GetTopWindow(), &GetViewFrame()->GetBindings()); - aCatalog.Execute(); - rReq.Ignore(); - break; - } case SID_ACTIVATE_STYLE_APPLY: { com::sun::star::uno::Reference< com::sun::star::frame::XFrame > xFrame( @@ -814,13 +806,6 @@ void SfxViewShell::GetState_Impl( SfxItemSet &rSet ) { switch ( nSID ) { - case SID_STYLE_CATALOG: - { - if ( !GetViewFrame()->KnowsChildWindow( SID_STYLE_DESIGNER ) ) - rSet.DisableItem( nSID ); - break; - } - // Printer functions case SID_PRINTDOC: case SID_PRINTDOCDIRECT: diff --git a/sw/sdi/_drwbase.sdi b/sw/sdi/_drwbase.sdi index 5e23241e96e0..4a8de6813b1f 100644 --- a/sw/sdi/_drwbase.sdi +++ b/sw/sdi/_drwbase.sdi @@ -107,11 +107,6 @@ interface BaseTextDrawBase DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] - SID_STYLE_CATALOG // ole(no) api(play/rec) - [ - StateMethod = StateDisableItems ; - ] - // #i68101# FN_TITLE_DESCRIPTION_SHAPE [ diff --git a/sw/sdi/annotsh.sdi b/sw/sdi/annotsh.sdi index 0506fd2487f0..12700e27e9e0 100644 --- a/sw/sdi/annotsh.sdi +++ b/sw/sdi/annotsh.sdi @@ -43,12 +43,6 @@ interface Annotation : _Annotation DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] - SID_STYLE_CATALOG // ole(no) api(play/rec) - [ - StateMethod = StateDisableItems ; - DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; - ] - SID_TWAIN_SELECT [ StateMethod = StateDisableItems ; diff --git a/sw/sdi/drwtxtsh.sdi b/sw/sdi/drwtxtsh.sdi index 58a44d123ddf..0bfb4551ed2e 100644 --- a/sw/sdi/drwtxtsh.sdi +++ b/sw/sdi/drwtxtsh.sdi @@ -443,11 +443,6 @@ interface TextDrawText DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] - SID_STYLE_CATALOG // ole(no) api(play/rec) - [ - StateMethod = StateDisableItems ; - ] - SID_AUTOSPELL_CHECK [ ExecMethod = Execute; diff --git a/sw/uiconfig/sglobal/menubar/menubar.xml b/sw/uiconfig/sglobal/menubar/menubar.xml index 097d9276cfcc..1bd4d644e5d5 100644 --- a/sw/uiconfig/sglobal/menubar/menubar.xml +++ b/sw/uiconfig/sglobal/menubar/menubar.xml @@ -57,13 +57,6 @@ </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:WebHtml"/> <menu:menuseparator/> diff --git a/sw/uiconfig/sweb/menubar/menubar.xml b/sw/uiconfig/sweb/menubar/menubar.xml index 0a5acaf59c91..7d944c601e09 100644 --- a/sw/uiconfig/sweb/menubar/menubar.xml +++ b/sw/uiconfig/sweb/menubar/menubar.xml @@ -45,13 +45,6 @@ </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:WebHtml"/> <menu:menuseparator/> diff --git a/sw/uiconfig/swform/menubar/menubar.xml b/sw/uiconfig/swform/menubar/menubar.xml index 3156da9aaf38..d5be9bf59725 100644 --- a/sw/uiconfig/swform/menubar/menubar.xml +++ b/sw/uiconfig/swform/menubar/menubar.xml @@ -58,14 +58,6 @@ </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:SaveAsTemplate"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:PrintPreview"/> <menu:menuitem menu:id=".uno:Print"/> diff --git a/sw/uiconfig/swreport/menubar/menubar.xml b/sw/uiconfig/swreport/menubar/menubar.xml index 8b6a77f54df0..d3c465f1dd38 100644 --- a/sw/uiconfig/swreport/menubar/menubar.xml +++ b/sw/uiconfig/swreport/menubar/menubar.xml @@ -59,13 +59,6 @@ </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:PrintPreview"/> <menu:menuitem menu:id=".uno:Print"/> diff --git a/sw/uiconfig/swriter/menubar/menubar.xml b/sw/uiconfig/swriter/menubar/menubar.xml index d400377b13de..ebbea60663c4 100644 --- a/sw/uiconfig/swriter/menubar/menubar.xml +++ b/sw/uiconfig/swriter/menubar/menubar.xml @@ -60,13 +60,6 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> <menu:menuitem menu:id=".uno:Signature"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:WebHtml"/> <menu:menuseparator/> diff --git a/sw/uiconfig/swxform/menubar/menubar.xml b/sw/uiconfig/swxform/menubar/menubar.xml index 39f36d54c1ef..5797acdbf4d9 100644 --- a/sw/uiconfig/swxform/menubar/menubar.xml +++ b/sw/uiconfig/swxform/menubar/menubar.xml @@ -60,13 +60,6 @@ <menu:menuseparator/> <menu:menuitem menu:id=".uno:SetDocumentProperties"/> <menu:menuitem menu:id=".uno:Signature"/> - <menu:menu menu:id=".uno:TemplateMenu"> - <menu:menupopup> - <menu:menuitem menu:id=".uno:Organizer"/> - <menu:menuitem menu:id=".uno:AddressBookSource"/> - <menu:menuitem menu:id=".uno:OpenTemplate"/> - </menu:menupopup> - </menu:menu> <menu:menuseparator/> <menu:menuitem menu:id=".uno:PrintPreview"/> <menu:menuitem menu:id=".uno:Print"/> |