diff --git a/lib/main.cpp b/lib/main.cpp index 2bf301ad..5f6caf78 100644 --- a/lib/main.cpp +++ b/lib/main.cpp @@ -368,6 +368,10 @@ int main(int argc, char *argv[]) read_cmdline(argc, argv); mainwin->importMulti(cmdline_items, 1); cmdline_items = NULL; + if (!Database.isOpen()) + mainwin->init_database(QString()); + else + mainwin->setup_open_database(); mainwin->show(); gui->exec(); } else { diff --git a/widgets/MainWindow.cpp b/widgets/MainWindow.cpp index f0e941c0..6f2f1e4a 100644 --- a/widgets/MainWindow.cpp +++ b/widgets/MainWindow.cpp @@ -133,11 +133,6 @@ MainWindow::MainWindow() : QMainWindow() check_oom(dhgenBar); dhgenBar->setMinimum(0); dhgenBar->setMaximum(0); - - enum open_result result = Database.isOpen() ? init_database() : - init_database(QString()); - if (result == pw_exit) - throw pw_exit; } void MainWindow::dropEvent(QDropEvent *event) @@ -557,7 +552,7 @@ enum open_result MainWindow::init_database(const QString &name, close_database(); try { Database.open(name, pass); - return init_database(); + return setup_open_database(); } catch (errorEx &err) { XCA_ERROR(err); return open_abort; @@ -567,7 +562,7 @@ enum open_result MainWindow::init_database(const QString &name, return pw_ok; } -enum open_result MainWindow::init_database() +enum open_result MainWindow::setup_open_database() { if (!Database.isOpen()) return open_abort; diff --git a/widgets/MainWindow.h b/widgets/MainWindow.h index 3107d6ab..a61f25f2 100644 --- a/widgets/MainWindow.h +++ b/widgets/MainWindow.h @@ -109,7 +109,7 @@ class MainWindow: public QMainWindow, public Ui::MainWindow public slots: enum open_result init_database(const QString &dbName, const Passwd &pass = Passwd()); - enum open_result init_database(); + enum open_result setup_open_database(); void new_database(); void load_database(); void close_database();