ooo-build r15165 - in trunk: . patches/dev300
- From: kyoshida svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r15165 - in trunk: . patches/dev300
- Date: Tue, 27 Jan 2009 07:20:58 +0000 (UTC)
Author: kyoshida
Date: Tue Jan 27 07:20:58 2009
New Revision: 15165
URL: http://svn.gnome.org/viewvc/ooo-build?rev=15165&view=rev
Log:
2009-01-27 Kohei Yoshida <kyoshida novell com>
* patches/dev300/cws-scsheetprotection02-sc-m38.diff:
* patches/dev300/cws-scsheetprotection02-sc.diff:
* patches/dev300/apply: adjusted for dev300-m39.
Added:
trunk/patches/dev300/cws-scsheetprotection02-sc-m38.diff (props changed)
- copied unchanged from r15157, /trunk/patches/dev300/cws-scsheetprotection02-sc.diff
Modified:
trunk/ChangeLog
trunk/patches/dev300/apply
trunk/patches/dev300/cws-scsheetprotection02-sc.diff
Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply (original)
+++ trunk/patches/dev300/apply Tue Jan 27 07:20:58 2009
@@ -870,11 +870,19 @@
cws-scsheetprotection02-sfx2-m37.diff, i#60305, i#71468, i#84766, kohei
cws-scsheetprotection02-svx-m37.diff, i#60305, i#71468, i#84766, kohei
-[ CalcFixes >= dev300-m38 ]
+[ CalcFixes == dev300-m38 ]
+# load, store and save the sheet protection options from and to an Excel file,
+# and use that information to constrain cell cursor movement when the sheet is
+# protected. Also to support encryption on Excel file export.
+cws-scsheetprotection02-sc-m38.diff, i#97515, kohei
+
+[ CalcFixes > dev300-m38 ]
# load, store and save the sheet protection options from and to an Excel file,
# and use that information to constrain cell cursor movement when the sheet is
# protected. Also to support encryption on Excel file export.
cws-scsheetprotection02-sc.diff, i#97515, kohei
+
+[ CalcFixes >= dev300-m38 ]
cws-scsheetprotection02-sfx2.diff, i#97515, kohei
cws-scsheetprotection02-svx.diff, i#97515, kohei
Modified: trunk/patches/dev300/cws-scsheetprotection02-sc.diff
==============================================================================
--- trunk/patches/dev300/cws-scsheetprotection02-sc.diff (original)
+++ trunk/patches/dev300/cws-scsheetprotection02-sc.diff Tue Jan 27 07:20:58 2009
@@ -1,8 +1,8 @@
diff --git sc/inc/document.hxx sc/inc/document.hxx
-index bc70a7a..596ca70 100644
+index f73bb78..fe8ebe1 100644
--- sc/inc/document.hxx
+++ sc/inc/document.hxx
-@@ -89,6 +89,7 @@ class ScDBData;
+@@ -90,6 +90,7 @@ class ScDBData;
class ScDetOpData;
class ScDetOpList;
class ScDocOptions;
@@ -10,7 +10,7 @@
class ScDocumentPool;
class ScDrawLayer;
class ScExtDocOptions;
-@@ -107,6 +108,7 @@ class ScRangeName;
+@@ -108,6 +109,7 @@ class ScRangeName;
class ScStyleSheet;
class ScStyleSheetPool;
class ScTable;
@@ -18,7 +18,7 @@
class ScTokenArray;
class ScValidationData;
class ScValidationDataList;
-@@ -282,7 +284,7 @@ private:
+@@ -283,7 +285,7 @@ private:
ScFieldEditEngine* pCacheFieldEditEngine;
@@ -27,7 +27,7 @@
::std::auto_ptr<ScExternalRefManager> pExternalRefMgr;
String aDocName; // opt: Dokumentname
-@@ -346,7 +348,6 @@ private:
+@@ -347,7 +349,6 @@ private:
ScLkUpdMode eLinkMode;
@@ -35,17 +35,17 @@
BOOL bAutoCalc; // Automatisch Berechnen
BOOL bAutoCalcShellDisabled; // in/von/fuer ScDocShell disabled
// ob noch ForcedFormulas berechnet werden muessen,
-@@ -528,13 +529,14 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollection() const;
- inline SCTAB GetTableCount() const { return nMaxTableNumber; }
+@@ -529,13 +530,14 @@ public:
+ SC_DLLPUBLIC inline SCTAB GetTableCount() const { return nMaxTableNumber; }
SvNumberFormatterIndexTable* GetFormatExchangeList() const { return pFormatExchangeList; }
-- void SetDocProtection( BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
-- void SetTabProtection( SCTAB nTab, BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
-+ ScDocProtection* GetDocProtection() const;
-+ void SetDocProtection(const ScDocProtection* pProtect);
- BOOL IsDocProtected() const;
+- SC_DLLPUBLIC void SetDocProtection( BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
+- SC_DLLPUBLIC void SetTabProtection( SCTAB nTab, BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
++ SC_DLLPUBLIC ScDocProtection* GetDocProtection() const;
++ SC_DLLPUBLIC void SetDocProtection(const ScDocProtection* pProtect);
+ SC_DLLPUBLIC BOOL IsDocProtected() const;
BOOL IsDocEditable() const;
- BOOL IsTabProtected( SCTAB nTab ) const;
+ SC_DLLPUBLIC BOOL IsTabProtected( SCTAB nTab ) const;
- const com::sun::star::uno::Sequence <sal_Int8>& GetDocPassword() const;
- const com::sun::star::uno::Sequence <sal_Int8>& GetTabPassword( SCTAB nTab ) const;
+ SC_DLLPUBLIC ScTableProtection* GetTabProtection( SCTAB nTab ) const;
@@ -54,7 +54,7 @@
void LockTable(SCTAB nTab);
void UnlockTable(SCTAB nTab);
-@@ -1464,7 +1466,8 @@ SC_DLLPUBLIC SvNumberFormatter* GetFormatTable() const;
+@@ -1460,7 +1462,8 @@ public:
private:
@@ -65,10 +65,10 @@
SCCOL nX1, SCCOL nX2 ) const;
diff --git sc/inc/sc.hrc sc/inc/sc.hrc
-index f4c942d..ea7ded5 100644
+index 4183466..4daebcc 100644
--- sc/inc/sc.hrc
+++ sc/inc/sc.hrc
-@@ -1626,7 +1626,12 @@
+@@ -1627,7 +1627,12 @@
#define RID_SCDLG_CONFLICTS (SC_DIALOGS_START + 145)
#define RID_SCDLG_SHAREDOCUMENT (SC_DIALOGS_START + 146)
@@ -83,7 +83,7 @@
#ifndef STD_MASKCOLOR
#define STD_MASKCOLOR Color { Red = 0xFF00; Green = 0x0000; Blue = 0xFF00; }
diff --git sc/inc/scextopt.hxx sc/inc/scextopt.hxx
-index 772b77c..dac5afa 100644
+index 4aa9444..d9e654e 100644
--- sc/inc/scextopt.hxx
+++ sc/inc/scextopt.hxx
@@ -46,8 +46,6 @@ struct ScExtDocSettings
@@ -96,7 +96,7 @@
explicit ScExtDocSettings();
};
diff --git sc/inc/table.hxx sc/inc/table.hxx
-index ad1daf9..9f2ae22 100644
+index eead372..931e8ac 100644
--- sc/inc/table.hxx
+++ sc/inc/table.hxx
@@ -39,6 +39,8 @@
@@ -142,7 +142,7 @@
void SetPageSize( const Size& rSize );
diff --git sc/inc/tabprotection.hxx sc/inc/tabprotection.hxx
new file mode 100644
-index 0000000..50b4798
+index 0000000..f49a471
--- /dev/null
+++ sc/inc/tabprotection.hxx
@@ -0,0 +1,180 @@
@@ -327,7 +327,7 @@
+
+#endif
diff --git sc/source/core/data/documen2.cxx sc/source/core/data/documen2.cxx
-index 9dc39d7..9db90f4 100644
+index cf81b60..9e7e602 100644
--- sc/source/core/data/documen2.cxx
+++ sc/source/core/data/documen2.cxx
@@ -94,6 +94,7 @@
@@ -355,7 +355,7 @@
bAutoCalcShellDisabled( FALSE ),
bForcedFormulaPending( FALSE ),
diff --git sc/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
-index 14fce18..f21db61 100644
+index 8900623..7ad994d 100644
--- sc/source/core/data/documen3.cxx
+++ sc/source/core/data/documen3.cxx
@@ -79,6 +79,8 @@
@@ -367,7 +367,7 @@
#include <memory>
-@@ -1672,28 +1674,28 @@ void ScDocument::SnapVisArea( Rectangle& rRect ) const
+@@ -1680,28 +1682,28 @@ void ScDocument::SnapVisArea( Rectangle& rRect ) const
ScDrawLayer::MirrorRectRTL( rRect ); // back to real rectangle
}
@@ -405,7 +405,7 @@
}
BOOL ScDocument::IsTabProtected( SCTAB nTab ) const
-@@ -1706,19 +1708,28 @@ BOOL ScDocument::IsTabProtected( SCTAB nTab ) const
+@@ -1713,18 +1715,28 @@ BOOL ScDocument::IsTabProtected( SCTAB nTab ) const
return FALSE;
}
@@ -422,9 +422,8 @@
-const uno::Sequence<sal_Int8>& ScDocument::GetTabPassword( SCTAB nTab ) const
+void ScDocument::SetTabProtection(SCTAB nTab, const ScTableProtection* pProtect)
{
-- if (VALIDTAB(nTab))
-- if (pTab[nTab])
-- return pTab[nTab]->GetPassword();
+- if (VALIDTAB(nTab) && pTab[nTab])
+- return pTab[nTab]->GetPassword();
+ if (!ValidTab(nTab))
+ return;
@@ -443,7 +442,7 @@
const ScDocOptions& ScDocument::GetDocOptions() const
diff --git sc/source/core/data/document.cxx sc/source/core/data/document.cxx
-index 34cc8d7..d13323e 100644
+index a8a695f..09b71a1 100644
--- sc/source/core/data/document.cxx
+++ sc/source/core/data/document.cxx
@@ -93,6 +93,7 @@
@@ -454,7 +453,7 @@
namespace WritingMode2 = ::com::sun::star::text::WritingMode2;
-@@ -3947,24 +3948,6 @@ BOOL ScDocument::RefreshAutoFilter( SCCOL nStartCol, SCROW nStartRow,
+@@ -3953,24 +3954,6 @@ BOOL ScDocument::RefreshAutoFilter( SCCOL nStartCol, SCROW nStartRow,
}
@@ -513,7 +512,7 @@
pRowHeight( NULL ),
pColFlags( NULL ),
diff --git sc/source/core/data/table2.cxx sc/source/core/data/table2.cxx
-index 66849b5..7202f1e 100644
+index c87b018..69f86db 100644
--- sc/source/core/data/table2.cxx
+++ sc/source/core/data/table2.cxx
@@ -292,7 +292,7 @@ void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, USH
@@ -1081,10 +1080,10 @@
+}
+
diff --git sc/source/filter/excel/excdoc.cxx sc/source/filter/excel/excdoc.cxx
-index f6d7218..d991d0a 100644
+index eee5bd5..8c81942 100644
--- sc/source/filter/excel/excdoc.cxx
+++ sc/source/filter/excel/excdoc.cxx
-@@ -67,11 +67,11 @@
+@@ -68,11 +68,11 @@
#include "convuno.hxx"
#include "patattr.hxx"
#include "docoptio.hxx"
@@ -1097,7 +1096,16 @@
#include "xcl97rec.hxx"
#include "xcl97esc.hxx"
#include "xetable.hxx"
-@@ -150,7 +150,16 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -118,7 +118,7 @@ static void lcl_AddCalcPr( XclExpRecordList<>& aRecList, ExcTable& self )
+ aRecList.AppendNewRecord( new XclRefmode( rDoc ) );
+ aRecList.AppendNewRecord( new XclIteration( rDoc ) );
+ aRecList.AppendNewRecord( new XclDelta( rDoc ) );
+- aRecList.AppendNewRecord( new ExcDummy8_02 );
++ aRecList.AppendNewRecord( new XclExpBoolRecord(0x005F, true) ); // SAVERECALC
+ aRecList.AppendNewRecord( new XclExpXmlEndSingleElementRecord() ); // XML_calcPr
+ }
+
+@@ -209,7 +209,16 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
Add( new ExcDummy_00 );
else
{
@@ -1115,7 +1123,7 @@
rR.pTabId = new XclExpChTrTabId( Max( nExcTabCount, nCodenames ) );
Add( rR.pTabId );
if( HasVbaStorage() )
-@@ -160,7 +169,8 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -219,7 +228,8 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
if( rCodeName.Len() )
Add( new XclCodename( rCodeName ) );
}
@@ -1125,7 +1133,7 @@
}
// erst Namen- und Tabellen-Eintraege aufbauen
-@@ -180,15 +190,31 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -239,12 +249,22 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
aRecList.AppendRecord( CreateRecord( EXC_ID_NAME ) );
}
@@ -1150,7 +1158,11 @@
+ Add( new XclExpProt4RevPass );
+ }
- aRecList.AppendNewRecord( new XclExpWindow1( GetRoot() ) );
+ // document protection options
+ if( GetOutput() == EXC_OUTPUT_BINARY )
+@@ -255,6 +275,12 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+
+ Add( new XclExpXmlStartSingleElementRecord( XML_workbookPr ) );
+ if ( GetBiff() == EXC_BIFF8 )
+ {
@@ -1161,7 +1173,7 @@
if( GetBiff() <= EXC_BIFF5 )
{
Add( new ExcDummy_040 );
-@@ -197,9 +223,11 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -263,9 +289,12 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
}
else
{
@@ -1171,12 +1183,13 @@
- Add( new ExcDummy8_041 );
+ Add( new XclExpBoolRecord(0x01B7, false) ); // REFRESHALL
+ Add( new XclExpBoolRecord(0x00DA, false) ); // BOOKBOOL
- }
-
- // Formatting: FONT, FORMAT, XF, STYLE, PALETTE
-@@ -258,10 +286,14 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
- aRecList.AppendRecord( CreateRecord( EXC_ID_EXTERNSHEET ) );
- aRecList.AppendRecord( CreateRecord( EXC_ID_NAME ) );
++
+ // OOXTODO: The following /workbook/workbookPr attributes are mapped
+ // to various BIFF records that are not currently supported:
+ //
+@@ -361,10 +390,14 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+ if( GetOutput() != EXC_OUTPUT_BINARY )
+ lcl_AddCalcPr( aRecList, *this );
+ Add( new XclExpRecalcId );
+
@@ -1189,16 +1202,7 @@
}
Add( new ExcEof );
-@@ -303,7 +335,7 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
- Add( new XclRefmode( rDoc ) );
- Add( new XclIteration( rDoc ) );
- Add( new XclDelta( rDoc ) );
-- Add( new ExcDummy8_02 );
-+ Add( new XclExpBoolRecord(0x005F, true) ); // SAVERECALC
- }
-
- // GUTS (count & size of outline icons)
-@@ -320,8 +352,16 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
+@@ -425,8 +458,16 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
// page settings (SETUP and various other records)
aRecList.AppendRecord( xPageSett );
@@ -1217,7 +1221,7 @@
// local link table: EXTERNCOUNT, EXTERNSHEET
if( eBiff <= EXC_BIFF5 )
-@@ -367,6 +407,9 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
+@@ -467,6 +508,9 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
if( eBiff == EXC_BIFF8 )
{
@@ -1266,18 +1270,18 @@
ImportExcel::PostDocLoad();
diff --git sc/source/filter/excel/excrecds.cxx sc/source/filter/excel/excrecds.cxx
-index 16c04f1..81b97f0 100644
+index 8c3104c..fca33a1 100644
--- sc/source/filter/excel/excrecds.cxx
+++ sc/source/filter/excel/excrecds.cxx
-@@ -99,6 +99,7 @@
- #include "xcl97rec.hxx"
+@@ -340,6 +340,7 @@ sal_Size ExcFngroupcount::GetLen( void ) const
+ }
+using ::com::sun::star::uno::Sequence;
//--------------------------------------------------------- class ExcDummy_00 -
- const BYTE ExcDummy_00::pMyData[] = {
-@@ -418,7 +419,9 @@ ExcBundlesheetBase::ExcBundlesheetBase() :
+
+@@ -432,7 +433,9 @@ ExcBundlesheetBase::ExcBundlesheetBase() :
void ExcBundlesheetBase::UpdateStreamPos( XclExpStream& rStrm )
{
rStrm.SetSvStreamPos( nOwnPos );
@@ -1287,23 +1291,7 @@
}
-@@ -494,19 +497,41 @@ XclExpWsbool::XclExpWsbool( bool bFitToPages ) :
- // XclExpWindowProtection ===============================================================
-
- XclExpWindowProtection::XclExpWindowProtection(bool bValue) :
-- XclExpBoolRecord(EXC_ID_WINDOWPROTECT,bValue)
-+ XclExpBoolRecord(EXC_ID_WINDOWPROTECT, bValue)
- {
- }
-
- // XclExpDocProtection ===============================================================
-
--XclExpDocProtection::XclExpDocProtection(bool bValue) :
-- XclExpBoolRecord(EXC_ID_PROTECT,bValue)
-+XclExpProtection::XclExpProtection(bool bValue) :
-+ XclExpBoolRecord(EXC_ID_PROTECT, bValue)
- {
- }
+@@ -552,6 +555,28 @@ XclExpDocProtection::XclExpDocProtection(bool bValue) :
// ============================================================================
@@ -1482,24 +1470,24 @@
}
break;
diff --git sc/source/filter/excel/xeroot.cxx sc/source/filter/excel/xeroot.cxx
-index aa0e713..0c32b52 100644
+index abe1da2..600a928 100644
--- sc/source/filter/excel/xeroot.cxx
+++ sc/source/filter/excel/xeroot.cxx
-@@ -32,7 +32,11 @@
+@@ -31,7 +31,11 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
- #include "xeroot.hxx"
#include <sfx2/docfile.hxx>
+#include <sfx2/sfxsids.hrc>
#include <svtools/saveopt.hxx>
+#include <svtools/itemset.hxx>
+#include <svtools/stritem.hxx>
+#include <svtools/eitem.hxx>
+ #include "xecontent.hxx"
#include "xltracer.hxx"
#include "xehelper.hxx"
- #include "xeformula.hxx"
@@ -42,8 +46,10 @@
- #include "xecontent.hxx"
#include "xepivot.hxx"
+ #include "xeroot.hxx"
-// for filter manager
-#include "excrecds.hxx"
@@ -1552,20 +1540,21 @@
{
return IsInGlobals() ? mrExpData.mxGlobLinkMgr : mrExpData.mxLocLinkMgr;
diff --git sc/source/filter/excel/xestream.cxx sc/source/filter/excel/xestream.cxx
-index 98a1da9..3eeb724 100644
+index ffb8622..a279b9d 100644
--- sc/source/filter/excel/xestream.cxx
+++ sc/source/filter/excel/xestream.cxx
-@@ -34,6 +34,9 @@
- #include "xlstring.hxx"
- #include "xeroot.hxx"
+@@ -51,6 +51,10 @@
+ #include <oox/core/tokens.hxx>
+ #include <formula/grammar.hxx>
+#define DEBUG_XL_ENCRYPTION 0
+
+using ::std::vector;
-
- // ============================================================================
-
-@@ -63,16 +66,19 @@ XclExpStream::~XclExpStream()
++
+ using ::com::sun::star::beans::PropertyValue;
+ using ::com::sun::star::io::XOutputStream;
+ using ::com::sun::star::io::XStream;
+@@ -92,16 +96,19 @@ XclExpStream::~XclExpStream()
void XclExpStream::StartRecord( sal_uInt16 nRecId, sal_Size nRecSize )
{
DBG_ASSERT( !mbInRec, "XclExpStream::StartRecord - another record still open" );
@@ -1585,7 +1574,7 @@
UpdateRecSize();
mrStrm.Seek( STREAM_SEEK_TO_END );
mbInRec = false;
-@@ -84,6 +90,86 @@ void XclExpStream::SetSliceSize( sal_uInt16 nSize )
+@@ -113,6 +120,86 @@ void XclExpStream::SetSliceSize( sal_uInt16 nSize )
mnSliceSize = 0;
}
@@ -1672,7 +1661,7 @@
sal_Size XclExpStream::Write( const void* pData, sal_Size nBytes )
{
sal_Size nRet = 0;
-@@ -98,9 +184,21 @@ sal_Size XclExpStream::Write( const void* pData, sal_Size nBytes )
+@@ -127,9 +214,21 @@ sal_Size XclExpStream::Write( const void* pData, sal_Size nBytes )
while( bValid && (nBytesLeft > 0) )
{
sal_Size nWriteLen = ::std::min< sal_Size >( PrepareWrite(), nBytesLeft );
@@ -1695,7 +1684,7 @@
pBuffer += nWriteRet;
nRet += nWriteRet;
nBytesLeft -= nWriteRet;
-@@ -236,6 +334,26 @@ void XclExpStream::WriteCharBuffer( const ScfUInt8Vec& rBuffer )
+@@ -265,6 +364,26 @@ void XclExpStream::WriteCharBuffer( const ScfUInt8Vec& rBuffer )
Write( &rBuffer[ 0 ], rBuffer.size() );
}
@@ -1722,7 +1711,7 @@
sal_Size XclExpStream::SetSvStreamPos( sal_Size nPos )
{
DBG_ASSERT( !mbInRec, "XclExpStream::SetSvStreamPos - not allowed inside of a record" );
-@@ -327,3 +445,187 @@ void XclExpStream::WriteRawZeroBytes( sal_Size nBytes )
+@@ -356,6 +475,190 @@ void XclExpStream::WriteRawZeroBytes( sal_Size nBytes )
// ============================================================================
@@ -1910,6 +1899,9 @@
+ }
+ mnOldPos = nStrmPos;
+}
+ rtl::OUString XclXmlUtils::GetStreamName( const char* sStreamDir, const char* sStream, sal_Int32 nId )
+ {
+ rtl::OUStringBuffer sBuf;
diff --git sc/source/filter/excel/xicontent.cxx sc/source/filter/excel/xicontent.cxx
index 2e9d0d5..abc5d02 100644
--- sc/source/filter/excel/xicontent.cxx
@@ -2125,7 +2117,7 @@
// ============================================================================
diff --git sc/source/filter/excel/xilink.cxx sc/source/filter/excel/xilink.cxx
-index 502316c..02c1357 100644
+index 83907fc..9858377 100644
--- sc/source/filter/excel/xilink.cxx
+++ sc/source/filter/excel/xilink.cxx
@@ -263,6 +263,7 @@ void XclImpTabInfo::ReadTabid( XclImpStream& rStrm )
@@ -2248,10 +2240,10 @@
SetHasValidPassword( bValid );
diff --git sc/source/filter/excel/xlroot.cxx sc/source/filter/excel/xlroot.cxx
-index e4980d8..6d8357f 100644
+index bdc75df..8f5ddad 100644
--- sc/source/filter/excel/xlroot.cxx
+++ sc/source/filter/excel/xlroot.cxx
-@@ -91,8 +91,7 @@ XclRootData::XclRootData( XclBiff eBiff, SfxMedium& rMedium,
+@@ -92,8 +92,7 @@ XclRootData::XclRootData( XclBiff eBiff, SfxMedium& rMedium,
mxRD( new RootData ),//!
mnCharWidth( 110 ),
mnScTab( 0 ),
@@ -2261,7 +2253,7 @@
{
// default script type, e.g. for empty cells
switch( ScGlobal::GetDefaultScriptType() )
-@@ -198,17 +197,6 @@ void XclRoot::SetCharWidth( const XclFontData& rFontData )
+@@ -199,17 +198,6 @@ void XclRoot::SetCharWidth( const XclFontData& rFontData )
}
}
@@ -2300,10 +2292,10 @@
virtual void EndSheet( void );
virtual void PostDocLoad( void );
diff --git sc/source/filter/inc/excrecds.hxx sc/source/filter/inc/excrecds.hxx
-index 0d85d9b..78f60c0 100644
+index 048a910..bb6a26f 100644
--- sc/source/filter/inc/excrecds.hxx
+++ sc/source/filter/inc/excrecds.hxx
-@@ -244,10 +244,23 @@ class XclExpWindowProtection : public XclExpBoolRecord
+@@ -246,10 +246,23 @@ class XclExpWindowProtection : public XclExpBoolRecord
};
// EXC_ID_PROTECT Document Protection
@@ -2348,7 +2340,7 @@
void Array25( void ); // 0x21
void Rec1904( void ); // 0x22
diff --git sc/source/filter/inc/xcl97rec.hxx sc/source/filter/inc/xcl97rec.hxx
-index a3a3589..0074d6a 100644
+index 8d6ab02..7517cb9 100644
--- sc/source/filter/inc/xcl97rec.hxx
+++ sc/source/filter/inc/xcl97rec.hxx
@@ -35,6 +35,8 @@
@@ -2404,7 +2396,7 @@
};
-@@ -456,23 +452,24 @@ public:
+@@ -464,23 +460,24 @@ public:
virtual sal_Size GetLen() const;
};
@@ -2440,8 +2432,8 @@
class XclCalccount : public ExcRecord
{
-@@ -528,5 +525,162 @@ public:
- XclRefmode( const ScDocument& );
+@@ -533,6 +530,163 @@ public:
+ virtual void SaveXml( XclExpXmlStream& rStrm );
};
+// ============================================================================
@@ -2602,7 +2594,8 @@
+};
+
- #endif // _XCL97REC_HXX
+
+
diff --git sc/source/filter/inc/xeroot.hxx sc/source/filter/inc/xeroot.hxx
index 7e97e92..f4e1d25 100644
--- sc/source/filter/inc/xeroot.hxx
@@ -2621,12 +2614,12 @@
XclExpRootData::XclExpLinkMgrRef GetLocalLinkMgrRef() const;
diff --git sc/source/filter/inc/xestream.hxx sc/source/filter/inc/xestream.hxx
-index de3e58a..f485901 100644
+index bd957ca..3b49017 100644
--- sc/source/filter/inc/xestream.hxx
+++ sc/source/filter/inc/xestream.hxx
-@@ -35,6 +35,9 @@
-
+@@ -43,6 +43,9 @@
#include "xlstream.hxx"
+ #include "xestring.hxx"
+#include <svx/mscodec.hxx>
+#include <vector>
@@ -2634,7 +2627,7 @@
/* ============================================================================
Output stream class for Excel export
- CONTINUE record handling
-@@ -42,6 +45,8 @@ Output stream class for Excel export
+@@ -50,6 +53,8 @@ Output stream class for Excel export
============================================================================ */
class XclExpRoot;
@@ -2643,7 +2636,7 @@
/** This class is used to export Excel record streams.
@descr An instance is constructed with an SvStream and the maximum size of Excel
-@@ -100,14 +105,14 @@ public:
+@@ -108,14 +113,14 @@ public:
/** Sets data slice length. 0 = no slices. */
void SetSliceSize( sal_uInt16 nSize );
@@ -2666,7 +2659,7 @@
/** Writes nBytes bytes from memory. */
sal_Size Write( const void* pData, sal_Size nBytes );
-@@ -150,6 +155,14 @@ public:
+@@ -158,6 +163,14 @@ public:
/** Returns the absolute position of the system stream. */
inline sal_Size GetSvStreamPos() const { return mrStrm.Tell(); }
@@ -2681,7 +2674,7 @@
private:
/** Writes header data, internal setup. */
void InitRecord( sal_uInt16 nRecId );
-@@ -172,6 +185,9 @@ private:
+@@ -180,6 +193,9 @@ private:
SvStream& mrStrm; /// Reference to the system output stream.
const XclExpRoot& mrRoot; /// Filter root data.
@@ -2691,7 +2684,7 @@
// length data
sal_uInt16 mnMaxRecSize; /// Maximum size of record content.
sal_uInt16 mnMaxContSize; /// Maximum size of CONTINUE content.
-@@ -189,64 +205,51 @@ private:
+@@ -197,64 +213,51 @@ private:
// ----------------------------------------------------------------------------
@@ -2789,13 +2782,13 @@
+ bool mbValid;
+};
- #endif
+ // ----------------------------------------------------------------------------
diff --git sc/source/filter/inc/xetable.hxx sc/source/filter/inc/xetable.hxx
-index b565289..8efd337 100644
+index 2c03a30..3da59d2 100644
--- sc/source/filter/inc/xetable.hxx
+++ sc/source/filter/inc/xetable.hxx
-@@ -1069,7 +1069,5 @@ private:
+@@ -1088,7 +1088,5 @@ private:
XclExpDvalRef mxDval; /// Data validation with DVAL and DV records.
};
@@ -2967,10 +2960,10 @@
sal_Size mnOldPos; /// Last known stream position.
sal_uInt16 mnRecSize; /// Current record size.
diff --git sc/source/filter/inc/xlroot.hxx sc/source/filter/inc/xlroot.hxx
-index a09f5d0..38506c5 100644
+index 4c917eb..4705829 100644
--- sc/source/filter/inc/xlroot.hxx
+++ sc/source/filter/inc/xlroot.hxx
-@@ -91,7 +91,6 @@ struct XclRootData
+@@ -92,7 +92,6 @@ struct XclRootData
ScDocument& mrDoc; /// The source or destination document.
String maDocUrl; /// Document URL of imported/exported file.
String maBasePath; /// Base path of imported/exported file (path of maDocUrl).
@@ -2978,7 +2971,7 @@
rtl_TextEncoding meTextEnc; /// Text encoding to import/export byte strings.
LanguageType meSysLang; /// System language.
LanguageType meDocLang; /// Document language (import: from file, export: from system).
-@@ -115,7 +114,6 @@ struct XclRootData
+@@ -116,7 +115,6 @@ struct XclRootData
long mnCharWidth; /// Width of '0' in default font (twips).
SCTAB mnScTab; /// Current Calc sheet index.
const bool mbExport; /// false = Import, true = Export.
@@ -2986,7 +2979,7 @@
explicit XclRootData( XclBiff eBiff, SfxMedium& rMedium,
SotStorageRef xRootStrg, ScDocument& rDoc,
-@@ -181,8 +179,6 @@ public:
+@@ -184,8 +182,6 @@ public:
inline const String& GetDocUrl() const { return mrData.maDocUrl; }
/** Returns the base path of the imported/exported file. */
inline const String& GetBasePath() const { return mrData.maBasePath; }
@@ -2996,7 +2989,7 @@
/** Returns the OLE2 root storage of the imported/exported file.
@return Pointer to root storage or 0, if the file is a simple stream. */
diff --git sc/source/filter/starcalc/scflt.cxx sc/source/filter/starcalc/scflt.cxx
-index 9e2f57b..26cdd91 100644
+index 85cdd00..7d3eba6 100644
--- sc/source/filter/starcalc/scflt.cxx
+++ sc/source/filter/starcalc/scflt.cxx
@@ -81,6 +81,7 @@
@@ -3038,7 +3031,7 @@
rStream >> TabNo;
diff --git sc/source/filter/xcl97/XclExpChangeTrack.cxx sc/source/filter/xcl97/XclExpChangeTrack.cxx
-index 4aec3d6..5b90f44 100644
+index 76264e7..4318d4f 100644
--- sc/source/filter/xcl97/XclExpChangeTrack.cxx
+++ sc/source/filter/xcl97/XclExpChangeTrack.cxx
@@ -491,6 +491,7 @@ void XclExpChTrTabId::Copy( const XclExpChTrTabIdBuffer& rBuffer )
@@ -3050,10 +3043,10 @@
for( sal_uInt16* pElem = pBuffer; pElem < (pBuffer + nTabCount); pElem++ )
rStrm << *pElem;
diff --git sc/source/filter/xcl97/makefile.mk sc/source/filter/xcl97/makefile.mk
-index 9b081f3..e558ddd 100644
+index b3cd48f..d613347 100644
--- sc/source/filter/xcl97/makefile.mk
+++ sc/source/filter/xcl97/makefile.mk
-@@ -50,7 +50,6 @@ PROJECTPCHSOURCE=..\pch\filt_pch
+@@ -49,7 +49,6 @@ PROJECTPCHSOURCE=..\pch\filt_pch
# --- Files --------------------------------------------------------
SLOFILES = \
@@ -3062,7 +3055,7 @@
$(SLO)$/xcl97rec.obj \
$(SLO)$/XclImpChangeTrack.obj \
diff --git sc/source/filter/xcl97/xcl97rec.cxx sc/source/filter/xcl97/xcl97rec.cxx
-index bcf7d57..aa0fd88 100644
+index 7ef045c..16cedee 100644
--- sc/source/filter/xcl97/xcl97rec.cxx
+++ sc/source/filter/xcl97/xcl97rec.cxx
@@ -78,6 +78,7 @@
@@ -3071,9 +3064,9 @@
#include "patattr.hxx"
+#include "tabprotection.hxx"
- using ::rtl::OUString;
- using namespace ::com::sun::star;
-@@ -132,9 +133,9 @@ sal_Size XclMsodrawing_Base::GetDataLen() const
+ #include <oox/core/tokens.hxx>
+
+@@ -135,9 +136,9 @@ sal_Size XclMsodrawing_Base::GetDataLen() const
// --- class XclMsodrawinggroup --------------------------------------
@@ -3086,7 +3079,7 @@
{
if ( nEscherType )
{
-@@ -179,7 +180,7 @@ XclMsodrawinggroup::~XclMsodrawinggroup()
+@@ -182,7 +183,7 @@ XclMsodrawinggroup::~XclMsodrawinggroup()
}
@@ -3095,7 +3088,7 @@
{
DBG_ASSERT( GetEscherEx()->GetStreamPos() == GetEscherEx()->GetOffsetFromMap( nStartPos ),
"XclMsodrawinggroup::SaveCont: Escher stream position mismatch" );
-@@ -187,23 +188,11 @@ void XclMsodrawinggroup::SaveCont( XclExpStream& rStrm )
+@@ -190,23 +191,11 @@ void XclMsodrawinggroup::SaveCont( XclExpStream& rStrm )
}
@@ -3121,7 +3114,7 @@
{
if ( nEscherType )
{
-@@ -229,7 +218,7 @@ XclMsodrawing::~XclMsodrawing()
+@@ -232,7 +221,7 @@ XclMsodrawing::~XclMsodrawing()
}
@@ -3130,7 +3123,7 @@
{
DBG_ASSERT( GetEscherEx()->GetStreamPos() == GetEscherEx()->GetOffsetFromMap( nStartPos ),
"XclMsodrawing::SaveCont: Escher stream position mismatch" );
-@@ -237,16 +226,6 @@ void XclMsodrawing::SaveCont( XclExpStream& rStrm )
+@@ -240,16 +229,6 @@ void XclMsodrawing::SaveCont( XclExpStream& rStrm )
}
@@ -3147,7 +3140,7 @@
// --- class XclObjList ----------------------------------------------
-@@ -883,6 +862,7 @@ ExcBof8_Base::ExcBof8_Base()
+@@ -886,6 +865,7 @@ ExcBof8_Base::ExcBof8_Base()
void ExcBof8_Base::SaveCont( XclExpStream& rStrm )
{
@@ -3155,19 +3148,19 @@
rStrm << nVers << nDocType << nRupBuild << nRupYear
<< nFileHistory << nLowestBiffVer;
}
-@@ -936,7 +916,10 @@ void ExcBundlesheet8::SaveCont( XclExpStream& rStrm )
+@@ -945,7 +925,10 @@ void ExcBundlesheet8::SaveCont( XclExpStream& rStrm )
{
nOwnPos = rStrm.GetSvStreamPos();
// write dummy position, real position comes later
-- rStrm << sal_uInt32( 0 ) << nGrbit << aUnicodeName;
+- rStrm << sal_uInt32( 0 ) << nGrbit << GetName();
+ rStrm.DisableEncryption();
+ rStrm << sal_uInt32(0);
+ rStrm.EnableEncryption();
-+ rStrm << nGrbit << aUnicodeName;
++ rStrm << nGrbit << GetName();
}
-@@ -1177,33 +1160,73 @@ sal_Size ExcEScenarioManager::GetLen() const
+@@ -1253,33 +1236,73 @@ sal_Size ExcEScenarioManager::GetLen() const
return 8;
}
@@ -3192,6 +3185,8 @@
+ XclExpRecord( 0x0867, 23 )
{
- return nMyLen;
+-}
+-
+ static const XclExpTabProtectOption aTable[] =
+ {
+ { ScTableProtection::OBJECTS, 0x0001 },
@@ -3218,7 +3213,10 @@
+ ScTableProtection* pProtect = rRoot.GetDoc().GetTabProtection(nTab);
+ if (!pProtect)
+ return;
-+
+
+-const BYTE* XclProtection::GetData( void ) const
+-{
+- return pMyData;
+ for (int i = 0; aTable[i].nMask != 0x0000; ++i)
+ {
+ if ( pProtect->isOptionEnabled(aTable[i].eOption) )
@@ -3226,13 +3224,8 @@
+ }
}
--
--const BYTE* XclProtection::GetData( void ) const
+void XclExpSheetProtectOptions::WriteBody( XclExpStream& rStrm )
- {
-- return pMyData;
--}
--
++{
+ sal_uInt16 nBytes = 0x0867;
+ rStrm << nBytes;
@@ -3256,11 +3249,10 @@
-@@ -1291,3 +1314,250 @@ XclRefmode::XclRefmode( const ScDocument& rDoc ) :
- XclExpBoolRecord( 0x000F, rDoc.GetAddressConvention() != ScAddress::CONV_XL_R1C1 )
+@@ -1392,6 +1415,253 @@ XclRefmode::XclRefmode( const ScDocument& rDoc ) :
{
}
-+
+
+// ============================================================================
+
+XclExpFilePass::XclExpFilePass( const XclExpRoot& rRoot ) :
@@ -3507,8 +3499,12 @@
+{
+}
+
++
+ void XclRefmode::SaveXml( XclExpXmlStream& rStrm )
+ {
+ rStrm.WriteAttributes(
diff --git sc/source/filter/xml/xmlbodyi.cxx sc/source/filter/xml/xmlbodyi.cxx
-index 320c8ac..2105eec 100644
+index 4460413..fa993ef 100644
--- sc/source/filter/xml/xmlbodyi.cxx
+++ sc/source/filter/xml/xmlbodyi.cxx
@@ -52,6 +52,7 @@
@@ -3525,9 +3521,9 @@
+#include <memory>
+
+ using rtl::OUString;
using namespace com::sun::star;
using namespace xmloff::token;
- using ::rtl::OUString;
@@ -281,10 +284,17 @@ void ScXMLBodyContext::EndElement()
// #i37959# handle document protection after the sheet settings
if (bProtected)
@@ -3548,7 +3544,7 @@
}
GetScImport().UnlockSolarMutex();
diff --git sc/source/filter/xml/xmlexprt.cxx sc/source/filter/xml/xmlexprt.cxx
-index 3d5a0ef..906ecc8 100644
+index c83cbaa..b5e508a 100644
--- sc/source/filter/xml/xmlexprt.cxx
+++ sc/source/filter/xml/xmlexprt.cxx
@@ -68,6 +68,7 @@
@@ -3559,7 +3555,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlnmspe.hxx>
-@@ -1470,7 +1471,11 @@ void ScXMLExport::SetBodyAttributes()
+@@ -1471,7 +1472,11 @@ void ScXMLExport::SetBodyAttributes()
{
AddAttribute(XML_NAMESPACE_TABLE, XML_STRUCTURE_PROTECTED, XML_TRUE);
rtl::OUStringBuffer aBuffer;
@@ -3572,7 +3568,7 @@
if (aBuffer.getLength())
AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY, aBuffer.makeStringAndClear());
}
-@@ -1544,7 +1549,11 @@ void ScXMLExport::_ExportContent()
+@@ -1545,7 +1550,11 @@ void ScXMLExport::_ExportContent()
AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTED, XML_TRUE);
rtl::OUStringBuffer aBuffer;
if (pDoc)
@@ -3586,7 +3582,7 @@
AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY, aBuffer.makeStringAndClear());
}
diff --git sc/source/filter/xml/xmlsubti.cxx sc/source/filter/xml/xmlsubti.cxx
-index a268069..798f41f 100644
+index e3e3266..72ddec3 100644
--- sc/source/filter/xml/xmlsubti.cxx
+++ sc/source/filter/xml/xmlsubti.cxx
@@ -42,6 +42,7 @@
@@ -3608,7 +3604,7 @@
//------------------------------------------------------------------
using namespace com::sun::star;
-@@ -615,13 +620,10 @@ void ScMyTables::DeleteTable()
+@@ -616,13 +621,10 @@ void ScMyTables::DeleteTable()
{
uno::Sequence<sal_Int8> aPass;
SvXMLUnitConverter::decodeBase64(aPass, sPassword);
@@ -3627,7 +3623,7 @@
rImport.UnlockSolarMutex();
diff --git sc/source/ui/docshell/docfunc.cxx sc/source/ui/docshell/docfunc.cxx
-index 37d799c..969afad 100644
+index f917d6b..1178270 100644
--- sc/source/ui/docshell/docfunc.cxx
+++ sc/source/ui/docshell/docfunc.cxx
@@ -92,7 +92,12 @@
@@ -3643,7 +3639,7 @@
// STATIC DATA -----------------------------------------------------------
-@@ -2790,103 +2795,156 @@ BOOL ScDocFunc::RemovePageBreak( BOOL bColumn, const ScAddress& rPos,
+@@ -2791,103 +2796,156 @@ BOOL ScDocFunc::RemovePageBreak( BOOL bColumn, const ScAddress& rPos,
//------------------------------------------------------------------------
@@ -3879,7 +3875,7 @@
//------------------------------------------------------------------------
diff --git sc/source/ui/docshell/docsh.cxx sc/source/ui/docshell/docsh.cxx
-index 50c8344..257f21b 100644
+index 3742180..12ab184 100644
--- sc/source/ui/docshell/docsh.cxx
+++ sc/source/ui/docshell/docsh.cxx
@@ -79,11 +79,6 @@
@@ -3910,7 +3906,7 @@
#include "docsh.hxx"
#include "docshimp.hxx"
-@@ -1297,6 +1292,16 @@ BOOL __EXPORT ScDocShell::SaveAs( SfxMedium& rMedium )
+@@ -1298,6 +1293,16 @@ BOOL __EXPORT ScDocShell::SaveAs( SfxMedium& rMedium )
{
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::SaveAs" );
@@ -3927,7 +3923,7 @@
ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() );
// DoEnterHandler hier nicht (wegen AutoSave), ist im ExecuteSave
-@@ -1771,7 +1776,6 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt
+@@ -1772,7 +1777,6 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt
rStream.SetNumberFormatInt( nOldNumberFormatInt );
}
@@ -3935,7 +3931,7 @@
BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed )
{
RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::ConvertTo" );
-@@ -1824,15 +1828,40 @@ BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed )
+@@ -1826,15 +1830,40 @@ BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed )
aDocument.SetExtDocOptions( pExtDocOpt = new ScExtDocOptions );
pViewShell->GetViewData()->WriteExtOptions( *pExtDocOpt );
@@ -3996,7 +3992,7 @@
if (bRecord)
{
diff --git sc/source/ui/inc/docfunc.hxx sc/source/ui/inc/docfunc.hxx
-index 6d32644..bf9961e 100644
+index d8aed80..1bcca9c 100644
--- sc/source/ui/inc/docfunc.hxx
+++ sc/source/ui/inc/docfunc.hxx
@@ -47,7 +47,7 @@ class ScRangeName;
@@ -4425,7 +4421,7 @@
+
+#endif
diff --git sc/source/ui/inc/tabvwsh.hxx sc/source/ui/inc/tabvwsh.hxx
-index 85051b9..8ebd718 100644
+index 2f32d66..78f8178 100644
--- sc/source/ui/inc/tabvwsh.hxx
+++ sc/source/ui/inc/tabvwsh.hxx
@@ -38,6 +38,7 @@
@@ -4446,7 +4442,7 @@
};
diff --git sc/source/ui/inc/undotab.hxx sc/source/ui/inc/undotab.hxx
-index e965071..b4d7ca5 100644
+index 4171034..c2d4eb9 100644
--- sc/source/ui/inc/undotab.hxx
+++ sc/source/ui/inc/undotab.hxx
@@ -52,11 +52,15 @@
@@ -5770,7 +5766,7 @@
+
+
diff --git sc/source/ui/undo/undotab.cxx sc/source/ui/undo/undotab.cxx
-index 3585c74..0ac648d 100644
+index 049d99b..df3ab6f 100644
--- sc/source/ui/undo/undotab.cxx
+++ sc/source/ui/undo/undotab.cxx
@@ -61,6 +61,7 @@
@@ -6647,7 +6643,7 @@
{
}
-@@ -1573,17 +1632,17 @@ void ScUndoSetGrammar::DoChange( ScGrammar::Grammar eGrammar )
+@@ -1573,17 +1632,17 @@ void ScUndoSetGrammar::DoChange( formula::FormulaGrammar::Grammar eGrammar )
pDocShell->SetInUndo( FALSE );
}
@@ -6693,7 +6689,7 @@
}
+
diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
-index 9989ad6..0f48c9c 100644
+index 58c6edc..0dd7b47 100644
--- sc/source/ui/view/gridwin.cxx
+++ sc/source/ui/view/gridwin.cxx
@@ -140,6 +140,7 @@
@@ -6836,7 +6832,7 @@
ScRange aRange;
pDoc->GetEmbedded( aRange);
diff --git sc/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
-index 959b320..4b864a9 100644
+index 96c49b7..6a04815 100644
--- sc/source/ui/view/tabview3.cxx
+++ sc/source/ui/view/tabview3.cxx
@@ -79,6 +79,7 @@
@@ -6847,7 +6843,7 @@
#include <com/sun/star/chart2/data/HighlightedRange.hpp>
-@@ -942,6 +943,17 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -944,6 +945,17 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
ScDocument* pDoc = aViewData.GetDocument();
SCTAB nTab = aViewData.GetTabNo();
@@ -6865,7 +6861,7 @@
SCsCOL nOldX;
SCsROW nOldY;
SCsCOL nCurX;
-@@ -961,7 +973,7 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -963,7 +975,7 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
nCurY = (nMovY != 0) ? nOldY+nMovY : (SCsROW) aViewData.GetOldCurY();
}
@@ -6874,7 +6870,7 @@
aViewData.ResetOldCursor();
if (nMovX != 0 && VALIDCOLROW(nCurX,nCurY))
-@@ -970,15 +982,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -972,15 +984,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
do
{
BYTE nColFlags = pDoc->GetColFlags( nCurX, nTab );
@@ -6898,7 +6894,7 @@
}
else
{
-@@ -991,7 +1008,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -993,7 +1010,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
if (nMovX > 0) ++nCurX; else --nCurX;
}
}
@@ -6908,7 +6904,7 @@
if (pDoc->IsVerOverlapped( nCurX, nCurY, nTab ))
{
aViewData.SetOldCursor( nCurX,nCurY );
-@@ -1006,15 +1024,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -1008,15 +1026,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
do
{
BYTE nRowFlags = pDoc->GetRowFlags( nCurY, nTab );
@@ -6932,7 +6928,7 @@
}
else
{
-@@ -1027,7 +1050,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -1029,7 +1052,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
if (nMovY > 0) ++nCurY; else --nCurY;
}
}
@@ -6943,7 +6939,7 @@
{
aViewData.SetOldCursor( nCurX,nCurY );
diff --git sc/source/ui/view/tabvwsh3.cxx sc/source/ui/view/tabvwsh3.cxx
-index 0d08cc7..03e4414 100644
+index 914c68e..4a9288b 100644
--- sc/source/ui/view/tabvwsh3.cxx
+++ sc/source/ui/view/tabvwsh3.cxx
@@ -75,6 +75,8 @@
@@ -7261,7 +7257,7 @@
diff --git sc/source/ui/view/viewfun2.cxx sc/source/ui/view/viewfun2.cxx
-index a060e8d..5c27c7b 100644
+index bd29b5f..cb8c5cf 100644
--- sc/source/ui/view/viewfun2.cxx
+++ sc/source/ui/view/viewfun2.cxx
@@ -2150,7 +2150,7 @@ BOOL ScViewFunc::DeleteTables(const SvShorts &TheTabs, BOOL bRecord )
@@ -7283,10 +7279,10 @@
nDestTab1++;
}
diff --git sc/source/ui/view/viewfunc.cxx sc/source/ui/view/viewfunc.cxx
-index b00d762..ef0e0a0 100644
+index ca22f8c..92de1bf 100644
--- sc/source/ui/view/viewfunc.cxx
+++ sc/source/ui/view/viewfunc.cxx
-@@ -2403,6 +2403,36 @@ void ScViewFunc::ModifyCellSize( ScDirection eDir, BOOL bOptimal )
+@@ -2404,6 +2404,36 @@ void ScViewFunc::ModifyCellSize( ScDirection eDir, BOOL bOptimal )
ShowAllCursors();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]