bool EPSPlug::import(QString fName, const TransactionSettings &trSettings, int flags, bool showProgress) { #ifdef Q_OS_OSX #if QT_VERSION >= 0x050300 showProgress = false; #endif #endif bool success = false; interactive = (flags & LoadSavePlugin::lfInteractive); cancel = false; double x, y, b, h; bool ret = false; bool found = false; CustColors.clear(); QFileInfo fi = QFileInfo(fName); QString ext = fi.suffix().toLower(); if ( !ScCore->usingGUI() ) { interactive = false; showProgress = false; } if ( showProgress ) { ScribusMainWindow* mw=(m_Doc==0) ? ScCore->primaryMainWindow() : m_Doc->scMW(); progressDialog = new MultiProgressDialog( tr("Importing: %1").arg(fi.fileName()), CommonStrings::tr_Cancel, mw); QStringList barNames, barTexts; barNames << "GI"; barTexts << tr("Analyzing PostScript:"); QList<bool> barsNumeric; barsNumeric << false; progressDialog->addExtraProgressBars(barNames, barTexts, barsNumeric); progressDialog->setOverallTotalSteps(3); progressDialog->setOverallProgress(0); progressDialog->setProgress("GI", 0); progressDialog->show(); connect(progressDialog, SIGNAL(canceled()), this, SLOT(cancelRequested())); qApp->processEvents(); } else { progressDialog = NULL; } /* Set default Page to size defined in Preferences */ x = 0.0; y = 0.0; b = PrefsManager::instance()->appPrefs.docSetupPrefs.pageWidth; h = PrefsManager::instance()->appPrefs.docSetupPrefs.pageHeight; if (extensionIndicatesEPSorPS(ext)) { QString tmp, BBox, tmp2, FarNam; ScColor cc; QFile f(fName); if (f.open(QIODevice::ReadOnly)) { /* Try to find Bounding Box */ QDataStream ts(&f); while (!ts.atEnd()) { tmp = readLinefromDataStream(ts); if (tmp.startsWith("%%BoundingBox:")) { found = true; BBox = tmp.remove("%%BoundingBox:"); } if (!found) { if (tmp.startsWith("%%BoundingBox")) { found = true; BBox = tmp.remove("%%BoundingBox"); } } if (tmp.startsWith("%%EndComments")) break; } f.close(); if (found) { QStringList bb = BBox.split(" ", QString::SkipEmptyParts); if (bb.count() == 4) { x = ScCLocale::toDoubleC(bb[0]); y = ScCLocale::toDoubleC(bb[1]); b = ScCLocale::toDoubleC(bb[2]); h = ScCLocale::toDoubleC(bb[3]); } } } importColorsFromFile(fName, CustColors); } #ifdef HAVE_PODOFO else if (extensionIndicatesPDF(ext)) { try { PoDoFo::PdfError::EnableDebug( false ); #if (PODOFO_VERSION == 0 && PODOFO_MINOR > 6) PoDoFo::PdfError::EnableLogging( false ); #endif #if (PODOFO_VERSION == 0 && PODOFO_MINOR == 5 && PODOFO_REVISION == 99) || PODOFO_MINOR > 5 PoDoFo::PdfMemDocument doc( fName.toLocal8Bit().data() ); #else PoDoFo::PdfDocument doc( fName.toLocal8Bit().data() ); #endif PoDoFo::PdfPage *curPage = doc.GetPage(0); if (curPage != NULL) { PoDoFo::PdfRect rect = curPage->GetMediaBox(); b = rect.GetWidth() - rect.GetLeft(); h = rect.GetHeight() - rect.GetBottom(); } } catch(PoDoFo::PdfError& e) { qDebug("%s", "PoDoFo error while reading page size!"); e.PrintErrorMsg(); } } #endif baseX = 0; baseY = 0; if (!interactive || (flags & LoadSavePlugin::lfInsertPage)) { m_Doc->setPage(b-x, h-y, 0, 0, 0, 0, 0, 0, false, false); m_Doc->addPage(0); m_Doc->view()->addPage(0, true); baseX = 0; baseY = 0; } else { if (!m_Doc || (flags & LoadSavePlugin::lfCreateDoc)) { m_Doc=ScCore->primaryMainWindow()->doFileNew(b-x, h-y, 0, 0, 0, 0, 0, 0, false, false, 0, false, 0, 1, "Custom", true); ScCore->primaryMainWindow()->HaveNewDoc(); ret = true; baseX = 0; baseY = 0; } } if ((!ret) && (interactive)) { baseX = m_Doc->currentPage()->xOffset(); baseY = m_Doc->currentPage()->yOffset(); } if ((ret) || (!interactive)) { if (b-x > h-y) m_Doc->setPageOrientation(1); else m_Doc->setPageOrientation(0); m_Doc->setPageSize("Custom"); } ColorList::Iterator it; for (it = CustColors.begin(); it != CustColors.end(); ++it) { if (!m_Doc->PageColors.contains(it.key())) m_Doc->PageColors.insert(it.key(), it.value()); } boundingBoxRect.addRect(0, 0, b-x, h-y); Elements.clear(); m_Doc->setLoading(true); m_Doc->DoDrawing = false; if (!(flags & LoadSavePlugin::lfLoadAsPattern)) m_Doc->view()->updatesOn(false); m_Doc->scMW()->setScriptRunning(true); qApp->changeOverrideCursor(QCursor(Qt::WaitCursor)); QString CurDirP = QDir::currentPath(); QDir::setCurrent(fi.path()); if (convert(fName, x, y, b, h)) { // m_Doc->m_Selection->clear(); tmpSel->clear(); QDir::setCurrent(CurDirP); // if ((Elements.count() > 1) && (interactive)) if (Elements.count() > 1) m_Doc->groupObjectsList(Elements); m_Doc->DoDrawing = true; m_Doc->scMW()->setScriptRunning(false); m_Doc->setLoading(false); qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); if ((Elements.count() > 0) && (!ret) && (interactive)) { if (flags & LoadSavePlugin::lfScripted) { bool loadF = m_Doc->isLoading(); m_Doc->setLoading(false); m_Doc->changed(); m_Doc->setLoading(loadF); if (!(flags & LoadSavePlugin::lfLoadAsPattern)) { m_Doc->m_Selection->delaySignalsOn(); for (int dre=0; dre<Elements.count(); ++dre) { m_Doc->m_Selection->addItem(Elements.at(dre), true); } m_Doc->m_Selection->delaySignalsOff(); m_Doc->m_Selection->setGroupRect(); m_Doc->view()->updatesOn(true); } } else { m_Doc->DragP = true; m_Doc->DraggedElem = 0; m_Doc->DragElements.clear(); m_Doc->m_Selection->delaySignalsOn(); for (int dre=0; dre<Elements.count(); ++dre) { tmpSel->addItem(Elements.at(dre), true); } tmpSel->setGroupRect(); ScriXmlDoc *ss = new ScriXmlDoc(); ScElemMimeData* md = new ScElemMimeData(); md->setScribusElem(ss->WriteElem(m_Doc, tmpSel)); delete ss; /*#ifndef Q_WS_MAC*/ // see #2196 m_Doc->itemSelection_DeleteItem(tmpSel); /*#else qDebug() << "psimport: leaving items on page"; #endif*/ m_Doc->view()->updatesOn(true); m_Doc->m_Selection->delaySignalsOff(); // We must copy the TransationSettings object as it is owned // by handleObjectImport method afterwards TransactionSettings* transacSettings = new TransactionSettings(trSettings); m_Doc->view()->handleObjectImport(md, transacSettings); m_Doc->DragP = false; m_Doc->DraggedElem = 0; m_Doc->DragElements.clear(); } } else { m_Doc->changed(); m_Doc->reformPages(); if (!(flags & LoadSavePlugin::lfLoadAsPattern)) m_Doc->view()->updatesOn(true); } success = true; } else { QDir::setCurrent(CurDirP); m_Doc->DoDrawing = true; m_Doc->scMW()->setScriptRunning(false); m_Doc->view()->updatesOn(true); qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); } if (interactive) m_Doc->setLoading(false); //CB If we have a gui we must refresh it if we have used the progressbar if (!(flags & LoadSavePlugin::lfLoadAsPattern)) { if ((showProgress) && (!interactive)) m_Doc->view()->DrawNew(); } return success; }
bool PdfPlug::import(QString fNameIn, const TransactionSettings& trSettings, int flags, bool showProgress) { QString fName = fNameIn; bool success = false; interactive = (flags & LoadSavePlugin::lfInteractive); importerFlags = flags; cancel = false; double b, h; bool ret = false; QFileInfo fi = QFileInfo(fName); if ( !ScCore->usingGUI() ) { interactive = false; showProgress = false; } baseFile = QDir::cleanPath(QDir::toNativeSeparators(fi.absolutePath()+"/")); if ( showProgress ) { ScribusMainWindow* mw=(m_Doc==0) ? ScCore->primaryMainWindow() : m_Doc->scMW(); progressDialog = new MultiProgressDialog( tr("Importing: %1").arg(fi.fileName()), CommonStrings::tr_Cancel, mw ); QStringList barNames, barTexts; barNames << "GI"; barTexts << tr("Analyzing File:"); QList<bool> barsNumeric; barsNumeric << false; progressDialog->addExtraProgressBars(barNames, barTexts, barsNumeric); progressDialog->setOverallTotalSteps(3); progressDialog->setOverallProgress(0); progressDialog->setProgress("GI", 0); progressDialog->show(); connect(progressDialog, SIGNAL(canceled()), this, SLOT(cancelRequested())); qApp->processEvents(); } else progressDialog = NULL; /* Set default Page to size defined in Preferences */ b = 0.0; h = 0.0; if (progressDialog) { progressDialog->setOverallProgress(1); qApp->processEvents(); } if (b == 0.0) b = PrefsManager::instance()->appPrefs.docSetupPrefs.pageWidth; if (h == 0.0) h = PrefsManager::instance()->appPrefs.docSetupPrefs.pageHeight; docWidth = b; docHeight = h; baseX = 0; baseY = 0; if (!interactive || (flags & LoadSavePlugin::lfInsertPage)) { m_Doc->setPage(docWidth, docHeight, 0, 0, 0, 0, 0, 0, false, false); m_Doc->addPage(0); m_Doc->view()->addPage(0, true); baseX = 0; baseY = 0; } else { if (!m_Doc || (flags & LoadSavePlugin::lfCreateDoc)) { m_Doc=ScCore->primaryMainWindow()->doFileNew(docWidth, docHeight, 0, 0, 0, 0, 0, 0, false, 0, 0, 0, 0, 1, "Custom", true); ScCore->primaryMainWindow()->HaveNewDoc(); ret = true; baseX = 0; baseY = 0; baseX = m_Doc->currentPage()->xOffset(); baseY = m_Doc->currentPage()->yOffset(); } } if ((!ret) && (interactive)) { baseX = m_Doc->currentPage()->xOffset(); baseY = m_Doc->currentPage()->yOffset(); } if ((ret) || (!interactive)) { if (docWidth > docHeight) m_Doc->setPageOrientation(1); else m_Doc->setPageOrientation(0); m_Doc->setPageSize("Custom"); } Elements.clear(); m_Doc->setLoading(true); m_Doc->DoDrawing = false; if (!(flags & LoadSavePlugin::lfLoadAsPattern)) m_Doc->view()->updatesOn(false); m_Doc->scMW()->setScriptRunning(true); qApp->changeOverrideCursor(QCursor(Qt::WaitCursor)); QString CurDirP = QDir::currentPath(); QDir::setCurrent(fi.path()); if (convert(fName)) { tmpSele->clear(); QDir::setCurrent(CurDirP); if ((Elements.count() > 1) && (!(importerFlags & LoadSavePlugin::lfCreateDoc))) m_Doc->groupObjectsList(Elements); m_Doc->DoDrawing = true; m_Doc->scMW()->setScriptRunning(false); m_Doc->setLoading(false); qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); if ((Elements.count() > 0) && (!ret) && (interactive)) { if (flags & LoadSavePlugin::lfScripted) { bool loadF = m_Doc->isLoading(); m_Doc->setLoading(false); m_Doc->changed(); m_Doc->setLoading(loadF); if (!(flags & LoadSavePlugin::lfLoadAsPattern)) { m_Doc->m_Selection->delaySignalsOn(); for (int dre=0; dre<Elements.count(); ++dre) { m_Doc->m_Selection->addItem(Elements.at(dre), true); } m_Doc->m_Selection->delaySignalsOff(); m_Doc->m_Selection->setGroupRect(); m_Doc->view()->updatesOn(true); } } else { m_Doc->DragP = true; m_Doc->DraggedElem = 0; m_Doc->DragElements.clear(); m_Doc->m_Selection->delaySignalsOn(); for (int dre=0; dre<Elements.count(); ++dre) { tmpSele->addItem(Elements.at(dre), true); } tmpSele->setGroupRect(); ScriXmlDoc *ss = new ScriXmlDoc(); ScElemMimeData* md = new ScElemMimeData(); md->setScribusElem(ss->WriteElem(m_Doc, tmpSele)); delete ss; m_Doc->itemSelection_DeleteItem(tmpSele); m_Doc->view()->updatesOn(true); m_Doc->m_Selection->delaySignalsOff(); // We must copy the TransationSettings object as it is owned // by handleObjectImport method afterwards TransactionSettings* transacSettings = new TransactionSettings(trSettings); m_Doc->view()->handleObjectImport(md, transacSettings); m_Doc->DragP = false; m_Doc->DraggedElem = 0; m_Doc->DragElements.clear(); } } else { m_Doc->changed(); m_Doc->reformPages(); if (!(flags & LoadSavePlugin::lfLoadAsPattern)) m_Doc->view()->updatesOn(true); } success = true; } else { QDir::setCurrent(CurDirP); m_Doc->DoDrawing = true; m_Doc->scMW()->setScriptRunning(false); if (!(flags & LoadSavePlugin::lfLoadAsPattern)) m_Doc->view()->updatesOn(true); qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); } if (interactive) m_Doc->setLoading(false); //CB If we have a gui we must refresh it if we have used the progressbar if (!(flags & LoadSavePlugin::lfLoadAsPattern)) { if ((showProgress) && (!interactive)) m_Doc->view()->DrawNew(); } return success; }
bool XfigPlug::import(QString fNameIn, const TransactionSettings& trSettings, int flags, bool showProgress) { QString fName = fNameIn; bool success = false; interactive = (flags & LoadSavePlugin::lfInteractive); importerFlags = flags; cancel = false; double x, y, b, h; bool ret = false; CustColors.clear(); importedColors.insert(0, "Black"); importedColors.insert(1, "Blue"); importedColors.insert(2, "Green"); importedColors.insert(3, "Cyan"); importedColors.insert(4, "Red"); importedColors.insert(5, "Magenta"); importedColors.insert(6, "Yellow"); importedColors.insert(7, "White"); importedColors.insert(8, "Blue4"); importedColors.insert(9, "Blue3"); importedColors.insert(10, "Blue2"); importedColors.insert(11, "LtBlue"); importedColors.insert(12, "Green4"); importedColors.insert(13, "Green3"); importedColors.insert(14, "Green2"); importedColors.insert(15, "Cyan4"); importedColors.insert(16, "Cyan3"); importedColors.insert(17, "Cyan2"); importedColors.insert(18, "Red4"); importedColors.insert(19, "Red3"); importedColors.insert(20, "Red2"); importedColors.insert(21, "Magenta4"); importedColors.insert(22, "Magenta3"); importedColors.insert(23, "Magenta2"); importedColors.insert(24, "Brown4"); importedColors.insert(25, "Brown3"); importedColors.insert(26, "Brown2"); importedColors.insert(27, "Pink4"); importedColors.insert(28, "Pink3"); importedColors.insert(29, "Pink2"); importedColors.insert(30, "Pink"); importedColors.insert(31, "Gold"); CustColors.insert("Blue", ScColor(255, 0, 0, 0)); CustColors.insert("Blue4", ScColor(0, 0, 144)); CustColors.insert("Blue3", ScColor(0, 0, 176)); CustColors.insert("Blue2", ScColor(0, 0, 208)); CustColors.insert("LtBlue", ScColor(135, 206, 255)); CustColors.insert("Cyan", ScColor(255, 0, 0, 0)); CustColors.insert("Cyan4", ScColor(0, 144, 144)); CustColors.insert("Cyan3", ScColor(0, 176, 176)); CustColors.insert("Cyan2", ScColor(0, 208, 208)); CustColors.insert("Green", ScColor(255, 0, 255, 0)); CustColors.insert("Green4", ScColor(0, 144, 0)); CustColors.insert("Green3", ScColor(0, 176, 0)); CustColors.insert("Green2", ScColor(0, 208, 0)); CustColors.insert("Red", ScColor(0, 255, 255, 0)); CustColors.insert("Red4", ScColor(144, 0, 0)); CustColors.insert("Red3", ScColor(176, 0, 0)); CustColors.insert("Red2", ScColor(208, 0, 0)); CustColors.insert("Yellow", ScColor(0, 0, 255, 0)); CustColors.insert("Magenta", ScColor(0, 255, 0, 0)); CustColors.insert("Magenta4", ScColor(144, 0, 144)); CustColors.insert("Magenta3", ScColor(176, 0, 176)); CustColors.insert("Magenta2", ScColor(208, 0, 208)); CustColors.insert("Brown4", ScColor(128, 48, 0)); CustColors.insert("Brown3", ScColor(160, 64, 0)); CustColors.insert("Brown2", ScColor(192, 96, 0)); CustColors.insert("Pink4", ScColor(255, 128, 128)); CustColors.insert("Pink3", ScColor(255, 160, 160)); CustColors.insert("Pink2", ScColor(255, 192, 192)); CustColors.insert("Pink", ScColor(255, 224, 224)); CustColors.insert("Gold", ScColor(255, 215, 0)); QFileInfo fi = QFileInfo(fName); if ( !ScCore->usingGUI() ) { interactive = false; showProgress = false; } baseFile = QDir::cleanPath(QDir::toNativeSeparators(fi.absolutePath()+"/")); if ( showProgress ) { ScribusMainWindow* mw=(m_Doc==0) ? ScCore->primaryMainWindow() : m_Doc->scMW(); progressDialog = new MultiProgressDialog( tr("Importing: %1").arg(fi.fileName()), CommonStrings::tr_Cancel, mw ); QStringList barNames, barTexts; barNames << "GI"; barTexts << tr("Analyzing File:"); QList<bool> barsNumeric; barsNumeric << false; progressDialog->addExtraProgressBars(barNames, barTexts, barsNumeric); progressDialog->setOverallTotalSteps(3); progressDialog->setOverallProgress(0); progressDialog->setProgress("GI", 0); progressDialog->show(); connect(progressDialog, SIGNAL(canceled()), this, SLOT(cancelRequested())); qApp->processEvents(); } else progressDialog = NULL; /* Set default Page to size defined in Preferences */ x = 0.0; y = 0.0; b = 0.0; h = 0.0; if (progressDialog) { progressDialog->setOverallProgress(1); qApp->processEvents(); } parseHeader(fName, x, y, b, h); docX = x; docY = y; if (b == 0.0) b = PrefsManager::instance()->appPrefs.PageWidth; if (h == 0.0) h = PrefsManager::instance()->appPrefs.PageHeight; docWidth = b - x; docHeight = h - y; baseX = 0; baseY = 0; if (!interactive || (flags & LoadSavePlugin::lfInsertPage)) { m_Doc->setPage(b-x, h-y, 0, 0, 0, 0, 0, 0, false, false); m_Doc->addPage(0); m_Doc->view()->addPage(0, true); baseX = 0; baseY = 0; } else { if (!m_Doc || (flags & LoadSavePlugin::lfCreateDoc)) { m_Doc=ScCore->primaryMainWindow()->doFileNew(b-x, h-y, 0, 0, 0, 0, 0, 0, false, false, 0, false, 0, 1, "Custom", true); ScCore->primaryMainWindow()->HaveNewDoc(); ret = true; baseX = 0; baseY = 0; } } if (flags & LoadSavePlugin::lfCreateDoc) { m_Doc->documentInfo.setAuthor(docCreator); m_Doc->documentInfo.setPublisher(docOrganisation); m_Doc->documentInfo.setTitle(docTitle); m_Doc->documentInfo.setDate(docDate+" "+docTime); } if ((!ret) && (interactive)) { baseX = m_Doc->currentPage()->xOffset(); baseY = m_Doc->currentPage()->yOffset(); } if ((ret) || (!interactive)) { if (b-x > h-y) m_Doc->PageOri = 1; else m_Doc->PageOri = 0; m_Doc->m_pageSize = "Custom"; } Elements.clear(); FPoint minSize = m_Doc->minCanvasCoordinate; FPoint maxSize = m_Doc->maxCanvasCoordinate; FPoint cOrigin = m_Doc->view()->canvasOrigin(); m_Doc->view()->Deselect(); m_Doc->setLoading(true); m_Doc->DoDrawing = false; m_Doc->view()->updatesOn(false); m_Doc->scMW()->setScriptRunning(true); qApp->changeOverrideCursor(QCursor(Qt::WaitCursor)); QString CurDirP = QDir::currentPath(); QDir::setCurrent(fi.path()); if (convert(fName)) { tmpSel->clear(); QDir::setCurrent(CurDirP); if ((Elements.count() > 1) && (!(importerFlags & LoadSavePlugin::lfCreateDoc))) { bool isGroup = true; int firstElem = -1; if (Elements.at(0)->Groups.count() != 0) firstElem = Elements.at(0)->Groups.top(); for (int bx = 0; bx < Elements.count(); ++bx) { PageItem* bxi = Elements.at(bx); if (bxi->Groups.count() != 0) { if (bxi->Groups.top() != firstElem) isGroup = false; } else isGroup = false; } if (!isGroup) { double minx = 99999.9; double miny = 99999.9; double maxx = -99999.9; double maxy = -99999.9; uint lowestItem = 999999; uint highestItem = 0; for (int a = 0; a < Elements.count(); ++a) { Elements.at(a)->Groups.push(m_Doc->GroupCounter); PageItem* currItem = Elements.at(a); lowestItem = qMin(lowestItem, currItem->ItemNr); highestItem = qMax(highestItem, currItem->ItemNr); double x1, x2, y1, y2; currItem->getVisualBoundingRect(&x1, &y1, &x2, &y2); minx = qMin(minx, x1); miny = qMin(miny, y1); maxx = qMax(maxx, x2); maxy = qMax(maxy, y2); } double gx = minx; double gy = miny; double gw = maxx - minx; double gh = maxy - miny; PageItem *high = m_Doc->Items->at(highestItem); int z = m_Doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, gx, gy, gw, gh, 0, m_Doc->toolSettings.dBrush, m_Doc->toolSettings.dPen, true); PageItem *neu = m_Doc->Items->takeAt(z); m_Doc->Items->insert(lowestItem, neu); neu->Groups.push(m_Doc->GroupCounter); neu->setItemName( tr("Group%1").arg(neu->Groups.top())); neu->isGroupControl = true; neu->groupsLastItem = high; neu->setTextFlowMode(PageItem::TextFlowDisabled); for (int a = 0; a < m_Doc->Items->count(); ++a) { m_Doc->Items->at(a)->ItemNr = a; } Elements.prepend(neu); m_Doc->GroupCounter++; } } m_Doc->DoDrawing = true; m_Doc->scMW()->setScriptRunning(false); m_Doc->setLoading(false); qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); if ((Elements.count() > 0) && (!ret) && (interactive)) { if (flags & LoadSavePlugin::lfScripted) { bool loadF = m_Doc->isLoading(); m_Doc->setLoading(false); m_Doc->changed(); m_Doc->setLoading(loadF); m_Doc->m_Selection->delaySignalsOn(); for (int dre=0; dre<Elements.count(); ++dre) { m_Doc->m_Selection->addItem(Elements.at(dre), true); } m_Doc->m_Selection->delaySignalsOff(); m_Doc->m_Selection->setGroupRect(); m_Doc->view()->updatesOn(true); } else { m_Doc->DragP = true; m_Doc->DraggedElem = 0; m_Doc->DragElements.clear(); m_Doc->m_Selection->delaySignalsOn(); for (int dre=0; dre<Elements.count(); ++dre) { m_Doc->DragElements.append(Elements.at(dre)->ItemNr); tmpSel->addItem(Elements.at(dre), true); } tmpSel->setGroupRect(); ScriXmlDoc *ss = new ScriXmlDoc(); ScElemMimeData* md = new ScElemMimeData(); md->setScribusElem(ss->WriteElem(m_Doc, m_Doc->view(), tmpSel)); delete ss; /*#ifndef Q_WS_MAC*/ // see #2196 m_Doc->itemSelection_DeleteItem(tmpSel); /*#else qDebug("xfigimport: leaving items on page"); #endif*/ m_Doc->view()->updatesOn(true); m_Doc->m_Selection->delaySignalsOff(); // We must copy the TransationSettings object as it is owned // by handleObjectImport method afterwards TransactionSettings* transacSettings = new TransactionSettings(trSettings); m_Doc->view()->handleObjectImport(md, transacSettings); m_Doc->DragP = false; m_Doc->DraggedElem = 0; m_Doc->DragElements.clear(); } } else { m_Doc->changed(); m_Doc->reformPages(); m_Doc->view()->updatesOn(true); } success = true; } else { QDir::setCurrent(CurDirP); m_Doc->DoDrawing = true; m_Doc->scMW()->setScriptRunning(false); m_Doc->view()->updatesOn(true); qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor)); } if (interactive) m_Doc->setLoading(false); //CB If we have a gui we must refresh it if we have used the progressbar if ((showProgress) && (!interactive)) m_Doc->view()->DrawNew(); return success; }