From d445bf1ecd773e5810c98a81b99cb387538e0328 Mon Sep 17 00:00:00 2001 From: Florian Geyer Date: Thu, 17 May 2012 23:59:31 +0200 Subject: [PATCH] Use a signal to connect to a slot in main window. Coding style fixes. http://gitorious.org/keepassx/keepassx/merge_requests/10 --- src/core/KeePassApp.cpp | 23 ++++++++--------------- src/core/KeePassApp.h | 16 ++++++++-------- src/gui/MainWindow.h | 5 ++++- src/main.cpp | 3 ++- 4 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/core/KeePassApp.cpp b/src/core/KeePassApp.cpp index 688fc1d2f..557dc2625 100644 --- a/src/core/KeePassApp.cpp +++ b/src/core/KeePassApp.cpp @@ -17,12 +17,10 @@ #include "KeePassApp.h" -#include #include -KeePassApp::KeePassApp(int &argc, char **argv) : - QApplication(argc, argv), - mainWindow(NULL) +KeePassApp::KeePassApp(int& argc, char** argv) + : QApplication(argc, argv) { } @@ -30,18 +28,13 @@ KeePassApp::~KeePassApp() { } -void KeePassApp::setMainWindow(MainWindow *mainWindow) -{ - this->mainWindow = mainWindow; -} - bool KeePassApp::event(QEvent *event) { - // Handle Apple QFileOpenEvent from finder (double click on .kdbx file) - if (event->type() == QEvent::FileOpen && mainWindow) { - mainWindow->openDatabase(static_cast(event)->file(), QString(), QString()); - return true; - } + // Handle Apple QFileOpenEvent from finder (double click on .kdbx file) + if (event->type() == QEvent::FileOpen) { + Q_EMIT openDatabase(static_cast(event)->file()); + return true; + } return (QApplication::event(event)); -} \ No newline at end of file +} diff --git a/src/core/KeePassApp.h b/src/core/KeePassApp.h index a5242c146..aabd74f64 100644 --- a/src/core/KeePassApp.h +++ b/src/core/KeePassApp.h @@ -20,14 +20,14 @@ class KeePassApp : public QApplication { - Q_OBJECT -private: - MainWindow *mainWindow; + Q_OBJECT public: - KeePassApp(int &argc, char **argv); - ~KeePassApp(); + KeePassApp(int& argc, char** argv); + ~KeePassApp(); - void setMainWindow(MainWindow *mainWindow); - bool event(QEvent *event); -}; \ No newline at end of file + bool event(QEvent *event); + +Q_SIGNALS: + void openDatabase(const QString& filename); +}; diff --git a/src/gui/MainWindow.h b/src/gui/MainWindow.h index e6504c5db..026330d65 100644 --- a/src/gui/MainWindow.h +++ b/src/gui/MainWindow.h @@ -33,7 +33,10 @@ class MainWindow : public QMainWindow public: MainWindow(); ~MainWindow(); - void openDatabase(const QString& fileName, const QString& pw, const QString& keyFile); + +public Q_SLOTS: + void openDatabase(const QString& fileName, const QString& pw = QString(), + const QString& keyFile = QString()); protected: void closeEvent(QCloseEvent* event); diff --git a/src/main.cpp b/src/main.cpp index 118edd154..a6f3b831c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -51,9 +51,10 @@ int main(int argc, char** argv) } MainWindow mainWindow; - app.setMainWindow(&mainWindow); mainWindow.show(); + QObject::connect(&app, SIGNAL(openDatabase(QString)), &mainWindow, SLOT(openDatabase(QString))); + if (!filename.isEmpty()) { mainWindow.openDatabase(filename, password, QString()); }