checking for the source of the drop, reject those from other files for now

This commit is contained in:
Marek Kochanowicz 2014-02-16 09:51:33 +01:00
parent cbe1fe2f95
commit 17af865a9f
3 changed files with 19 additions and 9 deletions

View file

@ -5,8 +5,9 @@
#include "../../model/world/universalid.hpp" #include "../../model/world/universalid.hpp"
#include "../../model/world/tablemimedata.hpp" #include "../../model/world/tablemimedata.hpp"
CSVWorld::ScriptEdit::ScriptEdit (QWidget* parent) : CSVWorld::ScriptEdit::ScriptEdit (QWidget* parent, const CSMDoc::Document& document) :
QTextEdit (parent) QTextEdit (parent),
mDocument (document)
{ {
mAllowedTypes <<CSMWorld::UniversalId::Type_Journal mAllowedTypes <<CSMWorld::UniversalId::Type_Journal
<<CSMWorld::UniversalId::Type_Global <<CSMWorld::UniversalId::Type_Global
@ -55,13 +56,16 @@ void CSVWorld::ScriptEdit::dropEvent (QDropEvent* event)
setTextCursor (cursorForPosition (event->pos())); setTextCursor (cursorForPosition (event->pos()));
std::vector<CSMWorld::UniversalId> records (mime->getData()); if (mime->fromDocument (mDocument))
for (std::vector<CSMWorld::UniversalId>::iterator it = records.begin(); it != records.end(); ++it)
{ {
if (mAllowedTypes.contains (it->getType())) std::vector<CSMWorld::UniversalId> records (mime->getData());
for (std::vector<CSMWorld::UniversalId>::iterator it = records.begin(); it != records.end(); ++it)
{ {
QString::fromStdString ('"' + it->getId() + '"'); if (mAllowedTypes.contains (it->getType()))
{
QString::fromStdString ('"' + it->getId() + '"');
}
} }
} }
} }

View file

@ -8,16 +8,22 @@
class QWidget; class QWidget;
namespace CSMDoc
{
class Document;
}
namespace CSVWorld namespace CSVWorld
{ {
class ScriptEdit : public QTextEdit class ScriptEdit : public QTextEdit
{ {
Q_OBJECT Q_OBJECT
public: public:
ScriptEdit (QWidget* parent); ScriptEdit (QWidget* parent, const CSMDoc::Document& document);
private: private:
QVector<CSMWorld::UniversalId::Type> mAllowedTypes; QVector<CSMWorld::UniversalId::Type> mAllowedTypes;
const CSMDoc::Document& mDocument;
void dragEnterEvent (QDragEnterEvent* event); void dragEnterEvent (QDragEnterEvent* event);

View file

@ -28,7 +28,7 @@ CSVWorld::ScriptSubView::ChangeLock::~ChangeLock()
CSVWorld::ScriptSubView::ScriptSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document) CSVWorld::ScriptSubView::ScriptSubView (const CSMWorld::UniversalId& id, CSMDoc::Document& document)
: SubView (id), mDocument (document), mColumn (-1), mChangeLocked (0) : SubView (id), mDocument (document), mColumn (-1), mChangeLocked (0)
{ {
setWidget (mEditor = new ScriptEdit (this)); setWidget (mEditor = new ScriptEdit (this, mDocument));
mEditor->setAcceptRichText (false); mEditor->setAcceptRichText (false);
mEditor->setLineWrapMode (QTextEdit::NoWrap); mEditor->setLineWrapMode (QTextEdit::NoWrap);