From 929bb9026d33423f3967c68306c5d9b3280fb300 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Fri, 17 May 2013 15:05:21 +0200 Subject: [PATCH] SqlTextEdit: Support opening files by drag and drop When dropping a file on the editor widget try to open and read it. --- src/sqltextedit.cpp | 17 +++++++++++++++++ src/sqltextedit.h | 1 + 2 files changed, 18 insertions(+) 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();