You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2012/09/17 10:06:23 UTC

svn commit: r1386501 [8/10] - in /incubator/ooo/branches/writer001: ./ ext_libraries/ratscan/ ext_sources/ main/ main/autodoc/source/display/html/ main/basegfx/inc/basegfx/numeric/ main/basegfx/source/numeric/ main/basegfx/source/tools/ main/basic/sour...

Modified: incubator/ooo/branches/writer001/main/svtools/source/misc/langtab.src
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svtools/source/misc/langtab.src?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svtools/source/misc/langtab.src (original)
+++ incubator/ooo/branches/writer001/main/svtools/source/misc/langtab.src Mon Sep 17 08:06:09 2012
@@ -101,7 +101,7 @@ StringArray STR_ARR_SVT_LANGUAGE_TABLE
         < "Estonian" ; LANGUAGE_ESTONIAN ; > ;
         < "Finnish" ; LANGUAGE_FINNISH ; > ;
         < "Faroese" ; LANGUAGE_FAEROESE ; > ;
-        < "Farsi" ; LANGUAGE_FARSI ; > ;
+        < "Persian" ; LANGUAGE_FARSI ; > ;
         < "French (France)" ; LANGUAGE_FRENCH ; > ;
         < "French (Belgium)" ; LANGUAGE_FRENCH_BELGIAN ; > ;
         < "French (Canada)" ; LANGUAGE_FRENCH_CANADIAN ; > ;

Modified: incubator/ooo/branches/writer001/main/svx/inc/svx/msdffdef.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/inc/svx/msdffdef.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/inc/svx/msdffdef.hxx (original)
+++ incubator/ooo/branches/writer001/main/svx/inc/svx/msdffdef.hxx Mon Sep 17 08:06:09 2012
@@ -788,6 +788,8 @@ typedef enum
    mso_sptActionButtonMovie = 200,
    mso_sptHostControl = 201,
    mso_sptTextBox = 202,
+   //for pptx shape which not exist in ppt
+   mso_sptTearDrop = 203,                   
    mso_sptMax = 0x0FFF,
    mso_sptNil = mso_sptMax
  } MSO_SPT;

Modified: incubator/ooo/branches/writer001/main/svx/inc/svx/svdmodel.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/inc/svx/svdmodel.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/inc/svx/svdmodel.hxx (original)
+++ incubator/ooo/branches/writer001/main/svx/inc/svx/svdmodel.hxx Mon Sep 17 08:06:09 2012
@@ -658,17 +658,17 @@ public:
 	const Link& GetIOProgressHdl() const                     { return aIOProgressLink; }
 
 	// Zugriffsmethoden fuer Paletten, Listen und Tabellen
-	void            SetColorTable(XColorTable* pTable)       { pColorTable=pTable; }
+	void            SetColorTable(XColorTable* pTable)       ;
 	XColorTable*    GetColorTable() const                    { return pColorTable; }
-	void            SetDashList(XDashList* pList)            { pDashList=pList; }
+	void            SetDashList(XDashList* pList)            ;
 	XDashList*      GetDashList() const                      { return pDashList; }
-	void            SetLineEndList(XLineEndList* pList)      { pLineEndList=pList; }
+	void            SetLineEndList(XLineEndList* pList)      ;
 	XLineEndList*   GetLineEndList() const                   { return pLineEndList; }
-	void            SetHatchList(XHatchList* pList)          { pHatchList=pList; }
+	void            SetHatchList(XHatchList* pList)          ;
 	XHatchList*     GetHatchList() const                     { return pHatchList; }
-	void            SetGradientList(XGradientList* pList)    { pGradientList=pList; }
+	void            SetGradientList(XGradientList* pList)    ;
 	XGradientList*  GetGradientList() const                  { return pGradientList; }
-	void            SetBitmapList(XBitmapList* pList)        { pBitmapList=pList; }
+	void            SetBitmapList(XBitmapList* pList)        ;
 	XBitmapList*    GetBitmapList() const                    { return pBitmapList; }
 
 	// Der StyleSheetPool wird der DrawingEngine nur bekanntgemacht.

Modified: incubator/ooo/branches/writer001/main/svx/source/core/coreservices.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/core/coreservices.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/core/coreservices.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/core/coreservices.cxx Mon Sep 17 08:06:09 2012
@@ -55,13 +55,13 @@ extern OUString SAL_CALL ExtrusionSurfac
 extern Reference< XInterface > SAL_CALL ExtrusionSurfaceControl_createInstance(const Reference< XMultiServiceFactory > &)  throw( RuntimeException );
 extern Sequence< OUString > SAL_CALL ExtrusionSurfaceControl_getSupportedServiceNames() throw( RuntimeException );
 
-extern OUString SAL_CALL FontWorkAlignmentControl_getImplementationName();
-extern Reference< XInterface > SAL_CALL FontWorkAlignmentControl_createInstance(const Reference< XMultiServiceFactory > &)  throw( RuntimeException );
-extern Sequence< OUString > SAL_CALL FontWorkAlignmentControl_getSupportedServiceNames() throw( RuntimeException );
-
-extern OUString SAL_CALL FontWorkCharacterSpacingControl_getImplementationName();
-extern Reference< XInterface > SAL_CALL FontWorkCharacterSpacingControl_createInstance(const Reference< XMultiServiceFactory > &)  throw( RuntimeException );
-extern Sequence< OUString > SAL_CALL FontWorkCharacterSpacingControl_getSupportedServiceNames() throw( RuntimeException );
+extern OUString SAL_CALL FontworkAlignmentControl_getImplementationName();
+extern Reference< XInterface > SAL_CALL FontworkAlignmentControl_createInstance(const Reference< XMultiServiceFactory > &)  throw( RuntimeException );
+extern Sequence< OUString > SAL_CALL FontworkAlignmentControl_getSupportedServiceNames() throw( RuntimeException );
+
+extern OUString SAL_CALL FontworkCharacterSpacingControl_getImplementationName();
+extern Reference< XInterface > SAL_CALL FontworkCharacterSpacingControl_createInstance(const Reference< XMultiServiceFactory > &)  throw( RuntimeException );
+extern Sequence< OUString > SAL_CALL FontworkCharacterSpacingControl_getSupportedServiceNames() throw( RuntimeException );
 }
 
 extern "C"
@@ -113,21 +113,21 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL com
 				::svx::ExtrusionSurfaceControl_createInstance,
 				::svx::ExtrusionSurfaceControl_getSupportedServiceNames() );
 		}
-		else if( ::svx::FontWorkAlignmentControl_getImplementationName().equalsAscii( pImplName ) )
+		else if( ::svx::FontworkAlignmentControl_getImplementationName().equalsAscii( pImplName ) )
 		{
 			xFactory = ::cppu::createSingleFactory(
 				reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
-				::svx::FontWorkAlignmentControl_getImplementationName(),
-				::svx::FontWorkAlignmentControl_createInstance,
-				::svx::FontWorkAlignmentControl_getSupportedServiceNames() );
+				::svx::FontworkAlignmentControl_getImplementationName(),
+				::svx::FontworkAlignmentControl_createInstance,
+				::svx::FontworkAlignmentControl_getSupportedServiceNames() );
 		}
-		else if( ::svx::FontWorkCharacterSpacingControl_getImplementationName().equalsAscii( pImplName ) )
+		else if( ::svx::FontworkCharacterSpacingControl_getImplementationName().equalsAscii( pImplName ) )
 		{
 			xFactory = ::cppu::createSingleFactory(
 				reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
-				::svx::FontWorkCharacterSpacingControl_getImplementationName(),
-				::svx::FontWorkCharacterSpacingControl_createInstance,
-				::svx::FontWorkCharacterSpacingControl_getSupportedServiceNames() );
+				::svx::FontworkCharacterSpacingControl_getImplementationName(),
+				::svx::FontworkCharacterSpacingControl_createInstance,
+				::svx::FontworkCharacterSpacingControl_getSupportedServiceNames() );
 		}		if( xFactory.is())
 		{
 			xFactory->acquire();

Modified: incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShape3d.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShape3d.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShape3d.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShape3d.cxx Mon Sep 17 08:06:09 2012
@@ -393,7 +393,9 @@ SdrObject* EnhancedCustomShape3d::Create
 		}
 
 		Rectangle aBoundRect2d;
-		SdrObjListIter aIter( *pShape2d, IM_DEEPWITHGROUPS );
+		SdrObjListIter aIter( *pShape2d, IM_DEEPNOGROUPS );
+        const bool bMultipleSubObjects(aIter.Count() > 1);
+
 		while( aIter.IsMore() )
 		{
 			const SdrObject* pNext = aIter.Next();
@@ -405,20 +407,35 @@ SdrObject* EnhancedCustomShape3d::Create
 
 			if ( pNext->ISA( SdrPathObj ) )
 			{
-            	const SfxItemSet& rSet = pNext->GetMergedItemSet();
-			    const drawinglayer::attribute::SdrLineAttribute aLine(
-                    drawinglayer::primitive2d::createNewSdrLineAttribute(rSet));
-                bool bNeedToConvertToContour(0.0 <= aLine.getWidth() || 0.0 != aLine.getFullDotDashLen());
+                const SfxItemSet& rSet = pNext->GetMergedItemSet();
+                bool bNeedToConvertToContour(false);
 
-                if(!bNeedToConvertToContour && !aLine.isDefault())
+                // do conversion only for single line objects; for all others a fill and a
+                // line object get created. When we have fill, we want no line. That line has
+                // always been there, but since it was never converted to contour, it kept
+                // invisible (all this 'hidden' logic should be migrated to primitives).
+                if(!bMultipleSubObjects) 
                 {
-    			    const drawinglayer::attribute::SdrLineStartEndAttribute aLineStartEnd(
-                        drawinglayer::primitive2d::createNewSdrLineStartEndAttribute(rSet, aLine.getWidth()));
+                    const XFillStyle eStyle(((XFillStyleItem&)(rSet.Get(XATTR_FILLSTYLE))).GetValue());
 
-                    if((aLineStartEnd.getStartWidth() && aLineStartEnd.isStartActive()) 
-                        || (aLineStartEnd.getEndWidth() && aLineStartEnd.isEndActive()))
+                    if(XFILL_NONE == eStyle)
                     {
-                        bNeedToConvertToContour = true;
+                        const drawinglayer::attribute::SdrLineAttribute aLine(
+                            drawinglayer::primitive2d::createNewSdrLineAttribute(rSet));
+
+                        bNeedToConvertToContour = (0.0 < aLine.getWidth() || 0.0 != aLine.getFullDotDashLen());
+
+                        if(!bNeedToConvertToContour && !aLine.isDefault())
+                        {
+                            const drawinglayer::attribute::SdrLineStartEndAttribute aLineStartEnd(
+                                drawinglayer::primitive2d::createNewSdrLineStartEndAttribute(rSet, aLine.getWidth()));
+
+                            if((aLineStartEnd.getStartWidth() && aLineStartEnd.isStartActive()) 
+                                || (aLineStartEnd.getEndWidth() && aLineStartEnd.isEndActive()))
+                            {
+                                bNeedToConvertToContour = true;
+                            }
+                        }
                     }
                 }
 
@@ -434,12 +451,23 @@ SdrObject* EnhancedCustomShape3d::Create
                         if(aPolyPoly.isClosed())
                         {
                             // correct item properties from line to fill style
-				            aLocalSet.Put(XLineWidthItem(0));
-				            aLocalSet.Put(XLineStyleItem(XLINE_NONE));
-				            aLocalSet.Put(XFillColorItem(XubString(), ((const XLineColorItem&)(aLocalSet.Get(XATTR_LINECOLOR))).GetColorValue()));
-				            aLocalSet.Put(XFillStyleItem(XFILL_SOLID));
-				            aLocalSet.Put(XFillTransparenceItem(((const XLineTransparenceItem&)(aLocalSet.Get(XATTR_LINETRANSPARENCE))).GetValue()));
-                            aLocalFillStyle = XFILL_SOLID;
+                            if(eShadeMode == drawing::ShadeMode_DRAFT)
+                            {
+                                // for draft, create wireframe with fixed line width
+                                aLocalSet.Put(XLineStyleItem(XLINE_SOLID));
+                                aLocalSet.Put(XLineWidthItem(40));
+                                aLocalFillStyle = XFILL_NONE;
+                            }
+                            else
+                            {
+                                // switch from line to fill, copy line attr to fill attr (color, transparence)
+				                aLocalSet.Put(XLineWidthItem(0));
+				                aLocalSet.Put(XLineStyleItem(XLINE_NONE));
+				                aLocalSet.Put(XFillColorItem(XubString(), ((const XLineColorItem&)(aLocalSet.Get(XATTR_LINECOLOR))).GetColorValue()));
+				                aLocalSet.Put(XFillStyleItem(XFILL_SOLID));
+				                aLocalSet.Put(XFillTransparenceItem(((const XLineTransparenceItem&)(aLocalSet.Get(XATTR_LINETRANSPARENCE))).GetValue()));
+                                aLocalFillStyle = XFILL_SOLID;
+                            }
                         }
                         else
                         {

Modified: incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeGeometry.cxx Mon Sep 17 08:06:09 2012
@@ -1560,11 +1560,12 @@ static const SvxMSDffCalculationData mso
 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
-	{ 0x6001, { 0x403, 0x404, 10800 } }
+	{ 0x6001, { 0x403, 0x404, 10800 } },
+    { 0x8000, { 21600, 0, 0x405 }}
 };
 static const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] =	// todo
 {
-	{ { 0, 0 }, { 21600, 21600 } }
+	{ { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 2 MSO_I } }
 };
 static const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] =
 {
@@ -8289,6 +8290,68 @@ static const mso_CustomShape msoCurvedCo
 	(SvxMSDffHandle*)mso_sptCurvedConnector5Handle, sizeof( mso_sptCurvedConnector5Handle ) / sizeof( SvxMSDffHandle )
 };
 
+/////////////////////////////teardrop////////////////////////////////////////////
+static const SvxMSDffVertPair mso_sptTearDropVert[] =
+{
+	{ 10800, 0 }, 
+	{ 0, 10800 },												    // X
+	{ 10800, 21600 },                                               // Y
+	{ 21600, 10800 },                                               // X
+	{ 21600, 10800 }, { 21600, 3 MSO_I }, { 0 MSO_I, 1 MSO_I },  			// C
+	{ 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 10800, 0 }
+};
+
+//	the last number (0x***n)  :  0 = sum, 1 = prod, 2 = mid, 3 = abs, 4 = min, 5 = max, 6 = if, 13 = sqrt, 15 = eclipse ...
+//    the first number(0xn***)  :  2/4/8 the first/second/third value is not directly value
+static const SvxMSDffCalculationData mso_sptTearDropCalc[] =
+{
+	{ 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } },  // 0  adjust value #0 
+	{ 0x8000 , { 21600 , 0 , 0x0400 } }, 			// 1  21600 - @0                     y0       
+	{ 0x8000 , { 32400 , 0 , 0x0400 } },            // 2   (32400 - @0)    
+	{ 0x2001 , { 0x0402 , 1 , 2 } },                // 3   (32400 - @0)/2               y1
+	{ 0x2002 , { 0x0400 , 10800 , 0 } }, 			// 4  (@0+10800)/2                  x2    
+}; 
+
+//m, qx, qy, qx,C,C
+//the last number(0x***n) : repeat number of this current Segm
+static const sal_uInt16 mso_sptTearDropSegm[] =
+{
+	0x4000, 0xa701, 0xa801, 0xa701, 0x2002, 0x6000, 0x8000
+};
+
+static const SvxMSDffTextRectangles mso_sptTearDropTextRect[] =
+{
+	{ { 2863, 2863 }, { 18737, 18737 } }
+};
+
+//the range of adjust values
+static const SvxMSDffHandle mso_sptTearDropHandle[] =
+{
+	//position="$0,0" xrange="10800,32400"
+	{   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL| MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
+		0x100, 0, 10800, 10800, 10800, 32400, 0x80000000, 0x7fffffff }
+};
+
+//the number of adjust values, the default values
+static const sal_Int32 mso_sptTearDropDefault[] =
+{
+	1, 21600
+};
+
+static const mso_CustomShape msoTearDrop =
+{
+	(SvxMSDffVertPair*)mso_sptTearDropVert, sizeof( mso_sptTearDropVert ) / sizeof( SvxMSDffVertPair ),
+	(sal_uInt16*)mso_sptTearDropSegm, sizeof( mso_sptTearDropSegm ) >> 1,
+	(SvxMSDffCalculationData*)mso_sptTearDropCalc, sizeof(mso_sptTearDropCalc)/sizeof(SvxMSDffCalculationData),
+	(sal_Int32*)mso_sptTearDropDefault,
+	(SvxMSDffTextRectangles*)mso_sptTearDropTextRect, sizeof( mso_sptTearDropTextRect ) / sizeof( SvxMSDffTextRectangles ),
+	21600, 21600,
+	0x80000000, 0x80000000,
+	NULL, 0,
+	(SvxMSDffHandle*)mso_sptTearDropHandle, sizeof(mso_sptTearDropHandle)/sizeof(SvxMSDffHandle)		// handles
+};
+
+
 const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
 {
 	const mso_CustomShape* pCustomShape = NULL;
@@ -8499,6 +8562,7 @@ const mso_CustomShape* GetCustomShapeCon
 		case mso_sptTextWave2 :					pCustomShape = &msoTextWave2; break;
 		case mso_sptTextWave3 :					pCustomShape = &msoTextWave3; break;
 		case mso_sptTextWave4 :					pCustomShape = &msoTextWave4; break;
+		case mso_sptTearDrop :                  pCustomShape = &msoTearDrop; break;    
 		default :
 		break;
 	}

Modified: incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx Mon Sep 17 08:06:09 2012
@@ -251,7 +251,8 @@ static const NameTypeTable pNameTypeTabl
 	{ "mso-spt199", mso_sptActionButtonSound },
 	{ "mso-spt200", mso_sptActionButtonMovie },
 	{ "mso-spt201", mso_sptHostControl },
-	{ "mso-spt202", mso_sptTextBox }
+	{ "mso-spt202", mso_sptTextBox },
+	{ "teardrop",   mso_sptTearDrop }                 
 };
 
 	// gallery: quadrat		

Modified: incubator/ooo/branches/writer001/main/svx/source/form/fmundo.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/form/fmundo.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/form/fmundo.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/form/fmundo.cxx Mon Sep 17 08:06:09 2012
@@ -201,6 +201,9 @@ FmXUndoEnvironment::FmXUndoEnvironment(F
 FmXUndoEnvironment::~FmXUndoEnvironment()
 {
 	DBG_DTOR(FmXUndoEnvironment,NULL);
+	if ( !m_bDisposed )   // i120746, call FormScriptingEnvironment::dispose to avoid memory leak
+		m_pScriptingEnv->dispose(); 
+
 	if (m_pPropertySetCache)
 		delete static_cast<PropertySetInfoCache*>(m_pPropertySetCache);
 }

Modified: incubator/ooo/branches/writer001/main/svx/source/svdraw/svdmodel.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/svdraw/svdmodel.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/svdraw/svdmodel.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/svdraw/svdmodel.cxx Mon Sep 17 08:06:09 2012
@@ -2182,6 +2182,16 @@ void SdrModel::SetDrawingLayerPoolDefaul
 	pItemPool->SetPoolDefaultItem( XLineColorItem(aNullStr,aNullLineCol) );
 }
 
+//
+// i120668, move from the header files, add delete action
+//
+void            SdrModel::SetColorTable(XColorTable* pTable)       { delete pColorTable; pColorTable=pTable; }
+void            SdrModel::SetDashList(XDashList* pList)            { delete pDashList; pDashList=pList; }
+void            SdrModel::SetLineEndList(XLineEndList* pList)      { delete pLineEndList; pLineEndList=pList; }
+void            SdrModel::SetHatchList(XHatchList* pList)          { delete pHatchList; pHatchList=pList; }
+void            SdrModel::SetGradientList(XGradientList* pList)    { delete pGradientList; pGradientList=pList; }
+void            SdrModel::SetBitmapList(XBitmapList* pList)        { delete pBitmapList; pBitmapList=pList; }
+
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
 TYPEINIT1(SdrHint,SfxHint);

Modified: incubator/ooo/branches/writer001/main/svx/source/svdraw/svdoedge.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/svdraw/svdoedge.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/svdraw/svdoedge.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/svdraw/svdoedge.cxx Mon Sep 17 08:06:09 2012
@@ -1915,7 +1915,7 @@ bool SdrEdgeObj::applySpecialDrag(SdrDra
 	// save EdgeInfos and mark object as user modified
 	ImpSetEdgeInfoToAttr();
 	bEdgeTrackUserDefined = false;
-	//SetRectsDirty();
+	SetRectsDirty();
 	//SetChanged();
 
     if(bOriginalEdgeModified && rDragStat.GetView()) 

Modified: incubator/ooo/branches/writer001/main/svx/source/tbxctrls/fontworkgallery.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/source/tbxctrls/fontworkgallery.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/source/tbxctrls/fontworkgallery.cxx (original)
+++ incubator/ooo/branches/writer001/main/svx/source/tbxctrls/fontworkgallery.cxx Mon Sep 17 08:06:09 2012
@@ -340,13 +340,13 @@ void FontWorkShapeTypeControl::Select( s
 }
 
 // ========================================================================
-// FontWorkAlignmentWindow
+// FontworkAlignmentWindow
 // ========================================================================
 
-class FontWorkAlignmentWindow : public ToolbarMenu
+class FontworkAlignmentWindow : public ToolbarMenu
 {
 public:
-	FontWorkAlignmentWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow );
+	FontworkAlignmentWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow );
 
 	virtual void SAL_CALL statusChanged( const frame::FeatureStateEvent& Event ) throw ( RuntimeException );
 	virtual void DataChanged( const DataChangedEvent& rDCEvt );
@@ -372,7 +372,7 @@ private:
 	void	implSetAlignment( int nAlignmentMode, bool bEnabled );
 };
 
-FontWorkAlignmentWindow::FontWorkAlignmentWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow )
+FontworkAlignmentWindow::FontworkAlignmentWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow )
 : ToolbarMenu( rFrame, pParentWindow, SVX_RES( RID_SVXFLOAT_FONTWORK_ALIGNMENT ))
 , mrController( rController )
 , maImgAlgin1( SVX_RES( IMG_FONTWORK_ALIGN_LEFT_16 ) )
@@ -390,7 +390,7 @@ FontWorkAlignmentWindow::FontWorkAlignme
 	bool bHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode();
 
 	SetHelpId( HID_POPUP_FONTWORK_ALIGN );
-	SetSelectHdl( LINK( this, FontWorkAlignmentWindow, SelectHdl ) );
+	SetSelectHdl( LINK( this, FontworkAlignmentWindow, SelectHdl ) );
 
 	appendEntry( 0, String( SVX_RES( STR_ALIGN_LEFT ) ), bHighContrast ? maImgAlgin1h : maImgAlgin1 );
 	appendEntry( 1, String( SVX_RES( STR_ALIGN_CENTER ) ), bHighContrast ? maImgAlgin2h : maImgAlgin2 );
@@ -407,7 +407,7 @@ FontWorkAlignmentWindow::FontWorkAlignme
 
 // -----------------------------------------------------------------------
 
-void FontWorkAlignmentWindow::implSetAlignment( int nSurface, bool bEnabled )
+void FontworkAlignmentWindow::implSetAlignment( int nSurface, bool bEnabled )
 {
 	int i;
 	for( i = 0; i < 5; i++ )
@@ -419,7 +419,7 @@ void FontWorkAlignmentWindow::implSetAli
 
 // -----------------------------------------------------------------------
 
-void SAL_CALL FontWorkAlignmentWindow::statusChanged( const frame::FeatureStateEvent& Event ) throw ( RuntimeException )
+void SAL_CALL FontworkAlignmentWindow::statusChanged( const frame::FeatureStateEvent& Event ) throw ( RuntimeException )
 {
 	if( Event.FeatureURL.Main.equals( msFontworkAlignment ) )
 	{
@@ -438,7 +438,7 @@ void SAL_CALL FontWorkAlignmentWindow::s
 
 // -----------------------------------------------------------------------
 
-void FontWorkAlignmentWindow::DataChanged( const DataChangedEvent& rDCEvt )
+void FontworkAlignmentWindow::DataChanged( const DataChangedEvent& rDCEvt )
 {
 	ToolbarMenu::DataChanged( rDCEvt );
 
@@ -456,7 +456,7 @@ void FontWorkAlignmentWindow::DataChange
 
 // -----------------------------------------------------------------------
 
-IMPL_LINK( FontWorkAlignmentWindow, SelectHdl, void *, EMPTYARG )
+IMPL_LINK( FontworkAlignmentWindow, SelectHdl, void *, EMPTYARG )
 {
 	if ( IsInPopupMode() )
 		EndPopupMode();
@@ -477,13 +477,13 @@ IMPL_LINK( FontWorkAlignmentWindow, Sele
 }
 
 // ========================================================================
-// FontWorkAlignmentControl
+// FontworkAlignmentControl
 // ========================================================================
 
-class FontWorkAlignmentControl : public svt::PopupWindowController
+class FontworkAlignmentControl : public svt::PopupWindowController
 {
 public:
-	FontWorkAlignmentControl( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rServiceManager );
+	FontworkAlignmentControl( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rServiceManager );
 
 	virtual ::Window* createPopupWindow( ::Window* pParent );
 
@@ -497,30 +497,30 @@ public:
 
 // -----------------------------------------------------------------------
 
-FontWorkAlignmentControl::FontWorkAlignmentControl( const Reference< lang::XMultiServiceFactory >& rServiceManager )
+FontworkAlignmentControl::FontworkAlignmentControl( const Reference< lang::XMultiServiceFactory >& rServiceManager )
 : svt::PopupWindowController( rServiceManager, Reference< frame::XFrame >(), OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontworkAlignment" ) ) )
 {
 }
 
 // -----------------------------------------------------------------------
 
-::Window* FontWorkAlignmentControl::createPopupWindow( ::Window* pParent )
+::Window* FontworkAlignmentControl::createPopupWindow( ::Window* pParent )
 {
-    return new FontWorkAlignmentWindow( *this, m_xFrame, pParent );
+    return new FontworkAlignmentWindow( *this, m_xFrame, pParent );
 }
 
 // -----------------------------------------------------------------------
 // XServiceInfo
 // -----------------------------------------------------------------------
 
-OUString SAL_CALL FontWorkAlignmentControl_getImplementationName()
+OUString SAL_CALL FontworkAlignmentControl_getImplementationName()
 {
-	return OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svx.FontWorkAlignmentController" ));
+	return OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svx.FontworkAlignmentController" ));
 }
 
 // --------------------------------------------------------------------
 
-Sequence< OUString > SAL_CALL FontWorkAlignmentControl_getSupportedServiceNames() throw( RuntimeException )
+Sequence< OUString > SAL_CALL FontworkAlignmentControl_getSupportedServiceNames() throw( RuntimeException )
 {
     Sequence< OUString > aSNS( 1 );
     aSNS.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.ToolbarController" ));
@@ -529,32 +529,32 @@ Sequence< OUString > SAL_CALL FontWorkAl
 
 // --------------------------------------------------------------------
 
-Reference< XInterface > SAL_CALL SAL_CALL FontWorkAlignmentControl_createInstance( const Reference< XMultiServiceFactory >& rSMgr ) throw( RuntimeException )
+Reference< XInterface > SAL_CALL SAL_CALL FontworkAlignmentControl_createInstance( const Reference< XMultiServiceFactory >& rSMgr ) throw( RuntimeException )
 {
-	return *new FontWorkAlignmentControl( rSMgr );
+	return *new FontworkAlignmentControl( rSMgr );
 }
 
 // --------------------------------------------------------------------
 
-OUString SAL_CALL FontWorkAlignmentControl::getImplementationName(  ) throw (RuntimeException)
+OUString SAL_CALL FontworkAlignmentControl::getImplementationName(  ) throw (RuntimeException)
 {
-	return FontWorkAlignmentControl_getImplementationName();
+	return FontworkAlignmentControl_getImplementationName();
 }
 
 // --------------------------------------------------------------------
 
-Sequence< OUString > SAL_CALL FontWorkAlignmentControl::getSupportedServiceNames(  ) throw (RuntimeException)
+Sequence< OUString > SAL_CALL FontworkAlignmentControl::getSupportedServiceNames(  ) throw (RuntimeException)
 {
-	return FontWorkAlignmentControl_getSupportedServiceNames();
+	return FontworkAlignmentControl_getSupportedServiceNames();
 }
 
 
 // ####################################################################
 
-class FontWorkCharacterSpacingWindow : public ToolbarMenu
+class FontworkCharacterSpacingWindow : public ToolbarMenu
 {
 public:
-	FontWorkCharacterSpacingWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow );
+	FontworkCharacterSpacingWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow );
 
 	virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException );
 private:
@@ -572,14 +572,14 @@ private:
 
 // -----------------------------------------------------------------------
 
-FontWorkCharacterSpacingWindow::FontWorkCharacterSpacingWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow )
+FontworkCharacterSpacingWindow::FontworkCharacterSpacingWindow( svt::ToolboxController& rController, const Reference< XFrame >& rFrame, Window* pParentWindow )
 : ToolbarMenu( rFrame, pParentWindow, SVX_RES( RID_SVXFLOAT_FONTWORK_CHARSPACING ))
 , mrController( rController )
 , msFontworkCharacterSpacing( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontworkCharacterSpacing" ) )
 , msFontworkKernCharacterPairs( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontworkKernCharacterPairs" ) )
 {
 	SetHelpId( HID_POPUP_FONTWORK_CHARSPACE );
-	SetSelectHdl( LINK( this, FontWorkCharacterSpacingWindow, SelectHdl ) );
+	SetSelectHdl( LINK( this, FontworkCharacterSpacingWindow, SelectHdl ) );
 
 	appendEntry( 0, String( SVX_RES( STR_CHARS_SPACING_VERY_TIGHT ) ), MIB_RADIOCHECK );
 	appendEntry( 1, String( SVX_RES( STR_CHARS_SPACING_TIGHT ) ), MIB_RADIOCHECK );
@@ -600,7 +600,7 @@ FontWorkCharacterSpacingWindow::FontWork
 
 // -----------------------------------------------------------------------
 
-void FontWorkCharacterSpacingWindow::implSetCharacterSpacing( sal_Int32 nCharacterSpacing, bool bEnabled )
+void FontworkCharacterSpacingWindow::implSetCharacterSpacing( sal_Int32 nCharacterSpacing, bool bEnabled )
 {
 	sal_Int32 i;
 	for ( i = 0; i < 6; i++ )
@@ -626,7 +626,7 @@ void FontWorkCharacterSpacingWindow::imp
 
 // -----------------------------------------------------------------------
 
-void FontWorkCharacterSpacingWindow::implSetKernCharacterPairs( sal_Bool, bool bEnabled )
+void FontworkCharacterSpacingWindow::implSetKernCharacterPairs( sal_Bool, bool bEnabled )
 {
 	enableEntry( 6, bEnabled );
 	checkEntry( 6, bEnabled );
@@ -634,7 +634,7 @@ void FontWorkCharacterSpacingWindow::imp
 
 // -----------------------------------------------------------------------
 
-void SAL_CALL FontWorkCharacterSpacingWindow::statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException )
+void SAL_CALL FontworkCharacterSpacingWindow::statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException )
 {
 	if( Event.FeatureURL.Main.equals( msFontworkCharacterSpacing ) )
 	{
@@ -666,7 +666,7 @@ void SAL_CALL FontWorkCharacterSpacingWi
 
 // -----------------------------------------------------------------------
 
-IMPL_LINK( FontWorkCharacterSpacingWindow, SelectHdl, void *, EMPTYARG )
+IMPL_LINK( FontworkCharacterSpacingWindow, SelectHdl, void *, EMPTYARG )
 {
 	if ( IsInPopupMode() )
 		EndPopupMode();
@@ -717,13 +717,13 @@ IMPL_LINK( FontWorkCharacterSpacingWindo
 }
 
 // ========================================================================
-// FontWorkCharacterSpacingControl
+// FontworkCharacterSpacingControl
 // ========================================================================
 
-class FontWorkCharacterSpacingControl : public svt::PopupWindowController
+class FontworkCharacterSpacingControl : public svt::PopupWindowController
 {
 public:
-	FontWorkCharacterSpacingControl( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rServiceManager );
+	FontworkCharacterSpacingControl( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rServiceManager );
 
 	virtual ::Window* createPopupWindow( ::Window* pParent );
 
@@ -735,30 +735,30 @@ public:
 };
 
 
-FontWorkCharacterSpacingControl::FontWorkCharacterSpacingControl( const Reference< lang::XMultiServiceFactory >& rServiceManager )
+FontworkCharacterSpacingControl::FontworkCharacterSpacingControl( const Reference< lang::XMultiServiceFactory >& rServiceManager )
 : svt::PopupWindowController( rServiceManager, Reference< frame::XFrame >(), OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FontworkCharacterSpacingFloater" ) ) )
 {
 }
 
 // -----------------------------------------------------------------------
 
-::Window* FontWorkCharacterSpacingControl::createPopupWindow( ::Window* pParent )
+::Window* FontworkCharacterSpacingControl::createPopupWindow( ::Window* pParent )
 {
-    return new FontWorkCharacterSpacingWindow( *this, m_xFrame, pParent );
+    return new FontworkCharacterSpacingWindow( *this, m_xFrame, pParent );
 }
 
 // -----------------------------------------------------------------------
 // XServiceInfo
 // -----------------------------------------------------------------------
 
-OUString SAL_CALL FontWorkCharacterSpacingControl_getImplementationName()
+OUString SAL_CALL FontworkCharacterSpacingControl_getImplementationName()
 {
-	return OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svx.FontWorkCharacterSpacingController" ));
+	return OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svx.FontworkCharacterSpacingController" ));
 }
 
 // --------------------------------------------------------------------
 
-Sequence< OUString > SAL_CALL FontWorkCharacterSpacingControl_getSupportedServiceNames() throw( RuntimeException )
+Sequence< OUString > SAL_CALL FontworkCharacterSpacingControl_getSupportedServiceNames() throw( RuntimeException )
 {
     Sequence< OUString > aSNS( 1 );
     aSNS.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.ToolbarController" ));
@@ -767,23 +767,23 @@ Sequence< OUString > SAL_CALL FontWorkCh
 
 // --------------------------------------------------------------------
 
-Reference< XInterface > SAL_CALL SAL_CALL FontWorkCharacterSpacingControl_createInstance( const Reference< XMultiServiceFactory >& rSMgr ) throw( RuntimeException )
+Reference< XInterface > SAL_CALL SAL_CALL FontworkCharacterSpacingControl_createInstance( const Reference< XMultiServiceFactory >& rSMgr ) throw( RuntimeException )
 {
-	return *new FontWorkCharacterSpacingControl( rSMgr );
+	return *new FontworkCharacterSpacingControl( rSMgr );
 }
 
 // --------------------------------------------------------------------
 
-OUString SAL_CALL FontWorkCharacterSpacingControl::getImplementationName(  ) throw (RuntimeException)
+OUString SAL_CALL FontworkCharacterSpacingControl::getImplementationName(  ) throw (RuntimeException)
 {
-	return FontWorkCharacterSpacingControl_getImplementationName();
+	return FontworkCharacterSpacingControl_getImplementationName();
 }
 
 // --------------------------------------------------------------------
 
-Sequence< OUString > SAL_CALL FontWorkCharacterSpacingControl::getSupportedServiceNames(  ) throw (RuntimeException)
+Sequence< OUString > SAL_CALL FontworkCharacterSpacingControl::getSupportedServiceNames(  ) throw (RuntimeException)
 {
-	return FontWorkCharacterSpacingControl_getSupportedServiceNames();
+	return FontworkCharacterSpacingControl_getSupportedServiceNames();
 }
 
 // ========================================================================

Modified: incubator/ooo/branches/writer001/main/svx/util/svxcore.component
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/svx/util/svxcore.component?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/svx/util/svxcore.component (original)
+++ incubator/ooo/branches/writer001/main/svx/util/svxcore.component Mon Sep 17 08:06:09 2012
@@ -36,10 +36,10 @@
   <implementation name="com.sun.star.comp.svx.ExtrusionSurfaceController">
     <service name="com.sun.star.frame.ToolbarController"/>
   </implementation>
-  <implementation name="com.sun.star.comp.svx.FontWorkAlignmentController">
+  <implementation name="com.sun.star.comp.svx.FontworkAlignmentController">
     <service name="com.sun.star.frame.ToolbarController"/>
   </implementation>
-  <implementation name="com.sun.star.comp.svx.FontWorkCharacterSpacingController">
+  <implementation name="com.sun.star.comp.svx.FontworkCharacterSpacingController">
     <service name="com.sun.star.frame.ToolbarController"/>
   </implementation>
 </component>

Modified: incubator/ooo/branches/writer001/main/sw/inc/IDocumentContentOperations.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/inc/IDocumentContentOperations.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/inc/IDocumentContentOperations.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/inc/IDocumentContentOperations.hxx Mon Sep 17 08:06:09 2012
@@ -179,8 +179,11 @@
         hinzugefuegt.  Wenn das Attribut nicht eingefuegt werden
         konnte, liefert die Methode sal_False.
 	*/
+	//Modify here for #119405, by chengjh, 2012-08-16
+	//Add a para for the char attribute exp...
     virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem&,
-                                const sal_uInt16 nFlags) = 0;
+                                const sal_uInt16 nFlags,bool bExpandCharToPara=false) = 0;
+	//End
 
     /**
     */

Modified: incubator/ooo/branches/writer001/main/sw/inc/doc.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/inc/doc.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/inc/doc.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/inc/doc.hxx Mon Sep 17 08:06:09 2012
@@ -712,6 +712,13 @@ private:
      bool ReplaceRangeImpl(SwPaM&, String const&, const bool);
 
 public:
+	enum DocumentType {
+		DOCTYPE_NATIVE,
+		DOCTYPE_MSWORD				//This doc medul is come from Ms Word
+		};
+	DocumentType	meDocType;
+	DocumentType	GetDocumentType(){ return meDocType; }
+	void			SetDocumentType( DocumentType eDocType ) { meDocType = eDocType; }
 
     /** Life cycle
     */
@@ -881,8 +888,11 @@ public:
     virtual SwDrawFrmFmt* Insert(const SwPaM &rRg, SdrObject& rDrawObj, const SfxItemSet* pFlyAttrSet, SwFrmFmt*);
     virtual SwFlyFrmFmt* Insert(const SwPaM &rRg, const svt::EmbeddedObjectRef& xObj, const SfxItemSet* pFlyAttrSet,
 						const SfxItemSet* pGrfAttrSet, SwFrmFmt*);
+	//Modify here for #119405, by chengjh, 2012-08-16
+	//Add a para for the char attribute exp...
     virtual bool InsertPoolItem(const SwPaM &rRg, const SfxPoolItem&,
-                                const SetAttrMode nFlags);
+                                const SetAttrMode nFlags,bool bExpandCharToPara=false);
+	//End
     virtual bool InsertItemSet (const SwPaM &rRg, const SfxItemSet&,
                                 const SetAttrMode nFlags);
 	virtual void ReRead(SwPaM&, const String& rGrfName, const String& rFltName, const Graphic* pGraphic, const GraphicObject* pGrfObj);
@@ -2072,6 +2082,8 @@ public:
     void initXForms( bool bCreateDefaultModel );
     // <-- #i31958# access methods for XForms model(s)
 
+    void disposeXForms( );  // #i113606#, for disposing XForms
+
     // --> OD 2006-03-21 #b6375613#
     inline bool ApplyWorkaroundForB6375613() const
     {

Modified: incubator/ooo/branches/writer001/main/sw/inc/fmtclds.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/inc/fmtclds.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/inc/fmtclds.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/inc/fmtclds.hxx Mon Sep 17 08:06:09 2012
@@ -83,6 +83,7 @@ class SW_DLLPUBLIC SwFmtCol : public Sfx
 
 	SwColumns	aColumns;	//Informationen fuer die einzelnen Spalten.
 	sal_uInt16		nWidth;		//Gesamtwunschbreite aller Spalten.
+	sal_Int16	aWidthAdjustValue;
 
 	sal_Bool bOrtho;			//Nur wenn dieses Flag gesetzt ist wird beim setzen
 							//der GutterWidth eine 'optische Verteilung'
@@ -99,6 +100,9 @@ public:
 	SwFmtCol();
 	SwFmtCol( const SwFmtCol& );
 	~SwFmtCol();
+	//i120133
+	const	sal_Int16 GetAdjustValue() const { return aWidthAdjustValue; }
+	void	SetAdjustValue( const sal_Int16& n ) { aWidthAdjustValue = n; }
 
 	SwFmtCol& operator=( const SwFmtCol& );
 

Modified: incubator/ooo/branches/writer001/main/sw/inc/hintids.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/inc/hintids.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/inc/hintids.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/inc/hintids.hxx Mon Sep 17 08:06:09 2012
@@ -93,6 +93,8 @@ RES_CHRATR_BEGIN = HINT_BEGIN,
 	RES_CHRATR_OVERLINE,					// 38
 	RES_CHRATR_DUMMY1,						// 39
 	RES_CHRATR_DUMMY2,						// 40
+	RES_CHRATR_BIDIRTL,						
+	RES_CHRATR_IDCTHINT,					
 RES_CHRATR_END
 };
 

Modified: incubator/ooo/branches/writer001/main/sw/inc/ndtxt.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/inc/ndtxt.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/inc/ndtxt.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/inc/ndtxt.hxx Mon Sep 17 08:06:09 2012
@@ -196,6 +196,9 @@ class SW_DLLPUBLIC SwTxtNode: public SwC
     SW_DLLPRIVATE void impl_FmtToTxtAttr(const SfxItemSet& i_rAttrSet);
 
 public:
+	//Bug 120881:Modify here for Directly Page Numbering
+	bool HasPageNumberField();
+	//Bug 120881(End)
     bool IsWordCountDirty() const;
     bool IsWrongDirty() const;
     bool IsGrammarCheckDirty() const;
@@ -216,6 +219,9 @@ public:
     // SMARTTAGS
     void SetSmartTags( SwWrongList* pNew, bool bDelete = true );
     SwWrongList* GetSmartTags();
+	//Modify here for #119405, by easyfan, 2012-05-24
+	bool TryCharSetExpandToNum(const SfxItemSet& pCharSet);
+	//End of modification, by easyfan
 
     //
     // End: Data collected during idle time
@@ -379,6 +385,10 @@ public:
      */
     SwTxtAttr *GetTxtAttrAt(xub_StrLen const nIndex, RES_TXTATR const nWhich,
                             enum GetTxtAttrMode const eMode = DEFAULT) const;
+	//Bug 120881:Modify here for Directly Page Numbering
+	SwTxtFld  *GetTxtFld( xub_StrLen const rIdx )
+				{ return (SwTxtFld *)GetTxtAttrAt( rIdx, RES_TXTATR_FIELD ); }
+	//Bug 120881(End)
 
     /** get the innermost text attributes covering position nIndex.
         @param nWhich   only attributes with this id are returned.

Modified: incubator/ooo/branches/writer001/main/sw/inc/unomap.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/inc/unomap.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/inc/unomap.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/inc/unomap.hxx Mon Sep 17 08:06:09 2012
@@ -247,6 +247,7 @@
 #define WID_DOC_HAS_VALID_SIGNATURES            1017
 #define WID_DOC_BUILDID							1024
 #define WID_DOC_ISTEMPLATEID						1025
+#define WID_DOC_DEFAULT_PAGE_MODE					1069
 // --> OD 2006-03-21 #b6375613#
 #define WID_APPLY_WORKAROUND_FOR_B6375613       1070
 // <--

Modified: incubator/ooo/branches/writer001/main/sw/inc/unoprnms.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/inc/unoprnms.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/inc/unoprnms.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/inc/unoprnms.hxx Mon Sep 17 08:06:09 2012
@@ -805,8 +805,9 @@ enum SwPropNameIds
 /* 0740 */  UNO_NAME_EMBEDDED_OBJECT,
 
 /* 0741 */	UNO_NAME_REPLACEMENT_GRAPHIC_URL,
+/* 0742 */	UNO_NAME_DEFAULT_PAGE_MODE,
 
-/* 0742 */  SW_PROPNAME_END
+/* 0743 */  SW_PROPNAME_END
 };
 
 

Modified: incubator/ooo/branches/writer001/main/sw/source/core/bastyp/init.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/bastyp/init.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/bastyp/init.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/bastyp/init.cxx Mon Sep 17 08:06:09 2012
@@ -303,6 +303,8 @@ SfxItemInfo __FAR_DATA aSlotTab[] =
 	{ SID_ATTR_CHAR_OVERLINE, SFX_ITEM_POOLABLE },  	// RES_CHRATR_OVERLINE
 	{ 0, SFX_ITEM_POOLABLE },							// RES_CHRATR_DUMMY1
 	{ 0, SFX_ITEM_POOLABLE },							// RES_CHRATR_DUMMY2
+	{ 0, SFX_ITEM_POOLABLE },							// RES_CHRATR_BIDIRTL
+	{ 0, SFX_ITEM_POOLABLE },							// RES_CHRATR_IDCTHINT
 
     { 0, 0 },                                           // RES_TXTATR_REFMARK
     { 0, 0 },                                           // RES_TXTATR_TOXMARK
@@ -543,6 +545,8 @@ void _InitCore()
 	aAttrTab[ RES_TXTATR_DUMMY2 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY2 );
     aAttrTab[ RES_TXTATR_DUMMY5 - POOLATTR_BEGIN ] = new SfxBoolItem( RES_TXTATR_DUMMY5 );
 // TextAttr - Dummies
+	aAttrTab[ RES_CHRATR_BIDIRTL - POOLATTR_BEGIN ] = new SfxInt16Item( RES_CHRATR_BIDIRTL, sal_Int16(-1) );
+	aAttrTab[ RES_CHRATR_IDCTHINT - POOLATTR_BEGIN ] = new SfxInt16Item( RES_CHRATR_IDCTHINT, sal_Int16(-1) );
 
     aAttrTab[ RES_PARATR_LINESPACING- POOLATTR_BEGIN ] = new SvxLineSpacingItem( LINE_SPACE_DEFAULT_HEIGHT, RES_PARATR_LINESPACING );
     aAttrTab[ RES_PARATR_ADJUST- POOLATTR_BEGIN ] = new SvxAdjustItem( SVX_ADJUST_LEFT, RES_PARATR_ADJUST );

Modified: incubator/ooo/branches/writer001/main/sw/source/core/doc/docfmt.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/doc/docfmt.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/doc/docfmt.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/doc/docfmt.cxx Mon Sep 17 08:06:09 2012
@@ -551,7 +551,9 @@ void SwDoc::ResetAttrs( const SwPaM &rRg
 
 static bool
 lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
-            const SetAttrMode nFlags, SwUndoAttr *const pUndo)
+//Modify here for #119405, by easyfan, 2012-05-24
+            const SetAttrMode nFlags, SwUndoAttr *const pUndo,bool bExpandCharToPara=false)
+//End of modification, by easyfan
 {
 	// teil die Sets auf (fuer Selektion in Nodes)
     const SfxItemSet* pCharSet = 0;
@@ -964,6 +966,26 @@ lcl_InsAttr(SwDoc *const pDoc, const SwP
 			// lediglich Selektion in einem Node.
 			if( pStt->nNode == pEnd->nNode )
             {
+			//Modify here for #119405, by easyfan, 2012-05-24
+			//The data parameter flag: bExpandCharToPara, comes from the data member of SwDoc,
+			//Which is set in SW MS word Binary filter WW8ImplRreader. With this flag on, means that 
+			//current setting attribute set is a character range properties set and comes from a MS word 
+			//binary file, And the setting range include a paragraph end position (0X0D);
+			//More specifications, as such property inside the character range properties set recorded in
+			//MS word binary file are dealed and inserted into data model (SwDoc) one by one, so we 
+			//only dealing the scenario that the char properties set with 1 item inside;
+			
+            		if (bExpandCharToPara && pCharSet && pCharSet->Count() ==1 )
+			{
+				SwTxtNode* pCurrentNd = pStt->nNode.GetNode().GetTxtNode();
+				
+				if (pCurrentNd)
+				{
+	 				pCurrentNd->TryCharSetExpandToNum(*pCharSet);
+						
+				}
+			}
+			//End of modification, by easyfan
                 DELETECHARSETS
                 return bRet;
             }
@@ -1067,13 +1089,45 @@ lcl_InsAttr(SwDoc *const pDoc, const SwP
 		++nNodes;
 	}
 
+	//Modify here for #119405, by easyfan, 2012-05-24
+	//The data parameter flag: bExpandCharToPara, comes from the data member of SwDoc,
+	//Which is set in SW MS word Binary filter WW8ImplRreader. With this flag on, means that 
+	//current setting attribute set is a character range properties set and comes from a MS word 
+	//binary file, And the setting range include a paragraph end position (0X0D);
+	//More specifications, as such property inside the character range properties set recorded in
+	//MS word binary file are dealed and inserted into data model (SwDoc) one by one, so we 
+	//only dealing the scenario that the char properties set with 1 item inside;
+	if (bExpandCharToPara && pCharSet && pCharSet->Count() ==1)
+	{
+		SwPosition aStartPos (*rRg.Start());
+		SwPosition aEndPos (*rRg.End());
+
+		if (aEndPos.nNode.GetNode().GetTxtNode() && aEndPos.nContent != aEndPos.nNode.GetNode().GetTxtNode()->Len())
+			aEndPos.nNode--;
+
+		for (;aStartPos<=aEndPos;aStartPos.nNode++)
+		{
+			SwTxtNode* pCurrentNd = aStartPos.nNode.GetNode().GetTxtNode();
+			
+			if (pCurrentNd)
+			{
+ 				pCurrentNd->TryCharSetExpandToNum(*pCharSet);
+					
+			}
+				
+		}
+	}
+	//End of modification, by easyfan
+
     DELETECHARSETS
     return (nNodes != 0) || bRet;
 }
 
-
+//Modify here for #119405, by chengjh, 2012-08-16
+//Add a para for the char attribute exp...
 bool SwDoc::InsertPoolItem( const SwPaM &rRg, const SfxPoolItem &rHt,
-                            const SetAttrMode nFlags )
+                            const SetAttrMode nFlags, bool bExpandCharToPara)
+//End
 {
 	SwDataChanged aTmp( rRg, 0 );
 	SwUndoAttr* pUndoAttr = 0;
@@ -1085,7 +1139,9 @@ bool SwDoc::InsertPoolItem( const SwPaM 
 
 	SfxItemSet aSet( GetAttrPool(), rHt.Which(), rHt.Which() );
 	aSet.Put( rHt );
-    bool bRet = lcl_InsAttr( this, rRg, aSet, nFlags, pUndoAttr );
+	//Modify here for #119405, by easyfan, 2012-05-24    	
+    	bool bRet = lcl_InsAttr( this, rRg, aSet, nFlags, pUndoAttr,bExpandCharToPara );
+    	//End of modification, by easyfan
 
     if (GetIDocumentUndoRedo().DoesUndo())
     {

Modified: incubator/ooo/branches/writer001/main/sw/source/core/doc/docnew.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/doc/docnew.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/doc/docnew.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/doc/docnew.cxx Mon Sep 17 08:06:09 2012
@@ -299,7 +299,8 @@ SwDoc::SwDoc()
     n32DummyCompatabilityOptions1(0),
     n32DummyCompatabilityOptions2(0),
     mbStartIdleTimer(sal_False),
-	mbSetDrawDefaults(false)
+    mbSetDrawDefaults(false),
+    meDocType( DOCTYPE_NATIVE )
 {
 	RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722",  "SwDoc::SwDoc" );
 
@@ -682,6 +683,8 @@ SwDoc::~SwDoc()
     maListStyleLists.clear();
     // <--
 
+	disposeXForms(); // #i113606#, dispose the XForms objects
+
 	delete pPrtData;
 	delete pNumberFormatter;
 	delete pFtnInfo;

Modified: incubator/ooo/branches/writer001/main/sw/source/core/doc/doctxm.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/doc/doctxm.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/doc/doctxm.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/doc/doctxm.cxx Mon Sep 17 08:06:09 2012
@@ -757,6 +757,7 @@ SwTOXBaseSection::SwTOXBaseSection(SwTOX
 
 SwTOXBaseSection::~SwTOXBaseSection()
 {
+    aSortArr.DeleteAndDestroy( 0, aSortArr.Count() );  // i120680
 }
 
 

Modified: incubator/ooo/branches/writer001/main/sw/source/core/doc/docxforms.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/doc/docxforms.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/doc/docxforms.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/doc/docxforms.cxx Mon Sep 17 08:06:09 2012
@@ -37,7 +37,7 @@
 #include <com/sun/star/xforms/XFormsUIHelper1.hpp>
 #include <unotools/processfactory.hxx>
 #include <tools/diagnose_ex.h>
-
+#include <com/sun/star/container/XIndexAccess.hpp>
 
 using namespace ::com::sun::star;
 
@@ -51,7 +51,7 @@ using xforms::XModel;
 using frame::XModule;
 using xforms::XFormsUIHelper1;
 using rtl::OUString;
-
+using com::sun::star::container::XIndexAccess;
 
 Reference<XNameContainer> SwDoc::getXForms() const
 {
@@ -117,3 +117,52 @@ void SwDoc::initXForms( bool bCreateDefa
     	DBG_UNHANDLED_EXCEPTION();
     }
 }
+
+//
+// #i113606#, to release the cyclic reference between XFormModel and bindings/submissions.
+//
+void SwDoc::disposeXForms( )
+{
+    // get XForms models
+    if( xXForms.is() )
+    {
+        // iterate over all models
+        uno::Sequence<OUString> aNames = xXForms->getElementNames();
+        const OUString* pNames = aNames.getConstArray();
+        sal_Int32 nNames = aNames.getLength();
+        for( sal_Int32 n = 0; (n < nNames); n++ )
+        {
+            Reference< xforms::XModel > xModel( 
+                xXForms->getByName( pNames[n] ), UNO_QUERY );
+
+            if( xModel.is() )
+            {
+                // ask model for bindings
+                Reference< XIndexAccess > xBindings(
+                         xModel->getBindings(), UNO_QUERY );
+
+                //
+                // Then release them one by one
+                //
+                int nCount = xBindings->getCount();
+                for( int i = nCount-1; i >= 0; i-- )
+                {
+                    xModel->getBindings()->remove(xBindings->getByIndex( i ));
+                }
+                    
+                // ask model for Submissions
+                Reference< XIndexAccess > xSubmissions(
+                         xModel->getSubmissions(), UNO_QUERY );
+                         
+                //
+                // Then release them one by one
+                //
+                nCount = xSubmissions->getCount();
+                for( int i = nCount-1; i >= 0; i-- )
+                {
+                    xModel->getSubmissions()->remove(xSubmissions->getByIndex( i ));
+                }
+            }
+        }
+    }
+}

Modified: incubator/ooo/branches/writer001/main/sw/source/core/docnode/ndsect.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/docnode/ndsect.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/docnode/ndsect.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/docnode/ndsect.cxx Mon Sep 17 08:06:09 2012
@@ -448,8 +448,7 @@ sal_uInt16 SwDoc::IsInsRegionAvailable( 
 		}
 		else if( !pSectNd && pEndSectNd )
 		{
-			// versuche eine umschliessende Section zu erzeugen
-			// Aber, nur wenn das Ende am Section Ende liegt!
+			// try to create a section enclosing it if the end is at the section end
 			nRet = 0;
 			if( pEnd->nContent.GetIndex() == pCNd->Len() )
 			{
@@ -475,8 +474,7 @@ sal_uInt16 SwDoc::IsInsRegionAvailable( 
 		}
 		else if( pSectNd && !pEndSectNd )
 		{
-			// versuche eine umschliessende Section zu erzeugen
-			// Aber, nur wenn der Start am Section Anfang liegt!
+			// try to create a section enclosing it if the start is at the section start
 			nRet = 0;
 			if( !pStt->nContent.GetIndex() )
 			{

Modified: incubator/ooo/branches/writer001/main/sw/source/core/draw/dcontact.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/draw/dcontact.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/draw/dcontact.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/draw/dcontact.cxx Mon Sep 17 08:06:09 2012
@@ -1505,12 +1505,15 @@ void SwDrawContact::_Changed( const SdrO
                     // of as-character anchored object
                     if ( bAnchoredAsChar )
                     {
-						//-->Modified for i119654,2012.6.8                        
-						SwFrm *pAnchorFrame = NULL;
-                        if ( pAnchoredDrawObj && ( pAnchorFrame = 
-								const_cast<SwAnchoredDrawObject*>( pAnchoredDrawObj )->AnchorFrm() ) )
-							pAnchorFrame->Prepare( PREP_FLY_ATTR_CHG, GetFmt() );
-						//<--
+                        //-->Modified for i119654,2012.6.8                        
+                        SwFrm* pAnchorFrame = pAnchoredDrawObj
+                                              ? const_cast<SwAnchoredDrawObject*>( pAnchoredDrawObj )->AnchorFrm()
+                                              : NULL;
+                        if ( pAnchorFrame )
+                        {
+                            pAnchorFrame->Prepare( PREP_FLY_ATTR_CHG, GetFmt() );
+                        }
+                        //<--
                     }
                     // <--
                 }

Modified: incubator/ooo/branches/writer001/main/sw/source/core/fields/chpfld.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/fields/chpfld.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/fields/chpfld.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/fields/chpfld.cxx Mon Sep 17 08:06:09 2012
@@ -138,6 +138,35 @@ void SwChapterField::ChangeExpansion(con
 
 void SwChapterField::ChangeExpansion(const SwTxtNode &rTxtNd, sal_Bool bSrchNum)
 {
+	//i120759,this function is for both the reference chapter field and normal chapter field
+	//bSrchNum can distinguish the two types,to the latter type,the outline num rule is must...
+	sNumber = aEmptyStr;
+	sTitle = aEmptyStr;
+	sPost = aEmptyStr;
+	sPre = aEmptyStr;
+	//The reference chapter field of normal num rule will be handled in this code segment
+	if (bSrchNum && !rTxtNd.IsOutline())
+	{
+		SwNumRule* pRule(rTxtNd.GetNumRule());
+		if (rTxtNd.IsCountedInList() && pRule)
+		{
+			sNumber = rTxtNd.GetNumString(false);
+			const SwNumFmt& rNFmt = pRule->Get(static_cast<unsigned short>(rTxtNd.GetActualListLevel()));
+			sPost = rNFmt.GetSuffix();
+			sPre = rNFmt.GetPrefix();
+		}
+		else
+		{			
+			sNumber = String("??", RTL_TEXTENCODING_ASCII_US);
+		}
+		sTitle = rTxtNd.GetExpandTxt();
+
+		for( xub_StrLen i = 0; i < sTitle.Len(); ++i )
+			if( ' ' > sTitle.GetChar( i ) )
+				sTitle.Erase( i--, 1 );	
+	}else
+	{
+	//End
 	SwDoc* pDoc = (SwDoc*)rTxtNd.GetDoc();
 	const SwTxtNode *pTxtNd = rTxtNd.FindOutlineNodeOfLevel( nLevel );
 	if( pTxtNd )
@@ -197,13 +226,9 @@ void SwChapterField::ChangeExpansion(con
                 sPost = rNFmt.GetSuffix();
                 sPre = rNFmt.GetPrefix();
             }
-            else
-                sPost = aEmptyStr, sPre = aEmptyStr;
         }
         else
         {
-            sPost = aEmptyStr;
-            sPre = aEmptyStr;
             sNumber = String("??", RTL_TEXTENCODING_ASCII_US);
         }
 
@@ -213,12 +238,6 @@ void SwChapterField::ChangeExpansion(con
 			if( ' ' > sTitle.GetChar( i ) )
 				sTitle.Erase( i--, 1 );
 	}
-	else
-	{
-		sNumber = aEmptyStr;
-		sTitle = aEmptyStr;
-		sPost = aEmptyStr;
-		sPre = aEmptyStr;
 	}
 }
 

Modified: incubator/ooo/branches/writer001/main/sw/source/core/fields/docufld.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/fields/docufld.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/fields/docufld.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/fields/docufld.cxx Mon Sep 17 08:06:09 2012
@@ -1793,6 +1793,8 @@ SwPostItField::~SwPostItField()
 		m_pTextObject->DisposeEditSource();
 		m_pTextObject->release();
 	}
+
+	delete mpText;
 }
 
 /* ---------------------------------------------------------------------------

Modified: incubator/ooo/branches/writer001/main/sw/source/core/inc/flyfrm.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/inc/flyfrm.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/inc/flyfrm.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/inc/flyfrm.hxx Mon Sep 17 08:06:09 2012
@@ -150,6 +150,9 @@ protected:
 	virtual	void Modify( const SfxPoolItem*, const SfxPoolItem* );
 
 public:
+//Bug 120881:Modify here for Directly Page Numbering
+	sal_Bool IsPageNumberingFrm();
+//Bug 120881(End)
     // OD 2004-03-23 #i26791#
     TYPEINFO();
 

Modified: incubator/ooo/branches/writer001/main/sw/source/core/inc/txtfrm.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/inc/txtfrm.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/inc/txtfrm.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/inc/txtfrm.hxx Mon Sep 17 08:06:09 2012
@@ -239,6 +239,10 @@ public:
     SwRect SmartTagScan( SwCntntNode* , sal_uInt16 );
     // Wird vom CollectAutoCmplWords gerufen
     void CollectAutoCmplWrds( SwCntntNode* , sal_uInt16 );
+	
+	//Bug 120881:Modify here for Directly Page Numbering
+	sal_Bool HasPageNumberField();
+	//Bug 120881(End)
 
     // Returns the screen position of rPos. The values are relative to the upper
     // left position of the page frame.

Modified: incubator/ooo/branches/writer001/main/sw/source/core/layout/atrfrm.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/layout/atrfrm.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/layout/atrfrm.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/layout/atrfrm.cxx Mon Sep 17 08:06:09 2012
@@ -823,6 +823,7 @@ SwFmtCol::SwFmtCol( const SwFmtCol& rCpy
 	eAdj( rCpy.GetLineAdj() ),
     aColumns( (sal_Int8)rCpy.GetNumCols(), 1 ),
     nWidth( rCpy.GetWishWidth() ),
+    aWidthAdjustValue( rCpy.aWidthAdjustValue ),
     bOrtho( rCpy.IsOrtho() )
 {
 	for ( sal_uInt16 i = 0; i < rCpy.GetNumCols(); ++i )
@@ -842,6 +843,7 @@ SwFmtCol& SwFmtCol::operator=( const SwF
 	eAdj		= rCpy.GetLineAdj();
 	nWidth		= rCpy.GetWishWidth();
 	bOrtho		= rCpy.IsOrtho();
+	aWidthAdjustValue = rCpy.aWidthAdjustValue;
 
 	if ( aColumns.Count() )
 		aColumns.DeleteAndDestroy( 0, aColumns.Count() );
@@ -859,7 +861,8 @@ SwFmtCol::SwFmtCol()
     nLineHeight( 100 ),
 	eAdj( COLADJ_NONE ),
 	nWidth( USHRT_MAX ),
-    bOrtho( sal_True )
+	aWidthAdjustValue( 0 ),
+	bOrtho( sal_True )
 {
 }
 
@@ -873,7 +876,9 @@ int SwFmtCol::operator==( const SfxPoolI
 		  eAdj		 		 == rCmp.GetLineAdj() &&
 		  nWidth  	 		 == rCmp.GetWishWidth() &&
 		  bOrtho  			 == rCmp.IsOrtho() &&
-		  aColumns.Count() == rCmp.GetNumCols()) )
+		  aColumns.Count() == rCmp.GetNumCols() && 
+		  aWidthAdjustValue == rCmp.GetAdjustValue()
+         ) )
 		return 0;
 
 	for ( sal_uInt16 i = 0; i < aColumns.Count(); ++i )

Modified: incubator/ooo/branches/writer001/main/sw/source/core/layout/fly.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/layout/fly.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/layout/fly.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/layout/fly.cxx Mon Sep 17 08:06:09 2012
@@ -1532,8 +1532,17 @@ void SwFlyFrm::Format( const SwBorderAtt
                         nNewSize = nAutoWidth;
                 }
             }
-            else
-                nNewSize -= nLR;
+            /*else
+                nNewSize -= nLR;*/
+			else
+			{//Bug 120881:For enlarging fixed size Pagenumber frame,kangjian
+				if(nNewSize <= 500 && IsPageNumberingFrm())
+					nNewSize = nNewSize - nLR + 150;
+			
+				else
+					nNewSize -= nLR;
+			//Bug 120881(End)
+			}
 
             if( nNewSize < MINFLY )
                 nNewSize = MINFLY;
@@ -2967,3 +2976,39 @@ SwFlyFrmFmt * SwFlyFrm::GetFmt()
     return static_cast< SwFlyFrmFmt * >( GetDep() );
 }
 
+//Bug 120881:Modify here for Directly Page Numbering
+sal_Bool SwFlyFrm::IsPageNumberingFrm()
+{
+	if (!GetAnchorFrm())//Invalidate frame...
+		return false;
+	if (bInCnt || bLayout)//Incorrect anchor type...
+		return false;
+	if (!(GetAnchorFrm()->IsTxtFrm() && GetAnchorFrm()->GetUpper() 
+		&& (GetAnchorFrm()->GetUpper()->FindFooterOrHeader())))//Not in header or footer frame
+		return false;
+
+	if (pNextLink || pPrevLink)//Linked...
+		return false;
+
+	SwFrmFmt* pFmt = NULL;
+	if ((pFmt = GetFmt()))
+	{
+		if (pLower && pLower->GetNext() && pFmt->GetCol().GetNumCols()>1)//Has more than 1 column...
+			return false;
+	}
+
+	if (!pLower)//Do not has even 1 child frame?
+		return false;
+
+	for (SwFrm* pIter = pLower;pIter!=NULL;pIter=pIter->GetNext())
+	{
+		if (pIter->IsTxtFrm() && ((SwTxtFrm*)pIter)->HasPageNumberField())
+		{
+			return true;
+		}
+	}
+	return false;
+}
+
+//Bug 120881(End)
+

Modified: incubator/ooo/branches/writer001/main/sw/source/core/text/atrstck.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/text/atrstck.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/text/atrstck.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/text/atrstck.cxx Mon Sep 17 08:06:09 2012
@@ -121,6 +121,8 @@ const sal_uInt8 StackPos[ static_cast<sa
     35, // RES_CHRATR_OVERLINE,                  // 38
      0, // RES_CHRATR_DUMMY1,                    // 39
      0, // RES_CHRATR_DUMMY2,                    // 40
+	 0, // RES_CHRATR_BIDIRTL
+	 0, // RES_CHRATR_IDCTHINT
     36, // RES_TXTATR_REFMARK,                   // 41
     37, // RES_TXTATR_TOXMARK,                   // 42
     38, // RES_TXTATR_META,                      // 43

Modified: incubator/ooo/branches/writer001/main/sw/source/core/text/itrform2.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/text/itrform2.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/text/itrform2.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/text/itrform2.cxx Mon Sep 17 08:06:09 2012
@@ -1572,7 +1572,11 @@ xub_StrLen SwTxtFormatter::FormatLine( c
         pCurr->CalcLine( *this, GetInfo() );
 		CalcRealHeight( GetInfo().IsNewLine() );
 
-		if ( IsFlyInCntBase() && !IsQuick() )
+		//Bug 120864:For Special case that at the first caculation couldn't get correct height. And need to recaculate for the right height.
+		SwLinePortion* pPorTmp = pCurr->GetPortion();
+		if ( IsFlyInCntBase() && (!IsQuick() || (pPorTmp && pPorTmp->IsFlyCntPortion() && !pPorTmp->GetPortion() &&
+			pCurr->Height() > pPorTmp->Height())))
+		//Bug 120864(End)
 		{
 			KSHORT nTmpAscent, nTmpHeight;
 			CalcAscentAndHeight( nTmpAscent, nTmpHeight );

Modified: incubator/ooo/branches/writer001/main/sw/source/core/text/itrpaint.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/text/itrpaint.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/text/itrpaint.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/text/itrpaint.cxx Mon Sep 17 08:06:09 2012
@@ -521,11 +521,13 @@ void SwTxtPainter::CheckSpecialUnderline
 
     // If current underline matches the common underline font, we continue
     // to use the common underline font.
+	//Bug 120769:Color of underline display wrongly
+		Color aAutoCo(COL_AUTO);
     if ( GetInfo().GetUnderFnt() &&
-         GetInfo().GetUnderFnt()->GetFont().GetUnderline() ==
-         GetFnt()->GetUnderline() )
-         return;
-
+		GetInfo().GetUnderFnt()->GetFont().GetUnderline() == GetFnt()->GetUnderline() && 
+        GetInfo().GetFont() && GetInfo().GetFont()->GetUnderColor() != aAutoCo )
+		return;
+	//Bug 120769(End)
     // calculate the new common underline font
     SwFont* pUnderlineFnt = 0;
     Point aCommonBaseLine;

Modified: incubator/ooo/branches/writer001/main/sw/source/core/txtnode/ndtxt.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/txtnode/ndtxt.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/txtnode/ndtxt.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/txtnode/ndtxt.cxx Mon Sep 17 08:06:09 2012
@@ -5077,4 +5077,21 @@ SwTxtNode::MakeUnoObject()
             SwXParagraph::CreateXParagraph(*GetDoc(), *this), uno::UNO_QUERY);
     return xMeta;
 }
+//Bug 120881:Modify here for Directly Page Numbering
+bool SwTxtNode::HasPageNumberField()
+{
+	xub_StrLen nEnd = Len();
+	for(xub_StrLen nStart=0;nStart<nEnd;nStart++)
+	{
+		SwTxtFld* pFld = GetTxtFld(nStart);
+		const SwField* pSwField = NULL;
+		const SwFieldType* pType = NULL;
+		if (pFld && (pSwField=pFld->GetFld().GetFld()) && 
+			(pType=pSwField->GetTyp()) && pType->Which()==RES_PAGENUMBERFLD)
+			return true;
+	}
+	return false;
+
+}
+//Bug 120881(End)
 

Modified: incubator/ooo/branches/writer001/main/sw/source/core/txtnode/thints.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/txtnode/thints.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/txtnode/thints.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/txtnode/thints.cxx Mon Sep 17 08:06:09 2012
@@ -1607,6 +1607,78 @@ void SwTxtNode::DelSoftHyph( const xub_S
 	}
 }
 
+//Modify here for #119405, by easyfan, 2012-05-24
+//In MS Word, the font underline setting of the paragraph end position wont affect the formatting of numbering, so we ignore it
+bool lcl_IsIgnoredCharFmtForNumbering(const sal_uInt16 nWhich)
+{
+	return (nWhich ==  RES_CHRATR_UNDERLINE);
+}
+
+//In MS Word, following properties of the paragraph end position wont affect the formatting of bullets, so we ignore them:
+//Font underline;
+//Font Italic of Western, CJK and CTL;
+//Font Bold of Wertern, CJK and CTL;
+bool lcl_IsIgnoredCharFmtForBullets(const sal_uInt16 nWhich)
+{
+	return (nWhich ==  RES_CHRATR_UNDERLINE || nWhich ==  RES_CHRATR_POSTURE || nWhich ==  RES_CHRATR_WEIGHT
+		|| nWhich == RES_CHRATR_CJK_POSTURE || nWhich == RES_CHRATR_CJK_WEIGHT 
+		|| nWhich == RES_CHRATR_CTL_POSTURE || nWhich == RES_CHRATR_CTL_WEIGHT);
+}
+
+//Condition for expanding char set to character style of specified number rule level:
+//The item inside the set should not conflict to any exist and non-default item inside paragraph properties set (SwCntntNode::SwPAttrSet);
+//The node should have applied a number rule;
+//The node should be counted in a list, if not, make it to be;
+//The item should not conflict to any exist and non-default item inside the character of specified number rule level;
+//The item should not be ignored depend on the exact number rule type;
+bool SwTxtNode::TryCharSetExpandToNum(const SfxItemSet& aCharSet)
+{	
+	bool bRet = false;	
+	SfxItemIter aIter( aCharSet );
+        const SfxPoolItem* pItem = aIter.FirstItem();
+        const sal_uInt16 nWhich = pItem->Which();
+
+	const SfxPoolItem& rInnerItem = GetAttr(nWhich,false);
+
+	if (!IsDefaultItem(&rInnerItem) &&  !IsInvalidItem(&rInnerItem))
+		return bRet;
+
+	if ( !IsInList() && GetNumRule() && GetListId().Len() > 0 )
+	{
+		return bRet;
+	}
+
+	SwNumRule* pCurrNum = GetNumRule(false);
+
+	int nLevel = GetActualListLevel();
+
+	if (nLevel != -1 && pCurrNum)
+	{
+		const SwNumFmt* pCurrNumFmt = pCurrNum->GetNumFmt(static_cast<sal_uInt16>(nLevel));
+		if (pCurrNumFmt)
+		{
+			if (pCurrNumFmt->IsItemize() && lcl_IsIgnoredCharFmtForBullets(nWhich))
+				return bRet;
+			if (pCurrNumFmt->IsEnumeration() && lcl_IsIgnoredCharFmtForNumbering(nWhich))
+				return bRet;
+			SwCharFmt* pCurrCharFmt =pCurrNumFmt->GetCharFmt();
+
+			if (pCurrCharFmt && pCurrCharFmt->GetItemState(nWhich,false) != SFX_ITEM_SET)
+			{
+				pCurrCharFmt->SetFmtAttr(*pItem);
+				SwNumFmt aNewNumFmt(*pCurrNumFmt);
+				aNewNumFmt.SetCharFmt(pCurrCharFmt);
+				pCurrNum->Set(nLevel,aNewNumFmt);
+				bRet = true;
+			}
+		}
+	}
+
+	
+	return bRet;
+}
+//End of modification, by easyfan
+
 // setze diese Attribute am TextNode. Wird der gesamte Bereich umspannt,
 // dann setze sie nur im AutoAttrSet (SwCntntNode:: SetAttr)
 sal_Bool SwTxtNode::SetAttr( const SfxItemSet& rSet, xub_StrLen nStt,

Modified: incubator/ooo/branches/writer001/main/sw/source/core/txtnode/txtedt.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/txtnode/txtedt.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/txtnode/txtedt.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/txtnode/txtedt.cxx Mon Sep 17 08:06:09 2012
@@ -2211,3 +2211,11 @@ bool SwTxtNode::IsAutoCompleteWordDirty(
 //
 // Paragraph statistics end
 //
+
+//Bug 120881:Modify here for Directly Page Numbering
+sal_Bool SwTxtFrm::HasPageNumberField() 
+{
+	return GetRegisteredIn()?((SwTxtNode*)GetRegisteredIn())->HasPageNumberField():false;
+}
+//Bug 120881(End)
+

Modified: incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoframe.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoframe.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoframe.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoframe.cxx Mon Sep 17 08:06:09 2012
@@ -652,27 +652,32 @@ sal_Bool 	SwGraphicProperties_Impl::AnyT
     GetProperty(RES_GRFATR_MIRRORGRF, MID_MIRROR_HORZ_ODD_PAGES, pHOddMirror);
     GetProperty(RES_GRFATR_MIRRORGRF, MID_MIRROR_VERT, pVMirror);
 
-	if ( pStyle )
-	{
-		rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet(*pStyle) );
+    if ( pStyle )
+    {
+        rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet(*pStyle) );
         const :: SfxItemSet *pItemSet = &xStyle->GetItemSet();
-		//Begin Bug 119922
-    		sal_Bool bOasis = sal_False;
-		SfxMedium* pMedium = NULL;
-		const SfxFilter * pFilter = NULL;		
-		if ( ( pMedium = pDoc->GetDocShell()->GetMedium() ) &&
-				( pFilter = pMedium->GetFilter() ) )
-			bOasis = pFilter->GetVersion() > SOFFICE_FILEFORMAT_60;	
-		bRet = FillBaseProperties( rFrmSet, *pItemSet, rSizeFound, bOasis );
-		//End Bug 119922
-		lcl_FillMirror ( rGrSet, *pItemSet, pHEvenMirror, pHOddMirror, pVMirror, bRet );
-	}
-	else
-	{
+        //Begin Bug 119922
+        sal_Bool bOasis = sal_False;
+        {
+            const SfxMedium* pMedium = pDoc->GetDocShell()->GetMedium();
+            const SfxFilter * pFilter = pMedium
+                ? pMedium->GetFilter()
+                : NULL;
+            if ( pMedium && pFilter )
+            {
+                bOasis = pFilter->GetVersion() > SOFFICE_FILEFORMAT_60;
+            }
+        }
+        bRet = FillBaseProperties( rFrmSet, *pItemSet, rSizeFound, bOasis );
+        //End Bug 119922
+        lcl_FillMirror ( rGrSet, *pItemSet, pHEvenMirror, pHOddMirror, pVMirror, bRet );
+    }
+    else
+    {
         const :: SfxItemSet *pItemSet = &pDoc->GetFrmFmtFromPool( RES_POOLFRM_GRAPHIC )->GetAttrSet();
-    	bRet = FillBaseProperties(rFrmSet, *pItemSet, rSizeFound);
-		lcl_FillMirror ( rGrSet, *pItemSet, pHEvenMirror, pHOddMirror, pVMirror, bRet );
-	}
+        bRet = FillBaseProperties(rFrmSet, *pItemSet, rSizeFound);
+        lcl_FillMirror ( rGrSet, *pItemSet, pHEvenMirror, pHOddMirror, pVMirror, bRet );
+    }
 
 
     static const :: sal_uInt16 nIDs[] =

Modified: incubator/ooo/branches/writer001/main/sw/source/core/unocore/unomap.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/unocore/unomap.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/unocore/unomap.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/unocore/unomap.cxx Mon Sep 17 08:06:09 2012
@@ -1597,6 +1597,7 @@ const SfxItemPropertyMapEntry* SwUnoProp
 					{ SW_PROP_NMID(UNO_NAME_BUILDID), WID_DOC_BUILDID, CPPU_E2T(CPPUTYPE_OUSTRING), 0, 0},
                     // --> OD 2006-03-21 #b6375613#
                     { SW_PROP_NMID(UNO_NAME_APPLY_WORKAROUND_FOR_B6375613), WID_APPLY_WORKAROUND_FOR_B6375613, CPPU_E2T(CPPUTYPE_BOOLEAN), 0, 0},
+                     { SW_PROP_NMID(UNO_NAME_DEFAULT_PAGE_MODE),  WID_DOC_DEFAULT_PAGE_MODE,  CPPU_E2T(CPPUTYPE_BOOLEAN), PROPERTY_NONE,  0},
                     // <--
                     {0,0,0,0,0,0}
 				};

Modified: incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoprnms.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoprnms.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoprnms.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/unocore/unoprnms.cxx Mon Sep 17 08:06:09 2012
@@ -777,6 +777,7 @@ const SwPropNameTab aPropNameTab = {
 /* 0739 UNO_NAME_NESTED_TEXT_CONTENT */ {MAP_CHAR_LEN("NestedTextContent")},
 /* 0740 UNO_NAME_EMBEDDED_OBJECT */ {MAP_CHAR_LEN("EmbeddedObject")},
 /* 0741 UNO_NAME_REPLACEMENT_GRAPHIC_URL */ {MAP_CHAR_LEN("ReplacementGraphicURL")},
+/* 0742 UNO_NAME_DEFAULT_PAGE_MODE */	 {MAP_CHAR_LEN("DefaultPageMode")}
 };
 
 const SwPropNameLen& SwGetPropName( sal_uInt16 nId )

Modified: incubator/ooo/branches/writer001/main/sw/source/core/unocore/unosect.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/unocore/unosect.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/unocore/unosect.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/unocore/unosect.cxx Mon Sep 17 08:06:09 2012
@@ -430,29 +430,28 @@ throw (lang::IllegalArgumentException, u
 
     SwSection *const pRet =
         pDoc->InsertSwSection( aPam, aSect, 0, aSet.Count() ? &aSet : 0 );
-    pRet->GetFmt()->Add(m_pImpl.get());
-    pRet->GetFmt()->SetXObject(static_cast< ::cppu::OWeakObject*>(this));
-
-    // #97450# XML import must hide sections depending on their old
-    //         condition status
-    if (m_pImpl->m_pProps->m_sCondition.getLength() != 0)
+    if( pRet )
     {
-        pRet->SetCondHidden(m_pImpl->m_pProps->m_bCondHidden);
-    }
+        pRet->GetFmt()->Add(m_pImpl.get());
+        pRet->GetFmt()->SetXObject(static_cast< ::cppu::OWeakObject*>(this));
 
-    // set update type if DDE link (and connect, if necessary)
-    if (m_pImpl->m_pProps->m_bDDE)
-    {
-        if (! pRet->IsConnected())
+        // XML import must hide sections depending on their old condition status
+        if (m_pImpl->m_pProps->m_sCondition.getLength() != 0)
+            pRet->SetCondHidden(m_pImpl->m_pProps->m_bCondHidden);
+
+        // set update type if DDE link (and connect, if necessary)
+        if (m_pImpl->m_pProps->m_bDDE)
         {
-            pRet->CreateLink(CREATE_CONNECT);
+            if (! pRet->IsConnected())
+                pRet->CreateLink(CREATE_CONNECT);
+
+            pRet->SetUpdateType( static_cast< sal_uInt16 >(
+                (m_pImpl->m_pProps->m_bUpdateType) ?
+                    sfx2::LINKUPDATE_ALWAYS : sfx2::LINKUPDATE_ONCALL) );
         }
-        pRet->SetUpdateType( static_cast< sal_uInt16 >(
-            (m_pImpl->m_pProps->m_bUpdateType) ?
-                sfx2::LINKUPDATE_ALWAYS : sfx2::LINKUPDATE_ONCALL) );
     }
 
-    // Undo-Klammerung hier beenden
+    // end section undo here
     pDoc->GetIDocumentUndoRedo().EndUndo( UNDO_INSSECTION, NULL );
     m_pImpl->m_pProps.reset();
     m_pImpl->m_bIsDescriptor = false;

Modified: incubator/ooo/branches/writer001/main/sw/source/core/unocore/unotext.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/core/unocore/unotext.cxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/core/unocore/unotext.cxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/core/unocore/unotext.cxx Mon Sep 17 08:06:09 2012
@@ -2176,9 +2176,15 @@ lcl_ApplyCellProperties(
                     xCellText->createTextCursor();
                 xCellCurs->gotoStart( sal_False );
                 xCellCurs->gotoEnd( sal_True );
-                const uno::Reference< beans::XPropertySet > xCellTextProps(
-                        xCellCurs, uno::UNO_QUERY);
-                xCellTextProps->setPropertyValue(rName, rValue);
+                const uno::Reference< beans::XPropertyState > 
+                    xCellTextPropState(xCellCurs, uno::UNO_QUERY);
+                const beans::PropertyState state = xCellTextPropState->getPropertyState(rName);
+                if (state == beans::PropertyState_DEFAULT_VALUE)
+                {
+                    const uno::Reference< beans::XPropertySet > 
+                        xCellTextProps(xCellCurs, uno::UNO_QUERY);
+                    xCellTextProps->setPropertyValue(rName, rValue);
+                }
             }
         }
     }

Modified: incubator/ooo/branches/writer001/main/sw/source/filter/inc/fltshell.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/branches/writer001/main/sw/source/filter/inc/fltshell.hxx?rev=1386501&r1=1386500&r2=1386501&view=diff
==============================================================================
--- incubator/ooo/branches/writer001/main/sw/source/filter/inc/fltshell.hxx (original)
+++ incubator/ooo/branches/writer001/main/sw/source/filter/inc/fltshell.hxx Mon Sep 17 08:06:09 2012
@@ -72,7 +72,12 @@ public:
 	sal_Bool bLocked;
 	sal_Bool bCopied;
 	sal_Bool bConsumedByField;
-
+	//Modify here for #119405, by easyfan, 2012-05-24
+	sal_Int32 mnStartCP;
+	sal_Int32 mnEndCP; 
+	bool bIsParaEnd;
+	//End of modification, by easyfan
+ 
 	SW_DLLPUBLIC SwFltStackEntry(const SwPosition & rStartPos, SfxPoolItem* pHt );
 	SW_DLLPUBLIC SwFltStackEntry(const SwFltStackEntry& rEntry);
 	SW_DLLPUBLIC ~SwFltStackEntry();
@@ -80,6 +85,17 @@ public:
 	void SetStartPos(const SwPosition & rStartPos);
 	SW_DLLPUBLIC void SetEndPos(  const SwPosition & rEndPos);
 	SW_DLLPUBLIC sal_Bool MakeRegion(SwDoc* pDoc, SwPaM& rRegion, sal_Bool bCheck );    
+	//Modify here for #119405, by easyfan, 2012-05-24
+	void SetStartCP(sal_Int32 nCP) {mnStartCP = nCP;}
+	void SetEndCP(sal_Int32 nCP) {mnEndCP = nCP;}
+	sal_Int32 GetStartCP() const {return mnStartCP;}
+	sal_Int32 GetEndCP() const {return mnEndCP;}
+	//End of modification, by easyfan
+	//Modify here for #119405, by chengjh, 2012-08-16
+	bool IsAbleMakeRegion();
+	bool IsParaEnd(){ return bIsParaEnd;}
+	void SetIsParaEnd(bool bArg){ bIsParaEnd = bArg;}
+	//End
 };
 
 class SW_DLLPUBLIC SwFltControlStack
@@ -91,6 +107,11 @@ class SW_DLLPUBLIC SwFltControlStack
 
 	sal_uLong nFieldFlags;
 	KeyCode aEmptyKeyCode; // fuer Bookmarks
+//Modify for #119405 by chengjh, 2012-08-16
+private:
+	bool bHasSdOD;
+	bool bSdODChecked;	
+//End
 
 protected:
 	SwDoc* pDoc;
@@ -98,6 +119,16 @@ protected:
 
 	void MoveAttrs( const SwPosition&  rPos );
 	virtual void SetAttrInDoc(const SwPosition& rTmpPos, SwFltStackEntry* pEntry);
+	//Modify here for #119405, by easyfan, 2012-05-24
+	virtual sal_Int32 GetCurrAttrCP() const {return -1;}
+	virtual bool IsParaEndInCPs(sal_Int32 /* nStart */,sal_Int32 /* nEnd */,bool /* bSdOD=true */) const {return false;}
+	//End of modification, by easyfan
+	//Modify for #119405 by chengjh, 2012-08-16
+	//Clear the para end position recorded in reader intermittently for the least impact on loading performance
+	virtual void ClearParaEndPosition(){};
+	virtual bool CheckSdOD(sal_Int32 /* nStart */,sal_Int32 /* nEnd */){return false;}
+	bool HasSdOD();
+	//End
 
 public:
 	enum Flags