+ fixes #0001332: Allow copy-paste on elements in Project tree

This commit is contained in:
wmayer
2014-03-16 11:22:42 +01:00
parent ba207a1848
commit 1767be704f
4 changed files with 60 additions and 11 deletions

View File

@@ -60,6 +60,7 @@
#include <Base/Writer.h>
#include <App/Application.h>
#include <App/DocumentObject.h>
#include <App/DocumentObjectGroup.h>
#include "MainWindow.h"
#include "Application.h"
@@ -1521,7 +1522,13 @@ void MainWindow::insertFromMimeData (const QMimeData * mimeData)
std::istream in(0);
in.rdbuf(&buf);
MergeDocuments mimeView(doc);
mimeView.importObjects(in);
std::vector<App::DocumentObject*> newObj = mimeView.importObjects(in);
std::vector<App::DocumentObjectGroup*> grp = Gui::Selection().getObjectsOfType<App::DocumentObjectGroup>();
if (grp.size() == 1) {
Gui::Document* gui = Application::Instance->getDocument(doc);
if (gui)
gui->addRootObjectsToGroup(newObj, grp.front());
}
}
else if (mimeData->hasFormat(QLatin1String("application/x-documentobject-file"))) {
QByteArray res = mimeData->data(QLatin1String("application/x-documentobject-file"));
@@ -1531,8 +1538,14 @@ void MainWindow::insertFromMimeData (const QMimeData * mimeData)
Base::FileInfo fi((const char*)res);
Base::ifstream str(fi, std::ios::in | std::ios::binary);
MergeDocuments mimeView(doc);
mimeView.importObjects(str);
std::vector<App::DocumentObject*> newObj = mimeView.importObjects(str);
str.close();
std::vector<App::DocumentObjectGroup*> grp = Gui::Selection().getObjectsOfType<App::DocumentObjectGroup>();
if (grp.size() == 1) {
Gui::Document* gui = Application::Instance->getDocument(doc);
if (gui)
gui->addRootObjectsToGroup(newObj, grp.front());
}
}
else if (mimeData->hasUrls()) {
// load the files into the active document if there is one, otherwise let create one