[Libreoffice-commits] core.git: Branch 'distro/suse/suse-3.6' - 2 commits - writerfilter/source

2013-06-24 Thread Miklos Vajna
 writerfilter/source/rtftok/rtfdocumentimpl.cxx |   22 --
 writerfilter/source/rtftok/rtfdocumentimpl.hxx |1 +
 writerfilter/source/rtftok/rtfsdrimport.cxx|   17 ++---
 3 files changed, 31 insertions(+), 9 deletions(-)

New commits:
commit 90aaecc1b4c62afcd41d988e4561c615403121a5
Author: Miklos Vajna vmik...@suse.cz
Date:   Mon Jun 24 14:13:39 2013 +0200

bnc#823655 fix RTF import of freeform shape coordinates

E.g. 0,1 was imported as 1,0, as we did not differentiate between not
having the coordinate yet and having it as zero.

(cherry picked from commit fe8d6ffa05c467bddb3480e43d7043a3d3c9)

Conflicts:
sw/qa/extras/rtfimport/rtfimport.cxx

Change-Id: Ia5fbbcc791dc9c6866ffd4c146793690661d81b4

diff --git a/writerfilter/source/rtftok/rtfsdrimport.cxx 
b/writerfilter/source/rtftok/rtfsdrimport.cxx
index 0258fe3..ebcd21f 100644
--- a/writerfilter/source/rtftok/rtfsdrimport.cxx
+++ b/writerfilter/source/rtftok/rtfsdrimport.cxx
@@ -40,6 +40,7 @@
 #include dmapper/DomainMapper.hxx
 #include ../dmapper/GraphicHelpers.hxx
 #include rtfsdrimport.hxx
+#include boost/optional.hpp
 
 using rtl::OString;
 using rtl::OStringBuffer;
@@ -173,19 +174,19 @@ void RTFSdrImport::resolve(RTFShape rShape)
 // The coordinates are in an (x,y) form.
 aToken = aToken.copy(1, aToken.getLength() - 2);
 sal_Int32 nI = 0;
-sal_Int32 nX = 0;
-sal_Int32 nY = 0;
+boost::optionalsal_Int32 oX;
+boost::optionalsal_Int32 oY;
 do
 {
 OUString aPoint = aToken.getToken(0, ',', nI);
-if (!nX)
-nX = aPoint.toInt32();
+if (!oX)
+oX.reset(aPoint.toInt32());
 else
-nY = aPoint.toInt32();
+oY.reset(aPoint.toInt32());
 }
 while (nI = 0);
-aCoordinates[nIndex].First.Value = nX;
-aCoordinates[nIndex].Second.Value = nY;
+aCoordinates[nIndex].First.Value = *oX;
+aCoordinates[nIndex].Second.Value = *oY;
 nIndex++;
 }
 }
commit 4869de23a6cc8d1f21041f856bac6822bbe963b1
Author: Eilidh McAdam eil...@lanedo.com
Date:   Wed Sep 19 09:45:49 2012 +0100

bnc#823655 Import RTF shape wrap property.

Property \shpwrN, where N can be
1: Wrap at top and bottom (no wrap at sides)
2: Wrap around shape
3: None (wrap as though shape isn't there)
4: Wrap tightly around shape
5: Wrap text through shape

Reviewed-on: https://gerrit.libreoffice.org/647
Reviewed-by: Miklos Vajna vmik...@suse.cz
Tested-by: Miklos Vajna vmik...@suse.cz
(cherry picked from commit d56e7c9011e662b39f0e9775e654f62cea8765c2)

Change-Id: Ic700e06bf9ef894a6efa7e8d033888ed80a7082f
Signed-off-by: Miklos Vajna vmik...@suse.cz

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index a89b3c0..67a26e3 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -35,6 +35,7 @@
 #include com/sun/star/text/HoriOrientation.hpp
 #include com/sun/star/text/VertOrientation.hpp
 #include com/sun/star/text/RelOrientation.hpp
+#include com/sun/star/text/WrapTextMode.hpp
 #include rtl/tencinfo.h
 #include svl/lngmisc.hxx
 #include unotools/ucbstreamhelper.hxx
@@ -617,7 +618,6 @@ int RTFDocumentImpl::resolvePict(bool bInline)
 {
 SvMemoryStream aStream;
 SvStream *pStream = 0;
-
 if (!m_pBinaryData.get())
 {
 pStream = aStream;
@@ -2692,6 +2692,23 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, 
int nParam)
 
m_aStates.top().aCharacterAttributes.set(NS_ooxml::LN_CT_WrapSquare_wrapText, 
pValue);
 }
 break;
+case RTF_SHPWR:
+{
+switch (nParam)
+{
+case 1:
+m_aStates.top().aShape.nWrap = 
com::sun::star::text::WrapTextMode_NONE; break;
+case 2:
+m_aStates.top().aShape.nWrap = 
com::sun::star::text::WrapTextMode_PARALLEL; break;
+case 3:
+m_aStates.top().aShape.nWrap = 
com::sun::star::text::WrapTextMode_THROUGHT; break;
+case 4:
+m_aStates.top().aShape.nWrap = 
com::sun::star::text::WrapTextMode_PARALLEL; break;
+case 5:
+m_aStates.top().aShape.nWrap = 
com::sun::star::text::WrapTextMode_THROUGHT; break;
+}
+}
+break;
 case RTF_CELLX:
 {

[Libreoffice-commits] core.git: Branch 'distro/suse/suse-3.6' - 2 commits - writerfilter/source

2013-06-05 Thread Miklos Vajna
 writerfilter/source/dmapper/DomainMapper.cxx   |   10 ++
 writerfilter/source/dmapper/ModelEventListener.cxx |   10 --
 writerfilter/source/dmapper/ModelEventListener.hxx |4 +++-
 writerfilter/source/dmapper/SdtHelper.cxx  |6 ++
 writerfilter/source/dmapper/SdtHelper.hxx  |4 
 5 files changed, 27 insertions(+), 7 deletions(-)

New commits:
commit 82d52b5af7b7cabc546acd90f0b77508ffae1f51
Author: Miklos Vajna vmik...@suse.cz
Date:   Wed Jun 5 11:22:33 2013 +0200

bnc#820509 DOCX import: handle M.d. date format in w:sdt

Change-Id: Iae233c24a9580ffc8ea4680276161a543171f63c
(cherry picked from commit 58197c3692df0d0fccb5bc7abddaf6d9667565f6)

diff --git a/writerfilter/source/dmapper/DomainMapper.cxx 
b/writerfilter/source/dmapper/DomainMapper.cxx
index d0b60d4..c91c139 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -3380,8 +3380,9 @@ void DomainMapper::sprmWithProps( Sprm rSprm, 
PropertyMapPtr rContext, SprmType
 break;
 case NS_ooxml::LN_CT_SdtDate_dateFormat:
 {
-if (sStringValue == M/d/)
-// See com/sun/star/awt/UnoControlDateFieldModel.idl, DateFormat; 
sadly there are no constants for this.
+// See com/sun/star/awt/UnoControlDateFieldModel.idl, DateFormat; 
sadly there are no constants for this.
+if (sStringValue == M/d/ || sStringValue == M.d.)
+// Approximate with MM.dd.yyy
 m_pImpl-m_pSdtHelper-getDateFormat().reset(8);
 else
 {
commit 5e9eeafc4364f63a353d3a6099db4a73519c4dd8
Author: Miklos Vajna vmik...@suse.cz
Date:   Wed Jun 5 10:29:25 2013 +0200

bnc#820509 DOCX import: try harder to disable form design mode

Previously this only worked if we had indexes in the document as well,
but actually these are independent.

Change-Id: I28afa60d2606230c901948d4c1da8f5a7c50a9f7
(cherry picked from commit 3d6a7cf3eb7aa966601cbc019d1ad5faf21f)

diff --git a/writerfilter/source/dmapper/DomainMapper.cxx 
b/writerfilter/source/dmapper/DomainMapper.cxx
index 3defa79..d0b60d4 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -155,11 +155,12 @@ DomainMapper::~DomainMapper()
 xEnumeration-nextElement();
 }
 }
-if( nIndexes )
+if( nIndexes || m_pImpl-m_pSdtHelper-hasElements())
 {
 //index update has to wait until first view is created
 uno::Reference document::XEventBroadcaster  
xBroadcaster(xIndexesSupplier, uno::UNO_QUERY);
-xBroadcaster-addEventListener(uno::Reference 
document::XEventListener (new ModelEventListener));
+if (xBroadcaster.is())
+xBroadcaster-addEventListener(uno::Reference 
document::XEventListener (new ModelEventListener(nIndexes, 
m_pImpl-m_pSdtHelper-hasElements(;
 }
 
 
diff --git a/writerfilter/source/dmapper/ModelEventListener.cxx 
b/writerfilter/source/dmapper/ModelEventListener.cxx
index 88cba67..899ea66 100644
--- a/writerfilter/source/dmapper/ModelEventListener.cxx
+++ b/writerfilter/source/dmapper/ModelEventListener.cxx
@@ -47,7 +47,9 @@ using namespace ::com::sun::star;
 
 
 
-ModelEventListener::ModelEventListener()
+ModelEventListener::ModelEventListener(bool bIndexes, bool bControls)
+: m_bIndexes(bIndexes),
+m_bControls(bControls)
 {
 }
 
@@ -59,7 +61,7 @@ ModelEventListener::~ModelEventListener()
 
 void ModelEventListener::notifyEvent( const document::EventObject rEvent ) 
throw (uno::RuntimeException)
 {
-if ( rEvent.EventName == OnFocus )
+if ( rEvent.EventName == OnFocus  m_bIndexes)
 {
 try
 {
@@ -110,6 +112,10 @@ void ModelEventListener::notifyEvent( const 
document::EventObject rEvent ) thro
 {
 SAL_WARN(writerfilter, exception while updating indexes:   
rEx.Message);
 }
+}
+
+if ( rEvent.EventName == OnFocus  m_bControls)
+{
 
 // Form design mode is enabled by default in Writer, not in Word.
 uno::Referenceframe::XModel xModel(rEvent.Source, uno::UNO_QUERY);
diff --git a/writerfilter/source/dmapper/ModelEventListener.hxx 
b/writerfilter/source/dmapper/ModelEventListener.hxx
index 957af5f..502fdda 100644
--- a/writerfilter/source/dmapper/ModelEventListener.hxx
+++ b/writerfilter/source/dmapper/ModelEventListener.hxx
@@ -39,8 +39,10 @@ namespace dmapper{
 class WRITERFILTER_DLLPRIVATE ModelEventListener :
 public cppu::WeakImplHelper1 ::com::sun::star::document::XEventListener 
 {
+bool m_bIndexes;
+bool m_bControls;
 public:
-ModelEventListener();
+ModelEventListener(bool bIndexes, bool bControls);
 ~ModelEventListener();
 
 virtual void SAL_CALL notifyEvent( const 
::com::sun::star::document::EventObject Event ) throw 
(::com::sun::star::uno::RuntimeException);
diff --git