diff options
Diffstat (limited to 'Swift/QtUI/QtURIHandler.cpp')
| -rw-r--r-- | Swift/QtUI/QtURIHandler.cpp | 36 | 
1 files changed, 36 insertions, 0 deletions
diff --git a/Swift/QtUI/QtURIHandler.cpp b/Swift/QtUI/QtURIHandler.cpp new file mode 100644 index 0000000..43f3ed1 --- /dev/null +++ b/Swift/QtUI/QtURIHandler.cpp @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include "QtURIHandler.h" + +#include <QCoreApplication> +#include <QFileOpenEvent> +#include <QUrl> + +#include "QtSwiftUtil.h" +#ifdef Q_WS_MAC +#include <SwifTools/URIHandler/MacOSXURIHandlerHelpers.h> +#endif + +using namespace Swift; + +QtURIHandler::QtURIHandler() { +	qApp->installEventFilter(this); +#ifdef Q_WS_MAC +	registerAppAsDefaultXMPPURIHandler(); +#endif +} + +bool QtURIHandler::eventFilter(QObject*, QEvent* event) { +	if (event->type() == QEvent::FileOpen) { +		QFileOpenEvent* fileOpenEvent = static_cast<QFileOpenEvent*>(event); +		if (fileOpenEvent->url().scheme() == "xmpp") { +			onURI(Q2PSTRING(fileOpenEvent->url().toString())); +			return true; +		} +	} +	return false; +}  | 
 Swift