diff --git a/src/sqltextedit.cpp b/src/sqltextedit.cpp index 3391b245..5f93a82a 100644 --- a/src/sqltextedit.cpp +++ b/src/sqltextedit.cpp @@ -7,6 +7,7 @@ #include #include #include +#include SqlTextEdit::SqlTextEdit(QWidget* parent) : QPlainTextEdit(parent), m_Completer(0), m_defaultCompleterModel(0) @@ -181,6 +182,22 @@ void SqlTextEdit::LineNumberArea::paintEvent(QPaintEvent* event) } } +void SqlTextEdit::dropEvent(QDropEvent* e) +{ + QList urls = e->mimeData()->urls(); + if(urls.isEmpty()) + return QPlainTextEdit::dropEvent(e); + + QString file = urls.first().toLocalFile(); + if(!QFile::exists(file)) + return; + + QFile f(file); + f.open(QIODevice::ReadOnly); + setPlainText(f.readAll()); + f.close(); +} + QSize SqlTextEdit::LineNumberArea::sizeHint() const { return QSize(parent->lineNumberAreaWidth(), 0); diff --git a/src/sqltextedit.h b/src/sqltextedit.h index 5daeeabe..0fb0e825 100644 --- a/src/sqltextedit.h +++ b/src/sqltextedit.h @@ -32,6 +32,7 @@ protected: void keyPressEvent(QKeyEvent *e); void focusInEvent(QFocusEvent *e); void resizeEvent(QResizeEvent* event); + void dropEvent(QDropEvent* e); void lineNumberAreaPaintEvent(QPaintEvent* event); int lineNumberAreaWidth();