Author: fschmid
Date: Sat Jul 27 09:23:02 2013
New Revision: 18400

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=18400
Log:
IDML Importer: MasterSpreads Part 2

Modified:
    trunk/Scribus/scribus/plugins/import/idml/importidml.cpp
    trunk/Scribus/scribus/plugins/import/idml/importidml.h

Modified: trunk/Scribus/scribus/plugins/import/idml/importidml.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18400&path=/trunk/Scribus/scribus/plugins/import/idml/importidml.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/import/idml/importidml.cpp (original)
+++ trunk/Scribus/scribus/plugins/import/idml/importidml.cpp Sat Jul 27 
09:23:02 2013
@@ -1533,7 +1533,26 @@
                                        baseY = m_Doc->currentPage()->yOffset() 
+ m_Doc->currentPage()->height() / 2.0;
                                        firstPage = false;
                                        if ((importerFlags & 
LoadSavePlugin::lfCreateDoc) && spe.hasAttribute("AppliedMaster"))
-                                               
m_Doc->applyMasterPage(spe.attribute("AppliedMaster"), 
m_Doc->currentPageNumber());
+                                       {
+                                               QString mSpr = 
spe.attribute("AppliedMaster");
+                                               if 
(masterSpreads.contains(mSpr))
+                                               {
+                                                       QString mp = 
CommonStrings::trMasterPageNormal;
+                                                       if (facingPages)
+                                                       {
+                                                               if ((pagecount 
% 2 == 0) && (masterSpreads[mSpr].count() > 0))
+                                                                       mp = 
mSpr + "_" + masterSpreads[mSpr][0];
+                                                               if ((pagecount 
% 2 == 1) && (masterSpreads[mSpr].count() > 1))
+                                                                       mp = 
mSpr + "_" + masterSpreads[mSpr][1];
+                                                       }
+                                                       else
+                                                       {
+                                                               if 
((masterSpreads[mSpr].count() > 0))
+                                                                       mp = 
mSpr + "_" + masterSpreads[mSpr][0];
+                                                       }
+                                                       
m_Doc->applyMasterPage(mp, m_Doc->currentPageNumber());
+                                               }
+                                       }
                                }
                        }
                        if ((facingPages) && (pagecount % 2 == 0))
@@ -1564,12 +1583,14 @@
                {
                        m_Doc->setMasterPageMode(true);
                        QString pageNam = e.attribute("Self");
+                       QStringList pages;
                        for(QDomNode sp = e.firstChild(); !sp.isNull(); sp = 
sp.nextSibling() )
                        {
                                QDomElement spe = sp.toElement();
                                if (spe.tagName() == "Page")
                                {
-                                       m_Doc->addMasterPage(mpagecount, 
pageNam);
+                                       m_Doc->addMasterPage(mpagecount, 
pageNam + "_" + spe.attribute("Self"));
+                                       pages.append(spe.attribute("Self"));
                                        m_Doc->currentPage()->MPageNam = "";
                                        m_Doc->view()->addPage(mpagecount, 
true);
                                        mpagecount++;
@@ -1577,6 +1598,7 @@
                                        baseY = m_Doc->currentPage()->yOffset() 
+ m_Doc->currentPage()->height() / 2.0;
                                }
                        }
+                       masterSpreads.insert(pageNam, pages);
                        if ((facingPages) && (mpagecount % 2 == 0))
                        {
                                baseX = m_Doc->currentPage()->xOffset() + 
m_Doc->currentPage()->width();

Modified: trunk/Scribus/scribus/plugins/import/idml/importidml.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18400&path=/trunk/Scribus/scribus/plugins/import/idml/importidml.h
==============================================================================
--- trunk/Scribus/scribus/plugins/import/idml/importidml.h (original)
+++ trunk/Scribus/scribus/plugins/import/idml/importidml.h Sat Jul 27 09:23:02 
2013
@@ -148,6 +148,7 @@
        QMap<QString, QStringList> styleParents;
        QMap<QString, QString> charStyleTranslate;
        QMap<QString, QMap<QString, QString> > fontTranslateMap;
+       QMap<QString, QStringList> masterSpreads;
        QString def_fillColor;
        QString def_fillGradient;
        QString def_strokeColor;


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to