diff --git a/widgets/MainWindow.cpp b/widgets/MainWindow.cpp index d00f8b78..b843792b 100644 --- a/widgets/MainWindow.cpp +++ b/widgets/MainWindow.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include "lib/exception.h" @@ -133,8 +134,6 @@ MainWindow::MainWindow(QWidget *parent) dn_nid = read_nidlist("dn.txt"); aia_nid = read_nidlist("aia.txt"); - connect(this, SIGNAL(newURLs(QStringList &)), - this, SLOT(openURLs(QStringList &))); setAcceptDrops(true); searchEdit = new QLineEdit(); @@ -167,22 +166,29 @@ void MainWindow::dropEvent(QDropEvent *event) QString s = u.toLocalFile(); files << s; } - emit newURLs(files); + openURLs(files); event->acceptProposedAction(); } void MainWindow::openURLs(QStringList &files) +{ + urlsToOpen = files; + QTimer::singleShot(100, this, SLOT(openURLs())); +} + +void MainWindow::openURLs() { QStringList failed; QString s; ImportMulti *dlgi = new ImportMulti(this); - foreach(s, files) { + foreach(s, urlsToOpen) { pki_multi *pki = probeAnything(s); if (pki && !pki->count()) failed << s; dlgi->addItem(pki); } + urlsToOpen.clear(); dlgi->execute(1, failed); delete dlgi; } diff --git a/widgets/MainWindow.h b/widgets/MainWindow.h index 11bc97a9..f05d9787 100644 --- a/widgets/MainWindow.h +++ b/widgets/MainWindow.h @@ -81,6 +81,7 @@ class MainWindow: public QMainWindow, public Ui::MainWindow void update_history_menu(); void set_geometry(char *p, db_header_t *head); QLineEdit *searchEdit; + QStringList urlsToOpen; protected: void init_images(); @@ -155,11 +156,9 @@ class MainWindow: public QMainWindow, public Ui::MainWindow void pastePem(); void changeDbPass(); void openURLs(QStringList &files); + void openURLs(); void changeEvent(QEvent *event); - signals: - void newURLs(QStringList &); - private slots: void setOptions(); void manageToken();