From 44fb5c45abc05a8bbc19d6fe65b6c5037e5d8a5b Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Fri, 16 Oct 2015 11:14:55 +0100 Subject: [PATCH] Use shared engine in ksplashqml As Martin G analysed in kscreenlocker_greet this cuts down a lot of time on dual monitors. REVIEW: 125654 --- ksplash/ksplashqml/CMakeLists.txt | 1 + ksplash/ksplashqml/splashwindow.cpp | 10 +++++----- ksplash/ksplashqml/splashwindow.h | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ksplash/ksplashqml/CMakeLists.txt b/ksplash/ksplashqml/CMakeLists.txt index ce55b8e6c..f7e431d3d 100644 --- a/ksplash/ksplashqml/CMakeLists.txt +++ b/ksplash/ksplashqml/CMakeLists.txt @@ -13,6 +13,7 @@ target_link_libraries(ksplashqml Qt5::DBus KF5::ConfigCore KF5::Package + KF5::QuickAddons ) install(TARGETS ksplashqml ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) diff --git a/ksplash/ksplashqml/splashwindow.cpp b/ksplash/ksplashqml/splashwindow.cpp index 3e00ebac6..a5a307719 100644 --- a/ksplash/ksplashqml/splashwindow.cpp +++ b/ksplash/ksplashqml/splashwindow.cpp @@ -34,7 +34,7 @@ #include SplashWindow::SplashWindow(bool testing, bool window) - : QQuickView(), + : KQuickAddons::QuickViewSharedEngine(), m_stage(0), m_testing(testing), m_window(window) @@ -42,7 +42,7 @@ SplashWindow::SplashWindow(bool testing, bool window) setColor(Qt::transparent); setDefaultAlphaBuffer(true); setClearBeforeRendering(true); - setResizeMode(QQuickView::SizeRootObjectToView); + setResizeMode(KQuickAddons::QuickViewSharedEngine::SizeRootObjectToView); if (!m_window) { setFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); @@ -76,7 +76,7 @@ void SplashWindow::setStage(int stage) void SplashWindow::keyPressEvent(QKeyEvent *event) { - QQuickView::keyPressEvent(event); + KQuickAddons::QuickViewSharedEngine::keyPressEvent(event); if (m_testing && !event->isAccepted() && event->key() == Qt::Key_Escape) { close(); } @@ -84,7 +84,7 @@ void SplashWindow::keyPressEvent(QKeyEvent *event) void SplashWindow::mousePressEvent(QMouseEvent *event) { - QQuickView::mousePressEvent(event); + KQuickAddons::QuickViewSharedEngine::mousePressEvent(event); if (m_testing && !event->isAccepted()) { close(); } @@ -93,7 +93,7 @@ void SplashWindow::mousePressEvent(QMouseEvent *event) void SplashWindow::setGeometry(const QRect& rect) { bool oldGeometryEmpty = geometry().isNull(); - QQuickView::setGeometry(rect); + KQuickAddons::QuickViewSharedEngine::setGeometry(rect); if (oldGeometryEmpty) { diff --git a/ksplash/ksplashqml/splashwindow.h b/ksplash/ksplashqml/splashwindow.h index 2afda0b35..91eb0f4f9 100644 --- a/ksplash/ksplashqml/splashwindow.h +++ b/ksplash/ksplashqml/splashwindow.h @@ -20,13 +20,13 @@ #ifndef SPLASH_WINDOW_H_ #define SPLASH_WINDOW_H_ -#include +#include class QResizeEvent; class QMouseEvent; class QKeyEvent; -class SplashWindow: public QQuickView +class SplashWindow: public KQuickAddons::QuickViewSharedEngine { public: SplashWindow(bool testing, bool window);