Files
libreoffice/sw/source/core/doc/doc.cxx

2601 lines
87 KiB
C++
Raw Normal View History

2000-09-18 23:08:29 +00:00
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2000-09-18 23:08:29 +00:00
*
* Copyright 2008 by Sun Microsystems, Inc.
2000-09-18 23:08:29 +00:00
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: doc.cxx,v $
* $Revision: 1.71 $
2000-09-18 23:08:29 +00:00
*
* This file is part of OpenOffice.org.
2000-09-18 23:08:29 +00:00
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
2000-09-18 23:08:29 +00:00
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
2000-09-18 23:08:29 +00:00
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
2000-09-18 23:08:29 +00:00
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <doc.hxx>
2000-09-18 23:08:29 +00:00
#include <hintids.hxx>
#include <tools/shl.hxx>
#include <tools/globname.hxx>
#include <com/sun/star/i18n/WordType.hdl>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <com/sun/star/i18n/ForbiddenCharacters.hdl>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
#include <com/sun/star/document/XDocumentProperties.hpp>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <comphelper/processfactory.hxx>
2000-09-18 23:08:29 +00:00
#include <tools/urlobj.hxx>
#include <tools/poly.hxx>
2009-07-28 19:03:24 +00:00
#include <tools/multisel.hxx>
2009-08-07 14:42:45 +00:00
#include <rtl/ustring.hxx>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <vcl/virdev.hxx>
#include <svtools/itemiter.hxx>
#include <sfx2/printer.hxx>
2000-09-18 23:08:29 +00:00
#include <svx/keepitem.hxx>
#include <svx/cscoitem.hxx>
#include <svx/brkitem.hxx>
#include <svx/linkmgr.hxx>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <svx/forbiddencharacterstable.hxx>
#include <svx/svdmodel.hxx>
#include <unotools/charclass.hxx>
2009-08-21 06:14:34 +00:00
#include <unotools/localedatawrapper.hxx>
2000-09-18 23:08:29 +00:00
#include <swmodule.hxx>
#include <fmtpdsc.hxx>
#include <fmtanchr.hxx>
#include <fmtrfmrk.hxx>
#include <fmtinfmt.hxx>
#include <fmtfld.hxx>
#include <txtfld.hxx>
#include <dbfld.hxx>
2000-09-18 23:08:29 +00:00
#include <txtinet.hxx>
#include <txtrfmrk.hxx>
#include <frmatr.hxx>
#include <linkenum.hxx>
#include <errhdl.hxx>
#include <pagefrm.hxx>
#include <rootfrm.hxx>
#include <swtable.hxx>
#include <pam.hxx>
#include <ndtxt.hxx>
#include <swundo.hxx> // fuer die UndoIds
#include <undobj.hxx>
#include <pagedesc.hxx> //DTor
#include <breakit.hxx>
2000-09-18 23:08:29 +00:00
#include <ndole.hxx>
#include <ndgrf.hxx>
#include <rolbck.hxx> // Undo-Attr
#include <doctxm.hxx> // fuer die Verzeichnisse
#include <grfatr.hxx>
#include <poolfmt.hxx> // PoolVorlagen-Id's
#include <mvsave.hxx> // fuer Server-Funktionalitaet
#include <SwGrammarMarkUp.hxx>
#include <scriptinfo.hxx>
2000-09-18 23:08:29 +00:00
#include <acorrect.hxx> // Autokorrektur
#include <mdiexp.hxx> // Statusanzeige
#include <docstat.hxx>
#include <docary.hxx>
#include <redline.hxx>
#include <fldupde.hxx>
#include <swbaslnk.hxx>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <printdata.hxx>
#include <swprtopt.hxx>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <cmdid.h> // fuer den dflt - Printer in SetJob
2000-09-18 23:08:29 +00:00
#include <statstr.hrc> // StatLine-String
#include <comcore.hrc>
#include <SwUndoTOXChange.hxx>
#include <SwUndoFmt.hxx>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <unocrsr.hxx>
#include <docsh.hxx>
2009-08-21 06:14:34 +00:00
#include <docfld.hxx> // _SetGetExpFld
#include <docufld.hxx> // SwPostItField
#include <viewsh.hxx>
2009-08-26 17:36:02 +00:00
#include <shellres.hxx>
2009-08-21 06:14:34 +00:00
#include <txtfrm.hxx>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <vector>
2009-08-21 11:30:53 +00:00
#include <map>
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
#include <osl/diagnose.h>
#include <osl/interlck.h>
/* @@@MAINTAINABILITY-HORROR@@@
Probably unwanted dependency on SwDocShell
*/
// --> OD 2005-08-29 #125370#
#include <layouter.hxx>
// <--
using namespace ::com::sun::star;
2009-08-21 06:14:34 +00:00
using ::rtl::OUString;
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
2000-09-18 23:08:29 +00:00
// Seiten-Deskriptoren
SV_IMPL_PTRARR(SwPageDescs,SwPageDescPtr);
// Verzeichnisse
SV_IMPL_PTRARR( SwTOXTypes, SwTOXTypePtr )
// FeldTypen
SV_IMPL_PTRARR( SwFldTypes, SwFldTypePtr)
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
/** IInterface
*/
sal_Int32 SwDoc::acquire()
{
OSL_ASSERT(mReferenceCount >= 0 && "Negative reference count detected! This is a sign for unbalanced acquire/release calls.");
return osl_incrementInterlockedCount(&mReferenceCount);
}
sal_Int32 SwDoc::release()
{
OSL_PRECOND(mReferenceCount >= 1, "Object is already released! Releasing it again leads to a negative reference count.");
return osl_decrementInterlockedCount(&mReferenceCount);
}
sal_Int32 SwDoc::getReferenceCount() const
{
OSL_ASSERT(mReferenceCount >= 0 && "Negative reference count detected! This is a sign for unbalanced acquire/release calls.");
return mReferenceCount;
}
/** IDocumentSettingAccess
*/
bool SwDoc::get(/*[in]*/ DocumentSettingId id) const
{
switch (id)
{
// COMPATIBILITY FLAGS START
case PARA_SPACE_MAX: return mbParaSpaceMax; //(n8Dummy1 & DUMMY_PARASPACEMAX);
case PARA_SPACE_MAX_AT_PAGES: return mbParaSpaceMaxAtPages; //(n8Dummy1 & DUMMY_PARASPACEMAX_AT_PAGES);
case TAB_COMPAT: return mbTabCompat; //(n8Dummy1 & DUMMY_TAB_COMPAT);
case ADD_FLY_OFFSETS: return mbAddFlyOffsets; //(n8Dummy2 & DUMMY_ADD_FLY_OFFSETS);
case ADD_EXT_LEADING: return mbAddExternalLeading; //(n8Dummy2 & DUMMY_ADD_EXTERNAL_LEADING);
case USE_VIRTUAL_DEVICE: return mbUseVirtualDevice; //(n8Dummy1 & DUMMY_USE_VIRTUAL_DEVICE);
case USE_HIRES_VIRTUAL_DEVICE: return mbUseHiResolutionVirtualDevice; //(n8Dummy2 & DUMMY_USE_HIRES_VIR_DEV);
case OLD_NUMBERING: return mbOldNumbering;
case OLD_LINE_SPACING: return mbOldLineSpacing;
case ADD_PARA_SPACING_TO_TABLE_CELLS: return mbAddParaSpacingToTableCells;
case USE_FORMER_OBJECT_POS: return mbUseFormerObjectPos;
case USE_FORMER_TEXT_WRAPPING: return mbUseFormerTextWrapping;
case CONSIDER_WRAP_ON_OBJECT_POSITION: return mbConsiderWrapOnObjPos;
case DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK: return mbDoNotJustifyLinesWithManualBreak;
case IGNORE_FIRST_LINE_INDENT_IN_NUMBERING: return mbIgnoreFirstLineIndentInNumbering;
case OUTLINE_LEVEL_YIELDS_OUTLINE_RULE: return mbOutlineLevelYieldsOutlineRule;
case TABLE_ROW_KEEP: return mbTableRowKeep;
case IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION: return mbIgnoreTabsAndBlanksForLineCalculation;
case DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE: return mbDoNotCaptureDrawObjsOnPage;
// --> OD 2006-08-25 #i68949#
case CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME: return mbClipAsCharacterAnchoredWriterFlyFrames;
// <--
case UNIX_FORCE_ZERO_EXT_LEADING: return mbUnixForceZeroExtLeading;
case USE_OLD_PRINTER_METRICS: return mbOldPrinterMetrics;
case TABS_RELATIVE_TO_INDENT : return mbTabRelativeToIndent;
case PROTECT_FORM: return mbProtectForm;
// --> OD 2008-06-05 #i89181#
case TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST: return mbTabAtLeftIndentForParagraphsInList;
// <--
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
// COMPATIBILITY FLAGS END
case BROWSE_MODE: return mbBrowseMode;
case HTML_MODE: return mbHTMLMode;
case GLOBAL_DOCUMENT: return mbIsGlobalDoc;
case GLOBAL_DOCUMENT_SAVE_LINKS: return mbGlblDocSaveLinks;
case LABEL_DOCUMENT: return mbIsLabelDoc;
case PURGE_OLE: return mbPurgeOLE;
case KERN_ASIAN_PUNCTUATION: return mbKernAsianPunctuation;
case DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT: return mbDoNotResetParaAttrsForNumFont;
default:
ASSERT(false, "Invalid setting id");
}
return false;
}
void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value)
{
switch (id)
{
// COMPATIBILITY FLAGS START
case PARA_SPACE_MAX:
mbParaSpaceMax = value;
break;
case PARA_SPACE_MAX_AT_PAGES:
mbParaSpaceMaxAtPages = value;
break;
case TAB_COMPAT:
mbTabCompat = value;
break;
case ADD_FLY_OFFSETS:
mbAddFlyOffsets = value;
break;
case ADD_EXT_LEADING:
mbAddExternalLeading = value;
break;
case USE_VIRTUAL_DEVICE:
mbUseVirtualDevice = value;
break;
case USE_HIRES_VIRTUAL_DEVICE:
mbUseHiResolutionVirtualDevice = value;
break;
case OLD_NUMBERING:
if (mbOldNumbering != value)
{
mbOldNumbering = value;
const SwNumRuleTbl& rNmTbl = GetNumRuleTbl();
for( USHORT n = 0; n < rNmTbl.Count(); ++n )
rNmTbl[n]->SetInvalidRule(TRUE);
UpdateNumRule();
if (pOutlineRule)
{
pOutlineRule->Validate();
// --> OD 2005-10-21 - counting of phantoms depends on <IsOldNumbering()>
pOutlineRule->SetCountPhantoms( !mbOldNumbering );
// <--
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
}
break;
case OLD_LINE_SPACING:
mbOldLineSpacing = value;
break;
case ADD_PARA_SPACING_TO_TABLE_CELLS:
mbAddParaSpacingToTableCells = value;
break;
case USE_FORMER_OBJECT_POS:
mbUseFormerObjectPos = value;
break;
case USE_FORMER_TEXT_WRAPPING:
mbUseFormerTextWrapping = value;
break;
case CONSIDER_WRAP_ON_OBJECT_POSITION:
mbConsiderWrapOnObjPos = value;
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
break;
case DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK:
mbDoNotJustifyLinesWithManualBreak = value;
break;
case IGNORE_FIRST_LINE_INDENT_IN_NUMBERING:
mbIgnoreFirstLineIndentInNumbering = value;
break;
case OUTLINE_LEVEL_YIELDS_OUTLINE_RULE:
mbOutlineLevelYieldsOutlineRule = value;
break;
case TABLE_ROW_KEEP:
mbTableRowKeep = value;
break;
case IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION:
mbIgnoreTabsAndBlanksForLineCalculation = value;
break;
case DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE:
mbDoNotCaptureDrawObjsOnPage = value;
break;
// --> OD 2006-08-25 #i68949#
case CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME:
mbClipAsCharacterAnchoredWriterFlyFrames = value;
break;
// <--
case UNIX_FORCE_ZERO_EXT_LEADING:
mbUnixForceZeroExtLeading = value;
break;
case PROTECT_FORM:
mbProtectForm = value;
break;
case USE_OLD_PRINTER_METRICS:
mbOldPrinterMetrics = value;
break;
case TABS_RELATIVE_TO_INDENT:
mbTabRelativeToIndent = value;
break;
// --> OD 2008-06-05 #i89181#
case TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST:
mbTabAtLeftIndentForParagraphsInList = value;
break;
// <--
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
// COMPATIBILITY FLAGS END
case BROWSE_MODE:
mbBrowseMode = value;
break;
case HTML_MODE:
mbHTMLMode = value;
break;
case GLOBAL_DOCUMENT:
mbIsGlobalDoc = value;
break;
case GLOBAL_DOCUMENT_SAVE_LINKS:
mbGlblDocSaveLinks = value;
break;
case LABEL_DOCUMENT:
mbIsLabelDoc = value;
break;
case PURGE_OLE:
mbPurgeOLE = value;
break;
case KERN_ASIAN_PUNCTUATION:
mbKernAsianPunctuation = value;
break;
case DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT:
mbDoNotResetParaAttrsForNumFont = value;
break;
default:
ASSERT(false, "Invalid setting id");
}
}
const i18n::ForbiddenCharacters*
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
SwDoc::getForbiddenCharacters(/*[in]*/ USHORT nLang, /*[in]*/ bool bLocaleData ) const
{
const i18n::ForbiddenCharacters* pRet = 0;
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
if( xForbiddenCharsTable.isValid() )
pRet = xForbiddenCharsTable->GetForbiddenCharacters( nLang, FALSE );
if( bLocaleData && !pRet && pBreakIt )
pRet = &pBreakIt->GetForbidden( (LanguageType)nLang );
return pRet;
}
void SwDoc::setForbiddenCharacters(/*[in]*/ USHORT nLang,
/*[in]*/ const i18n::ForbiddenCharacters& rFChars )
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
{
if( !xForbiddenCharsTable.isValid() )
{
uno::Reference<
lang::XMultiServiceFactory > xMSF =
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
::comphelper::getProcessServiceFactory();
xForbiddenCharsTable = new SvxForbiddenCharactersTable( xMSF );
}
xForbiddenCharsTable->SetForbiddenCharacters( nLang, rFChars );
if( pDrawModel )
{
pDrawModel->SetForbiddenCharsTable( xForbiddenCharsTable );
if( !mbInReading )
pDrawModel->ReformatAllTextObjects();
}
if( pLayout && !mbInReading )
{
pLayout->StartAllAction();
pLayout->InvalidateAllCntnt();
pLayout->EndAllAction();
}
SetModified();
}
vos::ORef<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable()
{
if( !xForbiddenCharsTable.isValid() )
{
uno::Reference<
lang::XMultiServiceFactory > xMSF =
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
::comphelper::getProcessServiceFactory();
xForbiddenCharsTable = new SvxForbiddenCharactersTable( xMSF );
}
return xForbiddenCharsTable;
}
const vos::ORef<SvxForbiddenCharactersTable>& SwDoc::getForbiddenCharacterTable() const
{
return xForbiddenCharsTable;
}
sal_uInt16 SwDoc::getLinkUpdateMode( /*[in]*/bool bGlobalSettings ) const
{
sal_uInt16 nRet = nLinkUpdMode;
if( bGlobalSettings && GLOBALSETTING == nRet )
nRet = SW_MOD()->GetLinkUpdMode(get(IDocumentSettingAccess::HTML_MODE));
return nRet;
}
void SwDoc::setLinkUpdateMode( /*[in]*/sal_uInt16 eMode )
{
nLinkUpdMode = eMode;
}
SwFldUpdateFlags SwDoc::getFieldUpdateFlags( /*[in]*/bool bGlobalSettings ) const
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
{
SwFldUpdateFlags eRet = eFldUpdMode;
if( bGlobalSettings && AUTOUPD_GLOBALSETTING == eRet )
eRet = SW_MOD()->GetFldUpdateFlags(get(IDocumentSettingAccess::HTML_MODE));
return eRet;
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
}
void SwDoc::setFieldUpdateFlags(/*[in]*/SwFldUpdateFlags eMode )
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
{
eFldUpdMode = eMode;
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
}
SwCharCompressType SwDoc::getCharacterCompressionType() const
{
return eChrCmprType;
}
void SwDoc::setCharacterCompressionType( /*[in]*/SwCharCompressType n )
{
if( eChrCmprType != n )
{
eChrCmprType = n;
if( pDrawModel )
{
pDrawModel->SetCharCompressType( static_cast<UINT16>(n) );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
if( !mbInReading )
pDrawModel->ReformatAllTextObjects();
}
if( pLayout && !mbInReading )
{
pLayout->StartAllAction();
pLayout->InvalidateAllCntnt();
pLayout->EndAllAction();
}
SetModified();
}
}
/** IDocumentDeviceAccess
*/
SfxPrinter* SwDoc::getPrinter(/*[in]*/ bool bCreate ) const
{
SfxPrinter* pRet = 0;
if ( !bCreate || pPrt )
pRet = pPrt;
else
pRet = &CreatePrinter_();
return pRet;
}
void SwDoc::setPrinter(/*[in]*/ SfxPrinter *pP,/*[in]*/ bool bDeleteOld,/*[in]*/ bool bCallPrtDataChanged )
{
if ( pP != pPrt )
{
if ( bDeleteOld )
delete pPrt;
pPrt = pP;
}
if ( bCallPrtDataChanged &&
// --> FME 2005-01-21 #i41075# Do not call PrtDataChanged() if we do not
// use the printer for formatting:
!get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
// <--
PrtDataChanged();
}
VirtualDevice* SwDoc::getVirtualDevice(/*[in]*/ bool bCreate ) const
{
VirtualDevice* pRet = 0;
if ( !bCreate || pVirDev )
pRet = pVirDev;
else
pRet = &CreateVirtualDevice_();
return pRet;
}
void SwDoc::setVirtualDevice(/*[in]*/ VirtualDevice* pVd,/*[in]*/ bool bDeleteOld, /*[in]*/ bool )
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
{
if ( pVirDev != pVd )
{
if ( bDeleteOld )
delete pVirDev;
pVirDev = pVd;
}
}
OutputDevice* SwDoc::getReferenceDevice(/*[in]*/ bool bCreate ) const
{
OutputDevice* pRet = 0;
if ( !get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
{
pRet = getPrinter( bCreate );
if ( bCreate && !pPrt->IsValid() )
{
pRet = getVirtualDevice( sal_True );
}
}
else
{
pRet = getVirtualDevice( bCreate );
}
return pRet;
}
void SwDoc::setReferenceDeviceType(/*[in]*/ bool bNewVirtual,/*[in]*/ bool bNewHiRes )
{
if ( get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) != bNewVirtual ||
get(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE) != bNewHiRes )
{
if ( bNewVirtual )
{
VirtualDevice* pMyVirDev = getVirtualDevice( true );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
if ( !bNewHiRes )
pMyVirDev->SetReferenceDevice( VirtualDevice::REFDEV_MODE06 );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
else
pMyVirDev->SetReferenceDevice( VirtualDevice::REFDEV_MODE_MSO1 );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
}
else
{
// --> FME 2005-01-21 #i41075#
// We have to take care that a printer exists before calling
// PrtDataChanged() in order to prevent that PrtDataChanged()
// triggers this funny situation:
// getReferenceDevice()->getPrinter()->CreatePrinter_()
// ->setPrinter()-> PrtDataChanged()
getPrinter( true );
// <--
}
set(IDocumentSettingAccess::USE_VIRTUAL_DEVICE, bNewVirtual );
set(IDocumentSettingAccess::USE_HIRES_VIRTUAL_DEVICE, bNewHiRes );
PrtDataChanged();
SetModified();
}
}
const JobSetup* SwDoc::getJobsetup() const
{
return pPrt ? &pPrt->GetJobSetup() : 0;
}
void SwDoc::setJobsetup(/*[in]*/ const JobSetup &rJobSetup )
{
BOOL bCheckPageDescs = 0 == pPrt;
BOOL bDataChanged = FALSE;
if ( pPrt )
{
if ( pPrt->GetName() == rJobSetup.GetPrinterName() )
{
if ( pPrt->GetJobSetup() != rJobSetup )
{
pPrt->SetJobSetup( rJobSetup );
bDataChanged = TRUE;
}
}
else
delete pPrt, pPrt = 0;
}
if( !pPrt )
{
//Das ItemSet wird vom Sfx geloescht!
CWS-TOOLING: integrate CWS aw063 2009-02-12 13:10:24 +0100 aw r267649 : #i99123# when a primitive is invisible, it is not sufficient to produce no output when decomposing, but to add invisible data using HitTestPrimitive2D. This is needed for the slideshow which relies on geometry data in MetaFiles when painting invisible objects 2009-02-12 13:08:39 +0100 aw r267648 : #i99123# do not ignore HitTestPrimitive2D, but draw empty rectangles instead. This is needed since Slideshow is based on getting MetaFile content when painting invisible objects 2009-02-11 16:04:28 +0100 aw r267620 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:04:10 +0100 aw r267619 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:03:56 +0100 aw r267618 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:03:39 +0100 aw r267617 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:03:21 +0100 aw r267615 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:02:48 +0100 aw r267614 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:02:24 +0100 aw r267613 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:02:01 +0100 aw r267612 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:01:32 +0100 aw r267611 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:01:05 +0100 aw r267610 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 16:00:15 +0100 aw r267608 : #i98788# made SfxItemPool destructor protected, added static ::Free method 2009-02-11 11:27:33 +0100 aw r267585 : #i98788# added missing include for STL 2009-02-10 17:46:50 +0100 aw r267570 : #i98788# added reaction on pool destruction 2009-02-10 17:11:58 +0100 aw r267562 : #i98788# added messaging mechanism to register for pool destruction 2009-02-10 13:35:35 +0100 aw r267549 : #i98788# removing changes, too complicated and risky for 3.1 2009-02-10 12:13:48 +0100 aw r267546 : #i98788# 4th round 2009-02-10 12:13:37 +0100 aw r267545 : #i98788# 4th round 2009-02-10 12:13:26 +0100 aw r267544 : #i98788# 4th round 2009-02-10 12:13:14 +0100 aw r267543 : #i98788# 4th round 2009-02-10 12:13:03 +0100 aw r267542 : #i98788# 4th round 2009-02-10 12:12:50 +0100 aw r267541 : #i98788# 4th round 2009-02-10 12:12:37 +0100 aw r267540 : #i98788# 4th round 2009-02-08 14:38:22 +0100 aw r267495 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:38:06 +0100 aw r267494 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:37:48 +0100 aw r267493 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:37:17 +0100 aw r267492 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:36:56 +0100 aw r267491 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:36:44 +0100 aw r267490 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:36:29 +0100 aw r267489 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:36:16 +0100 aw r267488 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:36:02 +0100 aw r267487 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-08 14:35:46 +0100 aw r267486 : #i98788# 3rd round of changes to SfxItemPool handling 2009-02-05 12:20:39 +0100 aw r267415 : #i98788# 2nd batch of adaptions for SfxItemPoolHolder addition 2009-02-04 15:12:54 +0100 aw r267385 : #i98788# added newline at EOF 2009-02-04 13:26:04 +0100 aw r267379 : #i98788# make SfxItemPool holdable 2009-02-04 13:25:40 +0100 aw r267378 : #i98788# make SfxItemPool holdable 2009-02-04 13:25:08 +0100 aw r267377 : #i98788# make SfxItemPool holdable 2009-02-04 13:24:42 +0100 aw r267376 : #i98788# make SfxItemPool holdable 2009-02-04 13:23:14 +0100 aw r267375 : #i98788# make SfxItemPool holdable 2009-02-04 13:23:02 +0100 aw r267374 : #i98788# make SfxItemPool holdable 2009-01-29 17:08:31 +0100 aw r267159 : #i97628# completed the fix 2009-01-29 17:08:15 +0100 aw r267158 : #i97628# completed the fix 2009-01-29 14:09:07 +0100 aw r267132 : #i97628# Corrected usage of ParagraphData in headers 2009-01-29 14:06:58 +0100 iha r267131 : #i98344# incorrect font size in charts 2009-01-29 12:13:46 +0100 aw r267115 : #i97628# back to old state; triggers too many errors in other modules 2009-01-29 12:03:51 +0100 aw r267114 : #i97628# enabled exceptions due to STL vector include 2009-01-29 11:21:37 +0100 aw r267107 : #i97628# added needed include 2009-01-28 17:58:29 +0100 aw r267077 : #i97628# first version of newly implemented OutlinerParaObject and adaptions 2009-01-28 17:58:12 +0100 aw r267076 : #i97628# first version of newly implemented OutlinerParaObject and adaptions 2009-01-28 17:57:51 +0100 aw r267074 : #i97628# first version of newly implemented OutlinerParaObject and adaptions 2009-01-28 17:57:21 +0100 aw r267073 : #i97628# first version of newly implemented OutlinerParaObject and adaptions 2009-01-27 17:07:33 +0100 aw r267011 : #i98402# added support for ViewRange when exporting MetaFiles in ObjectContactOfPageView::DoProcessDisplay to avoid to paint too much 2009-01-27 11:45:48 +0100 aw r266973 : #i98404# Added a warning to a place where a conversion to rectangle should not be copied from 2009-01-26 21:44:36 +0100 iha r266949 : #i98497# 3D charts are rendered with wrong size 2009-01-26 20:47:07 +0100 aw r266947 : #i98404# handle BackgroundColorPrimitive2D directly in PixelRenderers and avoid AA under all circumstances 2009-01-26 14:50:36 +0100 aw r266926 : #i98386# secured cloning of SdrObject in IMapUserData by boost::shared_prt usage 2009-01-26 12:51:30 +0100 aw r266916 : #i96581# added separated FontStretching and fallback for small X!=Y scale differences 2009-01-23 16:14:55 +0100 aw r266834 : #i96475# added missing implementation of TextDecoratedPortionPrimitive2D::getB2DRange 2009-01-23 15:24:34 +0100 aw r266826 : #i98405# fixed fallback to DrawAlphaRect to use the correctly sized rectangle 2009-01-23 13:34:43 +0100 aw r266813 : #i96474# fixed impSplitSingleWords for an unexpected case 2009-01-23 10:47:31 +0100 aw r266786 : #i98289#,#i96474# tooling and new flags for tasks 2009-01-23 10:47:20 +0100 aw r266785 : #i98289#,#i96474# tooling and new flags for tasks 2009-01-23 10:47:09 +0100 aw r266783 : #i98289#,#i96474# tooling and new flags for tasks 2009-01-23 10:46:58 +0100 aw r266782 : #i98289#,#i96474# tooling and new flags for tasks 2009-01-23 10:46:48 +0100 aw r266781 : #i98289#,#i96474# tooling and new flags for tasks
2009-03-04 14:16:02 +00:00
SfxItemSet *pSet = new SfxItemSet( GetAttrPool(),
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
FN_PARAM_ADDPRINTER, FN_PARAM_ADDPRINTER,
SID_HTML_MODE, SID_HTML_MODE,
SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN,
SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC,
0 );
SfxPrinter *p = new SfxPrinter( pSet, rJobSetup );
if ( bCheckPageDescs )
setPrinter( p, true, true );
else
{
pPrt = p;
bDataChanged = TRUE;
}
}
if ( bDataChanged && !get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) )
PrtDataChanged();
}
SwPrintData* SwDoc::getPrintData() const
{
return pPrtData;
}
void SwDoc::setPrintData(/*[in]*/ const SwPrintData& rPrtData )
{
if(!pPrtData)
pPrtData = new SwPrintData;
*pPrtData = rPrtData;
}
/** Implementations the next Interface here
*/
2000-09-18 23:08:29 +00:00
/*
* Dokumenteditieren (Doc-SS) zum Fuellen des Dokuments
* durch den RTF Parser und fuer die EditShell.
*/
void SwDoc::ChgDBData(const SwDBData& rNewData)
2000-09-18 23:08:29 +00:00
{
if( rNewData != aDBData )
2000-09-18 23:08:29 +00:00
{
aDBData = rNewData;
2000-09-18 23:08:29 +00:00
SetModified();
}
GetSysFldType(RES_DBNAMEFLD)->UpdateFlds();
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
bool SwDoc::SplitNode( const SwPosition &rPos, bool bChkTableStart )
2000-09-18 23:08:29 +00:00
{
SwCntntNode *pNode = rPos.nNode.GetNode().GetCntntNode();
if(0 == pNode)
return FALSE;
{
// Bug 26675: DataChanged vorm loeschen verschicken, dann bekommt
// man noch mit, welche Objecte sich im Bereich befinden.
// Danach koennen sie vor/hinter der Position befinden.
SwDataChanged aTmp( this, rPos, 0 );
}
SwUndoSplitNode* pUndo = 0;
if ( DoesUndo() )
{
ClearRedo();
// einfuegen vom Undo-Object, z.Z. nur beim TextNode
if( pNode->IsTxtNode() )
AppendUndo( pUndo = new SwUndoSplitNode( this, rPos, bChkTableStart ));
}
//JP 28.01.97: Sonderfall fuer SplitNode am Tabellenanfang:
// steht die am Doc/Fly/Footer/..-Anfang oder direkt
// hinter einer Tabelle, dann fuege davor
// einen Absatz ein
if( bChkTableStart && !rPos.nContent.GetIndex() && pNode->IsTxtNode() )
{
ULONG nPrevPos = rPos.nNode.GetIndex() - 1;
const SwTableNode* pTblNd;
const SwNode* pNd = GetNodes()[ nPrevPos ];
if( pNd->IsStartNode() &&
SwTableBoxStartNode == ((SwStartNode*)pNd)->GetStartNodeType() &&
0 != ( pTblNd = GetNodes()[ --nPrevPos ]->GetTableNode() ) &&
((( pNd = GetNodes()[ --nPrevPos ])->IsStartNode() &&
SwTableBoxStartNode != ((SwStartNode*)pNd)->GetStartNodeType() )
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
|| ( pNd->IsEndNode() && pNd->StartOfSectionNode()->IsTableNode() )
2000-09-18 23:08:29 +00:00
|| pNd->IsCntntNode() ))
{
if( pNd->IsCntntNode() )
{
//JP 30.04.99 Bug 65660:
// ausserhalb des normalen BodyBereiches gibt es keine
// Seitenumbrueche, also ist das hier kein gueltige
// Bedingung fuers einfuegen eines Absatzes
if( nPrevPos < GetNodes().GetEndOfExtras().GetIndex() )
pNd = 0;
else
{
// Dann nur, wenn die Tabelle Umbrueche traegt!
const SwFrmFmt* pFrmFmt = pTblNd->GetTable().GetFrmFmt();
if( SFX_ITEM_SET != pFrmFmt->GetItemState(RES_PAGEDESC, FALSE) &&
SFX_ITEM_SET != pFrmFmt->GetItemState( RES_BREAK, FALSE ) )
pNd = 0;
}
}
if( pNd )
{
SwTxtNode* pTxtNd = GetNodes().MakeTxtNode(
SwNodeIndex( *pTblNd ),
GetTxtCollFromPool( RES_POOLCOLL_TEXT ));
if( pTxtNd )
{
((SwPosition&)rPos).nNode = pTblNd->GetIndex()-1;
((SwPosition&)rPos).nContent.Assign( pTxtNd, 0 );
// nur im BodyBereich den SeitenUmbruch/-Vorlage umhaengem
if( nPrevPos > GetNodes().GetEndOfExtras().GetIndex() )
{
SwFrmFmt* pFrmFmt = pTblNd->GetTable().GetFrmFmt();
const SfxPoolItem *pItem;
if( SFX_ITEM_SET == pFrmFmt->GetItemState( RES_PAGEDESC,
FALSE, &pItem ) )
{
pTxtNd->SetAttr( *pItem );
pFrmFmt->ResetFmtAttr( RES_PAGEDESC );
2000-09-18 23:08:29 +00:00
}
if( SFX_ITEM_SET == pFrmFmt->GetItemState( RES_BREAK,
FALSE, &pItem ) )
{
pTxtNd->SetAttr( *pItem );
pFrmFmt->ResetFmtAttr( RES_BREAK );
2000-09-18 23:08:29 +00:00
}
}
if( pUndo )
pUndo->SetTblFlag();
SetModified();
return TRUE;
}
}
}
}
SvULongs aBkmkArr( 15, 15 );
_SaveCntntIdx( this, rPos.nNode.GetIndex(), rPos.nContent.GetIndex(),
aBkmkArr, SAVEFLY_SPLIT );
if( 0 != ( pNode = pNode->SplitCntntNode( rPos ) ))
2000-09-18 23:08:29 +00:00
{
// verschiebe noch alle Bookmarks/TOXMarks/FlyAtCnt
if( aBkmkArr.Count() )
_RestoreCntntIdx( this, aBkmkArr, rPos.nNode.GetIndex()-1, 0, TRUE );
if( IsRedlineOn() || (!IsIgnoreRedline() && pRedlineTbl->Count() ))
{
SwPaM aPam( rPos );
aPam.SetMark();
aPam.Move( fnMoveBackward );
if( IsRedlineOn() )
AppendRedline( new SwRedline( nsRedlineType_t::REDLINE_INSERT, aPam ), true);
2000-09-18 23:08:29 +00:00
else
SplitRedline( aPam );
}
}
SetModified();
return TRUE;
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
bool SwDoc::AppendTxtNode( SwPosition& rPos )
2000-09-18 23:08:29 +00:00
{
/*
* Neuen Node vor EndOfContent erzeugen.
*/
SwTxtNode *pCurNode = GetNodes()[ rPos.nNode ]->GetTxtNode();
if( !pCurNode )
{
// dann kann ja einer angelegt werden!
SwNodeIndex aIdx( rPos.nNode, 1 );
pCurNode = GetNodes().MakeTxtNode( aIdx,
GetTxtCollFromPool( RES_POOLCOLL_STANDARD ));
}
else
pCurNode = (SwTxtNode*)pCurNode->AppendNode( rPos );
rPos.nNode++;
rPos.nContent.Assign( pCurNode, 0 );
if( DoesUndo() )
{
ClearRedo();
AppendUndo( new SwUndoInsert( rPos.nNode ));
}
if( IsRedlineOn() || (!IsIgnoreRedline() && pRedlineTbl->Count() ))
{
SwPaM aPam( rPos );
aPam.SetMark();
aPam.Move( fnMoveBackward );
if( IsRedlineOn() )
AppendRedline( new SwRedline( nsRedlineType_t::REDLINE_INSERT, aPam ), true);
2000-09-18 23:08:29 +00:00
else
SplitRedline( aPam );
}
SetModified();
return TRUE;
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
bool SwDoc::Insert( const SwPaM &rRg, const String &rStr, bool bHintExpand )
2000-09-18 23:08:29 +00:00
{
if( DoesUndo() )
ClearRedo();
const SwPosition* pPos = rRg.GetPoint();
if( pACEWord ) // Aufnahme in die Autokorrektur
{
if( 1 == rStr.Len() && pACEWord->IsDeleted() )
pACEWord->CheckChar( *pPos, rStr.GetChar( 0 ) );
delete pACEWord, pACEWord = 0;
}
SwTxtNode *pNode = pPos->nNode.GetNode().GetTxtNode();
if(!pNode)
return FALSE;
const USHORT nInsMode = bHintExpand ? INS_EMPTYEXPAND
: INS_NOHINTEXPAND;
SwDataChanged aTmp( rRg, 0 );
if( !DoesUndo() || !DoesGroupUndo() )
{
pNode->Insert( rStr, pPos->nContent, nInsMode );
if( DoesUndo() )
AppendUndo( new SwUndoInsert( pPos->nNode,
pPos->nContent.GetIndex(), rStr.Len() ));
}
else
{ // ist Undo und Gruppierung eingeschaltet, ist alles anders !
USHORT nUndoSize = pUndos->Count();
xub_StrLen nInsPos = pPos->nContent.GetIndex();
SwUndoInsert * pUndo = NULL; // #111827#
CharClass& rCC = GetAppCharClass();
// -> #111827#
bool bNewUndo = false;
if( 0 == nUndoSize)
bNewUndo = true;
else
{
pUndo = (SwUndoInsert*)(*pUndos)[ --nUndoSize ];
switch (pUndo->GetId())
{
case UNDO_INSERT:
case UNDO_TYPING:
bNewUndo = !pUndo->CanGrouping( *pPos );
break;
default:
bNewUndo = true;
}
}
// <- #111827#
if (bNewUndo)
2000-09-18 23:08:29 +00:00
{
pUndo = new SwUndoInsert( pPos->nNode, nInsPos, 0,
!rCC.isLetterNumeric( rStr, 0 ) );
2000-09-18 23:08:29 +00:00
AppendUndo( pUndo );
}
pNode->Insert( rStr, pPos->nContent, nInsMode );
2000-09-18 23:08:29 +00:00
for( xub_StrLen i = 0; i < rStr.Len(); ++i )
{
nInsPos++;
// wenn CanGrouping() TRUE returnt, ist schon alles erledigt
if( !pUndo->CanGrouping( rStr.GetChar( i ) ))
{
pUndo = new SwUndoInsert( pPos->nNode, nInsPos, 1,
!rCC.isLetterNumeric( rStr, i ) );
2000-09-18 23:08:29 +00:00
AppendUndo( pUndo );
}
}
}
if( IsRedlineOn() || (!IsIgnoreRedline() && pRedlineTbl->Count() ))
{
SwPaM aPam( pPos->nNode, aTmp.GetCntnt(),
pPos->nNode, pPos->nContent.GetIndex());
if( IsRedlineOn() )
AppendRedline( new SwRedline( nsRedlineType_t::REDLINE_INSERT, aPam ), true);
2000-09-18 23:08:29 +00:00
else
SplitRedline( aPam );
}
SetModified();
return TRUE;
}
SwFlyFrmFmt* SwDoc::_InsNoTxtNode( const SwPosition& rPos, SwNoTxtNode* pNode,
const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet,
SwFrmFmt* pFrmFmt)
{
SwFlyFrmFmt *pFmt = 0;
if( pNode )
{
pFmt = _MakeFlySection( rPos, *pNode, FLY_AT_CNTNT,
pFlyAttrSet, pFrmFmt );
if( pGrfAttrSet )
pNode->SetAttr( *pGrfAttrSet );
}
return pFmt;
}
SwFlyFrmFmt* SwDoc::Insert( const SwPaM &rRg,
const String& rGrfName,
const String& rFltName,
const Graphic* pGraphic,
const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet,
SwFrmFmt* pFrmFmt )
{
if( !pFrmFmt )
pFrmFmt = GetFrmFmtFromPool( RES_POOLFRM_GRAPHIC );
return _InsNoTxtNode( *rRg.GetPoint(), GetNodes().MakeGrfNode(
SwNodeIndex( GetNodes().GetEndOfAutotext() ),
rGrfName, rFltName, pGraphic,
pDfltGrfFmtColl ),
pFlyAttrSet, pGrfAttrSet, pFrmFmt );
}
SwFlyFrmFmt* SwDoc::Insert( const SwPaM &rRg, const GraphicObject& rGrfObj,
const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet,
SwFrmFmt* pFrmFmt )
{
if( !pFrmFmt )
pFrmFmt = GetFrmFmtFromPool( RES_POOLFRM_GRAPHIC );
return _InsNoTxtNode( *rRg.GetPoint(), GetNodes().MakeGrfNode(
SwNodeIndex( GetNodes().GetEndOfAutotext() ),
rGrfObj, pDfltGrfFmtColl ),
pFlyAttrSet, pGrfAttrSet, pFrmFmt );
}
2000-09-18 23:08:29 +00:00
SwFlyFrmFmt* SwDoc::Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj,
2000-09-18 23:08:29 +00:00
const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet,
SwFrmFmt* pFrmFmt )
{
if( !pFrmFmt )
{
USHORT nId = RES_POOLFRM_OLE;
SvGlobalName aClassName( xObj->getClassID() );
if (SotExchange::IsMath(aClassName))
2000-09-18 23:08:29 +00:00
nId = RES_POOLFRM_FORMEL;
pFrmFmt = GetFrmFmtFromPool( nId );
}
return _InsNoTxtNode( *rRg.GetPoint(), GetNodes().MakeOLENode(
SwNodeIndex( GetNodes().GetEndOfAutotext() ),
xObj,
2000-09-18 23:08:29 +00:00
pDfltGrfFmtColl ),
pFlyAttrSet, pGrfAttrSet,
pFrmFmt );
}
SwFlyFrmFmt* SwDoc::InsertOLE(const SwPaM &rRg, const String& rObjName,
sal_Int64 nAspect,
2000-11-27 14:38:15 +00:00
const SfxItemSet* pFlyAttrSet,
const SfxItemSet* pGrfAttrSet,
SwFrmFmt* pFrmFmt )
{
if( !pFrmFmt )
pFrmFmt = GetFrmFmtFromPool( RES_POOLFRM_OLE );
return _InsNoTxtNode( *rRg.GetPoint(),
GetNodes().MakeOLENode(
SwNodeIndex( GetNodes().GetEndOfAutotext() ),
rObjName,
nAspect,
pDfltGrfFmtColl,
0 ),
2000-11-27 14:38:15 +00:00
pFlyAttrSet, pGrfAttrSet,
pFrmFmt );
}
2000-09-18 23:08:29 +00:00
/*************************************************************************
|* SwDoc::GetFldType()
|* Beschreibung: liefert den am Doc eingerichteten Feldtypen zurueck
*************************************************************************/
SwFieldType *SwDoc::GetSysFldType( const USHORT eWhich ) const
{
for( USHORT i = 0; i < INIT_FLDTYPES; ++i )
2000-09-18 23:08:29 +00:00
if( eWhich == (*pFldTypes)[i]->Which() )
return (*pFldTypes)[i];
return 0;
}
/*************************************************************************
* void SetDocStat( const SwDocStat& rStat );
*************************************************************************/
void SwDoc::SetDocStat( const SwDocStat& rStat )
{
*pDocStat = rStat;
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
const SwDocStat& SwDoc::GetDocStat() const
{
return *pDocStat;
}
2009-08-21 06:14:34 +00:00
/*************************************************************************/
struct _PostItFld : public _SetGetExpFld
{
_PostItFld( const SwNodeIndex& rNdIdx, const SwTxtFld* pFld, const SwIndex* pIdx = 0 )
: _SetGetExpFld( rNdIdx, pFld, pIdx ) {}
USHORT GetPageNo( const StringRangeEnumerator &rRangeEnum,
const std::set< sal_Int32 > &rPossiblePages,
BOOL bRgt, BOOL bLft,
USHORT& rVirtPgNo, USHORT& rLineNo );
SwPostItField* GetPostIt() const
{
return (SwPostItField*) GetFld()->GetFld().GetFld();
}
};
USHORT _PostItFld::GetPageNo(
const StringRangeEnumerator &rRangeEnum,
const std::set< sal_Int32 > &rPossiblePages,
BOOL bRgt, BOOL bLft, /* TLPDF both should not be needed since rMulti should only include the correct pages as stored in GetValidPagesSet */
/* out */ USHORT& rVirtPgNo, /* out */ USHORT& rLineNo )
{
//Problem: Wenn ein PostItFld in einem Node steht, der von mehr als
//einer Layout-Instanz repraesentiert wird, steht die Frage im Raum,
//ob das PostIt nur ein- oder n-mal gedruck werden soll.
//Wahrscheinlich nur einmal, als Seitennummer soll hier keine Zufaellige
//sondern die des ersten Auftretens des PostIts innerhalb des selektierten
//Bereichs ermittelt werden.
rVirtPgNo = 0;
USHORT nPos = GetCntnt();
SwClientIter aIter( (SwModify &)GetFld()->GetTxtNode() );
for( SwTxtFrm* pFrm = (SwTxtFrm*)aIter.First( TYPE( SwFrm ));
pFrm; pFrm = (SwTxtFrm*)aIter.Next() )
{
if( pFrm->GetOfst() > nPos ||
(pFrm->HasFollow() && pFrm->GetFollow()->GetOfst() <= nPos) )
continue;
USHORT nPgNo = pFrm->GetPhyPageNum();
BOOL bRight = pFrm->OnRightPage();
if( rRangeEnum.hasValue( nPgNo, &rPossiblePages ) &&
( (bRight && bRgt) || (!bRight && bLft) ) )
{
rLineNo = (USHORT)(pFrm->GetLineCount( nPos ) +
pFrm->GetAllLines() - pFrm->GetThisLines());
rVirtPgNo = pFrm->GetVirtPageNum();
return nPgNo;
}
}
return 0;
}
void lcl_GetPostIts(
IDocumentFieldsAccess* pIDFA,
_SetGetExpFlds& rSrtLst )
{
SwFieldType* pFldType = pIDFA->GetSysFldType( RES_POSTITFLD );
DBG_ASSERT( pFldType, "kein PostItType ? ");
if( pFldType->GetDepends() )
{
// Modify-Object gefunden, trage alle Felder ins Array ein
SwClientIter aIter( *pFldType );
SwClient* pLast;
const SwTxtFld* pTxtFld;
for( pLast = aIter.First( TYPE(SwFmtFld)); pLast; pLast = aIter.Next() )
if( 0 != ( pTxtFld = ((SwFmtFld*)pLast)->GetTxtFld() ) &&
pTxtFld->GetTxtNode().GetNodes().IsDocNodes() )
{
SwNodeIndex aIdx( pTxtFld->GetTxtNode() );
_PostItFld* pNew = new _PostItFld( aIdx, pTxtFld );
rSrtLst.Insert( pNew );
}
}
}
static void lcl_FormatPostIt(
IDocumentContentOperations* pIDCO,
SwPaM& aPam,
SwPostItField* pField,
2009-08-21 11:30:53 +00:00
bool bNewPage, bool bIsFirstPostIt,
2009-08-21 06:14:34 +00:00
USHORT nPageNo, USHORT nLineNo )
{
static char __READONLY_DATA sTmp[] = " : ";
DBG_ASSERT( ViewShell::GetShellRes(), "missing ShellRes" );
2009-08-21 11:30:53 +00:00
if (bNewPage)
2009-08-21 13:32:05 +00:00
{
pIDCO->Insert( aPam, SvxFmtBreakItem( SVX_BREAK_PAGE_AFTER, RES_BREAK ), 0 );
pIDCO->SplitNode( *aPam.GetPoint(), false );
}
2009-08-21 11:30:53 +00:00
else if (!bIsFirstPostIt)
{
// add an empty line between different notes
pIDCO->SplitNode( *aPam.GetPoint(), false );
pIDCO->SplitNode( *aPam.GetPoint(), false );
}
String aStr( ViewShell::GetShellRes()->aPostItPage );
2009-08-21 06:14:34 +00:00
aStr.AppendAscii(sTmp);
aStr += XubString::CreateFromInt32( nPageNo );
aStr += ' ';
if( nLineNo )
{
aStr += ViewShell::GetShellRes()->aPostItLine;
aStr.AppendAscii(sTmp);
aStr += XubString::CreateFromInt32( nLineNo );
aStr += ' ';
}
aStr += ViewShell::GetShellRes()->aPostItAuthor;
aStr.AppendAscii(sTmp);
aStr += pField->GetPar1();
aStr += ' ';
aStr += GetAppLocaleData().getDate( pField->GetDate() );
pIDCO->Insert( aPam, aStr, true );
pIDCO->SplitNode( *aPam.GetPoint(), false );
aStr = pField->GetPar2();
#if defined( WIN ) || defined( WNT ) || defined( PM2 )
// Bei Windows und Co alle CR rausschmeissen
aStr.EraseAllChars( '\r' );
#endif
pIDCO->Insert( aPam, aStr, true );
}
2009-08-07 14:42:45 +00:00
void SwDoc::CalculatePagesForPrinting(
/* out */ SwRenderData &rData,
const SwPrintUIOptions &rOptions,
2009-08-04 12:13:41 +00:00
bool bIsPDFExport,
sal_Int32 nDocPageCount )
{
DBG_ASSERT( pLayout, "no layout present" );
if (!pLayout)
return;
// properties to take into account when calcualting the set of pages
2009-08-14 13:56:56 +00:00
// (PDF export UI does not allow for selecting left or right pages only)
bool bPrintLeftPages = bIsPDFExport ? true : rOptions.IsPrintLeftPages();
bool bPrintRightPages = bIsPDFExport ? true : rOptions.IsPrintRightPages();
bool bPrintEmptyPages = rOptions.IsPrintEmptyPages( bIsPDFExport );
Range aPages( 1, nDocPageCount );
MultiSelection aMulti( aPages );
aMulti.SetTotalRange( Range( 0, RANGE_MAX ) );
aMulti.Select( aPages );
const SwPageFrm *pStPage = (SwPageFrm*)pLayout->Lower();
const SwFrm *pEndPage = pStPage;
USHORT nFirstPageNo = 0;
USHORT nLastPageNo = 0;
USHORT nPageNo = 1;
for( USHORT i = 1; i <= (USHORT)aPages.Max(); ++i )
{
if( i < (USHORT)aPages.Min() )
{
if( !pStPage->GetNext() )
break;
pStPage = (SwPageFrm*)pStPage->GetNext();
pEndPage= pStPage;
}
else if( i == (USHORT)aPages.Min() )
{
nFirstPageNo = i;
nLastPageNo = nFirstPageNo;
if( !pStPage->GetNext() || (i == (USHORT)aPages.Max()) )
break;
pEndPage = pStPage->GetNext();
}
else if( i > (USHORT)aPages.Min() )
{
nLastPageNo = i;
if( !pEndPage->GetNext() || (i == (USHORT)aPages.Max()) )
break;
pEndPage = pEndPage->GetNext();
}
}
DBG_ASSERT( nFirstPageNo, "first page not found! Should not happen!" );
if (nFirstPageNo)
{
// HACK: Hier muss von der MultiSelection noch eine akzeptable Moeglichkeit
// geschaffen werden, alle Seiten von Seite x an zu deselektieren.
// Z.B. durch SetTotalRange ....
// aMulti.Select( Range( nLastPageNo+1, SELECTION_MAX ), FALSE );
MultiSelection aTmpMulti( Range( 1, nLastPageNo ) );
long nTmpIdx = aMulti.FirstSelected();
static long nEndOfSelection = SFX_ENDOFSELECTION;
while ( nEndOfSelection != nTmpIdx && nTmpIdx <= long(nLastPageNo) )
{
aTmpMulti.Select( nTmpIdx );
nTmpIdx = aMulti.NextSelected();
}
aMulti = aTmpMulti;
// Ende des HACKs
nPageNo = nFirstPageNo;
std::set< sal_Int32 > &rValidPages = rData.GetValidPagesSet();
std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rData.GetValidStartFrames();
rValidPages.clear();
rValidStartFrms.clear();
while ( pStPage )
{
const BOOL bRightPg = pStPage->OnRightPage();
if ( aMulti.IsSelected( nPageNo ) &&
2009-08-14 13:56:56 +00:00
( (bRightPg && bPrintRightPages) ||
(!bRightPg && bPrintLeftPages) ) )
{
// --> FME 2005-12-12 #b6354161# Feature - Print empty pages
if ( bPrintEmptyPages || pStPage->Frm().Height() )
// <--
{
// pStPage->GetUpper()->Paint( pStPage->Frm() );
rValidPages.insert( nPageNo );
rValidStartFrms[ nPageNo ] = pStPage;
}
}
if ( pStPage == pEndPage )
{
pStPage = 0;
}
else
{ ++nPageNo;
pStPage = (SwPageFrm*)pStPage->GetNext();
}
}
}
2009-08-21 06:14:34 +00:00
//
// now that we have identified the valid pages for printing according
// to the print settings we need to get the PageRange to use and
// use both results to get the actual pages to be printed
// (post-it settings need to be taken into account later on!)
//
// get PageRange value to use
OUString aPageRange;
if (bIsPDFExport)
{
// TLPDF ?? m_pPrintUIOptions->getValue( C2U("Selection") );
aPageRange = rOptions.getStringValue( "PageRange", OUString() );
}
else
{
// PageContent :
// 0 -> print all pages
// 1 -> print range according to PageRange
// 2 -> print selection
if (1 == rOptions.getIntValue( "PrintContent", 0 ))
aPageRange = rOptions.getStringValue( "PageRange", OUString() );
}
if (aPageRange.getLength() == 0) // empty string -> print all
{
// set page range to print to 'all pages'
aPageRange = OUString::valueOf( (sal_Int32)1 );
aPageRange += OUString::valueOf( (sal_Unicode)'-');
aPageRange += OUString::valueOf( nDocPageCount );
}
rData.SetPageRange( aPageRange );
2009-08-21 06:14:34 +00:00
// get vector of pages to print according to PageRange and valid pages set from above
// (result may be an empty vector, for example if the range string is not correct)
StringRangeEnumerator::getRangesFromString(
aPageRange, rData.GetPagesToPrint(),
1, nDocPageCount, 0, &rData.GetValidPagesSet() );
2009-08-21 06:14:34 +00:00
}
void SwDoc::UpdatePagesForPrintingWithPostItData(
/* out */ SwRenderData &rData,
const SwPrintUIOptions &rOptions,
2009-08-26 17:36:02 +00:00
bool /*bIsPDFExport*/,
2009-08-21 06:14:34 +00:00
sal_Int32 nDocPageCount )
{
sal_Int16 nPostItMode = (sal_Int16) rOptions.getIntValue( "PrintAnnotationMode", 0 );
DBG_ASSERT(nPostItMode == POSTITS_NONE || rData.HasPostItData(),
2009-08-21 06:14:34 +00:00
"print post-its without post-it data?" );
const USHORT nPostItCount = rData.HasPostItData() ? rData.m_pPostItFields->Count() : 0;
2009-08-21 06:14:34 +00:00
if (nPostItMode != POSTITS_NONE && nPostItCount > 0)
{
SET_CURR_SHELL( rData.m_pPostItShell );
2009-08-21 06:14:34 +00:00
// clear document and move to end of it
SwPaM aPam( rData.m_pPostItDoc->GetNodes().GetEndOfContent() );
2009-08-21 06:14:34 +00:00
aPam.Move( fnMoveBackward, fnGoDoc );
aPam.SetMark();
aPam.Move( fnMoveForward, fnGoDoc );
rData.m_pPostItDoc->Delete( aPam );
2009-08-21 06:14:34 +00:00
const StringRangeEnumerator aRangeEnum( rData.GetPageRange(), 1, nDocPageCount, 0 );
2009-08-21 06:14:34 +00:00
2009-08-21 11:30:53 +00:00
// For mode POSTITS_ENDPAGE:
// maps a physical page number to the page number in post-it document that holds
// the first post-it for that physical page . Needed to relate the correct start frames
// from the post-it doc to the physical page of the document
std::map< sal_Int32, sal_Int32 > aPostItLastStartPageNum;
2009-08-21 11:30:53 +00:00
// add all post-its on valid pages within the the page range to the
// temporary post-it document.
// Since the array of post-it fileds is sorted by page and line number we will
// already get them in the correct order
USHORT nVirtPg = 0, nLineNo = 0, nLastPageNum = 0, nPhyPageNum = 0;
bool bIsFirstPostIt = true;
2009-08-21 06:14:34 +00:00
for (USHORT i = 0; i < nPostItCount; ++i)
{
_PostItFld& rPostIt = (_PostItFld&)*(*rData.m_pPostItFields)[ i ];
2009-08-21 11:30:53 +00:00
nLastPageNum = nPhyPageNum;
nPhyPageNum = rPostIt.GetPageNo(
aRangeEnum, rData.GetValidPagesSet(),
2009-08-21 06:14:34 +00:00
true /*TLPDF bRgt*/, true /*TLPDF bLft*/, nVirtPg, nLineNo );
if (nPhyPageNum)
2009-08-21 11:30:53 +00:00
{
// need to insert a page break?
// In POSTITS_ENDPAGE mode for each document page the following
// post-it page needs to start on a new page
const bool bNewPage = nPostItMode == POSTITS_ENDPAGE &&
!bIsFirstPostIt && nPhyPageNum != nLastPageNum;
lcl_FormatPostIt( rData.m_pPostItShell->GetDoc(), aPam,
2009-08-21 11:30:53 +00:00
rPostIt.GetPostIt(), bNewPage, bIsFirstPostIt, nVirtPg, nLineNo );
bIsFirstPostIt = false;
if (nPostItMode == POSTITS_ENDPAGE)
{
// get the correct number of current pages for the post-it document
rData.m_pPostItShell->CalcLayout();
const sal_Int32 nPages = rData.m_pPostItDoc->GetPageCount();
aPostItLastStartPageNum[ nPhyPageNum ] = nPages;
2009-08-21 11:30:53 +00:00
}
}
2009-08-21 06:14:34 +00:00
}
// format post-it doc to get correct number of pages
rData.m_pPostItShell->CalcLayout();
const sal_Int32 nPostItDocPageCount = rData.m_pPostItDoc->GetPageCount();
2009-08-21 06:14:34 +00:00
if (nPostItMode == POSTITS_ONLY || nPostItMode == POSTITS_ENDDOC)
{
2009-08-21 11:30:53 +00:00
// now add those post-it pages to the vector of pages to print
// or replace them if only post-its should be printed
rData.GetPostItStartFrames().clear();
2009-08-21 06:14:34 +00:00
if (nPostItMode == POSTITS_ENDDOC)
{
// set all values up to number of pages to print currently known to NULL,
// meaning none of the pages currently in the vector is from the
// post-it document, they are the documents pages.
rData.GetPostItStartFrames().resize( rData.GetPagesToPrint().size() );
2009-08-21 06:14:34 +00:00
}
else if (nPostItMode == POSTITS_ONLY)
{
// no document page to be printed
rData.GetPagesToPrint().clear();
2009-08-21 06:14:34 +00:00
}
// now we just need to add the post-it pages to be printed to the end
// of the vector of pages to print and keep the GetValidStartFrames
2009-08-21 06:14:34 +00:00
// data conform with it
sal_Int32 nPageNum = 0;
const SwPageFrm * pPageFrm = (SwPageFrm*)rData.m_pPostItShell->GetLayout()->Lower();
2009-08-21 06:14:34 +00:00
while( pPageFrm && nPageNum < nPostItDocPageCount )
{
DBG_ASSERT( pPageFrm, "Empty page frame. How are we going to print this?" );
++nPageNum;
rData.GetPagesToPrint().push_back( 0 ); // a page number of 0 indicates this page is from the post-it doc
DBG_ASSERT( pPageFrm, "pPageFrm is NULL!" );
rData.GetPostItStartFrames().push_back( pPageFrm );
2009-08-21 06:14:34 +00:00
pPageFrm = (SwPageFrm*)pPageFrm->GetNext();
}
DBG_ASSERT( nPageNum == nPostItDocPageCount, "unexpected number of pages" );
}
2009-08-21 11:30:53 +00:00
else if (nPostItMode == POSTITS_ENDPAGE)
{
// the next step is to find all the start frames from the post-it
// document that should be printed for a given physical page of the document
std::map< sal_Int32, std::vector< const SwPageFrm * > > aPhysPageToPostItFrames;
2009-08-21 13:32:05 +00:00
// ... thus, first collect all post-it doc start frames in a vector
sal_Int32 nPostItPageNum = 0;
2009-08-21 11:30:53 +00:00
std::vector< const SwPageFrm * > aAllPostItStartFrames;
const SwPageFrm * pPageFrm = (SwPageFrm*)rData.m_pPostItShell->GetLayout()->Lower();
2009-08-26 17:36:02 +00:00
while( pPageFrm && sal_Int32(aAllPostItStartFrames.size()) < nPostItDocPageCount )
2009-08-21 11:30:53 +00:00
{
DBG_ASSERT( pPageFrm, "Empty page frame. How are we going to print this?" );
++nPostItPageNum;
2009-08-21 11:30:53 +00:00
aAllPostItStartFrames.push_back( pPageFrm );
2009-08-21 13:32:05 +00:00
pPageFrm = (SwPageFrm*)pPageFrm->GetNext();
2009-08-21 11:30:53 +00:00
}
2009-08-26 17:36:02 +00:00
DBG_ASSERT( sal_Int32(aAllPostItStartFrames.size()) == nPostItDocPageCount,
2009-08-21 11:30:53 +00:00
"unexpected number of frames; does not match number of pages" );
2009-08-21 13:32:05 +00:00
// get a map that holds all post-it frames to be printed for a
// given physical page from the document
sal_Int32 nLastStartPageNum = 0;
2009-08-21 11:30:53 +00:00
std::map< sal_Int32, sal_Int32 >::const_iterator aIt;
for (aIt = aPostItLastStartPageNum.begin(); aIt != aPostItLastStartPageNum.end(); ++aIt)
2009-08-21 11:30:53 +00:00
{
const sal_Int32 nFrames = aIt->second - nLastStartPageNum;
const sal_Int32 nFirstStartPageNum = aIt == aPostItLastStartPageNum.begin() ?
1 : aIt->second - nFrames + 1;
DBG_ASSERT( 1 <= nFirstStartPageNum && nFirstStartPageNum <= nPostItDocPageCount,
2009-08-21 13:32:05 +00:00
"page number for first frame out of range" );
2009-08-21 11:30:53 +00:00
std::vector< const SwPageFrm * > aStartFrames;
2009-08-21 13:32:05 +00:00
for (sal_Int32 i = 0; i < nFrames; ++i)
{
const sal_Int32 nIdx = nFirstStartPageNum - 1 + i; // -1 because lowest page num is 1
2009-08-26 17:36:02 +00:00
DBG_ASSERT( 0 <= nIdx && nIdx < sal_Int32(aAllPostItStartFrames.size()),
2009-08-21 13:32:05 +00:00
"index out of range" );
aStartFrames.push_back( aAllPostItStartFrames[ nIdx ] );
}
aPhysPageToPostItFrames[ aIt->first /* phys page num */ ] = aStartFrames;
nLastStartPageNum = aIt->second;
2009-08-21 11:30:53 +00:00
}
2009-08-21 13:32:05 +00:00
// ok, now that aPhysPageToPostItFrames can give the start frames for all
// post-it pages to be printed we need to merge those at the correct
// position into the GetPagesToPrint vector and build and maintain the
// GetValidStartFrames vector as well.
2009-08-21 13:32:05 +00:00
// Since inserting a larger number of entries in the middle of a vector
// isn't that efficient we will create new vectors by copying the required data
std::vector< sal_Int32 > aTmpPagesToPrint;
std::vector< const SwPageFrm * > aTmpPostItStartFrames;
const size_t nNum = rData.GetPagesToPrint().size();
2009-08-21 13:32:05 +00:00
for (size_t i = 0 ; i < nNum; ++i)
{
// add the physical page to print from the document
const sal_Int32 nPhysPage = rData.GetPagesToPrint()[i];
2009-08-21 13:32:05 +00:00
aTmpPagesToPrint.push_back( nPhysPage );
aTmpPostItStartFrames.push_back( NULL );
// add the post-it document pages to print, i.e those
// post-it pages that have the data for the above physical page
const std::vector< const SwPageFrm * > &rPostItFrames = aPhysPageToPostItFrames[ nPhysPage ];
const size_t nPostItFrames = rPostItFrames.size();
for (size_t k = 0; k < nPostItFrames; ++k)
{
aTmpPagesToPrint.push_back( 0 );
aTmpPostItStartFrames.push_back( rPostItFrames[k] );
}
}
// finally we need to assign those vectors to the resulting ones.
// swapping the data should be more efficient than assigning since
// we won't need the temporary vectors anymore
rData.GetPagesToPrint().swap( aTmpPagesToPrint );
rData.GetPostItStartFrames().swap( aTmpPostItStartFrames );
2009-08-21 11:30:53 +00:00
}
2009-08-21 06:14:34 +00:00
}
}
2009-08-07 14:42:45 +00:00
void SwDoc::CalculatePagePairsForProspectPrinting(
/* out */ SwRenderData &rData,
const SwPrintUIOptions &rOptions,
2009-08-07 14:42:45 +00:00
sal_Int32 nDocPageCount )
{
std::set< sal_Int32 > &rValidPagesSet = rData.GetValidPagesSet();
std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rData.GetValidStartFrames();
std::vector< std::pair< sal_Int32, sal_Int32 > > &rPagePairs = rData.GetPagePairsForProspectPrinting();
2009-08-07 14:42:45 +00:00
rPagePairs.clear();
rValidPagesSet.clear();
rValidStartFrms.clear();
2009-08-14 13:56:56 +00:00
rtl::OUString aPageRange = rOptions.getStringValue( "PageRange", rtl::OUString() );
2009-08-07 14:42:45 +00:00
StringRangeEnumerator aRange( aPageRange, 1, nDocPageCount, 0 );
DBG_ASSERT( pLayout, "no layout present" );
if (!pLayout || aRange.size() <= 0)
return;
const SwPageFrm *pStPage = (SwPageFrm*)pLayout->Lower();
sal_Int32 i = 0;
for ( i = 1; pStPage && i < nDocPageCount; ++i )
pStPage = (SwPageFrm*)pStPage->GetNext();
if ( !pStPage ) // dann wars das
return;
// currently for prospect printing all pages are valid to be printed
// thus we add them all to the respective map and set for later use
sal_Int32 nPageNum = 0;
const SwPageFrm *pPageFrm = (SwPageFrm*)pLayout->Lower();
while( pPageFrm && nPageNum < nDocPageCount )
{
2009-08-21 06:14:34 +00:00
DBG_ASSERT( pPageFrm, "Empty page frame. How are we going to print this?" );
2009-08-07 14:42:45 +00:00
++nPageNum;
rValidPagesSet.insert( nPageNum );
rValidStartFrms[ nPageNum ] = pPageFrm;
pPageFrm = (SwPageFrm*)pPageFrm->GetNext();
}
DBG_ASSERT( nPageNum == nDocPageCount, "unexpected number of pages" );
// properties to take into account when calcualting the set of pages
2009-08-14 13:56:56 +00:00
// Note: here bPrintLeftPages and bPrintRightPages refer to the (virtual) resulting pages
2009-08-07 14:42:45 +00:00
// of the prospect!
2009-08-14 13:56:56 +00:00
bool bPrintLeftPages = rOptions.IsPrintLeftPages();
bool bPrintRightPages = rOptions.IsPrintRightPages();
2009-08-07 14:42:45 +00:00
// TLPDF, TODO: remove bPrintReverse, should be handled by PLs framework now
2009-08-14 13:56:56 +00:00
//TLPDF bool bPrintReverse = rOptions.getBoolValue( C2U( "PrintReverseOrder" ), false );
// TLPDF: this one seems not to be used in prospect printing: bool bPrintEmptyPages = rOptions.getBoolValue( C2U( "PrintEmptyPages" ), false );
bool bPrintProspectRTL = rOptions.getIntValue( "PrintProspectRTL", 0 ) ? true : false;
2009-08-07 14:42:45 +00:00
// get pages for prospect printing according to the 'PageRange'
// (duplicates and any order allowed!)
std::vector< sal_Int32 > aPagesToPrint;
StringRangeEnumerator::getRangesFromString(
aPageRange, aPagesToPrint, 1, nDocPageCount, 0 );
// now fill the vector for calculating the page pairs with the start frames
// from the above obtained vector
std::vector< const SwPageFrm * > aVec;
2009-08-11 08:25:58 +00:00
for ( i = 0; i < sal_Int32(aPagesToPrint.size()); ++i)
2009-08-07 14:42:45 +00:00
{
const sal_Int32 nPage = aPagesToPrint[i];
const SwPageFrm *pFrm = rValidStartFrms[ nPage ];
aVec.push_back( pFrm );
}
2009-08-10 12:19:26 +00:00
// just one page is special ...
if ( 1 == aVec.size() )
aVec.insert( aVec.begin() + 1, 0 ); // insert a second empty page
2009-08-07 14:42:45 +00:00
else
{
2009-08-10 12:19:26 +00:00
// now extend the number of pages to fit a multiple of 4
// (4 'normal' pages are needed for a single prospect paper
// with back and front)
2009-08-07 14:42:45 +00:00
while( aVec.size() & 3 )
aVec.push_back( 0 );
}
// dann sorge mal dafuer, das alle Seiten in der richtigen
// Reihenfolge stehen:
USHORT nSPg = 0, nEPg = aVec.size(), nStep = 1;
if ( 0 == (nEPg & 1 )) // ungerade gibt es nicht!
--nEPg;
2009-08-14 13:56:56 +00:00
if ( !bPrintLeftPages )
2009-08-07 14:42:45 +00:00
++nStep;
2009-08-14 13:56:56 +00:00
else if ( !bPrintRightPages )
2009-08-07 14:42:45 +00:00
{
++nStep;
++nSPg, --nEPg;
}
2009-08-10 12:19:26 +00:00
// the number of 'virtual' pages to be printed
2009-08-07 14:42:45 +00:00
sal_Int32 nCntPage = (( nEPg - nSPg ) / ( 2 * nStep )) + 1;
for ( USHORT nPrintCount = 0; nSPg < nEPg &&
nPrintCount < nCntPage; ++nPrintCount )
{
pStPage = aVec[ nSPg ];
const SwPageFrm* pNxtPage = nEPg < aVec.size() ? aVec[ nEPg ] : 0;
short nRtlOfs = bPrintProspectRTL ? 1 : 0;
2009-08-07 14:42:45 +00:00
if ( 0 == (( nSPg + nRtlOfs) & 1 ) ) // switch for odd number in LTR, even number in RTL
{
const SwPageFrm* pTmp = pStPage;
pStPage = pNxtPage;
pNxtPage = pTmp;
}
2009-08-10 14:52:25 +00:00
sal_Int32 nFirst = -1, nSecond = -1;
2009-08-07 14:42:45 +00:00
for ( int nC = 0; nC < 2; ++nC )
{
2009-08-11 08:25:58 +00:00
sal_Int32 nPage = -1;
2009-08-07 14:42:45 +00:00
if ( pStPage )
2009-08-11 08:25:58 +00:00
nPage = pStPage->GetPhyPageNum();
2009-08-07 14:42:45 +00:00
if (nC == 0)
2009-08-11 08:25:58 +00:00
nFirst = nPage;
2009-08-07 14:42:45 +00:00
else
2009-08-11 08:25:58 +00:00
nSecond = nPage;
2009-08-07 14:42:45 +00:00
pStPage = pNxtPage;
}
rPagePairs.push_back( std::pair< sal_Int32, sal_Int32 >(nFirst, nSecond) );
nSPg = nSPg + nStep;
nEPg = nEPg - nStep;
}
DBG_ASSERT( size_t(nCntPage) == rPagePairs.size(), "size mismatch for number of page pairs" );
2009-08-21 06:14:34 +00:00
// luckily prospect printing does not make use of post-its so far,
// thus we are done here.
2009-08-07 14:42:45 +00:00
}
sal_uInt16 SwDoc::GetPageCount() const
{
return GetRootFrm() ? GetRootFrm()->GetPageNum() : 0;
}
const Size SwDoc::GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) const
{
Size aSize;
if( GetRootFrm() && nPageNum )
{
const SwPageFrm* pPage = static_cast<const SwPageFrm*>
(GetRootFrm()->Lower());
while( --nPageNum && pPage->GetNext() )
pPage = static_cast<const SwPageFrm*>( pPage->GetNext() );
if( !bSkipEmptyPages && pPage->IsEmptyPage() && pPage->GetNext() )
pPage = static_cast<const SwPageFrm*>( pPage->GetNext() );
aSize = pPage->Frm().SSize();
}
return aSize;
}
2000-09-18 23:08:29 +00:00
/*************************************************************************
* void UpdateDocStat( const SwDocStat& rStat );
*************************************************************************/
void SwDoc::UpdateDocStat( SwDocStat& rStat )
{
if( rStat.bModified )
{
rStat.Reset();
rStat.nPara = 0; // Default ist auf 1 !!
SwNode* pNd;
for( ULONG i = GetNodes().Count(); i; )
{
switch( ( pNd = GetNodes()[ --i ])->GetNodeType() )
{
case ND_TEXTNODE:
((SwTxtNode*)pNd)->CountWords( rStat, 0, ((SwTxtNode*)pNd)->GetTxt().Len() );
break;
case ND_TABLENODE: ++rStat.nTbl; break;
case ND_GRFNODE: ++rStat.nGrf; break;
case ND_OLENODE: ++rStat.nOLE; break;
case ND_SECTIONNODE: break;
}
}
2000-11-20 13:47:36 +00:00
rStat.nPage = GetRootFrm() ? GetRootFrm()->GetPageNum() : 0;
2000-09-18 23:08:29 +00:00
rStat.bModified = FALSE;
SetDocStat( rStat );
com::sun::star::uno::Sequence < com::sun::star::beans::NamedValue > aStat( rStat.nPage ? 7 : 6);
sal_Int32 n=0;
aStat[n].Name = ::rtl::OUString::createFromAscii("TableCount");
aStat[n++].Value <<= (sal_Int32)rStat.nTbl;
aStat[n].Name = ::rtl::OUString::createFromAscii("ImageCount");
aStat[n++].Value <<= (sal_Int32)rStat.nGrf;
aStat[n].Name = ::rtl::OUString::createFromAscii("ObjectCount");
aStat[n++].Value <<= (sal_Int32)rStat.nOLE;
if ( rStat.nPage )
{
aStat[n].Name = ::rtl::OUString::createFromAscii("PageCount");
aStat[n++].Value <<= (sal_Int32)rStat.nPage;
}
aStat[n].Name = ::rtl::OUString::createFromAscii("ParagraphCount");
aStat[n++].Value <<= (sal_Int32)rStat.nPara;
aStat[n].Name = ::rtl::OUString::createFromAscii("WordCount");
aStat[n++].Value <<= (sal_Int32)rStat.nWord;
aStat[n].Name = ::rtl::OUString::createFromAscii("CharacterCount");
aStat[n++].Value <<= (sal_Int32)rStat.nChar;
// For e.g. autotext documents there is no pSwgInfo (#i79945)
if (GetDocShell()) {
uno::Reference<document::XDocumentPropertiesSupplier> xDPS(
GetDocShell()->GetModel(), uno::UNO_QUERY_THROW);
uno::Reference<document::XDocumentProperties> xDocProps(
xDPS->getDocumentProperties());
xDocProps->setDocumentStatistics(aStat);
}
2000-09-18 23:08:29 +00:00
// event. Stat. Felder Updaten
SwFieldType *pType = GetSysFldType(RES_DOCSTATFLD);
pType->UpdateFlds();
}
}
2000-09-18 23:08:29 +00:00
// Dokument - Info
void SwDoc::DocInfoChgd( )
2000-09-18 23:08:29 +00:00
{
GetSysFldType( RES_DOCINFOFLD )->UpdateFlds();
GetSysFldType( RES_TEMPLNAMEFLD )->UpdateFlds();
SetModified();
}
// returne zum Namen die im Doc gesetzte Referenz
const SwFmtRefMark* SwDoc::GetRefMark( const String& rName ) const
{
const SfxPoolItem* pItem;
USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_REFMARK );
for( USHORT n = 0; n < nMaxItems; ++n )
{
if( 0 == (pItem = GetAttrPool().GetItem( RES_TXTATR_REFMARK, n ) ))
continue;
const SwFmtRefMark* pFmtRef = (SwFmtRefMark*)pItem;
const SwTxtRefMark* pTxtRef = pFmtRef->GetTxtRefMark();
if( pTxtRef && &pTxtRef->GetTxtNode().GetNodes() == &GetNodes() &&
rName.Equals( pFmtRef->GetRefName() ) )
return pFmtRef;
}
return 0;
}
// returne die RefMark per Index - fuer Uno
const SwFmtRefMark* SwDoc::GetRefMark( USHORT nIndex ) const
{
const SfxPoolItem* pItem;
const SwTxtRefMark* pTxtRef;
const SwFmtRefMark* pRet = 0;
USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_REFMARK );
USHORT nCount = 0;
for( USHORT n = 0; n < nMaxItems; ++n )
if( 0 != (pItem = GetAttrPool().GetItem( RES_TXTATR_REFMARK, n )) &&
0 != (pTxtRef = ((SwFmtRefMark*)pItem)->GetTxtRefMark()) &&
&pTxtRef->GetTxtNode().GetNodes() == &GetNodes() )
{
if(nCount == nIndex)
{
pRet = (SwFmtRefMark*)pItem;
break;
}
nCount++;
}
return pRet;
}
// returne die Namen aller im Doc gesetzten Referenzen
//JP 24.06.96: Ist der ArrayPointer 0 dann returne nur, ob im Doc. eine
// RefMark gesetzt ist
// OS 25.06.96: ab jetzt wird immer die Anzahl der Referenzen returnt
USHORT SwDoc::GetRefMarks( SvStringsDtor* pNames ) const
{
const SfxPoolItem* pItem;
const SwTxtRefMark* pTxtRef;
USHORT nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_REFMARK );
USHORT nCount = 0;
for( USHORT n = 0; n < nMaxItems; ++n )
if( 0 != (pItem = GetAttrPool().GetItem( RES_TXTATR_REFMARK, n )) &&
0 != (pTxtRef = ((SwFmtRefMark*)pItem)->GetTxtRefMark()) &&
&pTxtRef->GetTxtNode().GetNodes() == &GetNodes() )
{
if( pNames )
{
String* pTmp = new String( ((SwFmtRefMark*)pItem)->GetRefName() );
pNames->Insert( pTmp, nCount );
}
nCount ++;
}
return nCount;
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
bool SwDoc::IsLoaded() const
{
return mbLoaded;
}
bool SwDoc::IsUpdateExpFld() const
{
return mbUpdateExpFld;
}
bool SwDoc::IsNewDoc() const
{
return mbNewDoc;
}
bool SwDoc::IsPageNums() const
{
return mbPageNums;
}
void SwDoc::SetPageNums(bool b)
{
mbPageNums = b;
}
void SwDoc::SetNewDoc(bool b)
{
mbNewDoc = b;
}
void SwDoc::SetUpdateExpFldStat(bool b)
{
mbUpdateExpFld = b;
}
void SwDoc::SetLoaded(bool b)
{
mbLoaded = b;
}
bool SwDoc::IsModified() const
{
return mbModified;
}
2000-09-18 23:08:29 +00:00
void SwDoc::SetModified()
{
// --> OD 2005-08-29 #125370#
SwLayouter::ClearMovedFwdFrms( *this );
SwLayouter::ClearObjsTmpConsiderWrapInfluence( *this );
SwLayouter::ClearFrmsNotToWrap( *this );
// <--
// --> OD 2006-05-10 #i65250#
SwLayouter::ClearMoveBwdLayoutInfo( *this );
// <--
2000-09-18 23:08:29 +00:00
// dem Link wird der Status returnt, wie die Flags waren und werden
// Bit 0: -> alter Zustand
// Bit 1: -> neuer Zustand
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
long nCall = mbModified ? 3 : 2;
mbModified = TRUE;
2000-09-18 23:08:29 +00:00
pDocStat->bModified = TRUE;
if( aOle2Link.IsSet() )
{
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
mbInCallModified = TRUE;
2000-09-18 23:08:29 +00:00
aOle2Link.Call( (void*)nCall );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
mbInCallModified = FALSE;
2000-09-18 23:08:29 +00:00
}
if( pACEWord && !pACEWord->IsDeleted() )
delete pACEWord, pACEWord = 0;
}
void SwDoc::ResetModified()
{
// dem Link wird der Status returnt, wie die Flags waren und werden
// Bit 0: -> alter Zustand
// Bit 1: -> neuer Zustand
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
long nCall = mbModified ? 1 : 0;
mbModified = FALSE;
// If there is already a document statistic, we assume that
// it is correct. In this case we reset the modified flag.
if ( 0 != pDocStat->nChar )
pDocStat->bModified = FALSE;
2000-09-18 23:08:29 +00:00
nUndoSavePos = nUndoPos;
if( nCall && aOle2Link.IsSet() )
{
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
mbInCallModified = TRUE;
2000-09-18 23:08:29 +00:00
aOle2Link.Call( (void*)nCall );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
mbInCallModified = FALSE;
2000-09-18 23:08:29 +00:00
}
}
void SwDoc::ReRead( SwPaM& rPam, const String& rGrfName,
const String& rFltName, const Graphic* pGraphic,
const GraphicObject* pGrafObj )
2000-09-18 23:08:29 +00:00
{
SwGrfNode *pGrfNd;
if( ( !rPam.HasMark()
|| rPam.GetPoint()->nNode.GetIndex() == rPam.GetMark()->nNode.GetIndex() )
&& 0 != ( pGrfNd = rPam.GetPoint()->nNode.GetNode().GetGrfNode() ) )
{
if( DoesUndo() )
{
ClearRedo();
AppendUndo( new SwUndoReRead( rPam, *pGrfNd ) );
}
// Weil nicht bekannt ist, ob sich die Grafik spiegeln laesst,
// immer das SpiegelungsAttribut zuruecksetzen
if( RES_MIRROR_GRAPH_DONT != pGrfNd->GetSwAttrSet().
2000-09-18 23:08:29 +00:00
GetMirrorGrf().GetValue() )
pGrfNd->SetAttr( SwMirrorGrf() );
pGrfNd->ReRead( rGrfName, rFltName, pGraphic, pGrafObj, TRUE );
2000-09-18 23:08:29 +00:00
SetModified();
}
}
BOOL lcl_SpellAndGrammarAgain( const SwNodePtr& rpNd, void* pArgs )
2000-09-18 23:08:29 +00:00
{
SwTxtNode *pTxtNode = (SwTxtNode*)rpNd->GetTxtNode();
BOOL bOnlyWrong = *(BOOL*)pArgs;
if( pTxtNode )
{
if( bOnlyWrong )
{
if( pTxtNode->GetWrong() &&
pTxtNode->GetWrong()->InvalidateWrong() )
pTxtNode->SetWrongDirty( true );
if( pTxtNode->GetGrammarCheck() &&
pTxtNode->GetGrammarCheck()->InvalidateWrong() )
pTxtNode->SetGrammarCheckDirty( true );
2000-09-18 23:08:29 +00:00
}
else
{
pTxtNode->SetWrongDirty( true );
2000-09-18 23:08:29 +00:00
if( pTxtNode->GetWrong() )
pTxtNode->GetWrong()->SetInvalid( 0, STRING_LEN );
pTxtNode->SetGrammarCheckDirty( true );
if( pTxtNode->GetGrammarCheck() )
pTxtNode->GetGrammarCheck()->SetInvalid( 0, STRING_LEN );
2000-09-18 23:08:29 +00:00
}
}
return TRUE;
}
BOOL lcl_CheckSmartTagsAgain( const SwNodePtr& rpNd, void* )
{
SwTxtNode *pTxtNode = (SwTxtNode*)rpNd->GetTxtNode();
// BOOL bOnlyWrong = *(BOOL*)pArgs;
if( pTxtNode )
{
pTxtNode->SetSmartTagDirty( true );
if( pTxtNode->GetSmartTags() )
{
// if ( bOnlyWrong ) // only some smart tag types have been enabled or disabled
// pTxtNode->GetSmartTags()->SetInvalid( 0, STRING_LEN );
// else // smart tags all have been enabled or disabled
pTxtNode->SetSmartTags( NULL );
}
}
return TRUE;
}
2000-09-18 23:08:29 +00:00
/*************************************************************************
* SwDoc::SpellItAgainSam( BOOL bInvalid, BOOL bOnlyWrong )
*
* stoesst das Spelling im Idle-Handler wieder an.
* Wird bInvalid als TRUE uebergeben, so werden zusaetzlich die WrongListen
* an allen Nodes invalidiert und auf allen Seiten das SpellInvalid-Flag
* gesetzt.
* Mit bOnlyWrong kann man dann steuern, ob nur die Bereiche mit falschen
* Woertern oder die kompletten Bereiche neu ueberprueft werden muessen.
************************************************************************/
void SwDoc::SpellItAgainSam( BOOL bInvalid, BOOL bOnlyWrong, BOOL bSmartTags )
2000-09-18 23:08:29 +00:00
{
ASSERT( GetRootFrm(), "SpellAgain: Where's my RootFrm?" );
if( bInvalid )
{
SwPageFrm *pPage = (SwPageFrm*)GetRootFrm()->Lower();
while ( pPage )
{
if ( bSmartTags )
pPage->InvalidateSmartTags();
2000-09-18 23:08:29 +00:00
pPage->InvalidateSpelling();
pPage = (SwPageFrm*)pPage->GetNext();
}
GetRootFrm()->SetNeedGrammarCheck( true );
if ( bSmartTags )
GetNodes().ForEach( lcl_CheckSmartTagsAgain, &bOnlyWrong );
GetNodes().ForEach( lcl_SpellAndGrammarAgain, &bOnlyWrong );
2000-09-18 23:08:29 +00:00
}
2000-09-18 23:08:29 +00:00
GetRootFrm()->SetIdleFlags();
}
void SwDoc::InvalidateAutoCompleteFlag()
{
if( GetRootFrm() )
{
SwPageFrm *pPage = (SwPageFrm*)GetRootFrm()->Lower();
while ( pPage )
{
pPage->InvalidateAutoCompleteWords();
pPage = (SwPageFrm*)pPage->GetNext();
}
for( ULONG nNd = 1, nCnt = GetNodes().Count(); nNd < nCnt; ++nNd )
{
SwTxtNode* pTxtNode = GetNodes()[ nNd ]->GetTxtNode();
if ( pTxtNode ) pTxtNode->SetAutoCompleteWordDirty( true );
}
2000-09-18 23:08:29 +00:00
GetRootFrm()->SetIdleFlags();
}
}
const SwFmtINetFmt* SwDoc::FindINetAttr( const String& rName ) const
{
const SwFmtINetFmt* pItem;
const SwTxtINetFmt* pTxtAttr;
const SwTxtNode* pTxtNd;
USHORT n, nMaxItems = GetAttrPool().GetItemCount( RES_TXTATR_INETFMT );
for( n = 0; n < nMaxItems; ++n )
if( 0 != (pItem = (SwFmtINetFmt*)GetAttrPool().GetItem(
RES_TXTATR_INETFMT, n ) ) &&
pItem->GetName().Equals( rName ) &&
0 != ( pTxtAttr = pItem->GetTxtINetFmt()) &&
0 != ( pTxtNd = pTxtAttr->GetpTxtNode() ) &&
&pTxtNd->GetNodes() == &GetNodes() )
{
return pItem;
}
return 0;
}
void SwDoc::Summary( SwDoc* pExtDoc, BYTE nLevel, BYTE nPara, BOOL bImpress )
{
const SwOutlineNodes& rOutNds = GetNodes().GetOutLineNds();
if( pExtDoc && rOutNds.Count() )
{
USHORT i;
::StartProgress( STR_STATSTR_SUMMARY, 0, rOutNds.Count(), GetDocShell() );
SwNodeIndex aEndOfDoc( pExtDoc->GetNodes().GetEndOfContent(), -1 );
for( i = 0; i < rOutNds.Count(); ++i )
{
::SetProgressState( i, GetDocShell() );
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
const ULONG nIndex = rOutNds[ i ]->GetIndex();
//BYTE nLvl = ((SwTxtNode*)GetNodes()[ nIndex ])->GetTxtColl()//#outline level,zhaojianwei
// ->GetOutlineLevel();
const int nLvl = ((SwTxtNode*)GetNodes()[ nIndex ])->GetAttrOutlineLevel()-1;//<-end,zhaojianwei
2000-09-18 23:08:29 +00:00
if( nLvl > nLevel )
continue;
USHORT nEndOfs = 1;
BYTE nWish = nPara;
ULONG nNextOutNd = i + 1 < rOutNds.Count() ?
rOutNds[ i + 1 ]->GetIndex() : GetNodes().Count();
BOOL bKeep = FALSE;
while( ( nWish || bKeep ) && nIndex + nEndOfs < nNextOutNd &&
GetNodes()[ nIndex + nEndOfs ]->IsTxtNode() )
{
SwTxtNode* pTxtNode = (SwTxtNode*)GetNodes()[ nIndex+nEndOfs ];
if( pTxtNode->GetTxt().Len() && nWish )
--nWish;
bKeep = pTxtNode->GetSwAttrSet().GetKeep().GetValue();
++nEndOfs;
}
SwNodeRange aRange( *rOutNds[ i ], 0, *rOutNds[ i ], nEndOfs );
GetNodes()._Copy( aRange, aEndOfDoc );
}
const SwTxtFmtColls *pColl = pExtDoc->GetTxtFmtColls();
for( i = 0; i < pColl->Count(); ++i )
(*pColl)[ i ]->ResetFmtAttr( RES_PAGEDESC, RES_BREAK );
2000-09-18 23:08:29 +00:00
SwNodeIndex aIndx( pExtDoc->GetNodes().GetEndOfExtras() );
++aEndOfDoc;
while( aIndx < aEndOfDoc )
{
SwNode *pNode;
BOOL bDelete = FALSE;
if( (pNode = &aIndx.GetNode())->IsTxtNode() )
{
SwTxtNode *pNd = (SwTxtNode*)pNode;
if( pNd->HasSwAttrSet() )
pNd->ResetAttr( RES_PAGEDESC, RES_BREAK );
if( bImpress )
{
SwTxtFmtColl* pMyColl = pNd->GetTxtColl();
CWS-TOOLING: integrate CWS outlinelevel 2008-12-19 10:32:51 +0100 od r265718 : #i70748# method <SwWW8Writer::StartTOX(..)> - correction for custom to outline style assigned paragraph styles 2008-12-19 09:24:41 +0100 od r265715 : #i70748# method <HandleModifyAtTxtNode(..)> - retrieve former applied list style before potential reset of empty list style due to set outline level 2008-12-17 15:33:57 +0100 hde r265608 : #i97013# 2008-12-17 14:43:42 +0100 od r265603 : #i70748# adjust fix i44177 - adjustment of to outline style assigned paragraph styles only for OOo-Templates. 2008-12-17 12:59:42 +0100 od r265598 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - special handling of OOo 2.x document regarding outline numbering of headings. 2008-12-17 12:45:53 +0100 od r265597 : #i70748# method <HandleModifyAtTxtNode(..)> - correct determination of new and former applied list style 2008-12-17 10:18:41 +0100 od r265581 : #i97312# method <XMLTextNumRuleInfo::Set(..)> - check, if numbering rules instance contains any numbering rule. 2008-12-16 14:34:22 +0100 hde r265542 : #i97013 2008-12-16 14:20:24 +0100 od r265541 : #i70748# adjust documentation of "Which"-ID numbers 2008-12-16 14:19:49 +0100 od r265539 : #i70748# Adjust Attribute-Function-Mapping table due to new attribute 2008-12-16 14:06:24 +0100 od r265538 : #i70748# - Correct handling of to outline style assigned paragraph styles on reset of all paragraph style attributes - WW8 import: Consider refactoring of paragraph style's outline level attribute - NO_NUMBERING define no longer exsits. 2008-12-16 10:37:19 +0100 od r265530 : #i70478# Correction on moving outline paragraph up respectively down in its outline level: - Check also outline paragraph, which are not an outline via a to outline style assigned paragraph style, if action is applicable. 2008-12-16 09:10:13 +0100 hde r265523 : #i97277 2008-12-16 09:09:30 +0100 hde r265522 : #i97277 2008-12-16 09:07:40 +0100 hde r265521 : Added control and purged obsolete id's 2008-12-10 13:09:36 +0100 od r265174 : #i70748# correction of previous fix due to warning-free code 2008-12-10 13:03:30 +0100 od r265172 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - Due to performance issues avoid retrieving outline level value from paragraph's paragraph style for each paragraph. Instead retrieve current outline level value from paragraph, which is the inherited value from its paragraph style, and only when it is needed. 2008-12-09 16:50:36 +0100 ufi r265117 : help 2008-12-09 16:49:50 +0100 ufi r265116 : help 2008-12-09 15:45:05 +0100 od r265107 : #i70748# method <XMLTextImportHelper::SetStyleAndAttrs(..)> - some minor rework and check access to paragraph styles 2008-12-09 15:42:04 +0100 od r265106 : #i70748# adjust name of local variable to avoid hiding of class variable 2008-12-09 15:40:51 +0100 od r265105 : #i70748# correct initialization order 2008-12-09 15:35:07 +0100 od r265101 : #i70748# remove duplicate entry in certain property map 2008-12-09 15:33:39 +0100 od r265100 : #i70748# add end of file token 2008-12-07 15:11:54 +0100 zhaojianwei r264952 : conflicts left not to be resolved when cws rebase 2008-12-04 14:52:21 +0100 zhaojianwei r264846 : CWS-TOOLING: rebase CWS outlinelevel to trunk@264325 (milestone: DEV300:m36) 2008-11-28 03:42:09 +0100 zhaojianwei r264525 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:39 +0100 zhaojianwei r264524 : #i70748#: migrate CWS outlinelevel to SVN 2008-11-28 03:41:11 +0100 zhaojianwei r264523 : #i70748#: migrate CWS outlinelevel to SVN
2009-01-07 11:57:24 +00:00
//USHORT nHeadLine = static_cast<USHORT>(pMyColl->GetOutlineLevel()==NO_NUMBERING ?//#outlinelevel,zhaojianwei
const USHORT nHeadLine = static_cast<USHORT>(
!pMyColl->IsAssignedToListLevelOfOutlineStyle() //<-end,zhaojianwei
? RES_POOLCOLL_HEADLINE2
: RES_POOLCOLL_HEADLINE1 );
pMyColl = pExtDoc->GetTxtCollFromPool( nHeadLine );
pNd->ChgFmtColl( pMyColl );
2000-09-18 23:08:29 +00:00
}
if( !pNd->Len() &&
pNd->StartOfSectionIndex()+2 < pNd->EndOfSectionIndex() )
{
bDelete = TRUE;
pExtDoc->GetNodes().Delete( aIndx );
}
}
if( !bDelete )
++aIndx;
}
::EndProgress( GetDocShell() );
}
}
// loesche den nicht sichtbaren Content aus dem Document, wie z.B.:
// versteckte Bereiche, versteckte Absaetze
BOOL SwDoc::RemoveInvisibleContent()
{
BOOL bRet = FALSE;
StartUndo( UNDO_UI_DELETE_INVISIBLECNTNT, NULL );
2000-09-18 23:08:29 +00:00
{
SwTxtNode* pTxtNd;
SwClientIter aIter( *GetSysFldType( RES_HIDDENPARAFLD ) );
for( SwFmtFld* pFmtFld = (SwFmtFld*)aIter.First( TYPE( SwFmtFld ));
pFmtFld; pFmtFld = (SwFmtFld*)aIter.Next() )
{
2000-09-18 23:08:29 +00:00
if( pFmtFld->GetTxtFld() &&
0 != ( pTxtNd = (SwTxtNode*)pFmtFld->GetTxtFld()->GetpTxtNode() ) &&
pTxtNd->GetpSwpHints() && pTxtNd->HasHiddenParaField() &&
2000-09-18 23:08:29 +00:00
&pTxtNd->GetNodes() == &GetNodes() )
{
bRet = TRUE;
SwPaM aPam( *pTxtNd, 0, *pTxtNd, pTxtNd->GetTxt().Len() );
// Remove hidden paragraph or delete contents:
// Delete contents if
// 1. removing the paragraph would result in an empty section or
// 2. if the paragraph is the last paragraph in the section and
// there is no paragraph in front of the paragraph:
if ( ( 2 == pTxtNd->EndOfSectionIndex() - pTxtNd->StartOfSectionIndex() ) ||
( 1 == pTxtNd->EndOfSectionIndex() - pTxtNd->GetIndex() &&
!GetNodes()[ pTxtNd->GetIndex() - 1 ]->GetTxtNode() ) )
{
Delete( aPam );
}
else
2000-09-18 23:08:29 +00:00
{
aPam.DeleteMark();
DelFullPara( aPam );
}
}
}
2000-09-18 23:08:29 +00:00
}
//
// Remove any hidden paragraph (hidden text attribute)
//
for( ULONG n = GetNodes().Count(); n; )
{
SwTxtNode* pTxtNd = GetNodes()[ --n ]->GetTxtNode();
if ( pTxtNd )
{
bool bRemoved = false;
SwPaM aPam( *pTxtNd, 0, *pTxtNd, pTxtNd->GetTxt().Len() );
if ( pTxtNd->HasHiddenCharAttribute( true ) )
{
bRemoved = TRUE;
bRet = TRUE;
// Remove hidden paragraph or delete contents:
// Delete contents if
// 1. removing the paragraph would result in an empty section or
// 2. if the paragraph is the last paragraph in the section and
// there is no paragraph in front of the paragraph:
if ( ( 2 == pTxtNd->EndOfSectionIndex() - pTxtNd->StartOfSectionIndex() ) ||
( 1 == pTxtNd->EndOfSectionIndex() - pTxtNd->GetIndex() &&
!GetNodes()[ pTxtNd->GetIndex() - 1 ]->GetTxtNode() ) )
{
Delete( aPam );
}
else
{
aPam.DeleteMark();
DelFullPara( aPam );
}
}
else if ( pTxtNd->HasHiddenCharAttribute( false ) )
{
bRemoved = TRUE;
bRet = TRUE;
SwScriptInfo::DeleteHiddenRanges( *pTxtNd );
}
// --> FME 2006-01-11 #120473#
// Footnotes/Frames may have been removed, therefore we have
// to reset n:
if ( bRemoved )
n = aPam.GetPoint()->nNode.GetIndex();
// <--
}
}
2000-09-18 23:08:29 +00:00
{
// dann noch alle versteckten Bereiche loeschen/leeren
SwSectionFmts aSectFmts;
SwSectionFmts& rSectFmts = GetSections();
USHORT n;
for( n = rSectFmts.Count(); n; )
2000-09-18 23:08:29 +00:00
{
SwSectionFmt* pSectFmt = rSectFmts[ --n ];
// don't add sections in Undo/Redo
if( !pSectFmt->IsInNodesArr())
continue;
2000-09-18 23:08:29 +00:00
SwSection* pSect = pSectFmt->GetSection();
if( pSect->CalcHiddenFlag() )
{
SwSection* pParent = pSect, *pTmp;
while( 0 != (pTmp = pParent->GetParent() ))
{
if( pTmp->IsHiddenFlag() )
pSect = pTmp;
pParent = pTmp;
}
if( USHRT_MAX == aSectFmts.GetPos( pSect->GetFmt() ) )
aSectFmts.Insert( pSect->GetFmt(), 0 );
}
if( pSect->GetCondition().Len() )
{
SwSection aSect( pSect->GetType(), pSect->GetName() );
aSect = *pSect;
aSect.SetCondition( aEmptyStr );
aSect.SetHidden( FALSE );
ChgSection( n, aSect );
}
}
if( 0 != ( n = aSectFmts.Count() ))
{
while( n )
{
SwSectionFmt* pSectFmt = aSectFmts[ --n ];
SwSectionNode* pSectNd = pSectFmt->GetSectionNode();
if( pSectNd )
{
bRet = TRUE;
SwPaM aPam( *pSectNd );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
if( pSectNd->StartOfSectionNode()->StartOfSectionIndex() ==
2000-09-18 23:08:29 +00:00
pSectNd->GetIndex() - 1 &&
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
pSectNd->StartOfSectionNode()->EndOfSectionIndex() ==
2000-09-18 23:08:29 +00:00
pSectNd->EndOfSectionIndex() + 1 )
{
// nur den Inhalt loeschen
SwCntntNode* pCNd = GetNodes().GoNext(
&aPam.GetPoint()->nNode );
aPam.GetPoint()->nContent.Assign( pCNd, 0 );
aPam.SetMark();
aPam.GetPoint()->nNode = *pSectNd->EndOfSectionNode();
pCNd = GetNodes().GoPrevious(
&aPam.GetPoint()->nNode );
aPam.GetPoint()->nContent.Assign( pCNd, pCNd->Len() );
Delete( aPam );
}
else
{
// die gesamte Section loeschen
aPam.SetMark();
aPam.GetPoint()->nNode = *pSectNd->EndOfSectionNode();
DelFullPara( aPam );
}
}
}
aSectFmts.Remove( 0, aSectFmts.Count() );
}
}
if( bRet )
SetModified();
EndUndo( UNDO_UI_DELETE_INVISIBLECNTNT, NULL );
2000-09-18 23:08:29 +00:00
return bRet;
}
/*-- 11.06.2004 08:34:04---------------------------------------------------
-----------------------------------------------------------------------*/
BOOL SwDoc::ConvertFieldsToText()
{
BOOL bRet = FALSE;
LockExpFlds();
StartUndo( UNDO_UI_REPLACE, NULL );
const SwFldTypes* pMyFldTypes = GetFldTypes();
sal_uInt16 nCount = pMyFldTypes->Count();
//go backward, field types are removed
for(sal_uInt16 nType = nCount; nType > 0; --nType)
{
const SwFieldType *pCurType = pMyFldTypes->GetObject(nType - 1);
if ( RES_POSTITFLD == pCurType->Which() )
continue;
SwClientIter aIter( *(SwFieldType*)pCurType );
const SwFmtFld* pCurFldFmt = (SwFmtFld*)aIter.First( TYPE( SwFmtFld ));
::std::vector<const SwFmtFld*> aFieldFmts;
while (pCurFldFmt)
{
aFieldFmts.push_back(pCurFldFmt);
pCurFldFmt = (SwFmtFld*)aIter.Next();
}
::std::vector<const SwFmtFld*>::iterator aBegin = aFieldFmts.begin();
::std::vector<const SwFmtFld*>::iterator aEnd = aFieldFmts.end();
while(aBegin != aEnd)
{
const SwTxtFld *pTxtFld = (*aBegin)->GetTxtFld();
// skip fields that are currently not in the document
// e.g. fields in undo or redo array
BOOL bSkip = !pTxtFld ||
!pTxtFld->GetpTxtNode()->GetNodes().IsDocNodes();
if (!bSkip)
{
BOOL bInHeaderFooter = IsInHeaderFooter(SwNodeIndex(*pTxtFld->GetpTxtNode()));
const SwFmtFld& rFmtFld = pTxtFld->GetFld();
const SwField* pField = rFmtFld.GetFld();
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
//#i55595# some fields have to be excluded in headers/footers
USHORT nWhich = pField->GetTyp()->Which();
if(!bInHeaderFooter ||
(nWhich != RES_PAGENUMBERFLD &&
nWhich != RES_CHAPTERFLD &&
nWhich != RES_GETEXPFLD&&
nWhich != RES_SETEXPFLD&&
nWhich != RES_INPUTFLD&&
nWhich != RES_REFPAGEGETFLD&&
nWhich != RES_REFPAGESETFLD))
{
String sText = pField->GetCntnt();
//database fields should not convert their command into text
if( RES_DBFLD == pCurType->Which() && !static_cast<const SwDBField*>(pField)->IsInitialized())
sText.Erase();
//now remove the field and insert the string
SwPaM aPam(*pTxtFld->GetpTxtNode(), *pTxtFld->GetStart());
aPam.SetMark();
aPam.Move();
DeleteAndJoin(aPam);
Insert( aPam, sText, true );
}
}
++aBegin;
}
}
if( bRet )
SetModified();
EndUndo( UNDO_UI_REPLACE, NULL );
UnlockExpFlds();
return bRet;
2000-09-18 23:08:29 +00:00
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
bool SwDoc::IsVisibleLinks() const
{
return mbVisibleLinks;
}
void SwDoc::SetVisibleLinks(bool bFlag)
{
mbVisibleLinks = bFlag;
}
SvxLinkManager& SwDoc::GetLinkManager()
{
return *pLinkMgr;
}
const SvxLinkManager& SwDoc::GetLinkManager() const
{
return *pLinkMgr;
}
void SwDoc::SetLinksUpdated(const bool bNewLinksUpdated)
{
mbLinksUpdated = bNewLinksUpdated;
}
bool SwDoc::LinksUpdated() const
{
return mbLinksUpdated;
}
2000-09-18 23:08:29 +00:00
// embedded alle lokalen Links (Bereiche/Grafiken)
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
bool SwDoc::EmbedAllLinks()
2000-09-18 23:08:29 +00:00
{
BOOL bRet = FALSE;
SvxLinkManager& rLnkMgr = GetLinkManager();
const ::sfx2::SvBaseLinks& rLnks = rLnkMgr.GetLinks();
2000-09-18 23:08:29 +00:00
if( rLnks.Count() )
{
BOOL bDoesUndo = DoesUndo();
DoUndo( FALSE );
for( USHORT n = 0; n < rLnks.Count(); ++n )
{
::sfx2::SvBaseLink* pLnk = &(*rLnks[ n ]);
2000-09-18 23:08:29 +00:00
if( pLnk &&
( OBJECT_CLIENT_GRF == pLnk->GetObjType() ||
OBJECT_CLIENT_FILE == pLnk->GetObjType() ) &&
pLnk->ISA( SwBaseLink ) )
{
::sfx2::SvBaseLinkRef xLink = pLnk;
2000-09-18 23:08:29 +00:00
USHORT nCount = rLnks.Count();
String sFName;
rLnkMgr.GetDisplayNames( xLink, 0, &sFName, 0, 0 );
2000-09-18 23:08:29 +00:00
INetURLObject aURL( sFName );
if( INET_PROT_FILE == aURL.GetProtocol() ||
INET_PROT_CID == aURL.GetProtocol() )
{
// dem Link sagen, das er aufgeloest wird!
xLink->Closed();
2000-09-18 23:08:29 +00:00
// falls einer vergessen hat sich auszutragen
if( xLink.Is() )
rLnkMgr.Remove( xLink );
2000-09-18 23:08:29 +00:00
if( nCount != rLnks.Count() + 1 )
n = 0; // wieder von vorne anfangen, es wurden
// mehrere Links entfernt
bRet = TRUE;
}
}
}
DelAllUndoObj();
DoUndo( bDoesUndo );
SetModified();
}
return bRet;
}
/*--------------------------------------------------------------------
Beschreibung:
--------------------------------------------------------------------*/
BOOL SwDoc::IsInsTblFormatNum() const
{
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
return SW_MOD()->IsInsTblFormatNum(get(IDocumentSettingAccess::HTML_MODE));
2000-09-18 23:08:29 +00:00
}
BOOL SwDoc::IsInsTblChangeNumFormat() const
{
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
return SW_MOD()->IsInsTblChangeNumFormat(get(IDocumentSettingAccess::HTML_MODE));
2000-09-18 23:08:29 +00:00
}
/*--------------------------------------------------------------------
Beschreibung:
--------------------------------------------------------------------*/
BOOL SwDoc::IsInsTblAlignNum() const
{
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
return SW_MOD()->IsInsTblAlignNum(get(IDocumentSettingAccess::HTML_MODE));
2000-09-18 23:08:29 +00:00
}
// setze das InsertDB als Tabelle Undo auf:
void SwDoc::AppendUndoForInsertFromDB( const SwPaM& rPam, BOOL bIsTable )
{
if( bIsTable )
{
const SwTableNode* pTblNd = rPam.GetPoint()->nNode.GetNode().FindTableNode();
if( pTblNd )
{
SwUndoCpyTbl* pUndo = new SwUndoCpyTbl;
pUndo->SetTableSttIdx( pTblNd->GetIndex() );
AppendUndo( pUndo );
}
}
else if( rPam.HasMark() )
{
SwUndoCpyDoc* pUndo = new SwUndoCpyDoc( rPam );
pUndo->SetInsertRange( rPam, FALSE );
AppendUndo( pUndo );
}
}
void SwDoc::ChgTOX(SwTOXBase & rTOX, const SwTOXBase & rNew)
{
if (DoesUndo())
{
DelAllUndoObj();
SwUndo * pUndo = new SwUndoTOXChange(&rTOX, rNew);
AppendUndo(pUndo);
}
rTOX = rNew;
if (rTOX.ISA(SwTOXBaseSection))
{
static_cast<SwTOXBaseSection &>(rTOX).Update();
static_cast<SwTOXBaseSection &>(rTOX).UpdatePageNum();
}
}
// #111827#
String SwDoc::GetPaMDescr(const SwPaM & rPam) const
{
String aResult;
bool bOK = false;
if (rPam.GetNode(TRUE) == rPam.GetNode(FALSE))
{
SwTxtNode * pTxtNode = rPam.GetNode(TRUE)->GetTxtNode();
if (0 != pTxtNode)
{
xub_StrLen nStart = rPam.Start()->nContent.GetIndex();
xub_StrLen nEnd = rPam.End()->nContent.GetIndex();
aResult += String(SW_RES(STR_START_QUOTE));
aResult += ShortenString(pTxtNode->GetTxt().
Copy(nStart, nEnd - nStart),
nUndoStringLength,
String(SW_RES(STR_LDOTS)));
aResult += String(SW_RES(STR_END_QUOTE));
bOK = true;
}
}
else if (0 != rPam.GetNode(TRUE))
{
if (0 != rPam.GetNode(FALSE))
aResult += String(SW_RES(STR_PARAGRAPHS));
bOK = true;
}
if (! bOK)
aResult += String("??", RTL_TEXTENCODING_ASCII_US);
return aResult;
}
// -> #111840#
SwField * SwDoc::GetField(const SwPosition & rPos)
{
SwField * pResult = NULL;
SwTxtFld * pAttr = rPos.nNode.GetNode().GetTxtNode()->
GetTxtFld(rPos.nContent);
if (pAttr)
pResult = (SwField *) pAttr->GetFld().GetFld();
return pResult;
}
SwTxtFld * SwDoc::GetTxtFld(const SwPosition & rPos)
{
SwTxtNode *pNode = rPos.nNode.GetNode().GetTxtNode();
if( pNode )
return pNode->GetTxtFld( rPos.nContent );
else
return 0;
}
// <- #111840#
bool SwDoc::ContainsHiddenChars() const
{
for( ULONG n = GetNodes().Count(); n; )
{
SwNode* pNd = GetNodes()[ --n ];
if ( ND_TEXTNODE == pNd->GetNodeType() &&
((SwTxtNode*)pNd)->HasHiddenCharAttribute( false ) )
return true;
}
2000-09-18 23:08:29 +00:00
return false;
}
2000-09-18 23:08:29 +00:00
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
SwUnoCrsr* SwDoc::CreateUnoCrsr( const SwPosition& rPos, BOOL bTblCrsr )
{
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
SwUnoCrsr* pNew;
if( bTblCrsr )
pNew = new SwUnoTableCrsr( rPos );
else
pNew = new SwUnoCrsr( rPos );
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00
pUnoCrsrTbl->Insert( pNew, pUnoCrsrTbl->Count() );
return pNew;
}
void SwDoc::ChkCondColls()
{
for (USHORT n = 0; n < pTxtFmtCollTbl->Count(); n++)
{
SwTxtFmtColl *pColl = (*pTxtFmtCollTbl)[n];
if (RES_CONDTXTFMTCOLL == pColl->Which())
{
SwClientIter aIter(*pColl);
SwClient * pClient = aIter.First(TYPE(SwTxtNode));
while (pClient)
{
SwTxtNode * pTxtNode = static_cast<SwTxtNode *>(pClient);
pTxtNode->ChkCondColl();
pClient = aIter.Next();
}
}
}
}
INTEGRATION: CWS writercorehandoff (1.37.88); FILE MERGED 2006/08/14 15:07:11 fme 1.37.88.31: #i50348# Resync 2006/07/31 06:24:00 fme 1.37.88.30: #i50348# Resync 2006/07/27 14:37:06 fme 1.37.88.29: RESYNC: (1.42-1.44); FILE MERGED 2006/04/05 15:07:22 tra 1.37.88.28: doc.cxx 2006/04/05 08:49:39 tra 1.37.88.27: #i50348# 2006/03/17 08:01:11 tra 1.37.88.26: RESYNC: (1.41-1.42); FILE MERGED 2006/01/19 08:49:58 fme 1.37.88.25: #i50348# General cleanup - removed unused header files, functions, members, declarations 2005/12/21 15:16:23 tra 1.37.88.24: #i50348# 2005/12/20 15:06:51 tra 1.37.88.23: RESYNC: (1.39-1.41); FILE MERGED 2005/11/10 21:32:46 tra 1.37.88.22: #i50348# 2005/10/25 12:27:33 tra 1.37.88.21: #i50348# 2005/10/25 08:25:02 tra 1.37.88.20: RESYNC: (1.38-1.39); FILE MERGED 2005/10/24 16:01:12 tra 1.37.88.19: #50348# 2005/09/29 13:04:20 tra 1.37.88.18: #i50348# 2005/09/28 13:59:50 tra 1.37.88.17: #i50348# 2005/09/21 13:42:06 tra 1.37.88.16: #i50348# 2005/09/13 13:15:11 tra 1.37.88.15: RESYNC: (1.37-1.38); FILE MERGED 2005/08/31 12:50:45 tra 1.37.88.14: #i50348# Introducing IDocumentRedlineAccess interface 2005/07/19 06:05:42 fme 1.37.88.13: #i50348# make SwDoc accessible via interfaces 2005/07/14 12:35:19 tra 1.37.88.12: #i50348#removed get/set methods for compatibility flags in exchange for IDocumentSettingAccess, removed useless dummy members 2005/07/13 13:24:16 fme 1.37.88.11: #i50348# Make SwDoc accessible via interfaces 2005/07/13 05:26:05 tra 1.37.88.10: #i50348#make SwDoc interface based 2005/07/12 11:21:25 tra 1.37.88.9: #i50348#make SwDoc interface based 2005/07/05 14:00:15 tra 1.37.88.8: #i50348#make SwDoc interface based 2005/07/05 08:12:37 tra 1.37.88.7: #i50348#make SwDoc interface based 2005/06/24 11:43:13 fme 1.37.88.6: #i50348# Make SwDoc accessible via interfaces 2005/06/24 11:25:08 tra 1.37.88.5: #i50348# Make SwDoc accessible via interfaces 2005/06/22 13:08:12 tra 1.37.88.4: #i50348#toward a interface based SwDoc 2005/06/22 06:39:46 tra 1.37.88.3: #i50348# make SwDoc accessible via interfaces 2005/06/07 14:13:20 fme 1.37.88.2: #i50348# General cleanup - removed unused header files, functions, members, declarations etc. 2005/06/06 09:27:00 tra 1.37.88.1: Unnecessary includes removed #i50348#
2006-08-14 14:54:56 +00:00