Re: [Libreoffice] [PATCH] Fix 33898 - import/export xrefs to numbered paras

2011-08-08 Thread Jan Holesovsky
Hi Troy,

Troy Rollo píše v Po 18. 07. 2011 v 00:54 +1000:

  sw/source/filter/rtf/rtffld.cxx  |   50 -
  sw/source/filter/ww8/ww8atr.cxx  |   12 +++
  sw/source/filter/ww8/ww8par5.cxx |   63 +++--
  3 files changed, 65 insertions(+), 60 deletions(-)

I am terribly sorry this is not applied yet - I am unable to review this
myself, and better want to wait for Cedric; he is just about to come
back from vacation today :-)

Thank you for the patch,
Kendy

___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice] [PATCH] Fix 33898 - import/export xrefs to numbered paras

2011-07-19 Thread Troy Rollo
On Tuesday 19 July 2011, Korrawit Pruegsanusak wrote:
 Hello Troy,
 
 Digging mailing-list archive and just glancing at your patch,
 isn't this patch against fdo#33960 ?
 (https://bugs.freedesktop.org/show_bug.cgi?id=33960)
 IMHO it isn't likely to be 33898.

It should have said 33893 (although I also posted a fix to 33960 separately).
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


Re: [Libreoffice] [PATCH] Fix 33898 - import/export xrefs to numbered paras

2011-07-18 Thread Korrawit Pruegsanusak
Hello Troy,

Digging mailing-list archive and just glancing at your patch,
isn't this patch against fdo#33960 ?
(https://bugs.freedesktop.org/show_bug.cgi?id=33960)
IMHO it isn't likely to be 33898.

Best Regards,
-- 
Korrawit Pruegsanusak
___
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice


[Libreoffice] [PATCH] Fix 33898 - import/export xrefs to numbered paras

2011-07-17 Thread Troy Rollo
---
 sw/source/filter/rtf/rtffld.cxx  |   50 -
 sw/source/filter/ww8/ww8atr.cxx  |   12 +++
 sw/source/filter/ww8/ww8par5.cxx |   63 +++--
 3 files changed, 65 insertions(+), 60 deletions(-)

diff --git a/sw/source/filter/rtf/rtffld.cxx b/sw/source/filter/rtf/rtffld.cxx
index f5d9058..ccac5f1 100644
--- a/sw/source/filter/rtf/rtffld.cxx
+++ b/sw/source/filter/rtf/rtffld.cxx
@@ -813,8 +813,7 @@ int SwRTFParser::MakeFieldInst( String rFieldStr )
 case RTFFLD_REF:
 {
 String sOrigBkmName;
-bool bChapterNr = false;
-bool bAboveBelow = false;
+REFERENCEMARK eFormat = REF_CONTENT;
 
 RtfFieldSwitch aRFS( aSaveStr );
 while( !aRFS.IsAtEnd() )
@@ -828,42 +827,35 @@ int SwRTFParser::MakeFieldInst( String rFieldStr )
 sOrigBkmName = sParam;
 break;
 
+/* References to numbers in Word could be either to a 
numbered
+paragraph or to a chapter number. However Word does not 
seem to
+have the capability we do, of refering to the chapter 
number some
+other bookmark is in. As a result, cross-references to 
chapter
+numbers in a word document will be cross-references to a 
numbered
+paragraph, being the chapter heading paragraph. As it 
happens, our
+cross-references to numbered paragraphs will do the right 
thing
+when the target is a numbered chapter heading, so there is 
no need
+for us to use the REF_CHAPTER bookmark format on import.
+*/
 case 'n':
+eFormat = REF_NUMBER_NO_CONTEXT;
+break;
 case 'r':
+eFormat = REF_NUMBER;
+break;
 case 'w':
-bChapterNr = true; // activate flag 'Chapter Number'
+eFormat = REF_NUMBER_FULL_CONTEXT;
 break;
 
 case 'p':
-bAboveBelow = true;
+eFormat = REF_UPDOWN;
 break;
 }
 }
-if (!bAboveBelow || bChapterNr)
-{
-if (bChapterNr)
-{
-SwGetRefField aFld(
-(SwGetRefFieldType*)pDoc-GetSysFldType( RES_GETREFFLD 
),
-sOrigBkmName,REF_BOOKMARK,0,REF_CHAPTER);
-pDoc-InsertPoolItem( *pPam, SwFmtFld( aFld ), 0 );
-}
-else
-{
-SwGetRefField aFld(
-(SwGetRefFieldType*)pDoc-GetSysFldType( RES_GETREFFLD 
),
-sOrigBkmName,REF_BOOKMARK,0,REF_CONTENT);
-pDoc-InsertPoolItem( *pPam, SwFmtFld( aFld ), 0 );
-}
-}
-
-if( bAboveBelow )
-{
-SwGetRefField aFld( (SwGetRefFieldType*)
-pDoc-GetSysFldType( RES_GETREFFLD ), sOrigBkmName, 
REF_BOOKMARK, 0,
-REF_UPDOWN );
-pDoc-InsertPoolItem(*pPam, SwFmtFld(aFld), 0);
-}
+SwGetRefField aFld(
+(SwGetRefFieldType*)pDoc-GetSysFldType( RES_GETREFFLD ),
+sOrigBkmName,REF_BOOKMARK,0,eFormat);
+pDoc-InsertPoolItem( *pPam, SwFmtFld( aFld ), 0 );
 }
 break;
 
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 0ea9201..1464e42 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -2831,6 +2831,18 @@ void AttributeOutputBase::TextField( const SwFmtFld 
rField )
 sStr = FieldString(eFld);
 sStr += GetExport().GetBookmarkName(nSubType,
 rRFld.GetSetRefName(), 0);
+switch (pFld-GetFormat())
+{
+case REF_NUMBER:
+sStr.APPEND_CONST_ASC( \\r);
+break;
+case REF_NUMBER_NO_CONTEXT:
+sStr.APPEND_CONST_ASC( \\n);
+break;
+case REF_NUMBER_FULL_CONTEXT:
+sStr.APPEND_CONST_ASC( \\w);
+break;
+}
 break;
 case REF_FOOTNOTE:
 case REF_ENDNOTE:
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 759293d..62d73b6 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -2089,8 +2089,7 @@ eF_ResT SwWW8ImplReader::Read_F_Set( WW8FieldDesc* pF,