ooo-build r12925 - in branches/ooo-build-2-4: . patches/src680



Author: freuter
Date: Thu Jun 19 13:27:29 2008
New Revision: 12925
URL: http://svn.gnome.org/viewvc/ooo-build?rev=12925&view=rev

Log:
n#400884: Workaround for competing protection mechanisms.

Modified:
   branches/ooo-build-2-4/ChangeLog
   branches/ooo-build-2-4/patches/src680/sw-field-patch.diff

Modified: branches/ooo-build-2-4/patches/src680/sw-field-patch.diff
==============================================================================
--- branches/ooo-build-2-4/patches/src680/sw-field-patch.diff	(original)
+++ branches/ooo-build-2-4/patches/src680/sw-field-patch.diff	Thu Jun 19 13:27:29 2008
@@ -41,10 +41,10 @@
      virtual ~IDocumentBookmarkAccess() {};
   };
 diff --git a/sw/inc/IDocumentSettingAccess.hxx b/sw/inc/IDocumentSettingAccess.hxx
-index 59e7901..970d034 100644
+index 4c07db5..70d0e7e 100644
 --- sw/inc/IDocumentSettingAccess.hxx
 +++ sw/inc/IDocumentSettingAccess.hxx
-@@ -91,6 +91,7 @@ namespace com { namespace sun { namespace star { namespace i18n { struct Forbidd
+@@ -92,6 +92,7 @@ namespace com { namespace sun { namespace star { namespace i18n { struct Forbidd
           UNIX_FORCE_ZERO_EXT_LEADING,
           USE_OLD_PRINTER_METRICS,
           TABS_RELATIVE_TO_INDENT,
@@ -180,10 +180,10 @@
  	// Das sollte nur aufgerufen werden, wenn der Cursor z.B. beim
  	// Loeschen von Rahmen irgendwohin gesetzt wurde. Die Position
 diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
-index d8f3bc0..1c9b6d4 100644
+index 89ea80b..6fef750 100644
 --- sw/inc/doc.hxx
 +++ sw/inc/doc.hxx
-@@ -619,6 +619,7 @@ class SwDoc :
+@@ -620,6 +620,7 @@ class SwDoc :
      bool mbUnixForceZeroExtLeading                  : 1;   // FME 2006-10-09 #i60945#
      bool mbOldPrinterMetrics                        : 1;   // FME 2007-05-14 #147385#
      bool mbTabRelativeToIndent;                            // #i24363# tab stops relative to indent
@@ -191,7 +191,7 @@
  
  	// #i78591#
  	sal_uInt32  n32DummyCompatabilityOptions1;
-@@ -790,6 +791,10 @@ public:
+@@ -791,6 +792,10 @@ public:
      virtual void makeUniqueBookmarkName( /*[in/out]*/String& rName );
      virtual sal_uInt16 getBookmarkCount( /*[in]*/ bool bBkmrk ) const;
      virtual SwBookmark& getBookmark( /*[in]*/sal_uInt16 nPos, /*[in]*/bool bBkmrk );
@@ -202,7 +202,7 @@
  
      /** IDocumentRedlineAccess
      */
-@@ -973,6 +978,7 @@ public:
+@@ -974,6 +979,7 @@ public:
  	/** IDocumentState
  	*/
  	virtual void SetModified();
@@ -507,10 +507,10 @@
  }
  
 diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
-index f45f651..b78b4be 100644
+index 99962b7..ae03a12 100644
 --- sw/source/core/doc/doc.cxx
 +++ sw/source/core/doc/doc.cxx
-@@ -300,6 +300,7 @@ bool SwDoc::get(/*[in]*/ DocumentSettingId id) const
+@@ -301,6 +301,7 @@ bool SwDoc::get(/*[in]*/ DocumentSettingId id) const
          case UNIX_FORCE_ZERO_EXT_LEADING: return mbUnixForceZeroExtLeading;
          case USE_OLD_PRINTER_METRICS: return mbOldPrinterMetrics;
          case TABS_RELATIVE_TO_INDENT : return mbTabRelativeToIndent;
@@ -518,7 +518,7 @@
           // COMPATIBILITY FLAGS END
  
          case BROWSE_MODE: return mbBrowseMode;
-@@ -408,6 +409,9 @@ void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value)
+@@ -412,6 +413,9 @@ void SwDoc::set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value)
          case UNIX_FORCE_ZERO_EXT_LEADING:
              mbUnixForceZeroExtLeading = value;
              break;
@@ -528,8 +528,10 @@
  
          case USE_OLD_PRINTER_METRICS:            
              mbOldPrinterMetrics = value;
---- sw/source/core/doc/docbm.cxx.old	2008-05-16 17:02:47.000000000 +0200
-+++ sw/source/core/doc/docbm.cxx	2008-05-16 17:06:13.000000000 +0200
+diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
+index a2d1761..91e7b50 100644
+--- sw/source/core/doc/docbm.cxx
++++ sw/source/core/doc/docbm.cxx
 @@ -100,7 +100,13 @@
  #ifndef _NDTXT_HXX
  #include "ndtxt.hxx" // for lcl_FixPosition
@@ -544,7 +546,7 @@
  
  SV_IMPL_OP_PTRARR_SORT(SwBookmarks, SwBookmarkPtr)
  
-@@ -156,7 +162,23 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*
+@@ -156,7 +162,23 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*/const SwPaM& rPaM, /*[in]*/const KeyCod
                                   /*[in]*/IDocumentBookmarkAccess::BookmarkType eMark )
  {
  	SwBookmark *pBM;
@@ -569,7 +571,7 @@
  		pBM = new SwMark( *rPaM.GetPoint(), rCode, rName, rShortName );
  	else if( BOOKMARK == eMark || HIDDEN_BOOKMARK == eMark)
  	{
-@@ -171,10 +193,44 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*
+@@ -171,10 +193,44 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*/const SwPaM& rPaM, /*[in]*/const KeyCod
  			pBM->pPos2 = new SwPosition( *rPaM.GetMark() );
  	}
  
@@ -618,7 +620,7 @@
  
  	if( !pBookmarkTbl->Insert( pBM ) )
  		delete pBM, pBM = 0;
-@@ -194,7 +250,117 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*
+@@ -194,7 +250,117 @@ SwBookmark* SwDoc::makeBookmark( /*[in]*/const SwPaM& rPaM, /*[in]*/const KeyCod
  			    SetModified();
  	    }
  	}
@@ -736,7 +738,7 @@
  }
  
  void SwDoc::deleteBookmark( /*[in]*/sal_uInt16 nPos )
-@@ -703,7 +869,7 @@ void _SaveCntntIdx( SwDoc* pDoc, ULONG n
+@@ -703,7 +869,7 @@ void _SaveCntntIdx( SwDoc* pDoc, ULONG nNode, xub_StrLen nCntnt,
  		}
  
  		if( pBkmk->GetOtherPos() && pBkmk->GetOtherPos()->nNode.GetIndex() ==
@@ -745,7 +747,7 @@
  		{
  			aSave.SetContent( pBkmk->GetOtherPos()->nContent.GetIndex() );
  			aSave.IncType();
-@@ -1166,3 +1332,41 @@ void _RestoreCntntIdx( SvULongs& rSaveAr
+@@ -1166,3 +1332,41 @@ void _RestoreCntntIdx( SvULongs& rSaveArr, const SwNode& rNd,
  }
  
  
@@ -788,7 +790,7 @@
 +	return fftype;
 +}
 diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx
-index 472f1b6..8633c3d 100644
+index d09910e..2142858 100644
 --- sw/source/core/doc/docedt.cxx
 +++ sw/source/core/doc/docedt.cxx
 @@ -902,6 +902,12 @@ bool SwDoc::Insert( const SwPaM &rRg, sal_Unicode c )
@@ -805,10 +807,10 @@
  {
  	SwPosition& rPt = *(SwPosition*)rRg.GetPoint();
 diff --git a/sw/source/core/doc/docnew.cxx b/sw/source/core/doc/docnew.cxx
-index ffbd429..a90db25 100644
+index 0587671..d5041fd 100644
 --- sw/source/core/doc/docnew.cxx
 +++ sw/source/core/doc/docnew.cxx
-@@ -419,6 +419,7 @@ SwDoc::SwDoc() :
+@@ -420,6 +420,7 @@ SwDoc::SwDoc() :
      mbUnixForceZeroExtLeading               = false;        // hidden
      mbOldPrinterMetrics                     = false;        // hidden
      mbTabRelativeToIndent                   = true;         // hidden
@@ -835,7 +837,7 @@
  	//Geht auch FlyFrms rekursiv hoch. Geht auch von Fussnoten zum Anker.
  	const SwFrm *pFrm = this;
 diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
-index 9637868..e60e283 100644
+index ae94c9e..3758421 100644
 --- sw/source/core/text/inftxt.cxx
 +++ sw/source/core/text/inftxt.cxx
 @@ -156,6 +156,9 @@
@@ -1000,10 +1002,10 @@
  
  	virtual ~SwAttrIter();
 diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
-index dc8ae00..757f02b 100644
+index 411d04e..f527a1e 100644
 --- sw/source/core/text/itrform2.cxx
 +++ sw/source/core/text/itrform2.cxx
-@@ -893,14 +893,23 @@ SwTxtPortion *SwTxtFormatter::WhichTxtPor( SwTxtFormatInfo &rInf ) const
+@@ -894,14 +894,23 @@ SwTxtPortion *SwTxtFormatter::WhichTxtPor( SwTxtFormatInfo &rInf ) const
  			// Erst zum Schluss !
  			// Wenn pCurr keine Breite hat, kann sie trotzdem schon Inhalt haben,
  			// z.B. bei nicht darstellbaren Zeichen.
@@ -1690,7 +1692,7 @@
  				MakeBookRegionOrPoint(pEntry, pDoc, aRegion, TRUE);
                  pDoc->makeBookmark( aRegion, aEmptyKeyCode, rName, aEmptyStr, IDocumentBookmarkAccess::BOOKMARK);
 diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx
-index 26290b6..1d1749a 100644
+index eb9359b..efc295e 100644
 --- sw/source/filter/ww8/wrtw8nds.cxx
 +++ sw/source/filter/ww8/wrtw8nds.cxx
 @@ -216,6 +216,10 @@
@@ -1755,7 +1757,7 @@
  
          const SwAttrSet& rSet = rNd.GetSwAttrSet();
          const SvxFontHeightItem &rHeightItem  =
-@@ -1470,20 +1484,20 @@ String WW8_SwAttrIter::GetSnippet(const String &rStr, xub_StrLen nAktPos,
+@@ -1471,20 +1485,20 @@ String WW8_SwAttrIter::GetSnippet(const String &rStr, xub_StrLen nAktPos,
  
      if (SVX_CASEMAP_TITEL == ((const SvxCaseMapItem&)rItem).GetValue())
      {
@@ -1780,7 +1782,7 @@
              default:
                  nLanguage = ((const SvxLanguageItem&)GetItem(RES_CHRATR_LANGUAGE)).GetLanguage();
                  break;
-@@ -1620,8 +1634,50 @@ Writer& OutWW8_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
+@@ -1621,8 +1635,50 @@ Writer& OutWW8_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
          xub_StrLen nLen = nNextAttr - nAktPos;
          if (!bTxtAtr && nLen)
          {
@@ -1833,7 +1835,7 @@
              {
                  // Insert tab for aesthetic puposes #i24762#
                  if (aSnippet.GetChar(0) != 0x09)
-@@ -1629,7 +1685,7 @@ Writer& OutWW8_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
+@@ -1630,7 +1686,7 @@ Writer& OutWW8_SwTxtNode( Writer& rWrt, SwCntntNode& rNode )
                      nLen++;
                      aSnippet.Insert(0x09,0);
                  }
@@ -1843,7 +1845,7 @@
          }
  
 diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
-index 421ec5b..f85fa08 100644
+index f2d6dc8..683486d 100644
 --- sw/source/filter/ww8/wrtww8.cxx
 +++ sw/source/filter/ww8/wrtww8.cxx
 @@ -204,6 +204,10 @@
@@ -1932,7 +1934,7 @@
  void SwWW8Writer::WriteString8(SvStream& rStrm, const String& rStr,
      bool bAddZero, rtl_TextEncoding eCodeSet)
  {
-@@ -2652,5 +2672,97 @@ void SwWW8Writer::RestoreMacroCmds()
+@@ -2653,5 +2673,97 @@ void SwWW8Writer::RestoreMacroCmds()
      pFib->lcbCmds = pTableStrm->Tell() - pFib->fcCmds;
  }
  
@@ -2031,10 +2033,10 @@
  
  /* vi:set tabstop=4 shiftwidth=4 expandtab: */
 diff --git a/sw/source/filter/ww8/wrtww8.hxx b/sw/source/filter/ww8/wrtww8.hxx
-index 177007c..6415871 100644
+index 32da02e..ee46845 100644
 --- sw/source/filter/ww8/wrtww8.hxx
 +++ sw/source/filter/ww8/wrtww8.hxx
-@@ -678,6 +678,7 @@ public:
+@@ -680,6 +680,7 @@ public:
      static void WriteString8(SvStream& rStrm, const String& rStr,
          bool bAddZero, rtl_TextEncoding eCodeSet);
  
@@ -2042,7 +2044,7 @@
  #if 1
      //Prefer ww::bytes to WW8Bytes, migrate away from the other ones.
      static void InsUInt16(ww::bytes &rO, sal_uInt16 n);
-@@ -734,6 +735,8 @@ public:
+@@ -736,6 +737,8 @@ public:
      void AddLinkTarget(const String& rURL);
      void CollectOutlineBookmarks(const SwDoc &rDoc);
      void AddBookmark(String sBkmkName);
@@ -2052,7 +2054,7 @@
      //No copying
      SwWW8Writer(const SwWW8Writer&);
 diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
-index b902c49..d94b2e1 100644
+index 14b95ee..7e389b1 100644
 --- sw/source/filter/ww8/ww8par.cxx
 +++ sw/source/filter/ww8/ww8par.cxx
 @@ -286,6 +286,8 @@
@@ -2093,7 +2095,7 @@
  }
  
  void SwWW8ImplReader::Read_HdFtFtnText( const SwNodeIndex* pSttIdx,
-@@ -2737,6 +2747,22 @@ bool SwWW8ImplReader::ReadChar(long nPosCp, long nCpOfs)
+@@ -2726,6 +2736,22 @@ bool SwWW8ImplReader::ReadChar(long nPosCp, long nCpOfs)
          case 0x15:
              if( !bSpec )        // Juristenparagraph
                  cInsert = '\xa7';
@@ -2116,7 +2118,7 @@
              break;
          case 0x9:
              cInsert = '\x9';    // Tab
-@@ -3522,6 +3548,8 @@ bool wwSectionManager::IsNewDoc() const
+@@ -3510,6 +3536,8 @@ bool wwSectionManager::IsNewDoc() const
  
  void wwSectionManager::InsertSegments()
  {
@@ -2125,17 +2127,22 @@
      mySegIter aEnd = maSegments.end();
      mySegIter aStart = maSegments.begin();
      for (mySegIter aIter = aStart; aIter != aEnd; ++aIter)
-@@ -3530,7 +3558,7 @@ void wwSectionManager::InsertSegments()
+@@ -3518,7 +3546,12 @@ void wwSectionManager::InsertSegments()
  
          bool bInsertSection = aIter != aStart ? aIter->IsContinous() : false;
          bool bInsertPageDesc = !bInsertSection;
 -        bool bProtected = SectionIsProtected(*aIter);
-+        bool bProtected = !bUseEnhFields && SectionIsProtected(*aIter); // do we really  need this ?? I guess I have a different logic in editshell which disales this...
++        bool bProtected = SectionIsProtected(*aIter); // do we really  need this ?? I guess I have a different logic in editshell which disales this...
++	if (bUseEnhFields && mrReader.pWDop->fProtEnabled && aIter->IsNotProtected()) {
++	    // here we have the special case that the whole document is protected, with the expection of this section.
++	    // I want to address this when I do the section rework, so for the moment we disable the overall protection then...
++	    mrReader.rDoc.set(IDocumentSettingAccess::PROTECT_FORM, false );
++	}
  
          if (bInsertPageDesc)
          {
 diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
-index 5748ff8..cb1124a 100644
+index 629061e..40954c0 100644
 --- sw/source/filter/ww8/ww8par.hxx
 +++ sw/source/filter/ww8/ww8par.hxx
 @@ -390,6 +390,32 @@ public:
@@ -2398,7 +2405,7 @@
          bRet = true;
      }
 diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
-index 405d291..6877159 100644
+index 98bd9a5..1da6294 100644
 --- sw/source/filter/ww8/ww8par5.cxx
 +++ sw/source/filter/ww8/ww8par5.cxx
 @@ -422,7 +422,7 @@ long SwWW8ImplReader::Read_Book(WW8PLCFManResult*)
@@ -2480,7 +2487,7 @@
  
  /*
 diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx
-index 382eff6..d8eebb6 100644
+index 82690ef..afd816b 100644
 --- sw/source/ui/docvw/edtwin.cxx
 +++ sw/source/ui/docvw/edtwin.cxx
 @@ -325,6 +325,9 @@
@@ -2535,7 +2542,7 @@
                      {
                          // --> OD 2007-10-02 #b660435#
  //                        if (rSh.IsFirstOfNumRule()) // #i23725#
-@@ -2297,7 +2312,29 @@ KEYINPUT_CHECKTABLE_INSDEL:
+@@ -2298,7 +2313,29 @@ KEYINPUT_CHECKTABLE_INSDEL:
  			aCh = '\t';
  			// kein break!
  		case KS_InsChar:
@@ -2566,7 +2573,7 @@
  		{
  			BOOL bIsNormalChar = GetAppCharClass().isLetterNumeric(
  														String( aCh ), 0 );
-@@ -2406,6 +2443,24 @@ KEYINPUT_CHECKTABLE_INSDEL:
+@@ -2407,6 +2444,24 @@ KEYINPUT_CHECKTABLE_INSDEL:
                  nKS_NUMINDENTINC_Count = 2;
                  break;
  
@@ -2591,7 +2598,7 @@
              case KS_NumIndentDec:
                  rSh.NumIndent(-360);
                  break;
-@@ -4188,7 +4243,8 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
+@@ -4189,7 +4244,8 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
  
                          SwContentAtPos aCntntAtPos( SwContentAtPos::SW_CLICKFIELD |
  													SwContentAtPos::SW_INETATTR |
@@ -2601,7 +2608,7 @@
  
  						if( rSh.GetContentAtPos( aDocPt, aCntntAtPos, TRUE ) )
  						{
-@@ -4209,7 +4265,16 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
+@@ -4210,7 +4266,16 @@ void SwEditWin::MouseButtonUp(const MouseEvent& rMEvt)
                                      if ( bExecSmarttags && SwSmartTagMgr::Get().IsSmartTagsEnabled() )
                                          rView.ExecSmartTagPopup( aDocPt );
                              }
@@ -2633,10 +2640,10 @@
  	// on graphics
  	BOOL SelectNextPrevHyperlink( BOOL bNext = TRUE );
 diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx
-index 70c570e..661cc1b 100644
+index 627a1e0..13689ae 100644
 --- sw/source/ui/uno/SwXDocumentSettings.cxx
 +++ sw/source/ui/uno/SwXDocumentSettings.cxx
-@@ -160,7 +160,8 @@ enum SwDocumentSettingsPropertyHandles
+@@ -161,7 +161,8 @@ enum SwDocumentSettingsPropertyHandles
      HANDLE_CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAMES,
      HANDLE_UNIX_FORCE_ZERO_EXT_LEADING,
      HANDLE_USE_OLD_PRINTER_METRICS,
@@ -2646,7 +2653,7 @@
  };
  
  MasterPropertySetInfo * lcl_createSettingsInfo()
-@@ -211,6 +212,7 @@ MasterPropertySetInfo * lcl_createSettingsInfo()
+@@ -213,6 +214,7 @@ MasterPropertySetInfo * lcl_createSettingsInfo()
          { RTL_CONSTASCII_STRINGPARAM("UnxForceZeroExtLeading"), HANDLE_UNIX_FORCE_ZERO_EXT_LEADING, CPPUTYPE_BOOLEAN, 0, 0},
          { RTL_CONSTASCII_STRINGPARAM("UseOldPrinterMetrics"), HANDLE_USE_OLD_PRINTER_METRICS, CPPUTYPE_BOOLEAN, 0, 0},
          { RTL_CONSTASCII_STRINGPARAM("TabsRelativeToIndent"), HANDLE_TABS_RELATIVE_TO_INDENT, CPPUTYPE_BOOLEAN, 0, 0},
@@ -2654,7 +2661,7 @@
  
  /*
   * As OS said, we don't have a view when we need to set this, so I have to
-@@ -691,6 +693,12 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
+@@ -698,6 +700,12 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf
              mpDoc->set(IDocumentSettingAccess::TABS_RELATIVE_TO_INDENT, bTmp);
          }
          break;
@@ -2667,7 +2674,7 @@
          default:
  			throw UnknownPropertyException();
  	}
-@@ -990,6 +998,12 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf
+@@ -1003,6 +1011,12 @@ void SwXDocumentSettings::_getSingleValue( const comphelper::PropertyInfo & rInf
              rValue.setValue( &bTmp, ::getBooleanCppuType() );
          }
          break;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]