Commit 559c9e8c authored by Sergey.Konovalov's avatar Sergey.Konovalov Committed by Alexander.Trofimov

проблема: перетирались стили при открытии документа, если их Name отличался...

проблема: перетирались стили при открытии документа, если их Name отличался только заглавными буквами или пробелами.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@51592 954022d7-b5bf-4e40-9824-e11837661b57
parent 6b6be830
...@@ -4413,6 +4413,16 @@ function BinaryFileReader(doc, openParams) ...@@ -4413,6 +4413,16 @@ function BinaryFileReader(doc, openParams)
else else
numPr.NumId = 0; numPr.NumId = 0;
} }
var styles = this.Document.Styles.Style;
var stDefault = this.Document.Styles.Default;
//запоминаем имена стилей, которые были изначально в нашем документе, чтобы потом подменить их
var aStartDocStylesNames = {};
for(var stId in styles)
{
var style = styles[stId];
if(style && style.Name)
aStartDocStylesNames[style.Name.toLowerCase().replace(/\s/g,"")] = style;
}
//стили //стили
for(var i in this.oReadResult.styles) for(var i in this.oReadResult.styles)
{ {
...@@ -4421,19 +4431,15 @@ function BinaryFileReader(doc, openParams) ...@@ -4421,19 +4431,15 @@ function BinaryFileReader(doc, openParams)
var oNewId = elem.param; var oNewId = elem.param;
if(g_nCurFileVersion < 2) if(g_nCurFileVersion < 2)
oNewStyle.qFormat = true; oNewStyle.qFormat = true;
var styles = this.Document.Styles.Style;
var stDefault = this.Document.Styles.Default;
//такой код для сранения имен есть в DrawingDocument.js //такой код для сранения имен есть в DrawingDocument.js
// как только меняется DrawingDocument - меняется и код здесь. // как только меняется DrawingDocument - меняется и код здесь.
var sNewStyleName = oNewStyle.Name.toLowerCase().replace(" ", ""); var sNewStyleName = oNewStyle.Name.toLowerCase().replace(/\s/g,"");
var oStartDocStyle = aStartDocStylesNames[sNewStyleName];
//Удаляем стили с тем же именем //Удаляем стили с тем же именем
for(var stId in styles) if(oStartDocStyle)
{
var stObj = styles[stId];
var sStyleName = stObj.Name.toLowerCase().replace(" ", "");
if(sStyleName == sNewStyleName)
{ {
oNewStyle.Name = stObj.Name; var stId = oStartDocStyle.Get_Id();
oNewStyle.Name = oStartDocStyle.Name;
for(var stId2 in styles) for(var stId2 in styles)
{ {
var stObj2 = styles[stId2]; var stObj2 = styles[stId2];
...@@ -4463,15 +4469,12 @@ function BinaryFileReader(doc, openParams) ...@@ -4463,15 +4469,12 @@ function BinaryFileReader(doc, openParams)
if(stDefault.Hyperlink == stId) if(stDefault.Hyperlink == stId)
stDefault.Hyperlink = oNewId.id; stDefault.Hyperlink = oNewId.id;
delete styles[stId]; delete styles[stId];
break;
}
} }
if("Header" == oNewStyle.Name) if("header" == sNewStyleName)
stDefault.Header = oNewId.id; stDefault.Header = oNewId.id;
if("Footer" == oNewStyle.Name) if("footer" == sNewStyleName)
stDefault.Footer = oNewId.id; stDefault.Footer = oNewId.id;
if("Hyperlink" == oNewStyle.Name) if("hyperlink" == sNewStyleName)
stDefault.Hyperlink = oNewId.id; stDefault.Hyperlink = oNewId.id;
if(true == oNewId.def) if(true == oNewId.def)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment