Q_ASSERT(shareDialog.data());
raiseDialog(shareDialog);
}
+ } else if (_tray->isOpen()) {
+ _tray->hideWindow();
} else {
_tray->showWindow();
}
namespace OCC {
Systray::Systray() // TODO: make singleton, provide ::instance()
- : _trayComponent(nullptr)
+ : _isOpen(false)
+ , _trayComponent(nullptr)
, _trayContext(nullptr)
{
// Create QML tray engine, build component, set C++ backend context used in window.qml
emit currentUserChanged();
}
+bool Systray::isOpen()
+{
+ return _isOpen;
+}
+
+Q_INVOKABLE void Systray::setOpened()
+{
+ _isOpen = true;
+}
+
+Q_INVOKABLE void Systray::setClosed()
+{
+ _isOpen = false;
+}
+
void Systray::showMessage(const QString &title, const QString &message, MessageIcon icon, int millisecondsTimeoutHint)
{
#ifdef USE_FDO_NOTIFICATIONS
~Systray();
void showMessage(const QString &title, const QString &message, MessageIcon icon = Information, int millisecondsTimeoutHint = 10000);
void setToolTip(const QString &tip);
+ bool isOpen();
Q_INVOKABLE int calcTrayWindowX();
Q_INVOKABLE int calcTrayWindowY();
+ Q_INVOKABLE void setOpened();
+ Q_INVOKABLE void setClosed();
signals:
void currentUserChanged();
void slotChangeActivityModel();
private:
+ bool _isOpen;
QQmlEngine *_trayEngine;
QQmlComponent *_trayComponent;
QQmlContext *_trayContext;
onActiveChanged: {\r
if(!active) {\r
trayWindow.hide();\r
+ systrayBackend.setClosed();\r
}\r
}\r
\r
Connections {\r
target: systrayBackend\r
onShowWindow: {\r
+ accountMenu.close();\r
trayWindow.show();\r
+ trayWindow.raise();\r
trayWindow.requestActivate();\r
trayWindow.setX( systrayBackend.calcTrayWindowX());\r
trayWindow.setY( systrayBackend.calcTrayWindowY());\r
+ systrayBackend.setOpened();\r
}\r
onHideWindow: {\r
trayWindow.hide();\r
+ systrayBackend.setClosed();\r
}\r
}\r
\r
\r
MenuSeparator { id: otherMenuSeparator }\r
\r
+ MenuItem {\r
+ text: systrayBackend.syncIsPaused() ? "Resume syncing" : "Pause syncing"\r
+ onClicked: systrayBackend.pauseResumeSync()\r
+ }\r
+\r
MenuItem {\r
text: "Open settings"\r
onClicked: systrayBackend.openSettings()\r