mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Use QQmlApplicationEngine
This simplifies the code a bit. Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
This commit is contained in:
parent
3ca586c464
commit
d54add6233
@ -22,7 +22,7 @@
|
||||
#include <QDesktopServices>
|
||||
#include <QGuiApplication>
|
||||
#include <QQmlComponent>
|
||||
#include <QQmlEngine>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QScreen>
|
||||
|
||||
#ifdef USE_FDO_NOTIFICATIONS
|
||||
@ -50,20 +50,14 @@ Systray *Systray::instance()
|
||||
Systray::Systray()
|
||||
: _isOpen(false)
|
||||
, _syncIsPaused(false)
|
||||
, _trayComponent(nullptr)
|
||||
, _trayContext(nullptr)
|
||||
{
|
||||
// Create QML tray engine, build component, set C++ backend context used in window.qml
|
||||
// Use pointer instead of engine() helper function until Qt 5.12 is minimum standard
|
||||
_trayEngine = new QQmlEngine;
|
||||
_trayEngine = new QQmlApplicationEngine;
|
||||
_trayEngine->addImportPath("qrc:/qml/theme");
|
||||
_trayEngine->addImageProvider("avatars", new ImageProvider);
|
||||
_trayEngine->rootContext()->setContextProperty("userModelBackend", UserModel::instance());
|
||||
_trayEngine->rootContext()->setContextProperty("appsMenuModelBackend", UserAppsModel::instance());
|
||||
_trayEngine->rootContext()->setContextProperty("systrayBackend", this);
|
||||
|
||||
_trayComponent = new QQmlComponent(_trayEngine, QUrl(QStringLiteral("qrc:/qml/src/gui/tray/Window.qml")));
|
||||
|
||||
connect(UserModel::instance(), &UserModel::newUserSelected,
|
||||
this, &Systray::slotNewUserSelected);
|
||||
|
||||
@ -73,13 +67,11 @@ Systray::Systray()
|
||||
|
||||
void Systray::create()
|
||||
{
|
||||
if (_trayContext == nullptr) {
|
||||
if (!AccountManager::instance()->accounts().isEmpty()) {
|
||||
_trayEngine->rootContext()->setContextProperty("activityModel", UserModel::instance()->currentActivityModel());
|
||||
}
|
||||
_trayContext = _trayEngine->contextForObject(_trayComponent->create());
|
||||
hideWindow();
|
||||
if (!AccountManager::instance()->accounts().isEmpty()) {
|
||||
_trayEngine->rootContext()->setContextProperty("activityModel", UserModel::instance()->currentActivityModel());
|
||||
}
|
||||
_trayEngine->load(QStringLiteral("qrc:/qml/src/gui/tray/Window.qml"));
|
||||
hideWindow();
|
||||
}
|
||||
|
||||
void Systray::slotNewUserSelected()
|
||||
|
||||
@ -22,6 +22,7 @@
|
||||
#include "tray/UserModel.h"
|
||||
|
||||
class QIcon;
|
||||
class QQmlApplicationEngine;
|
||||
|
||||
namespace OCC {
|
||||
|
||||
@ -78,9 +79,7 @@ private:
|
||||
Systray();
|
||||
bool _isOpen;
|
||||
bool _syncIsPaused;
|
||||
QQmlEngine *_trayEngine;
|
||||
QQmlComponent *_trayComponent;
|
||||
QQmlContext *_trayContext;
|
||||
QQmlApplicationEngine *_trayEngine;
|
||||
};
|
||||
|
||||
} // namespace OCC
|
||||
|
||||
Loading…
Reference in New Issue
Block a user