diff --git a/src/adaptors/UBExportAdaptor.cpp b/src/adaptors/UBExportAdaptor.cpp index a056e44a..348e6c6c 100644 --- a/src/adaptors/UBExportAdaptor.cpp +++ b/src/adaptors/UBExportAdaptor.cpp @@ -65,15 +65,7 @@ QString UBExportAdaptor::askForFileName(UBDocumentProxy* pDocument, const QStrin QString defaultPath = UBSettings::settings()->lastExportFilePath->get().toString() + "/" + defaultName; - bool useNativeDialog = true; -#ifdef Q_OS_MAC - int versionMac = QSysInfo::macVersion(); - if (versionMac == QSysInfo::MV_Unknown || versionMac >= QSysInfo::MV_MAVERICKS){ // version 11 is MacOSX 10.9 Mavericks - useNativeDialog = false; - } -#endif - - QString filename = QFileDialog::getSaveFileName(UBApplication::mainWindow, pDialogTitle, defaultPath, QString(), 0, useNativeDialog?(QFileDialog::Option)0:QFileDialog::DontUseNativeDialog); + QString filename = QFileDialog::getSaveFileName(UBApplication::mainWindow, pDialogTitle, defaultPath, QString()); if (filename.size() == 0) { diff --git a/src/adaptors/UBImportDocument.cpp b/src/adaptors/UBImportDocument.cpp index 43e517d8..611976f6 100644 --- a/src/adaptors/UBImportDocument.cpp +++ b/src/adaptors/UBImportDocument.cpp @@ -185,7 +185,7 @@ UBDocumentProxy* UBImportDocument::importFile(const QFile& pFile, const QString& return NULL; } - UBDocumentProxy* newDocument = UBPersistenceManager::persistenceManager()->createDocumentFromDir(documentRootFolder, pGroup, ""); + UBDocumentProxy* newDocument = UBPersistenceManager::persistenceManager()->createDocumentFromDir(documentRootFolder, pGroup, "", false, false, true); UBApplication::showMessage(tr("Import successful.")); return newDocument; } diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index a93a5c07..57a9b39e 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1537,7 +1537,7 @@ void UBBoardController::setActiveDocumentScene(int pSceneIndex) setActiveDocumentScene(selectedDocument(), pSceneIndex); } -void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, const int pSceneIndex, bool forceReload) +void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, const int pSceneIndex, bool forceReload, bool onImport) { saveViewState(); @@ -1554,9 +1554,15 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, if (targetScene) { - freezeW3CWidgets(true); - - ClearUndoStack(); + if (mActiveScene && !onImport) + { + persistCurrentScene(); + freezeW3CWidgets(true); + ClearUndoStack(); + }else + { + UBApplication::undoStack->clear(); + } mActiveScene = targetScene; mActiveSceneIndex = index; diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index 513385f1..40db2d47 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -179,7 +179,7 @@ class UBBoardController : public UBDocumentContainer void findUniquesItems(const QUndoCommand *parent, QSet &itms); void ClearUndoStack(); - void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0, bool forceReload = false); + void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0, bool forceReload = false, bool onImport = false); void setActiveDocumentScene(int pSceneIndex); void moveSceneToIndex(int source, int target); diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index 22500b24..28a6661a 100644 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -1686,7 +1686,7 @@ void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurr if (proxy != mBoardController->selectedDocument()) // only if wanted Document is different from document actually on Board, // ALTI/AOU - 20140217 { //issue 1629 - NNE - 20131105 : When set a current document, change in the board controller - mBoardController->setActiveDocumentScene(proxy, 0, false); + mBoardController->setActiveDocumentScene(proxy, 0, false, onImport); } }