From cd98cb8921861b586724abed307bfead62e4b74a Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sat, 28 Sep 2019 12:04:52 -0700 Subject: [PATCH] Mobile: add more debugging output for screen width issue Somehow we need to be able to figure out which width information is correct. Signed-off-by: Dirk Hohndel --- mobile-widgets/qml/main.qml | 1 + mobile-widgets/qmlmanager.cpp | 1 + subsurface-helper.cpp | 9 ++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml index 51d591721..3390579fb 100644 --- a/mobile-widgets/qml/main.qml +++ b/mobile-widgets/qml/main.qml @@ -702,6 +702,7 @@ if you have network connectivity and want to sync your data to cloud storage."), rootItem.visible = true diveList.opacity = 1 rootItem.opacity = 1 + console.log("setting the defaultColumnWidth to " + Kirigami.Units.gridUnit * 21) pageStack.defaultColumnWidth = Kirigami.Units.gridUnit * 21 manager.appInitialized() } diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp index 126cca7b8..fcb25e4a5 100644 --- a/mobile-widgets/qmlmanager.cpp +++ b/mobile-widgets/qmlmanager.cpp @@ -1717,6 +1717,7 @@ void QMLManager::setDevicePixelRatio(qreal dpr, QScreen *screen) void QMLManager::screenChanged(QScreen *screen) { + qDebug("QMLManager received screen changed notification (%d,%d)", screen->size().width(), screen->size().height()); m_lastDevicePixelRatio = screen->devicePixelRatio(); emit sendScreenChanged(screen); } diff --git a/subsurface-helper.cpp b/subsurface-helper.cpp index 11b98611a..ba2f05703 100644 --- a/subsurface-helper.cpp +++ b/subsurface-helper.cpp @@ -10,6 +10,7 @@ #include "core/ssrf.h" #ifdef SUBSURFACE_MOBILE +#include #include #include #include "mobile-widgets/qmlmanager.h" @@ -75,6 +76,8 @@ void run_ui() qDebug() << "Qt reports default font is set as" << defaultFont.family(); } #endif + QScreen *appScreen = QApplication::screens().at(0); + int availableScreenWidth = appScreen->availableSize().width(); QQmlApplicationEngine engine; register_qml_types(&engine); LOG_STP("run_ui qml engine started"); @@ -102,7 +105,7 @@ void run_ui() sortModel->sort(0, Qt::DescendingOrder); LOG_STP("run_ui diveListModel sorted"); GpsListModel gpsListModel; - QSortFilterProxyModel *gpsSortModel = new QSortFilterProxyModel(0); + QSortFilterProxyModel *gpsSortModel = new QSortFilterProxyModel(nullptr); gpsSortModel->setSourceModel(&gpsListModel); gpsSortModel->setDynamicSortFilter(true); gpsSortModel->setSortRole(GpsListModel::GpsWhenRole); @@ -118,6 +121,7 @@ void run_ui() ctxt->setContextProperty("logModel", MessageHandlerModel::self()); engine.load(QUrl(QStringLiteral("qrc:///qml/main.qml"))); + qDebug() << "loaded main.qml"; LOG_STP("run_ui qml loaded"); qqWindowObject = engine.rootObjects().value(0); if (!qqWindowObject) { @@ -128,6 +132,9 @@ void run_ui() qml_window->setIcon(QIcon(":subsurface-mobile-icon")); qDebug() << "qqwindow devicePixelRatio" << qml_window->devicePixelRatio() << qml_window->screen()->devicePixelRatio(); QScreen *screen = qml_window->screen(); + int qmlWW = qml_window->width(); + int qmlSW = screen->size().width(); + qDebug() << "qml_window reports width as" << qmlWW << "associated screen width" << qmlSW << "Qt screen reports width as" << availableScreenWidth; QObject::connect(qml_window, &QQuickWindow::screenChanged, QMLManager::instance(), &QMLManager::screenChanged); QMLManager *manager = QMLManager::instance(); LOG_STP("run_ui qmlmanager instance started");