Author: jghali
Date: Sat Nov 21 17:20:12 2020
New Revision: 24269

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24269
Log:
Fix new styles not appearing in combos and style manager after copying text 
from another doc

Modified:
    trunk/Scribus/scribus/scribus.cpp

Modified: trunk/Scribus/scribus/scribus.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24269&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp   (original)
+++ trunk/Scribus/scribus/scribus.cpp   Sat Nov 21 17:20:12 2020
@@ -4626,16 +4626,6 @@
                        m_undoManager->setUndoEnabled(false);
                        QString buffer  = ScMimeData::clipboardScribusElem();
                        slotElemRead(buffer, 0, 0, false, true, doc, view);
-                       // update style lists:
-                       m_styleManager->setDoc(doc);
-                       propertiesPalette->unsetDoc();
-                       propertiesPalette->setDoc(doc);
-                       contentPalette->unsetDoc();
-                       contentPalette->setDoc(doc);
-                       marksManager->setDoc(doc);
-                       nsEditor->setDoc(doc);
-                       symbolPalette->unsetDoc();
-                       symbolPalette->setDoc(doc);
 
                        doc->SnapGrid = savedAlignGrid;
                        doc->SnapGuides = savedAlignGuides;
@@ -4683,8 +4673,6 @@
                        }
                        currItem->itemText.insertObject(fIndex);
                        doc->m_Selection->delaySignalsOff();
-                       inlinePalette->unsetDoc();
-                       inlinePalette->setDoc(doc);
                }
                else if (ScMimeData::clipboardHasKnownData())
                {
@@ -4707,15 +4695,6 @@
                                double y = (view->contentsY() / view->scale()) 
+ ((view->visibleHeight() / 2.0) / view->scale()) - (retObj->height() / 2.0);
                                
retObj->setTextFlowMode(PageItem::TextFlowUsesBoundingBox);
                                retObj->setXYPos(x, y, true);
-                               m_styleManager->setDoc(doc);
-                               propertiesPalette->unsetDoc();
-                               propertiesPalette->setDoc(doc);
-                               contentPalette->unsetDoc();
-                               contentPalette->setDoc(doc);
-                               marksManager->setDoc(doc);
-                               nsEditor->setDoc(doc);
-                               symbolPalette->unsetDoc();
-                               symbolPalette->setDoc(doc);
                                doc->SnapGrid = savedAlignGrid;
                                doc->SnapGuides = savedAlignGuides;
                                doc->SnapElement = savedAlignElement;
@@ -4775,76 +4754,76 @@
                        selItem->asTable()->update();
                else
                        currItem->update();
-               view->DrawNew();
-       }
-       else
-       {
-               if (ScMimeData::clipboardHasScribusElem() || 
ScMimeData::clipboardHasScribusFragment() || internalCopy)
-               {
-                       view->deselectItems(true);
-                       int docItemCount = doc->Items->count();
-                       bool savedAlignGrid = doc->SnapGrid;
-                       bool savedAlignGuides = doc->SnapGuides;
-                       bool savedAlignElement = doc->SnapElement;
-                       doc->SnapGrid = false;
-                       doc->SnapGuides = false;
-                       doc->SnapElement = false;
-                       if (internalCopy)
-                               slotElemRead(internalCopyBuffer, 
doc->currentPage()->xOffset(), doc->currentPage()->yOffset(), false, true, doc, 
view);
-                       else
-                       {
-                               QString buffer  = 
ScMimeData::clipboardScribusElem();
-                               slotElemRead(buffer, 
doc->currentPage()->xOffset(), doc->currentPage()->yOffset(), false, true, doc, 
view);
-                       }
-                       // update style lists:
-                       m_styleManager->setDoc(doc);
-                       propertiesPalette->unsetDoc();
-                       propertiesPalette->setDoc(doc);
-                       contentPalette->unsetDoc();
-                       contentPalette->setDoc(doc);
-                       marksManager->setDoc(doc);
-                       nsEditor->setDoc(doc);
-                       symbolPalette->unsetDoc();
-                       symbolPalette->setDoc(doc);
-                       inlinePalette->unsetDoc();
-                       inlinePalette->setDoc(doc);
-
-                       doc->SnapGrid = savedAlignGrid;
-                       doc->SnapGuides = savedAlignGuides;
-                       doc->SnapElement = savedAlignElement;
-                       doc->m_Selection->delaySignalsOn();
-                       for (int i = docItemCount; i < doc->Items->count(); ++i)
-                       {
-                               PageItem* currItem = doc->Items->at(i);
-                               if (currItem->isBookmark)
-                                       AddBookMark(currItem);
-                               doc->m_Selection->addItem(currItem);
-                       }
-                       doc->m_Selection->delaySignalsOff();
-                       if (doc->m_Selection->count() > 1)
-                               doc->m_Selection->setGroupRect();
-               }
-               else if (ScMimeData::clipboardHasKnownData())
-               {
-                       QString ext = ScMimeData::clipboardKnownDataExt();
-                       QByteArray bitsBits = 
ScMimeData::clipboardKnownDataData();
-                       double x0 = (view->contentsX() / view->scale()) + 
((view->visibleWidth() / 2.0) / view->scale());
-                       double y0 = (view->contentsY() / view->scale()) + 
((view->visibleHeight() / 2.0) / view->scale());
-                       PageItem *retObj = getVectorFileFromData(doc, bitsBits, 
ext, x0, y0);
-                       if (retObj != nullptr)
-                       {
-                               double x = (view->contentsX() / view->scale()) 
+ ((view->visibleWidth() / 2.0) / view->scale()) - (retObj->width() / 2.0);
-                               double y = (view->contentsY() / view->scale()) 
+ ((view->visibleHeight() / 2.0) / view->scale()) - (retObj->height() / 2.0);
-                               
retObj->setTextFlowMode(PageItem::TextFlowUsesBoundingBox);
-                               retObj->setXYPos(x, y, true);
-                       }
-               }
-               view->DrawNew();
+       }
+       else if (ScMimeData::clipboardHasScribusElem() || 
ScMimeData::clipboardHasScribusFragment() || internalCopy)
+       {
+               view->deselectItems(true);
+               int docItemCount = doc->Items->count();
+               bool savedAlignGrid = doc->SnapGrid;
+               bool savedAlignGuides = doc->SnapGuides;
+               bool savedAlignElement = doc->SnapElement;
+               doc->SnapGrid = false;
+               doc->SnapGuides = false;
+               doc->SnapElement = false;
+               if (internalCopy)
+                       slotElemRead(internalCopyBuffer, 
doc->currentPage()->xOffset(), doc->currentPage()->yOffset(), false, true, doc, 
view);
+               else
+               {
+                       QString buffer  = ScMimeData::clipboardScribusElem();
+                       slotElemRead(buffer, doc->currentPage()->xOffset(), 
doc->currentPage()->yOffset(), false, true, doc, view);
+               }
+
+               doc->SnapGrid = savedAlignGrid;
+               doc->SnapGuides = savedAlignGuides;
+               doc->SnapElement = savedAlignElement;
+               doc->m_Selection->delaySignalsOn();
+               for (int i = docItemCount; i < doc->Items->count(); ++i)
+               {
+                       PageItem* currItem = doc->Items->at(i);
+                       if (currItem->isBookmark)
+                               AddBookMark(currItem);
+                       doc->m_Selection->addItem(currItem);
+               }
+               doc->m_Selection->delaySignalsOff();
+               if (doc->m_Selection->count() > 1)
+                       doc->m_Selection->setGroupRect();
+       }
+       else if (ScMimeData::clipboardHasKnownData())
+       {
+               QString ext = ScMimeData::clipboardKnownDataExt();
+               QByteArray bitsBits = ScMimeData::clipboardKnownDataData();
+               double x0 = (view->contentsX() / view->scale()) + 
((view->visibleWidth() / 2.0) / view->scale());
+               double y0 = (view->contentsY() / view->scale()) + 
((view->visibleHeight() / 2.0) / view->scale());
+               PageItem *retObj = getVectorFileFromData(doc, bitsBits, ext, 
x0, y0);
+               if (retObj != nullptr)
+               {
+                       double x = (view->contentsX() / view->scale()) + 
((view->visibleWidth() / 2.0) / view->scale()) - (retObj->width() / 2.0);
+                       double y = (view->contentsY() / view->scale()) + 
((view->visibleHeight() / 2.0) / view->scale()) - (retObj->height() / 2.0);
+                       
retObj->setTextFlowMode(PageItem::TextFlowUsesBoundingBox);
+                       retObj->setXYPos(x, y, true);
+               }
        }
        if (activeTransaction)
                activeTransaction.commit();
        if (doc->notesChanged())
                doc->notesFramesUpdate();
+       
+       // update style lists:
+       requestUpdate(reqColorsUpdate | reqArrowStylesUpdate | 
reqLineStylesUpdate | reqTextStylesUpdate);
+
+       m_styleManager->setDoc(doc);
+       propertiesPalette->unsetDoc();
+       propertiesPalette->setDoc(doc);
+       contentPalette->unsetDoc();
+       contentPalette->setDoc(doc);
+       marksManager->setDoc(doc);
+       nsEditor->setDoc(doc);
+       symbolPalette->unsetDoc();
+       symbolPalette->setDoc(doc);
+       inlinePalette->unsetDoc();
+       inlinePalette->setDoc(doc);
+
+       view->DrawNew();
        slotDocCh(false);
 }
 


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

Reply via email to