[Libreoffice-commits] .: 107 commits - sw/AllLangResTarget_sw.mk sw/inc sw/JunitTest_sw_complex.mk sw/qa sw/sdi sw/source sw/uiconfig

Jan Holesovsky kendy at kemper.freedesktop.org
Wed Mar 23 09:27:48 PDT 2011


 sw/AllLangResTarget_sw.mk                                           |    1 
 sw/JunitTest_sw_complex.mk                                          |   13 
 sw/inc/IDocumentLayoutAccess.hxx                                    |   10 
 sw/inc/authfld.hxx                                                  |    4 
 sw/inc/calbck.hxx                                                   |  243 ++---
 sw/inc/crsrsh.hxx                                                   |    5 
 sw/inc/dcontact.hxx                                                 |   35 
 sw/inc/doc.hxx                                                      |   25 
 sw/inc/docsh.hxx                                                    |    2 
 sw/inc/docufld.hxx                                                  |   14 
 sw/inc/editsh.hxx                                                   |    9 
 sw/inc/expfld.hxx                                                   |    8 
 sw/inc/fchrfmt.hxx                                                  |    5 
 sw/inc/fldbas.hxx                                                   |    2 
 sw/inc/fmtcol.hxx                                                   |    6 
 sw/inc/fmtfld.hxx                                                   |    8 
 sw/inc/fmthdft.hxx                                                  |   12 
 sw/inc/fmtmeta.hxx                                                  |   30 
 sw/inc/fmtpdsc.hxx                                                  |    9 
 sw/inc/format.hxx                                                   |    5 
 sw/inc/frmfmt.hxx                                                   |    8 
 sw/inc/ftninfo.hxx                                                  |   10 
 sw/inc/lineinfo.hxx                                                 |    4 
 sw/inc/ndhints.hxx                                                  |    9 
 sw/inc/ndnotxt.hxx                                                  |    2 
 sw/inc/ndtxt.hxx                                                    |   10 
 sw/inc/node.hxx                                                     |   21 
 sw/inc/numrule.hxx                                                  |   14 
 sw/inc/pagedesc.hxx                                                 |    4 
 sw/inc/paratr.hxx                                                   |    9 
 sw/inc/printdata.hxx                                                |    9 
 sw/inc/reffld.hxx                                                   |    5 
 sw/inc/section.hxx                                                  |   12 
 sw/inc/swcrsr.hxx                                                   |   10 
 sw/inc/swddetbl.hxx                                                 |    4 
 sw/inc/switerator.hxx                                               |   47 
 sw/inc/swtable.hxx                                                  |   24 
 sw/inc/swtblfmt.hxx                                                 |    6 
 sw/inc/swtypes.hxx                                                  |    2 
 sw/inc/tox.hxx                                                      |   12 
 sw/inc/txtatr.hxx                                                   |   33 
 sw/inc/txtftn.hxx                                                   |    3 
 sw/inc/txtinet.hxx                                                  |    7 
 sw/inc/txtrfmrk.hxx                                                 |    2 
 sw/inc/txttxmrk.hxx                                                 |    3 
 sw/inc/unobaseclass.hxx                                             |    2 
 sw/inc/unobookmark.hxx                                              |    3 
 sw/inc/unochart.hxx                                                 |   17 
 sw/inc/unocrsr.hxx                                                  |    5 
 sw/inc/unodraw.hxx                                                  |    6 
 sw/inc/unofield.hxx                                                 |   22 
 sw/inc/unoflatpara.hxx                                              |    3 
 sw/inc/unoframe.hxx                                                 |    8 
 sw/inc/unoport.hxx                                                  |   13 
 sw/inc/unoredline.hxx                                               |    6 
 sw/inc/unoredlines.hxx                                              |    4 
 sw/inc/unosett.hxx                                                  |    7 
 sw/inc/unostyle.hxx                                                 |   15 
 sw/inc/unotbl.hxx                                                   |   22 
 sw/inc/unotext.hxx                                                  |   12 
 sw/inc/unotextmarkup.hxx                                            |    6 
 sw/inc/unotxdoc.hxx                                                 |   13 
 sw/inc/usrfld.hxx                                                   |    5 
 sw/inc/viewopt.hxx                                                  |   15 
 sw/inc/viewsh.hxx                                                   |   14 
 sw/qa/complex/accessibility/makefile.mk                             |   50 +
 sw/qa/complex/checkColor/makefile.mk                                |   50 +
 sw/qa/complex/writer/TestDocument.java                              |    3 
 sw/qa/unoapi/makefile.mk                                            |   48 +
 sw/sdi/_docsh.sdi                                                   |   11 
 sw/sdi/_viewsh.sdi                                                  |   10 
 sw/source/core/access/accdoc.cxx                                    |    8 
 sw/source/core/access/accframebase.cxx                              |   22 
 sw/source/core/access/accframebase.hxx                              |    3 
 sw/source/core/access/accfrmobj.cxx                                 |    4 
 sw/source/core/access/accmap.cxx                                    |   13 
 sw/source/core/access/accnotextframe.cxx                            |    6 
 sw/source/core/access/accnotextframe.hxx                            |    4 
 sw/source/core/access/accpara.cxx                                   |    4 
 sw/source/core/access/accpara.hxx                                   |    4 
 sw/source/core/access/acctable.cxx                                  |   13 
 sw/source/core/access/acctable.hxx                                  |    7 
 sw/source/core/access/acctextframe.cxx                              |    6 
 sw/source/core/access/acctextframe.hxx                              |    5 
 sw/source/core/attr/calbck.cxx                                      |  476 ++++------
 sw/source/core/attr/cellatr.cxx                                     |   11 
 sw/source/core/attr/format.cxx                                      |   52 -
 sw/source/core/crsr/bookmrk.cxx                                     |    4 
 sw/source/core/crsr/callnk.cxx                                      |   18 
 sw/source/core/crsr/callnk.hxx                                      |    3 
 sw/source/core/crsr/crsrsh.cxx                                      |   54 -
 sw/source/core/crsr/crstrvl.cxx                                     |   90 -
 sw/source/core/crsr/crstrvl1.cxx                                    |    2 
 sw/source/core/crsr/pam.cxx                                         |   12 
 sw/source/core/crsr/swcrsr.cxx                                      |   52 -
 sw/source/core/crsr/trvlfnfl.cxx                                    |    2 
 sw/source/core/crsr/trvltbl.cxx                                     |   14 
 sw/source/core/crsr/unocrsr.cxx                                     |   14 
 sw/source/core/crsr/viscrs.cxx                                      |   16 
 sw/source/core/doc/acmplwrd.cxx                                     |    9 
 sw/source/core/doc/doc.cxx                                          |  172 +--
 sw/source/core/doc/docbm.cxx                                        |    4 
 sw/source/core/doc/docchart.cxx                                     |    6 
 sw/source/core/doc/doccorr.cxx                                      |   10 
 sw/source/core/doc/docdesc.cxx                                      |  194 +---
 sw/source/core/doc/docdraw.cxx                                      |   54 -
 sw/source/core/doc/docedt.cxx                                       |   18 
 sw/source/core/doc/docfld.cxx                                       |   77 -
 sw/source/core/doc/docfly.cxx                                       |   37 
 sw/source/core/doc/docfmt.cxx                                       |   35 
 sw/source/core/doc/docftn.cxx                                       |   66 -
 sw/source/core/doc/docglbl.cxx                                      |    7 
 sw/source/core/doc/doclay.cxx                                       |  147 ++-
 sw/source/core/doc/docnew.cxx                                       |   30 
 sw/source/core/doc/docnum.cxx                                       |   13 
 sw/source/core/doc/docredln.cxx                                     |   10 
 sw/source/core/doc/doctxm.cxx                                       |   65 -
 sw/source/core/doc/fmtcol.cxx                                       |   27 
 sw/source/core/doc/ftnidx.cxx                                       |    7 
 sw/source/core/doc/htmltbl.cxx                                      |   20 
 sw/source/core/doc/lineinfo.cxx                                     |   29 
 sw/source/core/doc/notxtfrm.cxx                                     |   18 
 sw/source/core/doc/number.cxx                                       |   30 
 sw/source/core/doc/poolfmt.cxx                                      |    2 
 sw/source/core/doc/swserv.cxx                                       |    2 
 sw/source/core/doc/tblafmt.cxx                                      |    4 
 sw/source/core/doc/tblrwcl.cxx                                      |   29 
 sw/source/core/doc/visiturl.cxx                                     |    4 
 sw/source/core/docnode/ndcopy.cxx                                   |    2 
 sw/source/core/docnode/ndsect.cxx                                   |   55 -
 sw/source/core/docnode/ndtbl.cxx                                    |   48 -
 sw/source/core/docnode/ndtbl1.cxx                                   |   19 
 sw/source/core/docnode/node.cxx                                     |  153 +--
 sw/source/core/docnode/node2lay.cxx                                 |  101 +-
 sw/source/core/docnode/nodes.cxx                                    |   81 -
 sw/source/core/docnode/section.cxx                                  |  149 +--
 sw/source/core/docnode/swbaslnk.cxx                                 |   10 
 sw/source/core/draw/dcontact.cxx                                    |  186 +--
 sw/source/core/draw/dflyobj.cxx                                     |    7 
 sw/source/core/draw/dpage.cxx                                       |    2 
 sw/source/core/draw/dview.cxx                                       |   14 
 sw/source/core/edit/acorrect.cxx                                    |   20 
 sw/source/core/edit/autofmt.cxx                                     |    5 
 sw/source/core/edit/edattr.cxx                                      |    2 
 sw/source/core/edit/eddel.cxx                                       |    2 
 sw/source/core/edit/edfld.cxx                                       |   53 -
 sw/source/core/edit/edfldexp.cxx                                    |    7 
 sw/source/core/edit/editsh.cxx                                      |   44 
 sw/source/core/edit/edlingu.cxx                                     |   10 
 sw/source/core/edit/edsect.cxx                                      |    2 
 sw/source/core/edit/edtox.cxx                                       |   10 
 sw/source/core/edit/edundo.cxx                                      |   12 
 sw/source/core/fields/authfld.cxx                                   |   21 
 sw/source/core/fields/cellfml.cxx                                   |    4 
 sw/source/core/fields/dbfld.cxx                                     |   15 
 sw/source/core/fields/ddefld.cxx                                    |   14 
 sw/source/core/fields/ddetbl.cxx                                    |   22 
 sw/source/core/fields/docufld.cxx                                   |   49 -
 sw/source/core/fields/expfld.cxx                                    |   26 
 sw/source/core/fields/fldlst.cxx                                    |   13 
 sw/source/core/fields/postithelper.cxx                              |    7 
 sw/source/core/fields/reffld.cxx                                    |   61 -
 sw/source/core/fields/tblcalc.cxx                                   |   12 
 sw/source/core/fields/usrfld.cxx                                    |    4 
 sw/source/core/frmedt/fecopy.cxx                                    |    2 
 sw/source/core/frmedt/fedesc.cxx                                    |    4 
 sw/source/core/frmedt/fefly1.cxx                                    |   22 
 sw/source/core/frmedt/feflyole.cxx                                  |    2 
 sw/source/core/frmedt/feshview.cxx                                  |   54 -
 sw/source/core/frmedt/fetab.cxx                                     |    2 
 sw/source/core/frmedt/fews.cxx                                      |   16 
 sw/source/core/frmedt/tblsel.cxx                                    |  116 +-
 sw/source/core/graphic/ndgrf.cxx                                    |   16 
 sw/source/core/inc/UndoAttribute.hxx                                |    2 
 sw/source/core/inc/UndoCore.hxx                                     |    5 
 sw/source/core/inc/acorrect.hxx                                     |    1 
 sw/source/core/inc/attrhint.hxx                                     |   44 
 sw/source/core/inc/bodyfrm.hxx                                      |    2 
 sw/source/core/inc/bookmrk.hxx                                      |    7 
 sw/source/core/inc/cellfrm.hxx                                      |    4 
 sw/source/core/inc/cntfrm.hxx                                       |    9 
 sw/source/core/inc/colfrm.hxx                                       |    2 
 sw/source/core/inc/fieldhint.hxx                                    |   44 
 sw/source/core/inc/flyfrm.hxx                                       |   18 
 sw/source/core/inc/flyfrms.hxx                                      |   18 
 sw/source/core/inc/frame.hxx                                        |   35 
 sw/source/core/inc/frmtool.hxx                                      |    5 
 sw/source/core/inc/ftnboss.hxx                                      |    2 
 sw/source/core/inc/ftnfrm.hxx                                       |    4 
 sw/source/core/inc/hffrm.hxx                                        |    6 
 sw/source/core/inc/layfrm.hxx                                       |    2 
 sw/source/core/inc/notxtfrm.hxx                                     |    4 
 sw/source/core/inc/pagedeschint.hxx                                 |   46 
 sw/source/core/inc/pagefrm.hxx                                      |    6 
 sw/source/core/inc/prevwpage.hxx                                    |   27 
 sw/source/core/inc/rolbck.hxx                                       |    6 
 sw/source/core/inc/rootfrm.hxx                                      |    6 
 sw/source/core/inc/rowfrm.hxx                                       |    4 
 sw/source/core/inc/sectfrm.hxx                                      |    8 
 sw/source/core/inc/tabfrm.hxx                                       |    7 
 sw/source/core/inc/txtfrm.hxx                                       |    7 
 sw/source/core/layout/atrfrm.cxx                                    |  191 ++--
 sw/source/core/layout/calcmove.cxx                                  |   15 
 sw/source/core/layout/colfrm.cxx                                    |   19 
 sw/source/core/layout/findfrm.cxx                                   |   25 
 sw/source/core/layout/flowfrm.cxx                                   |   67 -
 sw/source/core/layout/fly.cxx                                       |  217 +++-
 sw/source/core/layout/flycnt.cxx                                    |    9 
 sw/source/core/layout/flyincnt.cxx                                  |    6 
 sw/source/core/layout/flylay.cxx                                    |   20 
 sw/source/core/layout/flypos.cxx                                    |   30 
 sw/source/core/layout/frmtool.cxx                                   |  330 ++----
 sw/source/core/layout/ftnfrm.cxx                                    |   91 +
 sw/source/core/layout/hffrm.cxx                                     |   28 
 sw/source/core/layout/layact.cxx                                    |   32 
 sw/source/core/layout/laycache.cxx                                  |   22 
 sw/source/core/layout/movedfwdfrmsbyobjpos.cxx                      |    9 
 sw/source/core/layout/newfrm.cxx                                    |   51 -
 sw/source/core/layout/pagechg.cxx                                   |  142 +-
 sw/source/core/layout/pagedesc.cxx                                  |   29 
 sw/source/core/layout/paintfrm.cxx                                  |   49 -
 sw/source/core/layout/sectfrm.cxx                                   |   68 -
 sw/source/core/layout/softpagebreak.cxx                             |   15 
 sw/source/core/layout/ssfrm.cxx                                     |   80 +
 sw/source/core/layout/tabfrm.cxx                                    |   92 -
 sw/source/core/layout/trvlfrm.cxx                                   |   16 
 sw/source/core/layout/wsfrm.cxx                                     |  124 +-
 sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx  |   14 
 sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx |    6 
 sw/source/core/ole/ndole.cxx                                        |    2 
 sw/source/core/para/paratr.cxx                                      |   19 
 sw/source/core/table/swnewtable.cxx                                 |    9 
 sw/source/core/table/swtable.cxx                                    |  199 ++--
 sw/source/core/text/EnhancedPDFExportHelper.cxx                     |   48 -
 sw/source/core/text/blink.cxx                                       |    2 
 sw/source/core/text/frmcrsr.cxx                                     |   14 
 sw/source/core/text/frmform.cxx                                     |    8 
 sw/source/core/text/frmpaint.cxx                                    |    7 
 sw/source/core/text/inftxt.cxx                                      |    8 
 sw/source/core/text/itratr.cxx                                      |   42 
 sw/source/core/text/porfld.cxx                                      |    6 
 sw/source/core/text/porfly.cxx                                      |    3 
 sw/source/core/text/porlay.cxx                                      |   16 
 sw/source/core/text/porrst.cxx                                      |   15 
 sw/source/core/text/redlnitr.cxx                                    |    4 
 sw/source/core/text/txtdrop.cxx                                     |   18 
 sw/source/core/text/txtfld.cxx                                      |    2 
 sw/source/core/text/txtfly.cxx                                      |   15 
 sw/source/core/text/txtfrm.cxx                                      |   52 -
 sw/source/core/text/txtftn.cxx                                      |    5 
 sw/source/core/text/txtio.cxx                                       |   10 
 sw/source/core/text/txttab.cxx                                      |  111 +-
 sw/source/core/tox/tox.cxx                                          |   43 
 sw/source/core/tox/txmsrt.cxx                                       |    2 
 sw/source/core/txtnode/SwGrammarContact.cxx                         |   44 
 sw/source/core/txtnode/atrfld.cxx                                   |   47 
 sw/source/core/txtnode/atrflyin.cxx                                 |   22 
 sw/source/core/txtnode/atrftn.cxx                                   |   26 
 sw/source/core/txtnode/atrref.cxx                                   |    2 
 sw/source/core/txtnode/atrtox.cxx                                   |    2 
 sw/source/core/txtnode/fmtatr2.cxx                                  |   88 -
 sw/source/core/txtnode/fntcache.cxx                                 |    9 
 sw/source/core/txtnode/ndtxt.cxx                                    |  118 +-
 sw/source/core/txtnode/thints.cxx                                   |   45 
 sw/source/core/txtnode/txtatr2.cxx                                  |   41 
 sw/source/core/txtnode/txtedt.cxx                                   |   20 
 sw/source/core/undo/SwUndoPageDesc.cxx                              |   32 
 sw/source/core/undo/rolbck.cxx                                      |   10 
 sw/source/core/undo/unattr.cxx                                      |   75 -
 sw/source/core/undo/undobj1.cxx                                     |   12 
 sw/source/core/undo/undraw.cxx                                      |  129 --
 sw/source/core/undo/unins.cxx                                       |    2 
 sw/source/core/undo/untbl.cxx                                       |   50 -
 sw/source/core/unocore/unobkm.cxx                                   |    8 
 sw/source/core/unocore/unochart.cxx                                 |    4 
 sw/source/core/unocore/unocoll.cxx                                  |   18 
 sw/source/core/unocore/unocrsrhelper.cxx                            |    4 
 sw/source/core/unocore/unodraw.cxx                                  |   23 
 sw/source/core/unocore/unofield.cxx                                 |   49 -
 sw/source/core/unocore/unoflatpara.cxx                              |    4 
 sw/source/core/unocore/unoframe.cxx                                 |   27 
 sw/source/core/unocore/unoftn.cxx                                   |    8 
 sw/source/core/unocore/unoidx.cxx                                   |   38 
 sw/source/core/unocore/unoobj.cxx                                   |    8 
 sw/source/core/unocore/unoobj2.cxx                                  |   50 -
 sw/source/core/unocore/unoparagraph.cxx                             |    8 
 sw/source/core/unocore/unoport.cxx                                  |   12 
 sw/source/core/unocore/unoportenum.cxx                              |    4 
 sw/source/core/unocore/unoredline.cxx                               |    2 
 sw/source/core/unocore/unoredlines.cxx                              |   10 
 sw/source/core/unocore/unorefmk.cxx                                 |   16 
 sw/source/core/unocore/unosect.cxx                                  |    6 
 sw/source/core/unocore/unosett.cxx                                  |    8 
 sw/source/core/unocore/unostyle.cxx                                 |   10 
 sw/source/core/unocore/unotbl.cxx                                   |   91 -
 sw/source/core/unocore/unotext.cxx                                  |   58 -
 sw/source/core/unocore/unotextmarkup.cxx                            |   10 
 sw/source/core/view/printdata.cxx                                   |    4 
 sw/source/core/view/vdraw.cxx                                       |    2 
 sw/source/core/view/viewimp.cxx                                     |    8 
 sw/source/core/view/viewpg.cxx                                      |    1 
 sw/source/core/view/viewsh.cxx                                      |  100 +-
 sw/source/core/view/vnew.cxx                                        |   54 -
 sw/source/core/view/vprint.cxx                                      |   25 
 sw/source/filter/html/css1atr.cxx                                   |    3 
 sw/source/filter/html/htmlforw.cxx                                  |    3 
 sw/source/filter/html/htmltab.cxx                                   |    2 
 sw/source/filter/html/htmlvsh.hxx                                   |    5 
 sw/source/filter/html/swhtml.cxx                                    |    6 
 sw/source/filter/html/swhtml.hxx                                    |    2 
 sw/source/filter/inc/fltshell.hxx                                   |    2 
 sw/source/filter/rtf/rtfnum.cxx                                     |    2 
 sw/source/filter/rtf/rtftbl.cxx                                     |    4 
 sw/source/filter/rtf/swparrtf.cxx                                   |    4 
 sw/source/filter/ww1/fltshell.cxx                                   |    8 
 sw/source/filter/ww8/rtfexport.cxx                                  |    7 
 sw/source/filter/ww8/wrtw8esh.cxx                                   |    2 
 sw/source/filter/ww8/wrtw8nds.cxx                                   |   30 
 sw/source/filter/ww8/wrtww8.cxx                                     |    3 
 sw/source/filter/ww8/wrtww8.hxx                                     |    1 
 sw/source/filter/ww8/ww8atr.cxx                                     |   24 
 sw/source/filter/ww8/ww8graf2.cxx                                   |    3 
 sw/source/filter/ww8/ww8par5.cxx                                    |    2 
 sw/source/filter/xml/XMLRedlineImportHelper.cxx                     |   52 -
 sw/source/filter/xml/wrtxml.cxx                                     |    2 
 sw/source/filter/xml/xmlexp.cxx                                     |    4 
 sw/source/filter/xml/xmlfmt.cxx                                     |    4 
 sw/source/filter/xml/xmltbli.cxx                                    |    2 
 sw/source/filter/xml/xmltexti.cxx                                   |    6 
 sw/source/ui/app/apphdl.cxx                                         |   15 
 sw/source/ui/app/docsh.cxx                                          |   27 
 sw/source/ui/app/docsh2.cxx                                         |  169 ---
 sw/source/ui/app/docstyle.cxx                                       |    4 
 sw/source/ui/app/swmodul1.cxx                                       |    4 
 sw/source/ui/config/viewopt.cxx                                     |   19 
 sw/source/ui/dialog/SwSpellDialogChildWindow.cxx                    |   50 -
 sw/source/ui/dochdl/swdtflvr.cxx                                    |   23 
 sw/source/ui/docvw/PostItMgr.cxx                                    |   10 
 sw/source/ui/docvw/edtwin.cxx                                       |    2 
 sw/source/ui/fldui/fldmgr.cxx                                       |    6 
 sw/source/ui/fldui/fldpage.cxx                                      |    8 
 sw/source/ui/frmdlg/frmpage.cxx                                     |    2 
 sw/source/ui/inc/view.hxx                                           |    1 
 sw/source/ui/inc/wrtsh.hxx                                          |    2 
 sw/source/ui/index/cnttab.src                                       |    4 
 sw/source/ui/lingu/hhcwrp.cxx                                       |   10 
 sw/source/ui/lingu/sdrhhcwrap.cxx                                   |   49 -
 sw/source/ui/lingu/sdrhhcwrap.hxx                                   |    1 
 sw/source/ui/shells/textfld.cxx                                     |   10 
 sw/source/ui/shells/textsh.cxx                                      |    8 
 sw/source/ui/table/tabledlg.cxx                                     |   10 
 sw/source/ui/uiview/pview.cxx                                       |    8 
 sw/source/ui/uiview/srcview.cxx                                     |    1 
 sw/source/ui/uiview/view.cxx                                        |   73 -
 sw/source/ui/uiview/view0.cxx                                       |   79 +
 sw/source/ui/uiview/view2.cxx                                       |    7 
 sw/source/ui/uiview/viewport.cxx                                    |   20 
 sw/source/ui/uiview/viewtab.cxx                                     |    8 
 sw/source/ui/uno/unomod.cxx                                         |   11 
 sw/source/ui/uno/unotxdoc.cxx                                       |  105 +-
 sw/source/ui/uno/unotxvw.cxx                                        |   10 
 sw/source/ui/utlui/navipi.cxx                                       |    4 
 sw/source/ui/utlui/uitool.cxx                                       |    4 
 sw/source/ui/vba/vbainformationhelper.cxx                           |    5 
 sw/source/ui/vba/wordvbahelper.cxx                                  |    4 
 sw/source/ui/wrtsh/wrtsh1.cxx                                       |   15 
 sw/uiconfig/sglobal/menubar/menubar.xml                             |    2 
 sw/uiconfig/sweb/menubar/menubar.xml                                |    2 
 sw/uiconfig/swform/menubar/menubar.xml                              |    2 
 sw/uiconfig/swreport/menubar/menubar.xml                            |    2 
 sw/uiconfig/swriter/menubar/menubar.xml                             |    2 
 sw/uiconfig/swxform/menubar/menubar.xml                             |    2 
 372 files changed, 5080 insertions(+), 4742 deletions(-)

New commits:
commit 57962868b038149e85b04160eec881eaf1f31f95
Merge: 233ddc3... f269d0c...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Mar 23 17:23:15 2011 +0100

    Merge branch 'master' of git://anongit.freedesktop.org/libreoffice/writer
    
    Conflicts:
    	sw/source/core/inc/frame.hxx
    	sw/source/core/layout/wsfrm.cxx

diff --cc sw/source/core/inc/flyfrm.hxx
index d8695c1,2e073ab..1cdd817
--- a/sw/source/core/inc/flyfrm.hxx
+++ b/sw/source/core/inc/flyfrm.hxx
@@@ -147,9 -142,12 +147,11 @@@ protected
      virtual bool _SetObjTop( const SwTwips _nTop );
      virtual bool _SetObjLeft( const SwTwips _nLeft );
  
 -    // #i70122#
      virtual const SwRect GetObjBoundRect() const;
 +    virtual	void Modify( const SfxPoolItem*, const SfxPoolItem* );
  
+     virtual const IDocumentDrawModelAccess* getIDocumentDrawModelAccess( );
+ 
  public:
      // #i26791#
      TYPEINFO();
diff --cc sw/source/core/inc/frame.hxx
index d85ac1b,fd62c0e..9135ea7
--- a/sw/source/core/inc/frame.hxx
+++ b/sw/source/core/inc/frame.hxx
@@@ -35,7 -35,7 +35,8 @@@
  #include "swtypes.hxx"	// fuer SwTwips
  #include "swrect.hxx"
  #include "calbck.hxx"	// fuer SwClient
 +#include <svl/brdcst.hxx>
+ #include "IDocumentDrawModelAccess.hxx"
  
  #if OSL_DEBUG_LEVEL > 1
  #include <libxml/encoding.h>
@@@ -500,8 -498,9 +501,10 @@@ protected
  
          //Schatten und Umrandung painten
      void PaintShadow( const SwRect&, SwRect&, const SwBorderAttrs& ) const;
 +    virtual	void  Modify( const SfxPoolItem*, const SfxPoolItem* );
  
+     virtual const IDocumentDrawModelAccess* getIDocumentDrawModelAccess( );
+ 
  public:
      TYPEINFO();	//Bereits in Basisklasse Client drin.
  
diff --cc sw/source/core/layout/wsfrm.cxx
index 58c6a34,5e3405b..e3de4b9
--- a/sw/source/core/layout/wsfrm.cxx
+++ b/sw/source/core/layout/wsfrm.cxx
@@@ -117,15 -113,19 +117,20 @@@ SwFrm::SwFrm( SwModify *pMod, SwFrm* pS
      bCompletePaint = bInfInvalid = sal_True;
  }
  
+ const IDocumentDrawModelAccess* SwFrm::getIDocumentDrawModelAccess()
+ {
+     return GetUpper()->GetFmt()->getIDocumentDrawModelAccess();
+ }
+ 
 -ViewShell * SwFrm::GetShell() const
 -{
 -    const SwRootFrm *pRoot;
 -    if ( 0 != (pRoot = FindRootFrm()) )
 -        return pRoot->GetCurrShell();
 -    return 0;
 +bool SwFrm::KnowsFormat( const SwFmt& rFmt ) const
 +{ 
 +    return GetRegisteredIn() == &rFmt; 
  }
  
 +void SwFrm::RegisterToFormat( SwFmt& rFmt )
 +{
 +    rFmt.Add( this );
 +}
  
  void SwFrm::CheckDir( sal_uInt16 nDir, sal_Bool bVert, sal_Bool bOnlyBiDi, sal_Bool bBrowse )
  {
commit 233ddc31c26bb33e4dc4531d097ef4362a5b329a
Merge: e3d7657... 94ea22c...
Author: Jan Holesovsky <kendy at suse.cz>
Date:   Wed Mar 23 17:00:12 2011 +0100

    Merge commit 'ooo/DEV300_m103'
    
    Conflicts:
    	sw/inc/calbck.hxx
    	sw/inc/crsrsh.hxx
    	sw/inc/dcontact.hxx
    	sw/inc/doc.hxx
    	sw/inc/docufld.hxx
    	sw/inc/editsh.hxx
    	sw/inc/expfld.hxx
    	sw/inc/fchrfmt.hxx
    	sw/inc/fmtcol.hxx
    	sw/inc/fmthdft.hxx
    	sw/inc/fmtpdsc.hxx
    	sw/inc/format.hxx
    	sw/inc/frmfmt.hxx
    	sw/inc/ndhints.hxx
    	sw/inc/ndtxt.hxx
    	sw/inc/node.hxx
    	sw/inc/numrule.hxx
    	sw/inc/paratr.hxx
    	sw/inc/swtable.hxx
    	sw/inc/unocrsr.hxx
    	sw/inc/unofield.hxx
    	sw/inc/unoframe.hxx
    	sw/inc/unoport.hxx
    	sw/inc/unostyle.hxx
    	sw/inc/usrfld.hxx
    	sw/inc/viewopt.hxx
    	sw/inc/viewsh.hxx
    	sw/source/core/access/accframebase.cxx
    	sw/source/core/access/accmap.cxx
    	sw/source/core/access/accnotextframe.cxx
    	sw/source/core/access/accpara.cxx
    	sw/source/core/access/accpara.hxx
    	sw/source/core/attr/calbck.cxx
    	sw/source/core/crsr/callnk.cxx
    	sw/source/core/crsr/crsrsh.cxx
    	sw/source/core/doc/acmplwrd.cxx
    	sw/source/core/doc/doc.cxx
    	sw/source/core/doc/docdesc.cxx
    	sw/source/core/doc/docdraw.cxx
    	sw/source/core/doc/docfly.cxx
    	sw/source/core/doc/docfmt.cxx
    	sw/source/core/doc/doclay.cxx
    	sw/source/core/doc/docnew.cxx
    	sw/source/core/doc/docnum.cxx
    	sw/source/core/doc/doctxm.cxx
    	sw/source/core/doc/fmtcol.cxx
    	sw/source/core/doc/htmltbl.cxx
    	sw/source/core/doc/number.cxx
    	sw/source/core/docnode/ndsect.cxx
    	sw/source/core/docnode/ndtbl.cxx
    	sw/source/core/docnode/node.cxx
    	sw/source/core/docnode/node2lay.cxx
    	sw/source/core/docnode/section.cxx
    	sw/source/core/docnode/swbaslnk.cxx
    	sw/source/core/draw/dcontact.cxx
    	sw/source/core/draw/dview.cxx
    	sw/source/core/edit/autofmt.cxx
    	sw/source/core/edit/editsh.cxx
    	sw/source/core/edit/edlingu.cxx
    	sw/source/core/fields/authfld.cxx
    	sw/source/core/fields/dbfld.cxx
    	sw/source/core/fields/docufld.cxx
    	sw/source/core/fields/expfld.cxx
    	sw/source/core/fields/reffld.cxx
    	sw/source/core/fields/tblcalc.cxx
    	sw/source/core/frmedt/fefly1.cxx
    	sw/source/core/frmedt/feshview.cxx
    	sw/source/core/frmedt/tblsel.cxx
    	sw/source/core/inc/flyfrm.hxx
    	sw/source/core/inc/prevwpage.hxx
    	sw/source/core/inc/rolbck.hxx
    	sw/source/core/inc/txtfrm.hxx
    	sw/source/core/layout/atrfrm.cxx
    	sw/source/core/layout/findfrm.cxx
    	sw/source/core/layout/flowfrm.cxx
    	sw/source/core/layout/fly.cxx
    	sw/source/core/layout/flycnt.cxx
    	sw/source/core/layout/flylay.cxx
    	sw/source/core/layout/frmtool.cxx
    	sw/source/core/layout/hffrm.cxx
    	sw/source/core/layout/pagechg.cxx
    	sw/source/core/layout/pagedesc.cxx
    	sw/source/core/layout/paintfrm.cxx
    	sw/source/core/layout/sectfrm.cxx
    	sw/source/core/layout/ssfrm.cxx
    	sw/source/core/layout/tabfrm.cxx
    	sw/source/core/layout/wsfrm.cxx
    	sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx
    	sw/source/core/table/swtable.cxx
    	sw/source/core/text/EnhancedPDFExportHelper.cxx
    	sw/source/core/text/inftxt.cxx
    	sw/source/core/text/porfld.cxx
    	sw/source/core/text/txtdrop.cxx
    	sw/source/core/text/txtfly.cxx
    	sw/source/core/text/txtfrm.cxx
    	sw/source/core/text/txtio.cxx
    	sw/source/core/text/txttab.cxx
    	sw/source/core/tox/tox.cxx
    	sw/source/core/txtnode/atrflyin.cxx
    	sw/source/core/txtnode/fmtatr2.cxx
    	sw/source/core/txtnode/ndtxt.cxx
    	sw/source/core/undo/SwUndoPageDesc.cxx
    	sw/source/core/undo/undraw.cxx
    	sw/source/core/unocore/unochart.cxx
    	sw/source/core/unocore/unocoll.cxx
    	sw/source/core/unocore/unodraw.cxx
    	sw/source/core/unocore/unofield.cxx
    	sw/source/core/unocore/unoframe.cxx
    	sw/source/core/unocore/unoftn.cxx
    	sw/source/core/unocore/unoidx.cxx
    	sw/source/core/unocore/unoobj2.cxx
    	sw/source/core/unocore/unoparagraph.cxx
    	sw/source/core/unocore/unoport.cxx
    	sw/source/core/unocore/unoportenum.cxx
    	sw/source/core/unocore/unoredline.cxx
    	sw/source/core/unocore/unoredlines.cxx
    	sw/source/core/unocore/unorefmk.cxx
    	sw/source/core/unocore/unosect.cxx
    	sw/source/core/unocore/unosett.cxx
    	sw/source/core/unocore/unostyle.cxx
    	sw/source/core/unocore/unotbl.cxx
    	sw/source/core/unocore/unotext.cxx
    	sw/source/core/view/viewimp.cxx
    	sw/source/core/view/viewpg.cxx
    	sw/source/core/view/viewsh.cxx
    	sw/source/core/view/vnew.cxx
    	sw/source/core/view/vprint.cxx
    	sw/source/filter/ww8/rtfexport.cxx
    	sw/source/filter/ww8/rtfexport.hxx
    	sw/source/filter/ww8/wrtw8nds.cxx
    	sw/source/filter/ww8/wrtww8gr.cxx
    	sw/source/filter/xml/XMLRedlineImportHelper.cxx
    	sw/source/ui/app/apphdl.cxx
    	sw/source/ui/app/docsh.cxx
    	sw/source/ui/app/docsh2.cxx
    	sw/source/ui/app/swmodul1.cxx
    	sw/source/ui/config/viewopt.cxx
    	sw/source/ui/fldui/fldpage.cxx
    	sw/source/ui/uiview/srcview.cxx
    	sw/source/ui/uiview/view.cxx
    	sw/source/ui/uno/unotxdoc.cxx
    	sw/source/ui/vba/wordvbahelper.cxx
    	sw/source/ui/wrtsh/wrtsh1.cxx

diff --cc sw/inc/authfld.hxx
index eaaef94,a8965ed..ac1b50a
--- a/sw/inc/authfld.hxx
+++ b/sw/inc/authfld.hxx
@@@ -87,10 -98,9 +90,9 @@@ public
      ~SwAuthorityFieldType();
  
      virtual SwFieldType* Copy()    const;
-     virtual void 		Modify( SfxPoolItem *pOld, SfxPoolItem *pNew );
  
 -    virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId ) const;
 -    virtual sal_Bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId );
 +    virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId ) const;
 +    virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nWhichId );
  
      inline void     SetDoc(SwDoc* pNewDoc)              { m_pDoc = pNewDoc; }
      SwDoc*          GetDoc(){ return m_pDoc; }
diff --cc sw/inc/calbck.hxx
index ce441ca,27aaaca..eab502e
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@@ -50,32 -35,60 +36,60 @@@
  class SwModify;
  class SwClientIter;
  class SfxPoolItem;
- class SvStream;
+ class SfxHint;
+ 
+ /*
+     SwModify and SwClient cooperate in propagating attribute changes.
+     If an attribute changes, the change is notified to all dependent
+     formats and other interested objects, e.g. Nodes. The clients will detect
 -    if the change affects them. It could be that the changed attribute is 
 -    overruled in the receiving object so that its change does not become 
 -    effective or that the receiver is not interested in the particular attribute 
++    if the change affects them. It could be that the changed attribute is
++    overruled in the receiving object so that its change does not become
++    effective or that the receiver is not interested in the particular attribute
+     in general (though probably in other attributes of the SwModify object they
+     are registered in).
+     As SwModify objects are derived from SwClient, they can create a chain of SwClient
+     objects where changes can get propagated through.
+     Each SwClient can be registered at only one SwModify object, while each SwModify
+     object is connected to a list of SwClient objects. If an object derived from SwClient
 -    wants to get notifications from more than one SwModify object, it must create additional 
++    wants to get notifications from more than one SwModify object, it must create additional
+     SwClient objects. The SwDepend class allows to handle their notifications in the same
 -    notification callback as it forwards the Modify() calls it receives to a "master" 
++    notification callback as it forwards the Modify() calls it receives to a "master"
+     SwClient implementation.
 -    The SwClientIter class allows to iterate over the SwClient objects registered at an 
 -    SwModify. For historical reasons its ability to use TypeInfo to restrict this iteration 
 -    to objects of a particular type created a lot of code that misuses SwClient-SwModify 
 -    relationships that basically should be used only for Modify() callbacks. 
++    The SwClientIter class allows to iterate over the SwClient objects registered at an
++    SwModify. For historical reasons its ability to use TypeInfo to restrict this iteration
++    to objects of a particular type created a lot of code that misuses SwClient-SwModify
++    relationships that basically should be used only for Modify() callbacks.
+     This is still subject to refactoring.
+     Until this gets resolved, new SwClientIter base code should be reduced to the absolute
+     minimum and it also should be wrapped by SwIterator templates that prevent that the
+     code gets polluted by pointer casts (see switerator.hxx).
+  */
  
  // ----------
  // SwClient
  // ----------
  
- class SW_DLLPUBLIC SwClient
+ class SW_DLLPUBLIC SwClient : ::boost::noncopyable
  {
+     // avoids making the details of the linked list and the callback method public
 -    friend class SwModify;          
 +    friend class SwModify;
      friend class SwClientIter;
  
-     SwClient *pLeft, *pRight;			// for AVL sorting
-     sal_Bool bModifyLocked : 1;			// used in SwModify::Modify,
-                                         // is really a member of SwModify
-                                         // but here for lack of space
+     SwClient *pLeft, *pRight;       // double-linked list of other clients
+     SwModify *pRegisteredIn;        // event source
  
-     sal_Bool bInModify 	: 1;			// is in a modify. (Debug!!!)
-     sal_Bool bInDocDTOR	: 1;			// Doc gets destroyed,
-                                         // do not "unsubscribe"
-     sal_Bool bInCache	: 1;			// is in BorderAttrCache of the layout,
-                                         // unsubscribes itself then in Modify!
-     sal_Bool bInSwFntCache : 1; 		// is in SwFont cache of the formatting
+     // in general clients should not be removed when their SwModify sends out Modify()
+     // notifications; in some rare cases this is necessary, but only the concrete SwClient
+     // sub class will know that; this flag allows to make that known
+     bool mbIsAllowedToBeRemovedInModifyCall;
  
- protected:
-     SwModify *pRegisteredIn;
+     // callbacks received from SwModify (friend class - so these methods can be private)
+     // should be called only from SwModify the client is registered in
+     // mba: IMHO these methods should be pure virtual
+     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
+     virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint );
  
+ protected:
      // single argument ctors shall be explicit.
      explicit SwClient(SwModify *pToRegisterIn);
  
@@@ -83,28 -101,23 +102,23 @@@ public
      inline SwClient();
      virtual ~SwClient();
  
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
 -    // in case an SwModify object is destroyed that itself is registered in another SwModify, 
++    // in case an SwModify object is destroyed that itself is registered in another SwModify,
+     // its SwClient objects can decide to get registered to the latter instead by calling this method
+     void CheckRegistration( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue );
+ 
+     // controlled access to Modify method
+     // mba: this is still considered a hack and it should be fixed; the name makes grep-ing easier
+     void ModifyNotification( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue ) { Modify ( pOldValue, pNewValue ); }
+    void SwClientNotifyCall( const SwModify& rModify, const SfxHint& rHint ) { SwClientNotify( rModify, rHint ); }
+ 
      const SwModify* GetRegisteredIn() const { return pRegisteredIn; }
+     bool IsLast() const { return !pLeft && !pRight; }
  
-     //rtti, derived classes may do likewise or not. When they do, it can be
-     //casted typesafely via the dependency list of a Modify
+     // needed for class SwClientIter
      TYPEINFO();
  
-     void LockModify()					{ bModifyLocked = sal_True;  }
-     void UnlockModify()					{ bModifyLocked = sal_False; }
-     void SetInCache( sal_Bool bNew )		{ bInCache = bNew;		 }
-     void SetInSwFntCache( sal_Bool bNew ) 	{ bInSwFntCache = bNew;	 }
-     sal_Bool IsModifyLocked() const			{ return bModifyLocked;  }
-     sal_Bool IsInDocDTOR()	  const 		{ return bInDocDTOR;	 }
-     sal_Bool IsInCache()	  const 		{ return bInCache;		 }
-     sal_Bool IsInSwFntCache()  const 		{ return bInSwFntCache;	 }
- 
-     // get client Information
+     // get information about attribute
      virtual sal_Bool GetInfo( SfxPoolItem& ) const;
- 
- private:
-     SwClient( const SwClient& );
-     SwClient &operator=( const SwClient& );
  };
  
  inline SwClient::SwClient() :
@@@ -116,50 -128,58 +129,57 @@@
  // SwModify
  // ----------
  
 +// class has a doubly linked list for dependencies
- 
  class SW_DLLPUBLIC SwModify: public SwClient
  {
-     friend SvStream& operator<<( SvStream& aS, SwModify & );
 -//	friend class SwClientIter;
 -
+     SwClient* pRoot;                // the start of the linked list of clients
+     sal_Bool bModifyLocked : 1;         // don't broadcast changes now
+     sal_Bool bLockClientList : 1;       // may be set when this instance notifies its clients
+     sal_Bool bInDocDTOR	: 1;            // workaround for problems when a lot of objects are destroyed
+     sal_Bool bInCache	: 1;
+     sal_Bool bInSwFntCache : 1;
  
-     friend class SwClientIter;
-     SwClient* pRoot;
- 
-     SwClient *_Remove(SwClient *pDepend);
+     // mba: IMHO this method should be pure virtual
+     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
  
  public:
-     SwModify() : pRoot(0) {}
+     SwModify();
+ 
+     // broadcasting: send notifications to all clients
+     void NotifyClients( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue );
+ 
+     // the same, but without setting bModifyLocked or checking for any of the flags
+     // mba: it would be interesting to know why this is necessary
+     // also allows to limit callback to certain type (HACK)
+     void ModifyBroadcast( const SfxPoolItem *pOldValue, const SfxPoolItem *pNewValue, TypeId nType = TYPE(SwClient) );
+ 
+     // a more universal broadcasting mechanism
+     void CallSwClientNotify( const SfxHint& rHint ) const;
  
      // single argument ctors shall be explicit.
-     explicit SwModify(SwModify *pToRegisterIn );
+     explicit SwModify( SwModify *pToRegisterIn );
      virtual ~SwModify();
  
-     virtual void Modify( SfxPoolItem *pOldValue, SfxPoolItem *pNewValue );
      void Add(SwClient *pDepend);
-     SwClient *Remove(SwClient *pDepend)
-         {	return bInDocDTOR ?  0 : _Remove( pDepend ); }
- 
+     SwClient* Remove(SwClient *pDepend);
      const SwClient* GetDepends() const	{ return pRoot; }
  
-     // get client information
+     // get information about attribute
      virtual sal_Bool GetInfo( SfxPoolItem& ) const;
  
-     void SetInDocDTOR() { bInDocDTOR = sal_True; }
+     void LockModify()                   { bModifyLocked = sal_True;  }
+     void UnlockModify()  				{ bModifyLocked = sal_False; }
+     void SetInCache( sal_Bool bNew )		{ bInCache = bNew;		 }
+     void SetInSwFntCache( sal_Bool bNew ) 	{ bInSwFntCache = bNew;	 }
+     void SetInDocDTOR()                 { bInDocDTOR = sal_True; }
+     sal_Bool IsModifyLocked() const		{ return bModifyLocked;  }
+     sal_Bool IsInDocDTOR()	  const 	{ return bInDocDTOR;	 }
+     sal_Bool IsInCache()	  const 	{ return bInCache;		 }
+     sal_Bool IsInSwFntCache() const     { return bInSwFntCache;	 }
  
      void CheckCaching( const sal_uInt16 nWhich );
- 
-     sal_Bool IsLastDepend() const
-         { return pRoot && !pRoot->pLeft && !pRoot->pRight; }
- 
- private:
-     // forbidden and not implemented (see @ SwClient).
-     SwModify & operator= (const SwModify &);
- 
- protected:
-     // forbidden and not implemented (see @ SwClient),
-     //   but GCC >= 3.4 needs an accessible "T (const T&)"
-     //   to pass a "T" as a "const T&" argument
-     SwModify (const SwModify &);
+     bool IsLastDepend() { return pRoot && pRoot->IsLast(); }
+     int GetClientCount() const;
  };
  
  // ----------
@@@ -180,69 -198,63 +198,66 @@@ public
      SwDepend(SwClient *pTellHim, SwModify *pDepend);
  
      SwClient* GetToTell() { return pToTell; }
-     virtual void Modify( SfxPoolItem *pOldValue, SfxPoolItem *pNewValue );
  
 +    // get Client information
      virtual sal_Bool GetInfo( SfxPoolItem & ) const;
  
- private:
-     // forbidden and not implemented (see @ SwClient).
-     SwDepend (const SwDepend &);
-     SwDepend & operator= (const SwDepend &);
+ protected:
+     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNewValue );
+     virtual void SwClientNotify( const SwModify& rModify, const SfxHint& rHint );
  };
  
  
  class SwClientIter
  {
-     friend SwClient* SwModify::_Remove(SwClient *);	// for ptr correction
-     friend void SwModify::Add(SwClient *);			// only for OSL_ENSURE !
+     friend SwClient* SwModify::Remove(SwClient *); // for pointer adjustments
+     friend void SwModify::Add(SwClient *pDepend);   // for pointer adjustments
  
-     SwModify const& rRoot;
-     SwClient *pAkt, *pDelNext;
-     // for updating of all iterators when inserting/deleting clients, while the
-     // iterator points on it
-     SwClientIter *pNxtIter;
+     const SwModify& rRoot;
  
-     SwClient* mpWatchClient;    // if set, SwModify::_Remove checks if this client is removed
+     // the current object in an iteration
+     SwClient* pAct;
  
-     TypeId aSrchId;				// for First/Next - look for this type
+     // in case the current object is already removed, the next object in the list
+     // is marked down to become the current object in the next step
+     // this is necessary because iteration requires access to members of the current object
+     SwClient* pDelNext;
+ 
+     // SwClientIter objects are tracked in linked list so that they can react
 -    // when the current (pAct) or marked down (pDelNext) SwClient is removed 
++    // when the current (pAct) or marked down (pDelNext) SwClient is removed
+     // from its SwModify
+     SwClientIter *pNxtIter;
+ 
+     // iterator can be limited to return only SwClient objects of a certain type
+     TypeId aSrchId;
  
  public:
-     SW_DLLPUBLIC SwClientIter( SwModify const& );
+     SW_DLLPUBLIC SwClientIter( const SwModify& );
      SW_DLLPUBLIC ~SwClientIter();
  
-     const SwModify& GetModify() const		{ return rRoot; }
+     const SwModify& GetModify() const { return rRoot; }
  
      SwClient* operator++(int);
      SwClient* GoStart();
      SwClient* GoEnd();
  
-     inline SwClient* GoRoot(); 		// restart from root
- 
 -    // returns the current SwClient object; 
 -    // in case this was already removed, the object marked down to become 
++    // returns the current SwClient object;
++    // in case this was already removed, the object marked down to become
+     // the next current one is returned
      SwClient* operator()() const
-         { return pDelNext == pAkt ? pAkt : pDelNext; }
+         { return pDelNext == pAct ? pAct : pDelNext; }
  
-     int IsChanged() const { return pDelNext != pAkt; }
+     // return "true" if an object was removed from a client chain in iteration
+     // adding objects to a client chain in iteration is forbidden
+     // SwModify::Add() asserts this
+     bool IsChanged() const { return pDelNext != pAct; }
  
      SW_DLLPUBLIC SwClient* First( TypeId nType );
      SW_DLLPUBLIC SwClient* Next();
- 
-     const SwClient* GetWatchClient() const { return mpWatchClient; }
-     void SetWatchClient( SwClient* pWatch ) { mpWatchClient = pWatch; }
+     SW_DLLPUBLIC SwClient* Last( TypeId nType );
+     SW_DLLPUBLIC SwClient* Previous();
  };
  
- inline SwClient* SwClientIter::GoRoot()
- {
-     pAkt = rRoot.pRoot;
-     return (pDelNext = pAkt);
- }
- 
- 
- 
  #endif
 +
 +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc sw/inc/crsrsh.hxx
index 2a91682,fcf7207..b24d297
--- a/sw/inc/crsrsh.hxx
+++ b/sw/inc/crsrsh.hxx
@@@ -311,13 -333,11 +314,11 @@@ protected
  public:
      TYPEINFO();
      SwCrsrShell( SwDoc& rDoc, Window *pWin, const SwViewOption *pOpt = 0 );
 -    // verkleideter Copy-Constructor
 +    // disguised copy constructor
      SwCrsrShell( SwCrsrShell& rShell, Window *pWin );
      virtual ~SwCrsrShell();
- 
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
  
 -    // IShellCursorSupplier
 +    // create new cursor and append the old one
      virtual SwPaM & CreateNewShellCursor();
      virtual SwPaM & GetCurrentShellCursor();
  
diff --cc sw/inc/dcontact.hxx
index afa7bf0,ccea938..99707b4
--- a/sw/inc/dcontact.hxx
+++ b/sw/inc/dcontact.hxx
@@@ -50,14 -50,14 +51,13 @@@ class SwRect
  class SwDrawContact;
  struct SwPosition;
  class SwIndex;
- #include <anchoreddrawobject.hxx>
+ class SdrTextObj;
  
 -//Der Umgekehrte Weg: Sucht das Format zum angegebenen Objekt.
 -//Wenn das Object ein SwVirtFlyDrawObj ist so wird das Format von
 -//selbigem besorgt.
 -//Anderfalls ist es eben ein einfaches Zeichenobjekt. Diese hat einen
 -//UserCall und der ist Client vom gesuchten Format.
 -//Implementierung in dcontact.cxx
 +// The other way round: Search format for given object.
 +// If object is a SwVirtFlyDrawObj the format will be obtained from it.
 +// If not it is a simple DrawObject. It has a UserCall which
 +// is client of the format we are looking for.
 +// Implementation in dcontact.cxx.
  SW_DLLPUBLIC SwFrmFmt *FindFrmFmt( SdrObject *pObj );
  inline const SwFrmFmt *FindFrmFmt( const SdrObject *pObj )
  {	return ::FindFrmFmt( (SdrObject*)pObj ); }
@@@ -188,8 -202,11 +188,8 @@@ public
  
      /** get data collection of anchored objects, handled by with contact
  
 -        OD 2004-08-23 #110810#
 -
 -        @author
      */
-     virtual void GetAnchoredObjs( std::vector<SwAnchoredObject*>& _roAnchoredObjs ) const = 0;
+     virtual void GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const = 0;
  
      /** get minimum order number of anchored objects handled by with contact
  
@@@ -208,15 -231,12 +208,11 @@@
  class SW_DLLPUBLIC SwFlyDrawContact : public SwContact
  {
  private:
 -    // OD 2004-04-01 #i26791#
      SwFlyDrawObj* mpMasterObj;
  
-     /** method to determine new order number for new instance of <SwVirtFlyDrawObj>
- 
-         Used in method <CreateNewRef(..)>.
- 
-         @author OD
-     */
-     sal_uInt32 _GetOrdNumForNewRef( const SwFlyFrm* pFlyFrm );
+ protected:
+      // virtuelle Methoden von SwClient
+     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew );
  
  public:
      TYPEINFO();
@@@ -232,23 -254,22 +228,18 @@@
      virtual SdrObject* GetMaster();
      virtual void SetMaster( SdrObject* _pNewMaster );
  
-     SwVirtFlyDrawObj* CreateNewRef( SwFlyFrm* pFly );
- 
-     // virtual methods from SwClient
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew );
- 
 -    // OD 2004-01-16 #110582# - override methods to control Writer fly frames,
 +    // override methods to control Writer fly frames,
      // which are linked, and to assure that all objects anchored at/inside the
      // Writer fly frame are also made visible/invisible.
      virtual void MoveObjToVisibleLayer( SdrObject* _pDrawObj );
      virtual void MoveObjToInvisibleLayer( SdrObject* _pDrawObj );
  
      /** get data collection of anchored objects handled by with contact
 -
 -        OD 2004-08-23 #110810#
 -
 -        @author
      */
-     virtual void GetAnchoredObjs( std::vector<SwAnchoredObject*>& _roAnchoredObjs ) const;
+     virtual void GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const;
  };
  
 -// OD 16.05.2003 #108784# - new class for re-direct methods calls at a 'virtual'
 +// new class for re-direct methods calls at a 'virtual'
  //      drawing object to its referenced object.
  class SwDrawVirtObj : public SdrVirtObj
  {
@@@ -416,6 -450,13 +407,11 @@@ class SwDrawContact : public SwContac
          // no copy-constructor and no assignment operator
          SwDrawContact( const SwDrawContact& );
          SwDrawContact& operator=( const SwDrawContact& );
 -        // <--
+ 
+     protected:        
+         // virtuelle Methoden von SwClient
+         virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew );
+ 
      public:
          TYPEINFO();
  
@@@ -471,26 -519,31 +467,25 @@@
          // by frame.
          SdrObject* GetDrawObjectByAnchorFrm( const SwFrm& _rAnchorFrm );
  
-         // Virtual methods of SwClient.
-         virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew );
- 
 -        // virtuelle Methoden von SdrObjUserCall
 +        // Virtual methods of SdrObjUserCall.
          virtual void Changed(const SdrObject& rObj, SdrUserCallType eType, const Rectangle& rOldBoundRect);
  
 -        // wird von Changed() und auch vom UndoDraw benutzt, uebernimmt
 -        // das Notifien von Absaetzen, die ausweichen muessen
 +        // Used by Changed() and by UndoDraw.
 +        // Notifies paragraphs that have to get out of the way.
          void _Changed(const SdrObject& rObj, SdrUserCallType eType, const Rectangle* pOldBoundRect);
  
 -        //Moved alle SW-Verbindungen zu dem neuen Master.
 +        //Moves all SW-connections to new Master)
          void ChangeMasterObject( SdrObject *pNewMaster );
  
 -        // OD 19.06.2003 #108784#
          SwDrawVirtObj* AddVirtObj();
  
          void NotifyBackgrdOfAllVirtObjs( const Rectangle* pOldBoundRect );
  
          /** get data collection of anchored objects, handled by with contact
 -
 -            OD 2004-08-23 #110810#
 -
 -            @author
          */
-         virtual void GetAnchoredObjs( std::vector<SwAnchoredObject*>& _roAnchoredObjs ) const;
+ 
+         static void GetTextObjectsFromFmt( std::list<SdrTextObj*>&, SwDoc* );
+         virtual void GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const;
  };
  
  #endif
diff --cc sw/inc/doc.hxx
index 08e6e64,e5b3fd8..9eaa132
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@@ -318,16 -325,16 +318,16 @@@ class SW_DLLPUBLIC SwDoc 
      SwTxtFmtColls	*pTxtFmtCollTbl;	// FormatCollections
      SwGrfFmtColls	*pGrfFmtCollTbl;
  
 -    SwTOXTypes		*pTOXTypes;			// Verzeichnisse
 +    SwTOXTypes		*pTOXTypes;			// Tables/indices
      SwDefTOXBase_Impl * pDefTOXBases;	// defaults of SwTOXBase's
  
-     SwRootFrm		*pLayout;			// Rootframe of the specific layout.
+     ViewShell		*pCurrentView;	// SwDoc should get a new member pCurrentView//swmod 071225
      SdrModel		*pDrawModel;		// StarView Drawing
  
 -    SwDocUpdtFld 	*pUpdtFlds;			// Struktur zum Field-Update
 -    SwFldTypes		*pFldTypes;			// Feldtypen
 -    SwNewDBMgr 		*pNewDBMgr;			// Pointer auf den neuen DBMgr fuer
 -                                        // Evaluierung der DB-Fields
 +    SwDocUpdtFld 	*pUpdtFlds;			// Struct for updating fields
 +    SwFldTypes		*pFldTypes;
 +    SwNewDBMgr 		*pNewDBMgr;			// Pointer to the new DBMgr for
 +                                        // evaluation of DB-fields.
  
      VirtualDevice   *pVirDev;           // can be used for formatting
      SfxPrinter      *pPrt;              // can be used for formatting
@@@ -434,35 -445,34 +434,34 @@@ private
      SdrLayerID  nInvisibleHell;
      SdrLayerID  nInvisibleControls;
  
 -    bool mbGlossDoc              : 1;    //sal_True: ist ein Textbaustein Dokument
 -    bool mbModified              : 1;    //sal_True: Dokument ist veraendert
 -    bool mbDtor                  : 1;    //sal_True: ist im SwDoc DTOR
 -                                         //      leider auch temporaer von
 -                                         //      SwSwgReader::InLayout(), wenn fehlerhafte
 -                                         //      Frames geloescht werden muessen
 -    bool mbPageNums              : 1;    // TRUE: es gibt virtuelle Seitennummern
 -    bool mbLoaded                : 1;    // TRUE: ein geladenes Doc
 -    bool mbUpdateExpFld          : 1;    // TRUE: Expression-Felder updaten
 -    bool mbNewDoc                : 1;    // TRUE: neues Doc
 -    bool mbNewFldLst             : 1;    // TRUE: Felder-Liste neu aufbauen
 -    bool mbCopyIsMove            : 1;    // TRUE: Copy ist ein verstecktes Move
 -    bool mbVisibleLinks          : 1;    // TRUE: Links werden sichtbar eingefuegt
 -    bool mbInReading             : 1;    // TRUE: Dokument wird gerade gelesen
 -    bool mbInXMLImport           : 1;    // TRUE: During xml import, attribute portion building is not necessary
 -    bool mbUpdateTOX             : 1;    // TRUE: nach Dokument laden die TOX Updaten
 -    bool mbInLoadAsynchron       : 1;    // TRUE: Dokument wird gerade asynchron geladen
 -    bool mbHTMLMode              : 1;    // TRUE: Dokument ist im HTMLMode
 -    bool mbInCallModified        : 1;    // TRUE: im Set/Reset-Modified Link
 -    bool mbIsGlobalDoc           : 1;    // TRUE: es ist ein GlobalDokument
 -    bool mbGlblDocSaveLinks      : 1;    // TRUE: im GlobalDoc. gelinkte Sect. mit speichern
 -    bool mbIsLabelDoc            : 1;    // TRUE: es ist ein Etiketten-Dokument
 -    bool mbIsAutoFmtRedline      : 1;    // TRUE: die Redlines werden vom Autoformat aufgezeichnet
 -    bool mbOLEPrtNotifyPending   : 1;    // TRUE: Printer  ist geaendert und beim
 -                                         //       Erzeugen der ::com::sun::star::sdbcx::View ist eine Benachrichtigung
 -                                         //       der OLE-Objekte PrtOLENotify() notwendig.
 -    bool mbAllOLENotify          : 1;    // True: Benachrichtigung aller Objekte ist notwendig
 -    bool mbIsRedlineMove         : 1;    // True: die Redlines werden in/aus der Section verschoben
 +    bool mbGlossDoc              : 1;    //TRUE: glossary document.
 +    bool mbModified              : 1;    //TRUE: document has changed.
 +    bool mbDtor                  : 1;    //TRUE: is in SwDoc DTOR.
 +                                         //      and unfortunately temorarily also in
 +                                         //      SwSwgReader::InLayout() when flawed
 +                                         //      frames need deletion.
 +    bool mbPageNums              : 1;    // TRUE: There are virtual page numbers.
 +    bool mbLoaded                : 1;    // TRUE: Doc loaded.
 +    bool mbUpdateExpFld          : 1;    // TRUE: Update expression fields.
 +    bool mbNewDoc                : 1;    // TRUE: new Doc.
 +    bool mbNewFldLst             : 1;    // TRUE: Rebuild field-list.
 +    bool mbCopyIsMove            : 1;    // TRUE: Copy is a hidden Move.
 +    bool mbVisibleLinks          : 1;    // TRUE: Links are inserted visibly.
-     bool mbBrowseMode            : 1;    // TRUE: Show document in browser mode.
 +    bool mbInReading             : 1;    // TRUE: Document is in the process of being read.
 +    bool mbInXMLImport           : 1;    // TRUE: During xml import, attribute portion building is not necessary.
 +    bool mbUpdateTOX             : 1;    // TRUE: After loading document, update TOX.
 +    bool mbInLoadAsynchron       : 1;    // TRUE: Document is in the process of being loaded asynchronously.
 +    bool mbHTMLMode              : 1;    // TRUE: Document is in HTMLMode.
 +    bool mbInCallModified        : 1;    // TRUE: in Set/Reset-Modified link.
 +    bool mbIsGlobalDoc           : 1;    // TRUE: It's a global document.
 +    bool mbGlblDocSaveLinks      : 1;    // TRUE: Save sections linked in global document.
 +    bool mbIsLabelDoc            : 1;    // TRUE: It's a label document.
 +    bool mbIsAutoFmtRedline      : 1;    // TRUE: Redlines are recorded by Autoformat.
 +    bool mbOLEPrtNotifyPending   : 1;    // TRUE: Printer has changed. At creation of
 +                                         //       ::com::sun::star::sdbcx::View
 +                                         //       notification of OLE-Objects PrtOLENotify() is required.
 +    bool mbAllOLENotify          : 1;    // True: Notification of all objects is required.
 +    bool mbIsRedlineMove         : 1;    // True: Redlines are moved into to / out of the section.
      bool mbInsOnlyTxtGlssry      : 1;    // True: insert 'only text' glossary into doc
      bool mbContains_MSVBasic     : 1;    // True: MS-VBasic exist is in our storage
      bool mbPurgeOLE              : 1;    // sal_True: Purge OLE-Objects
@@@ -564,23 -574,24 +563,25 @@@
      bool mbMathBaselineAlignment            : 1;    // TL  2010-10-29 #i972#
  
      // non-ui-compatibility flags:
 -    bool mbOldNumbering                             : 1;   // HBRINKM #111955#
 -    bool mbIgnoreFirstLineIndentInNumbering         : 1;   // FME 2005-05-30# i47448#
 -    bool mbDoNotJustifyLinesWithManualBreak         : 1;   // FME 2005-06-08 #i49277#
 -    bool mbDoNotResetParaAttrsForNumFont            : 1;   // FME 2005-08-11 #i53199#
 -    bool mbTableRowKeep                             : 1;   // FME 2006-02-10 #131283#
 -    bool mbIgnoreTabsAndBlanksForLineCalculation    : 1;   // FME 2006-03-01 #i3952#
 -    bool mbDoNotCaptureDrawObjsOnPage               : 1;   // OD 2006-03-14 #i62875#
 +    bool mbOldNumbering                             : 1;
 +    bool mbIgnoreFirstLineIndentInNumbering         : 1;   // #i47448#
 +    bool mbDoNotJustifyLinesWithManualBreak         : 1;   // #i49277#
 +    bool mbDoNotResetParaAttrsForNumFont            : 1;   // #i53199#
 +    bool mbTableRowKeep                             : 1;
 +    bool mbIgnoreTabsAndBlanksForLineCalculation    : 1;   // #i3952#
 +    bool mbDoNotCaptureDrawObjsOnPage               : 1;   // #i62875#
      bool mbOutlineLevelYieldsOutlineRule            : 1;
 -    bool mbClipAsCharacterAnchoredWriterFlyFrames   : 1;   // OD 2006-04-13 #b6402800#
 -    bool mbUnixForceZeroExtLeading                  : 1;   // FME 2006-10-09 #i60945#
 -    bool mbOldPrinterMetrics                        : 1;   // FME 2007-05-14 #147385#
 +    bool mbClipAsCharacterAnchoredWriterFlyFrames   : 1;
 +    bool mbUnixForceZeroExtLeading                  : 1;   // #i60945#
 +    bool mbOldPrinterMetrics                        : 1;
      bool mbTabRelativeToIndent                      : 1;   // #i24363# tab stops relative to indent
      bool mbProtectForm                              : 1;
 -    bool mbTabAtLeftIndentForParagraphsInList;             // OD 2008-06-05 #i89181# - see above
 +    bool mbInvertBorderSpacing                      : 1;
 +    bool mbCollapseEmptyCellPara                    : 1;
 +    bool mbTabAtLeftIndentForParagraphsInList;             // #i89181# - see above
  
+     bool mbLastBrowseMode                           : 1;
+ 
 -    // #i78591#
      sal_uInt32  n32DummyCompatabilityOptions1;
      sal_uInt32  n32DummyCompatabilityOptions2;
      //
@@@ -1288,17 -1332,14 +1294,14 @@@ public
  
      // get the set of printable pages for the XRenderable API by
      // evaluating the respective settings (see implementation)
-     void CalculatePagesForPrinting( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport,
+     void CalculatePagesForPrinting( const SwRootFrm& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, 
              sal_Int32 nDocPageCount );
 -    void UpdatePagesForPrintingWithPostItData( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport, 
 +    void UpdatePagesForPrintingWithPostItData( SwRenderData &rData, const SwPrintUIOptions &rOptions, bool bIsPDFExport,
              sal_Int32 nDocPageCount );
-     void CalculatePagePairsForProspectPrinting( SwRenderData &rData, const SwPrintUIOptions &rOptions,
+     void CalculatePagePairsForProspectPrinting( const SwRootFrm& rLayout, SwRenderData &rData, const SwPrintUIOptions &rOptions, 
              sal_Int32 nDocPageCount );
  
-     sal_uInt16 GetPageCount() const;
-     const Size GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) const;
- 
 -        //PageDescriptor-Schnittstelle
 +    // PageDescriptor interface.
      sal_uInt16 GetPageDescCnt() const { return aPageDescs.Count(); }
      const SwPageDesc& GetPageDesc( const sal_uInt16 i ) const { return *aPageDescs[i]; }
      SwPageDesc* FindPageDescByName( const String& rName,
@@@ -1840,16 -1899,17 +1843,16 @@@
      void SetPreViewPrtData( const SwPagePreViewPrtData* pData );
  
      // update all modified OLE-Objects. The modification is called over the
 -    // StarOne - Interface				--> Bug 67026
 +    // StarOne - Interface
      void SetOLEObjModified()
-     {	if( GetRootFrm() ) aOLEModifiedTimer.Start(); }
+     {	if( GetCurrentViewShell() ) aOLEModifiedTimer.Start(); }	//swmod 071107//swmod 071225
  
 -    // -------------------- Uno - Schnittstellen ---------------------------
 +    // -------------------- Uno - Interfaces ---------------------------
      const SwUnoCrsrTbl& GetUnoCrsrTbl() const 		{ return *pUnoCrsrTbl; }
      SwUnoCrsr* CreateUnoCrsr( const SwPosition& rPos, sal_Bool bTblCrsr = sal_False );
 -    // -------------------- Uno - Schnittstellen ---------------------------
  
 -    // -------------------- FeShell - Schnittstellen -----------------------
 -    // !!!!! diese gehen immer davon aus, das ein Layout existiert  !!!!
 +    // -------------------- FeShell - Interfaces -----------------------
 +    // !!! These assume always an existing layout !!!
      sal_Bool ChgAnchor( const SdrMarkList& _rMrkList,
                          RndStdIds _eAnchorType,
                          const sal_Bool _bSameOnly,
diff --cc sw/inc/docufld.hxx
index 486474c,eacd63c..1818bec
--- a/sw/inc/docufld.hxx
+++ b/sw/inc/docufld.hxx
@@@ -639,8 -639,10 +639,10 @@@ public
      SwRefPageSetFieldType();
  
      virtual SwFieldType*	Copy() const;
-     // Overlay, because there is nothing to update!
-     virtual void			Modify( SfxPoolItem *, SfxPoolItem * );
+ 
+ protected:
 -    // ueberlagert, weil es nichts zum Updaten gibt!
++   // Overlay, because there is nothing to update!
+    virtual void Modify( const SfxPoolItem*, const SfxPoolItem * );
  };
  
  /*--------------------------------------------------------------------
diff --cc sw/inc/editsh.hxx
index 8c88b92,08d4d63..6b845b1
--- a/sw/inc/editsh.hxx
+++ b/sw/inc/editsh.hxx
@@@ -542,21 -556,20 +542,21 @@@ public
      void StartAllAction();
      void EndAllAction();
  
 -    //Damit Start-/EndActions aufgesetzt werden koennen.
 +    // To enable set up of StartActions and EndActions.
      void CalcLayout();
  
 -    // Inhaltsform bestimmen, holen, liefert Type am CurCrsr->SPoint
 +    // Determine form of content. Return Type at CurCrsr->SPoint.
      sal_uInt16 GetCntType() const;
 -    sal_Bool HasOtherCnt() const; // gibt es Rahmen, Fussnoten, ...
  
 -    /* Anwenden der ViewOptions mit Start-/EndAction */
 +    // Are there frames, footnotes, etc.
 +    sal_Bool HasOtherCnt() const;
 +
 +    // Apply ViewOptions with Start-/EndAction.
-     inline void ApplyViewOptions( const SwViewOption &rOpt );
+     virtual void ApplyViewOptions( const SwViewOption &rOpt );
  
 -    // Text innerhalb der Selektion erfragen
 -    // Returnwert liefert sal_False, wenn der selektierte Bereich
 -    // zu gross ist, um in den Stringpuffer kopiert zu werden
 -    // oder andere Fehler auftreten
 +    // Query text within selection.
 +    // Returns FALSE, if selected range is too large to be copied
 +    // into string buffer or if other errors occur.
      sal_Bool GetSelectedText( String &rBuf,
                          int nHndlParaBreak = GETSELTXT_PARABRK_TO_BLANK );
  
diff --cc sw/inc/expfld.hxx
index 2f7a932,85f86e4..edfbcdc
--- a/sw/inc/expfld.hxx
+++ b/sw/inc/expfld.hxx
@@@ -75,12 -79,17 +75,12 @@@ public
          SwGetExpFieldType(SwDoc* pDoc);
          virtual SwFieldType*    Copy() const;
  
 -        // ueberlagert, weil das Get-Field nicht veraendert werden kann
 -        // und dann auch nicht aktualisiert werden muss. Aktualisierung
 -        // erfolgt beim Aendern von Set-Werten !
 +        // Overlay, because get-field cannot be changed and therefore
 +        // does not need to be updated. Update at changing of set-values!
- 
-         virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew );
+ protected:
+    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew );
  };
  
 -/*--------------------------------------------------------------------
 -    Beschreibung: GetExperession
 - --------------------------------------------------------------------*/
 -
  class SW_DLLPUBLIC SwGetExpField : public SwFormulaField
  {
      String 			sExpand;
@@@ -168,8 -183,8 +171,7 @@@ public
      sal_Bool					IsDeleted() const 		{ return bDeleted; }
      void					SetDeleted( sal_Bool b )	{ bDeleted = b; }
  
 -    // ueberlagert, weil das Set-Field selbst dafuer sorgt, das
 -    // es aktualisiert wird.
 +    // Overlay, because set-field takes care for its being updated by itself.
-     virtual void 			Modify( SfxPoolItem *pOld, SfxPoolItem *pNew );
      inline const String& 	GetSetRefName() const;
  
      sal_uInt16 SetSeqRefNo( SwSetExpField& rFld );
diff --cc sw/inc/fchrfmt.hxx
index 752aa14,78da028..6f43cc9
--- a/sw/inc/fchrfmt.hxx
+++ b/sw/inc/fchrfmt.hxx
@@@ -70,11 -72,9 +73,9 @@@ public
                                      String &rText,
                                      const IntlWrapper*    pIntl = 0 ) const;
  
 -    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
 -    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
 +    virtual	bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
 +    virtual	bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
  
-     // Pass to SwTxtCharFmt (from SwClient).
-     virtual void    Modify( SfxPoolItem*, SfxPoolItem* );
      virtual sal_Bool 	GetInfo( SfxPoolItem& rInfo ) const;
  
      void SetCharFmt( SwFmt* pFmt ) { pFmt->Add(this); }
diff --cc sw/inc/fldbas.hxx
index 4109d86,ccd8b17..23ce783
--- a/sw/inc/fldbas.hxx
+++ b/sw/inc/fldbas.hxx
@@@ -272,12 -288,16 +272,12 @@@ public
  
  inline void SwFieldType::UpdateFlds() const
  {
-     ((SwFieldType*)this)->Modify( 0, 0 );
+     ((SwFieldType*)this)->ModifyNotification( 0, 0 );
  }
  
 -/*--------------------------------------------------------------------
 -    Beschreibung:  Basisklasse aller Felder.
 -                   Ueber Which wird der Typ des Feldes abgefragt.
 -                   Ueber Expand() wird der expandierte Inhalt
 -                   des Feldes in Erfahrung gebracht.
 - --------------------------------------------------------------------*/
 -
 +// Base class of all fields.
 +// Type of field is queried via Which.
 +// Expanded content of field is queried via Expand().
  class SW_DLLPUBLIC SwField
  {
  private:
diff --cc sw/inc/fmtcol.hxx
index c20ed26,305959a..1f6f100
--- a/sw/inc/fmtcol.hxx
+++ b/sw/inc/fmtcol.hxx
@@@ -86,17 -90,19 +86,18 @@@ protected
                      sal_uInt16 nFmtWh = RES_TXTFMTCOLL )
          : SwFmtColl( rPool, rFmtCollName, aTxtFmtCollSetRange,
                          pDerFrom, nFmtWh ),
 -          // --> OD 2007-01-24 #i73790#
 +
            mbStayAssignedToListLevelOfOutlineStyle( false ),
 -          // <--
 -          //nOutlineLevel( NO_NUMBERING )	//<-#outline level,removed by zhaojianwei
 -          mbAssignedToOutlineStyle(false)	//<-#outline level,added by zhaojianwei
 +
 +          mbAssignedToOutlineStyle(false)
      { pNextTxtFmtColl = this; }
- public:
  
 -    // zum "abfischen" von UL-/LR-/FontHeight Aenderungen
 +    // To get UL- / LR- / FontHeight-changes.
-     virtual void Modify( SfxPoolItem*, SfxPoolItem* );
+    virtual void Modify( const SfxPoolItem*, const SfxPoolItem* );
+ 
+ public:
  
 -    TYPEINFO();		//Bereits in Basisklasse Client drin.
 +    TYPEINFO();	// Already in base class Client.
  
      inline void SetNextTxtFmtColl(SwTxtFmtColl& rNext);
      SwTxtFmtColl& GetNextTxtFmtColl() const { return *pNextTxtFmtColl; }
@@@ -232,8 -256,10 +233,9 @@@ public
  
      void SetCondition( sal_uLong nCond, sal_uLong nSubCond );
      SwTxtFmtColl* GetTxtFmtColl() const 	{ return (SwTxtFmtColl*)GetRegisteredIn(); }
+     void RegisterToFormat( SwFmt& );
  };
  
 -
  typedef SwCollCondition* SwCollConditionPtr;
  SV_DECL_PTRARR_DEL( SwFmtCollConditions, SwCollConditionPtr, 0, 5 )
  
diff --cc sw/inc/fmtfld.hxx
index 856b54b,90aabc8..f7b7c0c
--- a/sw/inc/fmtfld.hxx
+++ b/sw/inc/fmtfld.hxx
@@@ -38,8 -38,9 +39,9 @@@
  class SwField;
  class SwTxtFld;
  class SwView;
+ class SwFieldType;
  
 -// ATT_FLD ***********************************
 +// ATT_FLD
  class SW_DLLPUBLIC SwFmtFld : public SfxPoolItem, public SwClient, public SfxBroadcaster
  {
      friend class SwTxtFld;
diff --cc sw/inc/fmthdft.hxx
index 2c5280a,4bd600c..d80ae41
--- a/sw/inc/fmthdft.hxx
+++ b/sw/inc/fmthdft.hxx
@@@ -35,10 -34,10 +35,10 @@@
  
  class SwFrmFmt;
  class IntlWrapper;
- 
+ class SwFmt;
  
 -//Kopfzeile, fuer Seitenformate
 -//Client von FrmFmt das den Header beschreibt.
 +//Header, for PageFormats
 +//Client of FrmFmt discribing the header.
  
  class SW_DLLPUBLIC SwFmtHeader: public SfxPoolItem, public SwClient
  {
diff --cc sw/inc/fmtmeta.hxx
index 5a5e69d,fea7dd0..96bf259
mode 100644,100755..100644
--- a/sw/inc/fmtmeta.hxx
+++ b/sw/inc/fmtmeta.hxx
diff --cc sw/inc/fmtpdsc.hxx
index 9c3a296,c32200e..5fab0fb
--- a/sw/inc/fmtpdsc.hxx
+++ b/sw/inc/fmtpdsc.hxx
@@@ -39,23 -38,27 +39,27 @@@ class SwPageDesc
  class SwHistory;
  class SwPaM;
  class IntlWrapper;
+ class SwEndNoteInfo;
  
 -//Pagedescriptor
 -//Client vom SwPageDesc der durch das Attribut "beschrieben" wird.
 +// Pagedescriptor
 +// Client of SwPageDesc that is "described" by the attribute.
  
  #define	IVER_FMTPAGEDESC_NOAUTO	((sal_uInt16)0x0001)
  #define IVER_FMTPAGEDESC_LONGPAGE	((sal_uInt16)0x0002)
  
  class SW_DLLPUBLIC SwFmtPageDesc : public SfxPoolItem, public SwClient
  {
 -    // diese "Doc"-Funktion ist friend, um nach dem kopieren das
 -    // Auto-Flag setzen zu koennen !!
 +    // This "Doc"-function is made friend in order to be able
 +    // to set the auto-flag after copying!!
      friend sal_Bool InsAttr( SwDoc*, const SwPaM &, const SfxItemSet&, sal_uInt16,
                          SwHistory* );
 -    sal_uInt16 nNumOffset;			// Seitennummer Offset
 -    sal_uInt16 nDescNameIdx;		// SW3-Reader: Stringpool-Index des Vorlagennamens
 -    SwModify* pDefinedIn;		// Verweis auf das Objekt, in dem das
 -                                // Attribut gesetzt wurde (CntntNode/Format)
 +    sal_uInt16 nNumOffset;			// Offset page number.
 +    sal_uInt16 nDescNameIdx;		// SW3-Reader: stringpool-index of style name.
 +    SwModify* pDefinedIn;		// Points to the object in which the
 +                                // attribute was set (CntntNode/Format).
+ protected:
+     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew );
+     virtual void SwClientNotify( const SwModify&, const SfxHint& rHint );
  
  public:
      SwFmtPageDesc( const SwPageDesc *pDesc = 0 );
@@@ -73,20 -76,21 +77,21 @@@
                                      SfxMapUnit ePresMetric,
                                      String &rText,
                                      const IntlWrapper*    pIntl = 0 ) const;
 -    virtual	sal_Bool        	 QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
 -    virtual	sal_Bool			 PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
 +    virtual	bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const;
 +    virtual	bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 );
  
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew );
- 
            SwPageDesc *GetPageDesc() { return (SwPageDesc*)GetRegisteredIn(); }
      const SwPageDesc *GetPageDesc() const { return (SwPageDesc*)GetRegisteredIn(); }
  
      sal_uInt16	GetNumOffset() const		{ return nNumOffset; }
      void	SetNumOffset( sal_uInt16 nNum ) { nNumOffset = nNum; }
  
 -    // erfrage/setze, wo drin das Attribut verankert ist
 +    // Query / set where attribute is anchored.
      inline const SwModify* GetDefinedIn() const { return pDefinedIn; }
      void ChgDefinedIn( const SwModify* pNew ) { pDefinedIn = (SwModify*)pNew; }
+     void RegisterToEndNotInfo( SwEndNoteInfo& );
+     void RegisterToPageDesc( SwPageDesc& );
+     bool KnowsPageDesc() const;
  };
  
  
diff --cc sw/inc/format.hxx
index 90a14d0,c00e52a..08ec419
--- a/sw/inc/format.hxx
+++ b/sw/inc/format.hxx
@@@ -68,25 -67,24 +67,25 @@@ protected
      SwFmt( SwAttrPool& rPool, const String &rFmtNm, const sal_uInt16* pWhichRanges,
              SwFmt *pDrvdFrm, sal_uInt16 nFmtWhich );
      SwFmt( const SwFmt& rFmt );
+    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNewValue );
  
  public:
 -    TYPEINFO();		//Bereits in Basisklasse Client drin.
 +    TYPEINFO();		// Already in base class Client.
  
      virtual ~SwFmt();
      SwFmt &operator=(const SwFmt&);
  
 -    // fuer die Abfrage der Writer-Funktionen
 +    // for Querying of Writer-functions.
      sal_uInt16 Which() const { return nWhichId; }
  
-     virtual void Modify( SfxPoolItem* pOldValue, SfxPoolItem* pNewValue );
 -        // erfrage vom Format Informationen
 +
 +    // Query format information.
      virtual sal_Bool GetInfo( SfxPoolItem& ) const;
  
 -    // kopiere Attribute; auch ueber Dokumentgrenzen hinweg
 +    // Copy attributes even among documents.
      void CopyAttrs( const SwFmt&, sal_Bool bReplace=sal_True );
  
 -    // loesche alle Attribute, die nicht in rFmt stehen
 +    // Delete all attributes that are not in rFmt.
      void DelDiffs( const SfxItemSet& rSet );
      void DelDiffs( const SwFmt& rFmt ) { DelDiffs( rFmt.GetAttrSet() ); }
  
@@@ -101,12 -100,18 +100,12 @@@
      virtual sal_Bool SetFmtAttr( const SfxPoolItem& rAttr );
      virtual sal_Bool SetFmtAttr( const SfxItemSet& rSet );
      virtual sal_Bool ResetFmtAttr( sal_uInt16 nWhich1, sal_uInt16 nWhich2 = 0 );
 -    // <--
  
 -    // --> OD 2007-01-24 #i73790#
 -    // Method renamed and made virtual
 -    // Nimmt alle Hints aus dem Delta-Array,
 -    // liefert die Anzahl der geloeschten Hints
 +    // Takes all hints from Delta-Array,
 +    // returns count of deleted hints.
      virtual sal_uInt16 ResetAllFmtAttr();
 -    // <--
  
-     inline SwFmt* DerivedFrom() const { return (SwFmt*)pRegisteredIn; }
+     inline SwFmt* DerivedFrom() const { return (SwFmt*)GetRegisteredIn(); }
      inline sal_Bool IsDefault() const { return DerivedFrom() == 0; }
  
      inline const String& GetName() const 		{ return aFmtName; }
diff --cc sw/inc/frmfmt.hxx
index 67d2928,ee1c31c..5d2761d
--- a/sw/inc/frmfmt.hxx
+++ b/sw/inc/frmfmt.hxx
@@@ -70,23 -66,23 +67,23 @@@ protected
                  pDrvdFrm, nFmtWhich )
      {}
  
+    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNewValue );
+ 
  public:
 -    TYPEINFO();		//Bereits in Basisklasse Client drin.
 +    TYPEINFO();		// Already in base class Client.
  
 -    //Vernichtet alle Frms in aDepend (Frms werden per PTR_CAST erkannt).
 +    // Destroys all Frms in aDepend (Frms are identified via PTR_CAST).
      virtual void DelFrms();
  
 -    //Erzeugt die Ansichten
 +    // Creates the views.
      virtual void MakeFrms();
  
      virtual Graphic MakeGraphic( ImageMap* pMap = NULL );
  
-     virtual void Modify( SfxPoolItem* pOldValue, SfxPoolItem* pNewValue );
- 
 -    // returnt das IMapObject, das an dem Format (Fly), in der ImageMap
 -    // an der Point Position definiert ist.
 -    // 	rPoint - teste auf der DocPosition
 -    //	pFly - optionaler FlyFrame, falls der schon bekannt ist.
 +    //	Returns the IMapObject defined at format (Fly)
 +    //	in the ImageMap at position Point.
 +    //	rPoint - test on DocPosition.
 +    //	pFly - optional FlyFrame, in case it is already known.
      IMapObject* GetIMapObject( const Point& rPoint,
                                  const SwFlyFrm *pFly = 0 ) const;
  
@@@ -142,9 -141,10 +139,10 @@@
              { m_wXObject = xObject; }
  
      DECL_FIXEDMEMPOOL_NEWDEL_DLL(SwFrmFmt)
+     void RegisterToFormat( SwFmt& rFmt );
  };
  
 -//Das FlyFrame-Format ------------------------------
 +// The FlyFrame-Format
  
  class SW_DLLPUBLIC SwFlyFrmFmt: public SwFrmFmt
  {
diff --cc sw/inc/ftninfo.hxx
index c502aaf,6fe3e9e..0e0ec56
--- a/sw/inc/ftninfo.hxx
+++ b/sw/inc/ftninfo.hxx
@@@ -51,11 -52,12 +53,12 @@@ public
      sal_uInt16 	  nFtnOffset;
  
      void 		ChgPageDesc( SwPageDesc *pDesc );
-     SwPageDesc *GetPageDesc( SwDoc &rDoc ) const;
-     SwClient   *GetPageDescDep() const { return (SwClient*)&aPageDescDep; }
+     SwPageDesc* GetPageDesc( SwDoc &rDoc ) const;
+     bool        KnowsPageDesc() const;
+     bool        DependsOn( const SwPageDesc* ) const;
  
      void SetFtnTxtColl(SwTxtFmtColl& rColl);
 -    SwTxtFmtColl* GetFtnTxtColl() const { return  (SwTxtFmtColl*) GetRegisteredIn(); } // kann 0 sein
 +    SwTxtFmtColl* GetFtnTxtColl() const { return  (SwTxtFmtColl*) GetRegisteredIn(); } // can be 0.
  
      SwCharFmt* GetCharFmt(SwDoc &rDoc) const;
      void SetCharFmt( SwCharFmt* );
diff --cc sw/inc/ndtxt.hxx
index c16be92,4db3ecb..f5c2610
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@@ -332,8 -355,8 +337,8 @@@ public
      void ReplaceTextOnly( xub_StrLen nPos, xub_StrLen nLen, const XubString& rText,
                      const ::com::sun::star::uno::Sequence<sal_Int32>& rOffsets );
  
 -    // virtuelle Methoden aus dem CntntNode
 +    // Virtual methods from CntntNode.
-     virtual SwCntntFrm *MakeFrm();
+     virtual SwCntntFrm *MakeFrm( SwFrm* );
      virtual SwCntntNode *SplitCntntNode( const SwPosition & );
      virtual SwCntntNode *JoinNext();
      virtual SwCntntNode *JoinPrev();
diff --cc sw/inc/node.hxx
index 037798a,4d0bb8d..0492fee
--- a/sw/inc/node.hxx
+++ b/sw/inc/node.hxx
@@@ -386,17 -397,21 +388,21 @@@ protected
      // SwAttrSet (handle):
      sal_uInt16 ClearItemsFromAttrSet( const std::vector<sal_uInt16>& rWhichIds );
  
+    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
+ 
  public:
 -    TYPEINFO();		//Bereits in Basisklasse Client drin.
 +    TYPEINFO();		//Already contained in base class Client.
  
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
+     // MakeFrm will be called for a certain layout
+     // pSib is another SwFrm of the same layout (e.g. the SwRootFrm itself, a sibling, the parent)
+     virtual SwCntntFrm *MakeFrm( SwFrm* pSib ) = 0;
  
-     virtual SwCntntFrm *MakeFrm() = 0;
      virtual SwCntntNode *SplitCntntNode(const SwPosition & ) = 0;
+ 
      virtual SwCntntNode *JoinNext();
      virtual SwCntntNode *JoinPrev();
 -    // koennen 2 Nodes zusammengefasst werden ?
 -    // in pIdx kann die 2. Position returnt werden.
 +    // Is it possible to join two nodes?
 +    // In pIdx the second position can be returned.
      int CanJoinNext( SwNodeIndex* pIdx =0 ) const;
      int CanJoinPrev( SwNodeIndex* pIdx =0 ) const;
  
@@@ -406,11 -421,14 +412,13 @@@
      sal_Bool GoNext(SwIndex *, sal_uInt16 nMode ) const;
      sal_Bool GoPrevious(SwIndex *, sal_uInt16 nMode ) const;
  
-     SwCntntFrm *GetFrm( const Point* pDocPos = 0,
+     // Replacement for good old GetFrm(..):
+     SwCntntFrm *getLayoutFrm( const SwRootFrm*,
+                         const Point* pDocPos = 0,
                          const SwPosition *pPos = 0,
                          const sal_Bool bCalcFrm = sal_True ) const;
 -    // Gibt die tatsaechlcheGroesse des Frames zurueck bzw. ein leeres
 -    // Rechteck, wenn kein Layout existiert.
 -    // Wird fuer die Export Filter benoetigt.
 +    // Returns the real size of the frame or an empty rectangle if
 +    // no layout exists. Needed for export filters.
      SwRect FindLayoutRect( const sal_Bool bPrtArea = sal_False,
                              const Point* pPoint = 0,
                              const sal_Bool bCalcFrm = sal_False  ) const;
@@@ -480,11 -507,12 +488,12 @@@
      inline void SetModifyAtAttr( bool bSetModifyAtAttr ) const { mbSetModifyAtAttr = bSetModifyAtAttr; }
      inline bool GetModifyAtAttr() const { return mbSetModifyAtAttr; }
  
+     static SwOLENodes* CreateOLENodesArray( const SwFmtColl& rColl, bool bOnlyWithInvalidSize );
+ 
  private:
 -    // privater Constructor, weil nie kopiert werden darf !!
 +    // Private constructor because copying is never allowed!!
      SwCntntNode( const SwCntntNode & rNode );
      SwCntntNode & operator= ( const SwCntntNode & rNode );
- 
  };
  
  
@@@ -504,17 -532,19 +513,17 @@@ public
  
      const SwTable& GetTable() const { return *pTable; }
      SwTable& GetTable() { return *pTable; }
-     SwTabFrm *MakeFrm();
+     SwTabFrm *MakeFrm( SwFrm* );
  
 -    //Legt die Frms fuer den TableNode (also die TabFrms) an.
 +    // Creates the frms for the table node (i.e. the TabFrms).
      void MakeFrms( SwNodeIndex* pIdxBehind );
  
 -    //Methode loescht fuer den Node alle Ansichten vom
 -    //Dokument. Die Contentframes werden aus dem entsprechenden
 -    //Layout ausgehaengt.
 +    // Method deletes all views of document for the node.
 +    // The content frames are removed from the respective layout.
      void DelFrms();
  
 -    //Methode erzeugt fuer den vorhergehenden Node alle Ansichten vom
 -    //Dokument. Die erzeugten Contentframes werden in das entsprechende
 -    //Layout gehaengt.
 +    // Method creates all views of the document for the previous node.
 +    // The content frames that are created are put into the respective layout.
      void MakeFrms( const SwNodeIndex & rIdx );
  
      SwTableNode* MakeCopy( SwDoc*, const SwNodeIndex& ) const;
@@@ -549,20 -579,22 +558,20 @@@ public
      const SwSection& GetSection() const { return *m_pSection; }
            SwSection& GetSection()       { return *m_pSection; }
  
-     SwFrm *MakeFrm();
+     SwFrm *MakeFrm( SwFrm* );
  
 -    //Legt die Frms fuer den SectionNode (also die SectionFrms) an.
 -    //Im Defaultfall wird bis die Frames bis zum Ende des Bereichs angelegt,
 -    //uebergibt man einen weiteren NodeIndex pEnd, so wird bis zu diesem
 -    //ein MakeFrms gerufen, genutzt wird dies von TableToText
 +    // Creates the frms for the SectionNode (i.e. the SectionFrms).
 +    // On default the frames are created until the end of the range.
 +    // When another NodeIndex pEnd is passed a MakeFrms is called up to it.
 +    // Used by TableToText.
      void MakeFrms( SwNodeIndex* pIdxBehind, SwNodeIndex* pEnd = NULL );
  
 -    //Methode loescht fuer den Node alle Ansichten vom
 -    //Dokument. Die Contentframes werden aus dem entsprechenden
 -    //Layout ausgehaengt.
 +    // Method deletes all views of document for the node. The
 +    // content frames are removed from the respective layout.
      void DelFrms();
  
 -    //Methode erzeugt fuer den vorhergehenden Node alle Ansichten vom
 -    //Dokument. Die erzeugten Contentframes werden in das entsprechende
 -    //Layout gehaengt.
 +    // Method creates all views of document for the previous node.
 +    // The content frames created are put into the respective layout.
      void MakeFrms( const SwNodeIndex & rIdx );
  
      SwSectionNode* MakeCopy( SwDoc*, const SwNodeIndex& ) const;
diff --cc sw/inc/numrule.hxx
index 8d86128,13b093f..26d0eff
--- a/sw/inc/numrule.hxx
+++ b/sw/inc/numrule.hxx
@@@ -36,15 -35,17 +36,15 @@@
  #include "swdllapi.h"
  #include <swtypes.hxx>
  #include <calbck.hxx>
 -#include <errhdl.hxx>
 -#include <error.h>	
  #include <hints.hxx>
 -#include <hash_map>
 +#include <boost/unordered_map.hpp>
  #include <stringhash.hxx>
- class SwNodeNum;
  #include <SwNumberTreeTypes.hxx>
  #include <vector>
+ 
  class SwTxtFmtColl;
  class IDocumentListsAccess;
- 
+ class SwNodeNum;
  class Font;
  class SvxBrushItem;
  class SvxNumRule;
@@@ -130,22 -148,25 +133,19 @@@ private
  
      String sName;
      SwNumRuleType eRuleType;
 -    sal_uInt16 nPoolFmtId;		// Id-fuer "automatich" erzeugte NumRules
 -    sal_uInt16 nPoolHelpId;		// HelpId fuer diese Pool-Vorlage
 -    sal_uInt8 nPoolHlpFileId; 	// FilePos ans Doc auf die Vorlagen-Hilfen
 +    sal_uInt16 nPoolFmtId;		// Id-for NumRules created "automatically"
 +    sal_uInt16 nPoolHelpId;		// HelpId for this Pool-style.
 +    sal_uInt8 nPoolHlpFileId; 	// FilePos at Doc on style helps.
      sal_Bool bAutoRuleFlag : 1;
      sal_Bool bInvalidRuleFlag : 1;
 -    sal_Bool bContinusNum : 1;	// Fortlaufende Numerierung - ohne Ebenen
 -    sal_Bool bAbsSpaces : 1;	// die Ebenen repraesentieren absol. Einzuege
 +    sal_Bool bContinusNum : 1;	// Continuous numbering without levels.
 +    sal_Bool bAbsSpaces : 1;	// Levels represent absolute indents.
      bool mbCountPhantoms;
  
 -    // --> OD 2008-02-11 #newlistlevelattrs#
      const SvxNumberFormat::SvxNumPositionAndSpaceMode meDefaultNumberFormatPositionAndSpaceMode;
 -    // <--
 -
 -    // --> OD 2008-04-03 #refactorlists#
      String msDefaultListId;
 -    // <--
  
-     // forbidden and not implemented.
-     SwNumRule();
- 
  public:
 -    // --> OD 2008-02-08 #newlistlevelattrs#
      // add parameter <eDefaultNumberFormatPositionAndSpaceMode>
      SwNumRule( const String& rNm,
                 const SvxNumberFormat::SvxNumPositionAndSpaceMode eDefaultNumberFormatPositionAndSpaceMode,
diff --cc sw/inc/pagedesc.hxx
index 5afb80a,fd0167e..4501c85
--- a/sw/inc/pagedesc.hxx
+++ b/sw/inc/pagedesc.hxx
@@@ -215,10 -216,9 +218,9 @@@ public
  
      void SetRegisterFmtColl( const SwTxtFmtColl* rFmt );
      const SwTxtFmtColl* GetRegisterFmtColl() const;
-     virtual void Modify( SfxPoolItem *pOldValue, SfxPoolItem *pNewValue );
      void RegisterChange();
  
 -    // erfragen und setzen der PoolFormat-Id
 +    // Query and set PoolFormat-Id.
      sal_uInt16 GetPoolFmtId() const 		{ return aMaster.GetPoolFmtId(); }
      void SetPoolFmtId( sal_uInt16 nId ) 	{ aMaster.SetPoolFmtId( nId ); }
      sal_uInt16 GetPoolHelpId() const 		{ return aMaster.GetPoolHelpId(); }
diff --cc sw/inc/paratr.hxx
index 287c854,fefe6f2..cfbbf06
--- a/sw/inc/paratr.hxx
+++ b/sw/inc/paratr.hxx
@@@ -65,9 -69,13 +65,13 @@@ public
  private:
      // @@@ public copy ctor, but no copy assignment?
      SwFmtDrop & operator= (const SwFmtDrop &);
+ 
+ protected:
+    virtual void Modify( const SfxPoolItem*, const SfxPoolItem* );
+ 
  public:
  
 -    // "pure virtual Methoden" vom SfxPoolItem
 +    // "pure virtual methods" of SfxPoolItem
      virtual int             operator==( const SfxPoolItem& ) const;
      virtual SfxPoolItem*	Clone( SfxItemPool* pPool = 0 ) const;
      virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
@@@ -90,14 -98,13 +94,13 @@@
      inline sal_uInt16 GetDistance() const { return nDistance; }
      inline sal_uInt16 &GetDistance() { return nDistance; }
  
-     inline const SwCharFmt *GetCharFmt() const { return (SwCharFmt*)pRegisteredIn; }
-     inline SwCharFmt *GetCharFmt()       { return (SwCharFmt*)pRegisteredIn; }
+    inline const SwCharFmt *GetCharFmt() const { return (SwCharFmt*)GetRegisteredIn(); }
+     inline SwCharFmt *GetCharFmt()       { return (SwCharFmt*)GetRegisteredIn(); }
      void SetCharFmt( SwCharFmt *pNew );
-     virtual void Modify( SfxPoolItem*, SfxPoolItem* );
 -        // erfrage vom Client Informationen
 +    // Get information from Client.
      virtual sal_Bool GetInfo( SfxPoolItem& ) const;
  
 -    // erfrage und setze den Modify-Pointer
 +    // Get and set Modify pointer.
      inline const SwModify* GetDefinedIn() const { return pDefinedIn; }
      inline void ChgDefinedIn( const SwModify* pNew )
      { pDefinedIn = (SwModify*)pNew; }
diff --cc sw/inc/swtable.hxx
index b3a6a44,04b2eb8..6632cb6
--- a/sw/inc/swtable.hxx
+++ b/sw/inc/swtable.hxx
@@@ -39,10 -39,9 +39,11 @@@
  class SwStartNode;
  #include <memory>
  #include <boost/noncopyable.hpp>
 +#else
 +#include <node.hxx>			// fuer StartNode->GetMyIndex
  #endif
  
+ class SwFmt;
  class Color;
  class SwFrmFmt;
  class SwTableFmt;
@@@ -320,7 -322,8 +322,8 @@@ public
                          SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo );
      sal_Bool SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType,
                          SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo );
+     void RegisterToFormat( SwFmt& rFmt );
 -#ifdef DBG_UTIL
 +#if OSL_DEBUG_LEVEL > 1
      void CheckConsistency() const;
  #endif
  };
diff --cc sw/inc/unodraw.hxx
index a52bef9,e56c050..9920613
--- a/sw/inc/unodraw.hxx
+++ b/sw/inc/unodraw.hxx
@@@ -279,11 -308,11 +282,8 @@@ public
      virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw (::com::sun::star::uno::RuntimeException);
      virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) throw (::com::sun::star::uno::RuntimeException);
      virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw (::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException);
 -    // <--
 -    // --> OD 2004-07-22 #i31698# XShapeDescriptor - superclass of XShape
      virtual ::rtl::OUString SAL_CALL getShapeType(  ) throw (::com::sun::star::uno::RuntimeException);
 -    // <--
  
-     //SwClient
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
- 
      SwShapeDescriptor_Impl*		GetDescImpl() {return pImpl;}
      ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > 				GetAggregationInterface() {return xShapeAgg;}
  
diff --cc sw/inc/unofield.hxx
index 986170f,3c159f7..278e50b
--- a/sw/inc/unofield.hxx
+++ b/sw/inc/unofield.hxx
@@@ -202,11 -204,12 +202,11 @@@ public
      const SwFmtFld* 	GetFldFmt(){return GetField() ? pFmtFld : 0; };
  
      void Invalidate();
- };
  
- /// @return a SwXTextField, either an already existing one or a new one
- SwXTextField * CreateSwXTextField(SwDoc & rDoc, SwFmtFld const& rFmt);
+     /// @return an SwXTextField, either an already existing one or a new one
+     static SwXTextField* CreateSwXTextField(SwDoc & rDoc, SwFmtFld const& rFmt);
+ };
  
 -
  typedef
  cppu::WeakImplHelper2
  <
diff --cc sw/inc/unoredline.hxx
index bd34e8b,d8556a9..bf1b22e
--- a/sw/inc/unoredline.hxx
+++ b/sw/inc/unoredline.hxx
@@@ -141,11 -148,9 +141,11 @@@ public
      virtual ::com::sun::star::uno::Type SAL_CALL getElementType(  ) throw(::com::sun::star::uno::RuntimeException);
      virtual sal_Bool SAL_CALL hasElements(  ) throw(::com::sun::star::uno::RuntimeException);
  
-     //SwClient
-     virtual void 		Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
- 
      const SwRedline* 	GetRedline() const {return pRedline;}
+ protected:
+     //SwClient
+    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
  };
  #endif
 +
 +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc sw/inc/unostyle.hxx
index b29c172,1b10ef5..56444d7
--- a/sw/inc/unostyle.hxx
+++ b/sw/inc/unostyle.hxx
@@@ -274,9 -287,10 +275,8 @@@ public
                                  StartListening(*pBasePool);
                              }
      SwDoc*                GetDoc() const { return m_pDoc; }
-     virtual void 	Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
  };
 -/* -----------------------------15.12.00 14:25--------------------------------
  
 - ---------------------------------------------------------------------------*/
  class SwXFrameStyle : public SwXStyle,
                          public com::sun::star::document::XEventsSupplier
  {
@@@ -386,10 -406,14 +387,12 @@@ public
      //XEnumeration
      virtual sal_Bool SAL_CALL hasMoreElements(  ) throw (::com::sun::star::uno::RuntimeException);
      virtual ::com::sun::star::uno::Any SAL_CALL nextElement(  ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- 
+ protected:
+     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
  };
  
 -/*-- 19.05.2006 11:20:02---------------------------------------------------
 -    an automatic style
 -  -----------------------------------------------------------------------*/
+ 
 +// an automatic style
  class SwXAutoStyle : public cppu::WeakImplHelper3
  <
      ::com::sun::star::beans::XPropertySet,
diff --cc sw/inc/unotbl.hxx
index e76757b,9f30128..fff1e77
--- a/sw/inc/unotbl.hxx
+++ b/sw/inc/unotbl.hxx
@@@ -539,9 -565,12 +539,9 @@@ public
      virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( ::com::sun::star::uno::RuntimeException );
  
      //SwClient
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
+    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
  };
  
 -/* -----------------03.02.99 07:31-------------------
 - *
 - * --------------------------------------------------*/
  class SwXTableColumns : public cppu::WeakImplHelper2
  <
      ::com::sun::star::table::XTableColumns,
diff --cc sw/inc/unotxdoc.hxx
index 4185900,0301ba8..ca8ee42
--- a/sw/inc/unotxdoc.hxx
+++ b/sw/inc/unotxdoc.hxx
@@@ -587,16 -595,16 +586,14 @@@ public
    -----------------------------------------------------------------------*/
  class SwViewOptionAdjust_Impl
  {
-     SwWrtShell &    m_rShell;
+     ViewShell &    m_rShell;
      SwViewOption    m_aOldViewOptions;
 -//    SwViewOption    m_aRenderViewOptions;   // view options to use when rendering for PDF export or printing
 -//    bool            m_bRestoreViewOptions;
  
  public:
-     SwViewOptionAdjust_Impl( SwWrtShell& rSh, const SwViewOption &rViewOptions );
+     SwViewOptionAdjust_Impl( ViewShell& rSh, const SwViewOption &rViewOptions );
      ~SwViewOptionAdjust_Impl();
- 
-     void AdjustViewOptions( SwPrintData const*const pPrtOptions );
- 
-     bool checkShell( const SwWrtShell& rCompare ) const
+     void AdjustViewOptions( SwPrintData const* const pPrtOptions );  
+     bool checkShell( const ViewShell& rCompare ) const
      { return &rCompare == &m_rShell; } 
  };
  
diff --cc sw/inc/usrfld.hxx
index d8623c7,d27ee05..322034e
--- a/sw/inc/usrfld.hxx
+++ b/sw/inc/usrfld.hxx
@@@ -74,8 -71,11 +72,11 @@@ public
      sal_Bool					IsDeleted() const 		{ return bDeleted; }
      void					SetDeleted( sal_Bool b )	{ bDeleted = b; }
  
 -    virtual sal_Bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nMId ) const;
 -    virtual sal_Bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nMId );
 +    virtual bool        QueryValue( com::sun::star::uno::Any& rVal, sal_uInt16 nMId ) const;
 +    virtual bool        PutValue( const com::sun::star::uno::Any& rVal, sal_uInt16 nMId );
+ 
+ protected:
+    virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew );
  };
  
  inline sal_Bool SwUserFieldType::IsValid() const
diff --cc sw/inc/viewopt.hxx
index 2dc2c1b,bdc74da..2cd921a
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@@ -400,11 -408,14 +401,13 @@@ public
      sal_Bool         IsSelectionInReadonly() const {return bSelectionInReadonly;}
      void         SetSelectionInReadonly(sal_Bool bSet) {bSelectionInReadonly = bSet;}
  
-     sal_Bool         IsFormView() const { return bFormView; }
-     void         SetFormView( sal_Bool bSet ) { bFormView = bSet; }
+     sal_Bool         IsFormView() const { return mbFormView; }
+     void         SetFormView( sal_Bool bSet ) { mbFormView = bSet; }
 -    // <--
  
-     inline sal_Bool  IsPagePrevBookview() const { return bBookview; }
-     inline void  SetPagePrevBookview(sal_Bool bSet) { bBookview = bSet; }
+     inline sal_Bool  getBrowseMode() const { return mbBrowseMode; }
+     inline void  setBrowseMode(sal_Bool bSet) { mbBrowseMode = bSet; }
+     inline sal_Bool  IsPagePrevBookview() const { return mbBookView; }
+     inline void  SetPagePrevBookview(sal_Bool bSet) { mbBookView = bSet; }
  
      sal_Bool IsAutoCompleteWords() const;
  
diff --cc sw/inc/viewsh.hxx
index 2c466cc,c553a55..39df2c9
--- a/sw/inc/viewsh.hxx
+++ b/sw/inc/viewsh.hxx
@@@ -36,6 -35,8 +36,7 @@@
  #include <swtypes.hxx>
  #include <ring.hxx>
  #include <swrect.hxx>
 -#include <errhdl.hxx>
+ #include <boost/shared_ptr.hpp>// swmod 080115
  #include <vcl/mapmod.hxx>
  #include <vcl/print.hxx>
  
diff --cc sw/source/core/access/accframebase.cxx
index f9c77e2,76a92cf..bd88adb
--- a/sw/source/core/access/accframebase.cxx
+++ b/sw/source/core/access/accframebase.cxx
@@@ -227,17 -226,17 +227,17 @@@ void SwAccessibleFrameBase::Modify( con
          if(  pFlyFrm )
          {
              const SwFrmFmt *pFrmFmt = pFlyFrm->GetFmt();
 -            ASSERT( pFrmFmt == GetRegisteredIn(), "invalid frame" );
 +            OSL_ENSURE( pFrmFmt == GetRegisteredIn(), "invalid frame" );
  
              OUString sOldName( GetName() );
 -            ASSERT( !pOld ||
 +            OSL_ENSURE( !pOld ||
-                     static_cast < SwStringMsgPoolItem * >( pOld )->GetString() == String( sOldName ),
+                     static_cast < const SwStringMsgPoolItem * >( pOld )->GetString() == String( sOldName ),
                      "invalid old name" );
  
              const String& rNewName = pFrmFmt->GetName();
              SetName( rNewName );
 -            ASSERT( !pNew ||
 +            OSL_ENSURE( !pNew ||
-                     static_cast < SwStringMsgPoolItem * >( pNew )->GetString() == rNewName,
+                     static_cast < const SwStringMsgPoolItem * >( pNew )->GetString() == rNewName,
                      "invalid new name" );
  
              if( sOldName != GetName() )
@@@ -269,10 -270,10 +271,10 @@@
  
  void SwAccessibleFrameBase::Dispose( sal_Bool bRecursive )
  {
 -    vos::OGuard aGuard(Application::GetSolarMutex());
 +    SolarMutexGuard aGuard;
  
      if( GetRegisteredIn() )
-         pRegisteredIn->Remove( this );
+         GetRegisteredInNonConst()->Remove( this );
  
      SwAccessibleContext::Dispose( bRecursive );
  }
diff --cc sw/source/core/access/accnotextframe.cxx
index 981755d,ba0e341..9b87630
--- a/sw/source/core/access/accnotextframe.cxx
+++ b/sw/source/core/access/accnotextframe.cxx
@@@ -91,10 -92,10 +91,10 @@@ SwAccessibleNoTextFrame::~SwAccessibleN
  {
  }
  
- void SwAccessibleNoTextFrame::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ void SwAccessibleNoTextFrame::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
  {
      const sal_uInt16 nWhich = pOld ? pOld->Which() : pNew ? pNew->Which() : 0 ;
 -    // --> OD 2009-07-14 #i73249#
 +    // #i73249#
      // suppress handling of RES_NAME_CHANGED in case that attribute Title is
      // used as the accessible name.
      if ( nWhich != RES_NAME_CHANGED ||
diff --cc sw/source/core/access/accnotextframe.hxx
index 2899215,4ba1673..b7459ca
--- a/sw/source/core/access/accnotextframe.hxx
+++ b/sw/source/core/access/accnotextframe.hxx
@@@ -52,11 -55,10 +54,9 @@@ public
                               sal_Int16 nInitRole,
                               const SwFlyFrm *pFlyFrm );
  
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
- 
      //=====  XAccessibleContext  ==============================================
  
 -    // --> OD 2009-07-14 #i73249#
 -    /// Return the object's current name.
 +    // #i73249# - Return the object's current name.
      virtual ::rtl::OUString SAL_CALL
          getAccessibleName (void)
          throw (::com::sun::star::uno::RuntimeException);
diff --cc sw/source/core/access/accpara.cxx
index 87a5937,ec8ab7a..f515494
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@@ -2600,12 -2668,11 +2600,12 @@@ sal_Int32 SAL_CALL SwAccessibleParagrap
      return nLineNo;
  }
  
 -// --> OD 2010-02-19 #i108125#
 +// #i108125#
- void SwAccessibleParagraph::Modify( SfxPoolItem* pOld, SfxPoolItem* pNew )
+ void SwAccessibleParagraph::Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew )
  {
      mpParaChangeTrackInfo->reset();
  
-     SwClient::Modify( pOld, pNew );
+     CheckRegistration( pOld, pNew );
  }
 -// <--
 +
 +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc sw/source/core/access/acctable.cxx
index 508a221,c0c52ae..2807a91
--- a/sw/source/core/access/acctable.cxx
+++ b/sw/source/core/access/acctable.cxx
@@@ -1347,10 -1358,10 +1348,10 @@@ void SwAccessibleTable::InvalidatePosOr
  
  void SwAccessibleTable::Dispose( sal_Bool bRecursive )
  {
 -    vos::OGuard aGuard(Application::GetSolarMutex());
 +    SolarMutexGuard aGuard;
  
      if( GetRegisteredIn() )
-         pRegisteredIn->Remove( this );
+         GetRegisteredInNonConst()->Remove( this );
  
      SwAccessibleContext::Dispose( bRecursive );
  }
diff --cc sw/source/core/access/acctextframe.cxx
index 168a5ad,726bc7d..bda57ac
--- a/sw/source/core/access/acctextframe.cxx
+++ b/sw/source/core/access/acctextframe.cxx
@@@ -83,11 -84,12 +83,11 @@@ SwAccessibleTextFrame::~SwAccessibleTex
  {
  }
  
- void SwAccessibleTextFrame::Modify( SfxPoolItem *pOld, SfxPoolItem *pNew)
+ void SwAccessibleTextFrame::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew)
  {
      const sal_uInt16 nWhich = pOld ? pOld->Which() : pNew ? pNew->Which() : 0 ;
 -    // --> OD 2009-07-14 #i73249#
 -    // suppress handling of RES_NAME_CHANGED in case that attribute Title is
 -    // used as the accessible name.
 +    // #i73249# - suppress handling of RES_NAME_CHANGED
 +    // in case that attribute Title is used as the accessible name.
      if ( nWhich != RES_NAME_CHANGED ||
           msTitle.getLength() == 0 )
      {
diff --cc sw/source/core/access/acctextframe.hxx
index f2c8cb8,04ced29..0dbdc2b
--- a/sw/source/core/access/acctextframe.hxx
+++ b/sw/source/core/access/acctextframe.hxx
@@@ -51,12 -52,10 +53,9 @@@ public
  
      SwAccessibleTextFrame( SwAccessibleMap* pInitMap, const SwFlyFrm* pFlyFrm );
  
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
- 
- 
      //=====  XAccessibleContext  ==============================================
  
 -    // --> OD 2009-07-14 #i73249#
 -    /// Return the object's current name.
 +    // #i73249# - Return the object's current name.
      virtual ::rtl::OUString SAL_CALL
          getAccessibleName (void)
          throw (::com::sun::star::uno::RuntimeException);
diff --cc sw/source/core/attr/calbck.cxx
index 9268131,11b98a0..f9e88f5
--- a/sw/source/core/attr/calbck.cxx
+++ b/sw/source/core/attr/calbck.cxx
@@@ -111,35 -97,33 +98,33 @@@ sal_Bool SwClient::GetInfo( SfxPoolItem
      return sal_True;		// und weiter
  }
  
- /*************************************************************************
- |*	  SwModify::SwModify( SwModify * )
- |*
- |*	  Beschreibung		Dokument 1.7
- *************************************************************************/
- 
  
- SwModify::SwModify( SwModify *pToRegisterIn )
-     : SwClient(pToRegisterIn), pRoot( 0 )
+ /*************************************************************************/
+ SwModify::SwModify() 
+     : SwClient(0), pRoot(0) 
  {
+     bModifyLocked = sal_False;
+     bLockClientList = sal_False;
+     bInDocDTOR = sal_False;
+     bInCache = sal_False;
+     bInSwFntCache = sal_False;
  }
  
- // @@@ forbidden and not implemented, but needs to be accessible (protected).
- SwModify::SwModify( const SwModify & )
-     : SwClient( 0 )
+ SwModify::SwModify( SwModify *pToRegisterIn )
+     : SwClient(pToRegisterIn), pRoot( 0 )
  {
-     OSL_PRECOND(0, "SwModify(const SwModify&): not implemented.");
+     bModifyLocked = sal_False;
+     bLockClientList = sal_False;
+     bInDocDTOR = sal_False;
+     bInCache = sal_False;
+     bInSwFntCache = sal_False;
  }
  
- /*************************************************************************
- |*	  SwModify::~SwModify()
- |*
- |*	  Beschreibung		Dokument 1.7
- *************************************************************************/
- 
- 
- 
+ /*************************************************************************/
  SwModify::~SwModify()
  {
 -    ASSERT( !IsModifyLocked(), "Modify destroyed but locked." );
++    OSL_ENSURE( !IsModifyLocked(), "Modify destroyed but locked." );
+ 
      if ( IsInCache() )
          SwFrm::GetCache().Delete( this );
  
@@@ -205,8 -188,8 +189,8 @@@ void SwModify::NotifyClients( const Sfx
          switch( pOldValue->Which() )
          {
          case RES_OBJECTDYING:
--         case RES_REMOVE_UNO_OBJECT:
-             bInModify = ((SwPtrMsgPoolItem *)pOldValue)->pObject != this;
++        case RES_REMOVE_UNO_OBJECT:
+             bLockClientList = ((SwPtrMsgPoolItem *)pOldValue)->pObject != this;
              break;
  
          case RES_FOOTNOTE_DELETED:
@@@ -253,30 -223,21 +224,21 @@@ sal_Bool SwModify::GetInfo( SfxPoolItem
                  ;
      }
  
-     return bRet;		// und weiter
+     return bRet;
  }
  
- /*************************************************************************
- |*	  SwModify::Add( SwClient *pDepend )
- |*
- |*	  Beschreibung		Dokument 1.7
- *************************************************************************/
- 
- 
- 
+ /*************************************************************************/
  void SwModify::Add(SwClient *pDepend)
  {
-     OSL_ENSURE( !bInModify, "Client innerhalb des eigenen Modifies einfuegen?" );
 -    ASSERT( !bLockClientList, "Client inserted while in Modify" );
++    OSL_ENSURE( !bLockClientList, "Client inserted while in Modify" );
  
-     // nur wenn das hier noch nicht eingetragen ist einfuegen
      if(pDepend->pRegisteredIn != this )
      {
 -#ifdef DBG_UTIL
 +#if OSL_DEBUG_LEVEL > 1
          SwClientIter* pTmp = pClientIters;
          while( pTmp )
          {
-             OSL_ENSURE( &pTmp->rRoot != pRoot,
-                 "Client beim angemeldeten ClientIter einfuegen?" );
 -            ASSERT( &pTmp->GetModify() != pRoot, "Client added to active ClientIter" );
++            OSL_ENSURE( &pTmp->GetModify() != pRoot, "Client added to active ClientIter" );
              pTmp = pTmp->pNxtIter;
          }
  #endif
@@@ -304,25 -267,19 +268,19 @@@
      }
  }
  
- /*************************************************************************
- |*	  SwModify::_Remove( SwClient *pDepend )
- |*
- |*	  Beschreibung		Dokument 1.7
- *************************************************************************/
- 
+ /*************************************************************************/
  
- 
- SwClient *SwModify::_Remove(SwClient * pDepend)
+ SwClient* SwModify::Remove(SwClient * pDepend)
  {
-     // FME 2007-07-16 #i79641# SwXTextMarkup is allowed to be removed ...
- #if OSL_DEBUG_LEVEL > 1
-     OSL_ENSURE( !bInModify || 0 != dynamic_cast<SwXTextMarkup*>(pDepend), "Client innerhalb des eigenen Modifies loeschen?" );
- #endif
+     if ( bInDocDTOR )
+         return 0;
+ 
 -    ASSERT( !bLockClientList || pDepend->mbIsAllowedToBeRemovedInModifyCall, "SwClient shall be removed in Modify call!" );
++    OSL_ENSURE( !bLockClientList || pDepend->mbIsAllowedToBeRemovedInModifyCall, "SwClient shall be removed in Modify call!" );
  
-     // loesche das Object aus der Liste und setze den
-     // Registrierungs-Pointer zurueck
      if( pDepend->pRegisteredIn == this )
      {
+         // SwClient is my listener
+         // remove it from my list
          SwClient* pR = pDepend->pRight;
          SwClient* pL = pDepend->pLeft;
          if( pRoot == pDepend )
@@@ -350,9 -303,12 +304,12 @@@
          pDepend->pLeft = 0;
          pDepend->pRight = 0;
      }
-     else {
-         OSL_FAIL( "SwModify::Remove(): pDepend nicht gefunden");
+     else 
+     {
 -        ASSERT( false, "SwModify::Remove(): pDepend nicht gefunden" );
++        OSL_FAIL( "SwModify::Remove(): pDepend nicht gefunden" );
      }
+ 
+     // disconnect client from me
      pDepend->pRegisteredIn = 0;
      return pDepend;
  }
@@@ -586,22 -514,51 +515,53 @@@ SwClient* SwClientIter::First( TypeId n
  SwClient* SwClientIter::Next()
  {
      do {
-         // erstmal zum naechsten
-         if( pDelNext == pAkt )
+         if( pDelNext == pAct )
          {
-             pAkt = pAkt->pRight;
-             pDelNext = pAkt;
+             pAct = pAct->pRight;
+             pDelNext = pAct;
          }
          else
-             pAkt = pDelNext;
+             pAct = pDelNext;
  
-         if( pAkt && pAkt->IsA( aSrchId ) )
+         if( pAct && pAct->IsA( aSrchId ) )
              break;
-     } while( pAkt );
-     return pAkt;
+     } while( pAct );
+     return pAct;
+ }
+ 
+ SwClient* SwClientIter::Last( TypeId nType )
+ {
+     aSrchId = nType;
+     GoEnd();
+     if( pAct )
+         do {
+             if( pAct->IsA( aSrchId ) )
+                 break;
+ 
+             if( pDelNext == pAct )
+                 pAct = pAct->pLeft;
+             else
+                 pAct = pDelNext->pLeft;
+             pDelNext = pAct;
+ 
+         } while( pAct );
+     return pAct;
  }
  
+ SwClient* SwClientIter::Previous()
+ {
+     do {
+         if( pDelNext == pAct )
+             pAct = pAct->pLeft;
+         else
+             pAct = pDelNext->pLeft;
+         pDelNext = pAct;
+ 
+         if( pAct && pAct->IsA( aSrchId ) )
+             break;
+     } while( pAct );
+     return pAct;
+ }
  
 +
 +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --cc sw/source/core/attr/format.cxx
index 8a4f18b,76ec43f..b662893
--- a/sw/source/core/attr/format.cxx
+++ b/sw/source/core/attr/format.cxx
@@@ -272,9 -275,11 +272,9 @@@ SwFmt::~SwFmt(
  
  
  /*************************************************************************
- |*    void SwFmt::Modify( SfxPoolItem* pOldValue, SfxPoolItem* pNewValue )
+ |*    void SwFmt::Modify( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewValue )
  |*
  |*    Beschreibung		Dokument 1.14
 -|*    Ersterstellung    JP 22.11.90
 -|*    Letzte Aenderung  JP 05.08.94
  *************************************************************************/
  
  
diff --cc sw/source/core/crsr/callnk.cxx
index c6b691a,64c9667..fa0673b
--- a/sw/source/core/crsr/callnk.cxx
+++ b/sw/source/core/crsr/callnk.cxx
@@@ -102,43 -97,6 +102,43 @@@ SwCallLink::~SwCallLink(
      if( !pCNd )
          return;
  
-     SwFrm *myFrm=pCNd->GetFrm();
++    SwFrm *myFrm = pCNd->getLayoutFrm( rShell.GetLayout() );
 +    if (myFrm!=NULL)
 +    {
 +        // We need to emulated a change of the row height in order
 +        // to have the complete row redrawn
 +        SwRowFrm* pRow = myFrm->FindRowFrm( );
 +        if ( pRow )
 +        {
 +            const SwTableLine* pLine = pRow->GetTabLine( );
 +            SwFmtFrmSize pSize = pLine->GetFrmFmt( )->GetFrmSize( );
-             pRow->Modify( NULL, &pSize );
++            pRow->ModifyNotification( NULL, &pSize );
 +        }
 +    }
 +
 +    const SwDoc *pDoc=rShell.GetDoc();
 +    const SwCntntNode *pNode = NULL;
 +    if ( ( pDoc != NULL && nNode < pDoc->GetNodes( ).Count( ) ) )
 +    {
 +        pNode = pDoc->GetNodes()[nNode]->GetCntntNode();
 +    }
 +    if ( pNode != NULL )
 +    {
-         SwFrm *myFrm2=pNode->GetFrm();
++        SwFrm *myFrm2 = pNode->getLayoutFrm( rShell.GetLayout() );
 +        if (myFrm2!=NULL)
 +        {
 +            // We need to emulated a change of the row height in order
 +            // to have the complete row redrawn
 +            SwRowFrm* pRow = myFrm2->FindRowFrm();
 +            if ( pRow )
 +            {
 +                const SwTableLine* pLine = pRow->GetTabLine( );
 +                SwFmtFrmSize pSize = pLine->GetFrmFmt( )->GetFrmSize( );
-                 pRow->Modify( NULL, &pSize );
++                pRow->ModifyNotification( NULL, &pSize );
 +            }
 +        }
 +    }
 +
      xub_StrLen nCmp, nAktCntnt = pCurCrsr->GetPoint()->nContent.GetIndex();
      sal_uInt16 nNdWhich = pCNd->GetNodeType();
      sal_uLong nAktNode = pCurCrsr->GetPoint()->nNode.GetIndex();
@@@ -163,9 -122,9 +163,9 @@@
      else if( rShell.aChgLnk.IsSet() && ND_TEXTNODE == nNdWhich &&
               nCntnt != nAktCntnt )
      {
 -        // nur wenn mit Left/right getravellt, dann Text-Hints pruefen
 -        // und sich nicht der Frame geaendert hat (Spalten!)
 +        // If travelling with left/right only and the frame is
 +        // unchanged (columns!) then check text hints.
-         if( nLeftFrmPos == SwCallLink::GetFrm( (SwTxtNode&)*pCNd, nAktCntnt,
+         if( nLeftFrmPos == SwCallLink::getLayoutFrm( rShell.GetLayout(), (SwTxtNode&)*pCNd, nAktCntnt,
                                                      !rShell.ActionPend() ) &&
              (( nCmp = nCntnt ) + 1 == nAktCntnt ||			// Right
              nCntnt -1 == ( nCmp = nAktCntnt )) )			// Left
diff --cc sw/source/core/crsr/crsrsh.cxx
index 6f616e5,bb02a9d..38fe63f
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@@ -1359,12 -1401,12 +1360,12 @@@ void SwCrsrShell::UpdateCrsr( sal_uInt1
          }
  
          SwCntntFrm *pTblFrm = pPos->nNode.GetNode().GetCntntNode()->
-                                                 GetFrm( &aTmpPt, pPos );
+                               getLayoutFrm( GetLayout(), &aTmpPt, pPos, sal_False );
  
 -        ASSERT( pTblFrm, "Tabelle Crsr nicht im Content ??" );
 +        OSL_ENSURE( pTblFrm, "Tabelle Crsr nicht im Content ??" );
  
 -        // --> FME 2005-12-02 #126107# Make code robust. The table
 -        // cursor may point to a table in a currently inactive header.
 +        // --> Make code robust. The table cursor may point
 +        // to a table in a currently inactive header.
          SwTabFrm *pTab = pTblFrm ? pTblFrm->FindTabFrm() : 0;
          // <--
  
@@@ -1376,8 -1418,9 +1377,9 @@@
              // Second check if mark is in repeated headline:
              if ( !bInRepeatedHeadline )
              {
-                 SwCntntFrm* pMarkTblFrm = pITmpCrsr->GetCntntNode( sal_False )->GetFrm( &aTmpMk, pITmpCrsr->GetMark() );
+                 SwCntntFrm* pMarkTblFrm = pITmpCrsr->GetCntntNode( sal_False )->
+                     getLayoutFrm( GetLayout(), &aTmpMk, pITmpCrsr->GetMark(), sal_False );
 -                ASSERT( pMarkTblFrm, "Tabelle Crsr nicht im Content ??" );
 +                OSL_ENSURE( pMarkTblFrm, "Tabelle Crsr nicht im Content ??" );
  
                  if ( pMarkTblFrm )
                  {
@@@ -1779,10 -1825,10 +1781,10 @@@
  
  void SwCrsrShell::RefreshBlockCursor()
  {
 -    ASSERT( pBlockCrsr, "Don't call me without a block cursor" );
 +    OSL_ENSURE( pBlockCrsr, "Don't call me without a block cursor" );
      SwShellCrsr &rBlock = pBlockCrsr->getShellCrsr();
      Point aPt = rBlock.GetPtPos();
-     SwCntntFrm* pFrm = rBlock.GetCntntNode()->GetFrm( &aPt, rBlock.GetPoint() );
+     SwCntntFrm* pFrm = rBlock.GetCntntNode()->getLayoutFrm( GetLayout(), &aPt, rBlock.GetPoint(), sal_False );
      Point aMk;
      if( pBlockCrsr->getEndPoint() && pBlockCrsr->getStartPoint() )
      {
@@@ -3422,10 -3498,10 +3424,10 @@@ void SwCrsrShell::GetSmartTagTerm( cons
              SwCrsrMoveState aState;
              aState.bRealWidth = sal_True;
              SwCntntNode* pCntntNode = pCrsr->GetCntntNode();
-             SwCntntFrm *pCntntFrame = pCntntNode->GetFrm( &rPt, pCrsr->GetPoint(), sal_False);
+             SwCntntFrm *pCntntFrame = pCntntNode->getLayoutFrm( GetLayout(), &rPt, pCrsr->GetPoint(), sal_False);
  
              pCntntFrame->GetCharRect( aStartRect, *pCrsr->GetPoint(), &aState );
 -            rContent = nWordEnd;
 +            rContent = nWordEnd - 1;
              SwRect aEndRect;
              pCntntFrame->GetCharRect( aEndRect, *pCrsr->GetPoint(),&aState );
              rSelectRect = aStartRect.Union( aEndRect );
diff --cc sw/source/core/crsr/crstrvl.cxx
index d46a5a4,3d4b98f..ca4b282
--- a/sw/source/core/crsr/crstrvl.cxx
+++ b/sw/source/core/crsr/crstrvl.cxx
@@@ -73,9 -72,9 +73,9 @@@
  #include <fmturl.hxx>
  #include "txtfrm.hxx"
  #include <wrong.hxx>
- 
+ #include <switerator.hxx>
  #include <vcl/window.hxx>
 -#include <docufld.hxx> // OD 2008-06-19 #i90516#
 +#include <docufld.hxx>
  
  using namespace ::com::sun::star;
  
@@@ -1095,9 -1101,16 +1093,9 @@@ sal_Bool SwCrsrShell::GetContentAtPos( 
                          }
                          if( bRet )
                          {
 -//							rCntntAtPos.sStr = pTxtNd->GetExpandTxt(
 -//										*pTxtAttr->GetStart(),
 -//										*pTxtAttr->GetEnd() - *pTxtAttr->GetStart(),
 -//										sal_False );
 -
 -//							rCntntAtPos.aFnd.pAttr = &pTxtAttr->GetAttr();
                              rCntntAtPos.eCntntAtPos = SwContentAtPos::SW_SMARTTAG;
 -//							rCntntAtPos.pFndTxtAttr = pTxtAttr;
  
-                             if( pFldRect && 0 != ( pFrm = pTxtNd->GetFrm( &aPt ) ) )
+                             if( pFldRect && 0 != ( pFrm = pTxtNd->getLayoutFrm( GetLayout(), &aPt ) ) )
                                  pFrm->GetCharRect( *pFldRect, aPos, &aTmpState );
                          }
                      }
diff --cc sw/source/core/crsr/swcrsr.cxx
index bbdb8c7,cc20c7b..4f646d2
mode 100644,100755..100755
--- a/sw/source/core/crsr/swcrsr.cxx
+++ b/sw/source/core/crsr/swcrsr.cxx
diff --cc sw/source/core/crsr/viscrs.cxx
index 21cfed8,b0f62e1..83796c3
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@@ -494,14 -732,14 +494,14 @@@ void SwShellCrsr::SetMark(
  
  void SwShellCrsr::FillRects()
  {
 -    // die neuen Rechtecke berechnen
 +    // calculate the new rectangles
      if( HasMark() &&
          GetPoint()->nNode.GetNode().IsCntntNode() &&
-         GetPoint()->nNode.GetNode().GetCntntNode()->GetFrm() &&
+         GetPoint()->nNode.GetNode().GetCntntNode()->getLayoutFrm( GetShell()->GetLayout() ) &&
          (GetMark()->nNode == GetPoint()->nNode ||
          (GetMark()->nNode.GetNode().IsCntntNode() &&
-          GetMark()->nNode.GetNode().GetCntntNode()->GetFrm() )	))
-         GetDoc()->GetRootFrm()->CalcFrmRects( *this, GetShell()->IsTableMode() );
+          GetMark()->nNode.GetNode().GetCntntNode()->getLayoutFrm( GetShell()->GetLayout() ) )	))
+         GetShell()->GetLayout()->CalcFrmRects( *this, GetShell()->IsTableMode() );	//swmod 071107//swmod 071225
  }
  
  
@@@ -559,11 -808,11 +559,11 @@@ short SwShellCrsr::MaxReplaceArived(
      Window* pDlg = LAYOUT_THIS_WINDOW (::GetSearchDialog());
      if( pDlg )
      {
 -        // alte Actions beenden; die Tabellen-Frames werden angelegt und
 -        // eine SSelection kann erzeugt werden
 +        // Terminate old actions. The table-frames get constructed and
 +        // a SSelection can be created.
          SvUShorts aArr;
          sal_uInt16 nActCnt;
-         ViewShell *pShell = GetDoc()->GetRootFrm()->GetCurrShell(),
+         ViewShell *pShell = const_cast< SwCrsrShell* >( GetShell() ),
                    *pSh = pShell;
          do {
              for( nActCnt = 0; pSh->ActionPend(); ++nActCnt )
@@@ -580,10 -829,10 +580,10 @@@
              for( nActCnt = aArr[n]; nActCnt--; )
                  pSh->StartAction();
              pSh = (ViewShell*)pSh->GetNext();
-         }
+         }	//swmod 071107//swmod 071225
      }
      else
 -        // ansonsten aus dem Basic, und dann auf RET_YES schalten
 +        // otherwise from the Basic, and than switch to RET_YES
          nRet = RET_YES;
  
      return nRet;
@@@ -729,10 -978,10 +729,10 @@@ sal_Bool SwShellTableCrsr::IsInside( co
          if( !pCNd )
              continue;
  
-         SwFrm* pFrm = pCNd->GetFrm( &GetPtPos() );
+         SwFrm* pFrm = pCNd->getLayoutFrm( GetShell()->GetLayout(), &GetPtPos() );
          while( pFrm && !pFrm->IsCellFrm() )
              pFrm = pFrm->GetUpper();
 -        ASSERT( pFrm, "Node nicht in einer Tabelle" );
 +        OSL_ENSURE( pFrm, "Node nicht in einer Tabelle" );
          if( pFrm && pFrm->Frm().IsInside( rPt ) )
              return sal_True;
      }
diff --cc sw/source/core/doc/acmplwrd.cxx
index 38d6d88,6bda643..f9e2503
--- a/sw/source/core/doc/acmplwrd.cxx
+++ b/sw/source/core/doc/acmplwrd.cxx
@@@ -65,13 -66,16 +65,14 @@@ public
  
      SwAutoCompleteClient& operator=(const SwAutoCompleteClient& rClient);
  
-     virtual void Modify( SfxPoolItem *pOld, SfxPoolItem *pNew);
      const SwDoc& GetDoc(){return *pDoc;}
 -#ifdef DBG_UTIL
 +#if OSL_DEBUG_LEVEL > 1
      static sal_uLong GetElementCount() {return nSwAutoCompleteClientCount;}
  #endif
+ protected:
+     virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew);
  };
 -/* -----------------------------05.08.2002 12:48------------------------------
  
 - ---------------------------------------------------------------------------*/
  typedef std::vector<SwAutoCompleteClient> SwAutoCompleteClientVector;
  
  class SwAutoCompleteWord_Impl
@@@ -142,13 -157,15 +143,13 @@@ SwAutoCompleteClient& SwAutoCompleteCli
      pAutoCompleteWord = rClient.pAutoCompleteWord;

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list