diff options
| author | jghali <jghali@11d20701-8431-0410-a711-e3c959e3b870> | 2012-02-25 12:46:52 +0000 |
|---|---|---|
| committer | jghali <jghali@11d20701-8431-0410-a711-e3c959e3b870> | 2012-02-25 12:46:52 +0000 |
| commit | a1b009e0ebaf0b14889f81c40714428104d5a78f (patch) | |
| tree | bd5d8a23897f04aff4e4ce80ea244fdb7e8e780d /scribus/plugins | |
| parent | 683d0bf023a15085312404500d907fddcd2926a3 (diff) | |
| download | scribus-a1b009e0ebaf0b14889f81c40714428104d5a78f.tar.gz scribus-a1b009e0ebaf0b14889f81c40714428104d5a78f.tar.xz scribus-a1b009e0ebaf0b14889f81c40714428104d5a78f.zip | |
#10595: Imported page, in some case, loses its text frame style
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17334 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/plugins')
| -rw-r--r-- | scribus/plugins/fileloader/scribus134format/scribus134format.cpp | 54 | ||||
| -rw-r--r-- | scribus/plugins/fileloader/scribus134format/scribus134format.h | 6 |
2 files changed, 30 insertions, 30 deletions
diff --git a/scribus/plugins/fileloader/scribus134format/scribus134format.cpp b/scribus/plugins/fileloader/scribus134format/scribus134format.cpp index ad807be..21ded1f 100644 --- a/scribus/plugins/fileloader/scribus134format/scribus134format.cpp +++ b/scribus/plugins/fileloader/scribus134format/scribus134format.cpp @@ -1880,7 +1880,6 @@ void Scribus134Format::GetItemText(QDomElement *it, ScribusDoc *doc, PageItem* o if (it->hasAttribute("CULW")) newStyle.setUnderlineWidth(qRound(ScCLocale::toDoubleC(it->attribute("CULW"), -0.1) * 10)); - if (it->hasAttribute("CSTP")) newStyle.setStrikethruOffset(qRound(ScCLocale::toDoubleC(it->attribute("CSTP"), -0.1) * 10)); @@ -1890,7 +1889,7 @@ void Scribus134Format::GetItemText(QDomElement *it, ScribusDoc *doc, PageItem* o fixLegacyCharStyle(newStyle); if (impo && ab >= 0 && VorLFound) - last->ParaStyle = DoVorl[ab].toInt(); + last->ParaStyle = legacyStyleMap[ab]; else last->ParaStyle = pstylename; // end of legacy stuff @@ -1998,6 +1997,8 @@ void Scribus134Format::readParagraphStyle(ParagraphStyle& vg, const QDomElement& { if (m_Doc->styleExists(parentStyle)) vg.setParent(parentStyle); + else if (parStyleMap.contains(parentStyle)) + vg.setParent(parStyleMap.value(parentStyle)); else vg.setParent(CommonStrings::DefaultParagraphStyle); } @@ -2778,13 +2779,14 @@ bool Scribus134Format::loadPage(const QString & fileName, int pageNumber, bool M maxLayer = qMax(m_Doc->Layers[la2].LNr, maxLayer); maxLevel = qMax(m_Doc->Layers[la2].Level, maxLevel); } - DoVorl.clear(); - DoVorl[0] = "0"; - DoVorl[1] = "1"; - DoVorl[2] = "2"; - DoVorl[3] = "3"; - DoVorl[4] = "4"; - VorlC = 5; + parStyleMap.clear(); + legacyStyleMap.clear(); + legacyStyleMap[0] = "0"; + legacyStyleMap[1] = "1"; + legacyStyleMap[2] = "2"; + legacyStyleMap[3] = "3"; + legacyStyleMap[4] = "4"; + legacyStyleCount = 5; QDomDocument docu("scridoc"); QString f(readSLA(fileName)); if (f.isEmpty()) @@ -3448,12 +3450,10 @@ bool Scribus134Format::loadPage(const QString & fileName, int pageNumber, bool M void Scribus134Format::GetStyle(QDomElement *pg, ParagraphStyle *vg, StyleSet<ParagraphStyle> * tempStyles, ScribusDoc* doc, bool fl) { - bool fou(false); - QString tmV; + bool found(false); const StyleSet<ParagraphStyle> * docParagraphStyles = tempStyles? tempStyles : & doc->paragraphStyles(); - //PrefsManager* prefsManager=PrefsManager::instance(); readParagraphStyle(*vg, *pg, doc); - for (int xx=0; xx<docParagraphStyles->count(); ++xx) + for (int xx=0; xx < docParagraphStyles->count(); ++xx) { if (vg->name() == (*docParagraphStyles)[xx].name()) { @@ -3461,37 +3461,35 @@ void Scribus134Format::GetStyle(QDomElement *pg, ParagraphStyle *vg, StyleSet<Pa { if (fl) { - DoVorl[VorlC] = tmV.setNum(xx); - VorlC++; + legacyStyleMap[legacyStyleCount] = vg->name(); + legacyStyleCount++; } - fou = true; + found = true; } else { vg->setName("Copy of "+(*docParagraphStyles)[xx].name()); - fou = false; + found = false; } break; } } - if (!fou) + if (!found && fl) { for (int xx=0; xx< docParagraphStyles->count(); ++xx) { - if (vg->equiv((*docParagraphStyles)[xx]) && fl) + if (vg->equiv((*docParagraphStyles)[xx])) { + parStyleMap[vg->name()] = (*docParagraphStyles)[xx].name(); vg->setName((*docParagraphStyles)[xx].name()); - fou = true; -// if (fl) - { - DoVorl[VorlC] = tmV.setNum(xx); - VorlC++; - } + legacyStyleMap[legacyStyleCount] = vg->name(); + legacyStyleCount++; + found = true; break; } } } - if (!fou) + if (!found) { if (tempStyles) tempStyles->create(*vg); @@ -3503,8 +3501,8 @@ void Scribus134Format::GetStyle(QDomElement *pg, ParagraphStyle *vg, StyleSet<Pa } if (fl) { - DoVorl[VorlC] = tmV.setNum(docParagraphStyles->count()-1); - VorlC++; + legacyStyleMap[legacyStyleCount] = vg->name(); + legacyStyleCount++; } } } diff --git a/scribus/plugins/fileloader/scribus134format/scribus134format.h b/scribus/plugins/fileloader/scribus134format/scribus134format.h index 37fbc38..1895e77 100644 --- a/scribus/plugins/fileloader/scribus134format/scribus134format.h +++ b/scribus/plugins/fileloader/scribus134format/scribus134format.h @@ -93,6 +93,10 @@ class PLUGIN_API Scribus134Format : public LoadSavePlugin void WriteObjects(ScribusDoc *doc, ScXmlStreamWriter& docu, const QString& baseDir, QProgressBar *dia2, uint maxC, ItemSelection master, QList<PageItem*> *items = 0); void SetItemProps(ScXmlStreamWriter& docu, PageItem* item, const QString& baseDir, bool newFormat); + QMap<QString, QString> parStyleMap; + QMap<uint, QString> legacyStyleMap; + uint legacyStyleCount; + QMap<int, int> groupRemap; QMap<int, int> itemRemap; QMap<int, int> itemNext; @@ -103,8 +107,6 @@ class PLUGIN_API Scribus134Format : public LoadSavePlugin int itemCount; int itemCountM; int itemCountF; - QMap<uint,QString> DoVorl; - uint VorlC; }; extern "C" PLUGIN_API int scribus134format_getPluginAPIVersion(); |
