diff --git a/qml/main.qml b/qml/main.qml index cdc3450..57d837c 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -41,6 +41,8 @@ ApplicationWindow { Controller { id: matriqueController + + onToggleWindow: window.visible ? window.hide() : window.show() } Popup { diff --git a/src/controller.cpp b/src/controller.cpp index bc5941e..cfd8a3b 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -13,6 +13,7 @@ Controller::Controller(QObject* parent) : QObject(parent) { tray->setIcon(QIcon(":/asset/img/icon.png")); tray->setToolTip("Matrique"); + trayMenu->addAction("Toggle Window", [=] { emit toggleWindow(); }); trayMenu->addAction("Quit", [=] { QApplication::quit(); }); tray->setContextMenu(trayMenu); tray->show(); diff --git a/src/controller.h b/src/controller.h index a6b0cb0..7d05780 100644 --- a/src/controller.h +++ b/src/controller.h @@ -6,9 +6,9 @@ #include #include +#include #include #include -#include using namespace QMatrixClient; @@ -101,6 +101,7 @@ class Controller : public QObject { void homeserverChanged(); void busyChanged(); void errorOccured(); + void toggleWindow(); public slots: void joinRoom(const QString& alias); diff --git a/src/main.cpp b/src/main.cpp index 9ad3046..1427376 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -23,6 +23,8 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); + app.setQuitOnLastWindowClosed(false); + qRegisterMetaType("MatriqueRoom*"); qRegisterMetaType("User*"); qRegisterMetaType("MessageEventType");