From 1c890a355663103eca712f3e1506b81ea58ea30c Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Sun, 10 May 2020 12:31:08 +0200 Subject: [PATCH] - Clean debug message and print them on Error - Remove using devicePixelRatio() and let Qt doing the work --- .../src/components/notifier/Notifier.cpp | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/linphone-app/src/components/notifier/Notifier.cpp b/linphone-app/src/components/notifier/Notifier.cpp index 5720b91ba..d6c0df5e5 100644 --- a/linphone-app/src/components/notifier/Notifier.cpp +++ b/linphone-app/src/components/notifier/Notifier.cpp @@ -128,15 +128,22 @@ QObject *Notifier::createNotification (Notifier::NotificationType type, QVariant } QList allScreens = QGuiApplication::screens(); if(allScreens.size() > 0){ // Ensure to have a screen to avoid errors - QQuickItem * previousWrapper = nullptr; ++mInstancesNumber; - QScreen * primaryScreen = QGuiApplication::primaryScreen(); - qInfo() << "Primary screen : " << primaryScreen->geometry() << primaryScreen->availableGeometry() << primaryScreen->virtualGeometry() << primaryScreen->availableVirtualGeometry(); for(int i = 0 ; i < allScreens.size() ; ++i){ QQuickView *view = new QQuickView(App::getInstance()->getEngine(), nullptr); // Use QQuickView to create a visual root object that is independant from current application Window - QScreen *screen = allScreens[i]; - + QScreen *screen = allScreens[i]; + QObject::connect(view, &QQuickView::statusChanged, [allScreens](QQuickView::Status status){ // Debug handler : show screens descriptions on Error + if( status == QQuickView::Error){ + QScreen * primaryScreen = QGuiApplication::primaryScreen(); + qInfo() << "Primary screen : " << primaryScreen->geometry() << primaryScreen->availableGeometry() << primaryScreen->virtualGeometry() << primaryScreen->availableVirtualGeometry(); + for(int i = 0 ; i < allScreens.size() ; ++i){ + QScreen *screen = allScreens[i]; + qInfo() << QString("Screen [")+QString::number(i)+"] (hdpi, Geometry, Available, Virtual, AvailableGeometry) :" + << screen->devicePixelRatio() << screen->geometry() << screen->availableGeometry() << screen->virtualGeometry() << screen->availableVirtualGeometry(); + } + } + }); view->setScreen(screen); // Bind the visual root object to the screen view->setProperty("flags", QVariant(Qt::BypassWindowManagerHint | Qt::WindowStaysOnBottomHint | Qt::CustomizeWindowHint | Qt::X11BypassWindowManagerHint)); // Set the visual ghost window view->setSource(QString(NotificationsPath)+Notifier::Notifications[type].filename); @@ -145,9 +152,9 @@ QObject *Notifier::createNotification (Notifier::NotificationType type, QVariant int * screenHeightOffset = &mScreenHeightOffset[screen->name()]; // Access optimization QRect availableGeometry = screen->availableGeometry(); - int heightOffset = availableGeometry.y() + screen->devicePixelRatio()*(availableGeometry.height() - subWindow->height()); + int heightOffset = availableGeometry.y() + (availableGeometry.height() - subWindow->height());//*screen->devicePixelRatio(); when using manual scaler - subWindow->setX(availableGeometry.x()+availableGeometry.width()*screen->devicePixelRatio()-subWindow->property("width").toInt()*screen->devicePixelRatio()); + subWindow->setX(availableGeometry.x()+ (availableGeometry.width()-subWindow->property("width").toInt()));//*screen->devicePixelRatio()); when using manual scaler subWindow->setY(heightOffset-(*screenHeightOffset % heightOffset)); *screenHeightOffset = (subWindow->height() + *screenHeightOffset) + NotificationSpacing; @@ -168,13 +175,11 @@ QObject *Notifier::createNotification (Notifier::NotificationType type, QVariant QObject::connect(wrapperItem, &QObject::destroyed, previousWrapper, &QObject::deleteLater); } previousWrapper = wrapperItem; // The last one is used as a point of start when deleting and openning - qInfo() << QString("Screen [")+QString::number(i)+"] (hdpi, Geometry, Available, Virtual, AvailableGeometry) :" - << screen->devicePixelRatio() << screen->geometry() << screen->availableGeometry() << screen->virtualGeometry() << screen->availableVirtualGeometry() - << "Choose:" << subWindow->geometry(); view->show(); } qInfo() << QStringLiteral("Create notifications:") << wrapperItem; } + mMutex->unlock(); return wrapperItem; }