Clifford Wolf:

Added support for dropping files



git-svn-id: http://svn.clifford.at/openscad/trunk@125 b57f626f-c46c-0410-a088-ec61d464b74c
stl_dim
clifford 2009-10-28 21:08:25 +00:00
parent 0cd451bbf9
commit 1b2caba2f5
2 changed files with 35 additions and 0 deletions

View File

@ -34,6 +34,9 @@
#include <QLabel>
#include <QFileInfo>
#include <QStatusBar>
#include <QDropEvent>
#include <QMimeData>
#include <QUrl>
//for chdir
#include <unistd.h>
@ -252,6 +255,7 @@ MainWindow::MainWindow(const char *filename)
#endif
viewPerspective();
setAcceptDrops(true);
current_win = NULL;
}
@ -1303,3 +1307,32 @@ void MainWindow::viewOrthogonal()
screen->updateGL();
}
void MainWindow::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasUrls())
event->acceptProposedAction();
}
void MainWindow::dropEvent(QDropEvent *event)
{
current_win = this;
const QList<QUrl> urls = event->mimeData()->urls();
for (int i = 0; i < urls.size(); i++) {
if (urls[i].scheme() != "file")
continue;
QString fn = urls[i].path();
#if ENABLE_MDI
if (!editor->toPlainText().isEmpty()) {
new MainWindow(fn.toAscii().data());
break;
}
#endif
filename = fn;
setWindowTitle(filename);
maybe_change_dir();
load();
break;
}
current_win = NULL;
}

View File

@ -808,6 +808,8 @@ public slots:
void viewPerspective();
void viewOrthogonal();
void animateUpdate();
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
};
extern AbstractModule *parse(const char *text, int debug);