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,57 +4431,50 @@ function BinaryFileReader(doc, openParams) ...@@ -4421,57 +4431,50 @@ 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 stId = oStartDocStyle.Get_Id();
var sStyleName = stObj.Name.toLowerCase().replace(" ", ""); oNewStyle.Name = oStartDocStyle.Name;
if(sStyleName == sNewStyleName) for(var stId2 in styles)
{ {
oNewStyle.Name = stObj.Name; var stObj2 = styles[stId2];
for(var stId2 in styles) if (stObj2.BasedOn == stId)
{ stObj2.BasedOn = oNewId.id;
var stObj2 = styles[stId2]; if (stObj2.Next == stId)
if (stObj2.BasedOn == stId) stObj2.Next = oNewId.id;
stObj2.BasedOn = oNewId.id; }
if (stObj2.Next == stId) if(stDefault.Paragraph == stId)
stObj2.Next = oNewId.id; stDefault.Paragraph = oNewId.id;
} if(stDefault.Numbering == stId)
if(stDefault.Paragraph == stId) stDefault.Numbering = oNewId.id;
stDefault.Paragraph = oNewId.id; if(stDefault.Table == stId)
if(stDefault.Numbering == stId) stDefault.Table = oNewId.id;
stDefault.Numbering = oNewId.id; for(var j = 0, length2 = stDefault.Headings.length; j < length2; ++j)
if(stDefault.Table == stId) {
stDefault.Table = oNewId.id; var sHeading = stDefault.Headings[j];
for(var j = 0, length2 = stDefault.Headings.length; j < length2; ++j) if(sHeading == stId)
{ stDefault.Headings[j] = oNewId.id;
var sHeading = stDefault.Headings[j];
if(sHeading == stId)
stDefault.Headings[j] = oNewId.id;
}
if(stDefault.ParaList == stId)
stDefault.ParaList = oNewId.id;
if(stDefault.Header == stId)
stDefault.Header = oNewId.id;
if(stDefault.Footer == stId)
stDefault.Footer = oNewId.id;
if(stDefault.Hyperlink == stId)
stDefault.Hyperlink = oNewId.id;
delete styles[stId];
break;
} }
if(stDefault.ParaList == stId)
stDefault.ParaList = oNewId.id;
if(stDefault.Header == stId)
stDefault.Header = oNewId.id;
if(stDefault.Footer == stId)
stDefault.Footer = oNewId.id;
if(stDefault.Hyperlink == stId)
stDefault.Hyperlink = oNewId.id;
delete styles[stId];
} }
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