diff -pruN 5.94.0-1/CMakeLists.txt 5.96.0-1/CMakeLists.txt
--- 5.94.0-1/CMakeLists.txt	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/CMakeLists.txt	2022-07-02 15:54:45.000000000 +0000
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.94.0") # handled by release scripts
-set(KF_DEP_VERSION "5.93.0") # handled by release scripts
+set(KF_VERSION "5.96.0") # handled by release scripts
+set(KF_DEP_VERSION "5.96.0") # handled by release scripts
 
 project(kirigami2 VERSION ${KF_VERSION})
 
@@ -21,7 +21,7 @@ option(UBUNTU_TOUCH "Build for Ubuntu To
 if(DEFINED STATIC_LIBRARY)
     message(FATAL_ERROR "Use the BUILD_SHARED_LIBS=OFF option to build a static library, STATIC_LIBRARY is no longer a supported option")
 endif()
-find_package(ECM 5.93.0 NO_MODULE)
+find_package(ECM 5.96.0 NO_MODULE)
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
 
 if (NOT ${BUILD_SHARED_LIBS})
@@ -74,6 +74,7 @@ include(KDEFrameworkCompilerSettings NO_
 include(KDEPackageAppTemplates)
 include(ECMGenerateQmlTypes)
 include(ECMQmlModule)
+include(ECMDeprecationSettings)
 
 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Kirigami2")
 
@@ -126,8 +127,10 @@ endif()
 
 ecm_find_qmlmodule(QtGraphicalEffects 1.0)
 
-add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02)
-add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055900)
+ecm_set_disabled_deprecation_versions(
+    QT 5.15.2
+    KF 5.95
+)
 
 # temporary Qt6 porting scafolding until branching
 # (this is intentional made to fail if we forget it for KF6)
diff -pruN 5.94.0-1/debian/changelog 5.96.0-1/debian/changelog
--- 5.94.0-1/debian/changelog	2022-05-19 21:59:06.000000000 +0000
+++ 5.96.0-1/debian/changelog	2022-07-31 11:33:06.000000000 +0000
@@ -1,3 +1,11 @@
+kirigami2 (5.96.0-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * New upstream release (5.96.0).
+  * Bump Standards-Version to 4.6.1, no change required.
+
+ -- Aurélien COUDERC <coucouf@debian.org>  Sun, 31 Jul 2022 13:33:06 +0200
+
 kirigami2 (5.94.0-1) unstable; urgency=medium
 
   [ Aurélien COUDERC ]
diff -pruN 5.94.0-1/debian/control 5.96.0-1/debian/control
--- 5.94.0-1/debian/control	2022-05-05 14:35:54.000000000 +0000
+++ 5.96.0-1/debian/control	2022-07-31 11:33:06.000000000 +0000
@@ -8,7 +8,7 @@ Build-Depends: breeze-icon-theme,
                cmake (>= 3.16~),
                debhelper-compat (= 13),
                doxygen,
-               extra-cmake-modules (>= 5.93.0~),
+               extra-cmake-modules (>= 5.96.0~),
                kpackagetool5,
                libkf5doctools-dev,
                libqt5svg5-dev (>= 5.15.2~),
@@ -19,7 +19,7 @@ Build-Depends: breeze-icon-theme,
                qtquickcontrols2-5-dev (>= 5.15.2~),
                qttools5-dev,
                qttools5-dev-tools (>= 5.7),
-Standards-Version: 4.6.0
+Standards-Version: 4.6.1
 Homepage: https://invent.kde.org/frameworks/kirigami
 Vcs-Browser: https://salsa.debian.org/qt-kde-team/kde/kirigami
 Vcs-Git: https://salsa.debian.org/qt-kde-team/kde/kirigami.git
diff -pruN 5.94.0-1/KF5Kirigami2Macros.cmake 5.96.0-1/KF5Kirigami2Macros.cmake
--- 5.94.0-1/KF5Kirigami2Macros.cmake	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/KF5Kirigami2Macros.cmake	2022-07-02 15:54:45.000000000 +0000
@@ -11,7 +11,7 @@ function(kirigami_package_breeze_icons)
     endif()
 
     #include icons used by Kirigami components themselves
-    set(ARG_ICONS ${ARG_ICONS} go-next go-previous go-up handle-sort overflow-menu-left overflow-menu-right go-next-symbolic go-next-symbolic-rtl go-previous-symbolic go-previous-symbolic-rtl overflow-menu user view-left-new view-right-new view-left-close view-right-close dialog-positive dialog-warning dialog-error dialog-information dialog-close globe mail-sent)
+    set(ARG_ICONS ${ARG_ICONS} go-next go-previous go-up handle-sort overflow-menu-left overflow-menu-right go-next-symbolic go-next-symbolic-rtl go-previous-symbolic go-previous-symbolic-rtl overflow-menu user view-left-new view-right-new view-left-close view-right-close dialog-positive dialog-warning dialog-error dialog-information dialog-close globe mail-sent tools-report-bug)
 
     function(_find_breeze_icon icon varName)
         #HACKY
diff -pruN 5.94.0-1/Mainpage.dox 5.96.0-1/Mainpage.dox
--- 5.94.0-1/Mainpage.dox	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/Mainpage.dox	2022-07-02 15:54:45.000000000 +0000
@@ -28,7 +28,7 @@ A tutorial for Kirigami is available on
 - \link org::kde::kirigami::templates::OverlaySheet  OverlaySheet \endlink
 - \link PageRouter  PageRouter \endlink
 - \link PageRoute  PageRoute \endlink
-- \link org::kde::kirigami::Theme Theme  \endlink
+- \link Kirigami::PlatformTheme Theme  \endlink
 - \link Kirigami::Units  Units \endlink
 - \link Icon Icon  \endlink
 - \link org::kde::kirigami::AbstractApplicationHeader AbstractApplicationHeader  \endlink
diff -pruN 5.94.0-1/po/ar/libkirigami2plugin_qt.po 5.96.0-1/po/ar/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ar/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ar/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-28 12:16+0400\n"
+"PO-Revision-Date: 2022-05-28 22:45+0400\n"
 "Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
 "Language-Team: Arabic <kde-l10n-ar@kde.org>\n"
 "Language: ar\n"
@@ -43,38 +43,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "حقوق النسخ"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "الرّخصة:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "الترخيص: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "المكتبات المستخدمة"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "المؤلفين"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "أظهر صور المطور"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "إشادات"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "المترجمون"
@@ -126,12 +126,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "أغلق الشريط الجانبي"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "افتح الشريط الجانبي"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "يحمّل..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "كلمة السّرّ"
diff -pruN 5.94.0-1/po/ast/libkirigami2plugin_qt.po 5.96.0-1/po/ast/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ast/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ast/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -46,7 +46,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -54,7 +54,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Llicencia:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -62,7 +62,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Llicencia: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -70,7 +70,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Biblioteques n'usu"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -78,12 +78,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autores"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -91,7 +91,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Creitos"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -148,12 +148,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Zarrar la barra llateral"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Zarrar la barra llateral"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Contraseña"
diff -pruN 5.94.0-1/po/az/libkirigami2plugin_qt.po 5.96.0-1/po/az/libkirigami2plugin_qt.po
--- 5.94.0-1/po/az/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/az/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,8 +2,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-22 14:58+0400\n"
-"Last-Translator: Kheyyam Gojayev <xxmn77@gmail.com>\n"
+"PO-Revision-Date: 2022-06-16 00:16+0400\n"
+"Last-Translator: Kheyyam <xxmn77@gmail.com>\n"
 "Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"
 "Language: az\n"
 "MIME-Version: 1.0\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 21.12.3\n"
+"X-Generator: Lokalize 22.04.2\n"
 
 #: controls/AboutItem.qml:117
 #, qt-format
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Müəllif hüquqları"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Lisenziya:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Lisenziya: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "İstifadə olunan kitabxana"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Müəlliflər"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Müəllifin fotoşəklləri"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Minnətdarlıq"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Tərcüməçilər"
@@ -124,12 +124,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Yandakı paneli bağla"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Yan paneli açın"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Yüklənir..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Şifrə"
diff -pruN 5.94.0-1/po/bg/libkirigami2plugin_qt.po 5.96.0-1/po/bg/libkirigami2plugin_qt.po
--- 5.94.0-1/po/bg/libkirigami2plugin_qt.po	1970-01-01 00:00:00.000000000 +0000
+++ 5.96.0-1/po/bg/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -0,0 +1,245 @@
+# Mincho Kondarev <mkondarev@yahoo.de>, 2022.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2022-06-19 14:29+0200\n"
+"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
+"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
+"Language: bg\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Qt-Contexts: true\n"
+"X-Generator: Lokalize 22.04.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: controls/AboutItem.qml:117
+#, qt-format
+msgctxt "AboutItem|"
+msgid "%1 (%2)"
+msgstr "%1 (%2)"
+
+#: controls/AboutItem.qml:126
+#, qt-format
+msgctxt "AboutItem|"
+msgid "Visit %1's KDE Store page"
+msgstr "Посетете %1 на страницата на KDE магазин"
+
+#: controls/AboutItem.qml:135
+#, qt-format
+msgctxt "AboutItem|"
+msgid "Send an email to %1"
+msgstr "Изпращане на имейл до %1"
+
+#: controls/AboutItem.qml:182
+msgctxt "AboutItem|"
+msgid "Get Involved"
+msgstr "Включете се"
+
+#: controls/AboutItem.qml:194
+msgctxt "AboutItem|"
+msgid "Copyright"
+msgstr "Авторско право"
+
+#: controls/AboutItem.qml:243
+msgctxt "AboutItem|"
+msgid "License:"
+msgstr "Лиценз:"
+
+#: controls/AboutItem.qml:265
+#, qt-format
+msgctxt "AboutItem|"
+msgid "License: %1"
+msgstr "Лиценз: %1"
+
+#: controls/AboutItem.qml:276
+msgctxt "AboutItem|"
+msgid "Libraries in use"
+msgstr "Използвани библиотеки"
+
+#: controls/AboutItem.qml:306
+msgctxt "AboutItem|"
+msgid "Authors"
+msgstr "Автори"
+
+#: controls/AboutItem.qml:315
+msgctxt "AboutItem|"
+msgid "Show author photos"
+msgstr "Показване на снимки на автора"
+
+#: controls/AboutItem.qml:346
+msgctxt "AboutItem|"
+msgid "Credits"
+msgstr "Кредити"
+
+#: controls/AboutItem.qml:359
+msgctxt "AboutItem|"
+msgid "Translators"
+msgstr "Преводачи"
+
+#: controls/AboutPage.qml:77
+#, qt-format
+msgctxt "AboutPage|"
+msgid "About %1"
+msgstr "Относно %1"
+
+#: controls/AboutPage.qml:80
+msgctxt "AboutPage|"
+msgid "Report Bug…"
+msgstr "Подаване на сигнал за грешка…"
+
+#: controls/AbstractApplicationWindow.qml:340
+msgctxt "AbstractApplicationWindow|"
+msgid "Quit"
+msgstr "Изход"
+
+#: controls/ActionToolBar.qml:188
+msgctxt "ActionToolBar|"
+msgid "More Actions"
+msgstr "Повече действия"
+
+#: controls/Avatar.qml:152
+#, qt-format
+msgctxt "Avatar|"
+msgid "%1 — %2"
+msgstr "%1 — %2"
+
+#: controls/Chip.qml:83
+msgctxt "Chip|"
+msgid "Remove Tag"
+msgstr "Премахване на етикет"
+
+#: controls/ContextDrawer.qml:66
+msgctxt "ContextDrawer|"
+msgid "Actions"
+msgstr "Действия"
+
+#: controls/GlobalDrawer.qml:471
+msgctxt "GlobalDrawer|"
+msgid "Back"
+msgstr "Назад"
+
+#: controls/GlobalDrawer.qml:564
+msgctxt "GlobalDrawer|"
+msgid "Close Sidebar"
+msgstr "Затваряне на страничната лента"
+
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Отваряне на страничната лента"
+
+#: controls/LoadingPlaceholder.qml:55
+msgctxt "LoadingPlaceholder|"
+msgid "Loading…"
+msgstr "Зареждане…"
+
+#: controls/PasswordField.qml:43
+msgctxt "PasswordField|"
+msgid "Password"
+msgstr "Парола"
+
+#: controls/SearchField.qml:91
+msgctxt "SearchField|"
+msgid "Search…"
+msgstr "Търсене…"
+
+#: controls/SearchField.qml:93
+msgctxt "SearchField|"
+msgid "Search"
+msgstr "Търсене"
+
+#: controls/settingscomponents/CategorizedSettings.qml:29
+#: controls/settingscomponents/CategorizedSettings.qml:52
+msgctxt "CategorizedSettings|"
+msgid "Settings"
+msgstr "Настройки"
+
+#: controls/settingscomponents/CategorizedSettings.qml:29
+#, qt-format
+msgctxt "CategorizedSettings|"
+msgid "Settings — %1"
+msgstr "Настройки — %1"
+
+#. Accessibility text for a page tab. Keep the text as concise as possible and don't use a percent sign.
+#: controls/swipenavigator/templates/PageTab.qml:39
+#, qt-format
+msgctxt "PageTab|"
+msgid "Current page. Progress: %1 percent."
+msgstr "Текуща страница. Прогрес: %1 %."
+
+#. Accessibility text for a page tab. Keep the text as concise as possible.
+#: controls/swipenavigator/templates/PageTab.qml:42
+#, qt-format
+msgctxt "PageTab|"
+msgid "Navigate to %1. Progress: %2 percent."
+msgstr "Навигиране до %1. Прогрес: %2 %."
+
+#. Accessibility text for a page tab. Keep the text as concise as possible.
+#: controls/swipenavigator/templates/PageTab.qml:47
+msgctxt "PageTab|"
+msgid "Current page."
+msgstr "Текуща страница."
+
+#. Accessibility text for a page tab that's requesting the user's attention. Keep the text as concise as possible.
+#: controls/swipenavigator/templates/PageTab.qml:50
+#, qt-format
+msgctxt "PageTab|"
+msgid "Navigate to %1. Demanding attention."
+msgstr "Навигиране до %1. Изисква внимание."
+
+#. Accessibility text for a page tab that's requesting the user's attention. Keep the text as concise as possible.
+#: controls/swipenavigator/templates/PageTab.qml:53
+#, qt-format
+msgctxt "PageTab|"
+msgid "Navigate to %1."
+msgstr "Навигиране до %1."
+
+#: controls/templates/OverlayDrawer.qml:124
+msgctxt "OverlayDrawer|"
+msgid "Close drawer"
+msgstr "Затваряне на чекмеджето"
+
+#: controls/templates/OverlayDrawer.qml:130
+msgctxt "OverlayDrawer|"
+msgid "Open drawer"
+msgstr "Отваряне на чекмеджето"
+
+#: controls/templates/private/BackButton.qml:36
+msgctxt "BackButton|"
+msgid "Navigate Back"
+msgstr "Навигиране обратно"
+
+#: controls/templates/private/ForwardButton.qml:34
+msgctxt "ForwardButton|"
+msgid "Navigate Forward"
+msgstr "Навигиране напред"
+
+#: controls/ToolBarApplicationHeader.qml:113
+msgctxt "ToolBarApplicationHeader|"
+msgid "More Actions"
+msgstr "Повече действия"
+
+#: controls/UrlButton.qml:45
+msgctxt "UrlButton|"
+msgid "Copy link address"
+msgstr "Копиране адреса на връзка"
+
+#: settings.cpp:220
+#, qt-format
+msgctxt "Settings|"
+msgid "KDE Frameworks %1"
+msgstr "KDE Frameworks %1"
+
+#: settings.cpp:222
+#, qt-format
+msgctxt "Settings|"
+msgid "The %1 windowing system"
+msgstr "Система за прозорци %1"
+
+#: settings.cpp:223
+#, qt-format
+msgctxt "Settings|"
+msgid "Qt %2 (built against %3)"
+msgstr "Qt %2 (изграден върху %3)"
diff -pruN 5.94.0-1/po/ca/libkirigami2plugin_qt.po 5.96.0-1/po/ca/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ca/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ca/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kirigami\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
-"PO-Revision-Date: 2022-04-14 10:52+0200\n"
+"PO-Revision-Date: 2022-05-17 08:36+0200\n"
 "Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
 "Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
 "Language: ca\n"
@@ -50,38 +50,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Drets d'autor"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Llicència:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Llicència: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Biblioteques en ús"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autors"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Mostra les fotos dels autors"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Atribucions"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Traductors"
@@ -133,12 +133,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Tanca la barra lateral"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Obre la barra lateral"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "S'està carregant…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Contrasenya"
diff -pruN 5.94.0-1/po/ca@valencia/libkirigami2plugin_qt.po 5.96.0-1/po/ca@valencia/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ca@valencia/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ca@valencia/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: kirigami\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n"
-"PO-Revision-Date: 2022-04-14 10:52+0200\n"
+"PO-Revision-Date: 2022-05-17 08:36+0200\n"
 "Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
 "Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
 "Language: ca@valencia\n"
@@ -50,38 +50,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Drets d'autoria"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Llicència:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Llicència: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Biblioteques en ús"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autoria"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Mostra les fotos dels autors"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Atribucions"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Equip de traducció"
@@ -133,12 +133,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Tanca la barra lateral"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Obri la barra lateral"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "S'està carregant…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Contrasenya"
@@ -190,7 +195,7 @@ msgstr "Pàgina actual."
 #, qt-format
 msgctxt "PageTab|"
 msgid "Navigate to %1. Demanding attention."
-msgstr "Navega a %1. Exigeix atenció."
+msgstr "Navega a %1. Exigix atenció."
 
 #. Accessibility text for a page tab that's requesting the user's attention. Keep the text as concise as possible.
 #: controls/swipenavigator/templates/PageTab.qml:53
diff -pruN 5.94.0-1/po/cs/libkirigami2plugin_qt.po 5.96.0-1/po/cs/libkirigami2plugin_qt.po
--- 5.94.0-1/po/cs/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/cs/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -42,38 +42,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licence:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licence: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Použité knihovny"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autoři"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Zobrazit fotografie autora"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Poděkování"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Překladatelé"
@@ -125,12 +125,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Zavřít postranní panel"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Zavřít postranní panel"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Heslo"
diff -pruN 5.94.0-1/po/da/libkirigami2plugin_qt.po 5.96.0-1/po/da/libkirigami2plugin_qt.po
--- 5.94.0-1/po/da/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/da/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -46,7 +46,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Ophavsret"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -54,7 +54,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licens:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -62,7 +62,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licens: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -70,7 +70,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Biblioteker i brug"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -78,12 +78,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Ophavsmænd"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -91,7 +91,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Tak"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -148,12 +148,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Luk sidepanel"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Luk sidepanel"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Adgangskode"
diff -pruN 5.94.0-1/po/de/libkirigami2plugin_qt.po 5.96.0-1/po/de/libkirigami2plugin_qt.po
--- 5.94.0-1/po/de/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/de/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -4,15 +4,15 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-15 04:22+0200\n"
+"PO-Revision-Date: 2022-06-15 11:07+0200\n"
 "Last-Translator: Frederik Schwarzer <schwarzer@kde.org>\n"
-"Language-Team: German <kde-i18n-doc@kde.org>\n"
+"Language-Team: German <kde-i18n-de@kde.org>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 21.12.3\n"
+"X-Generator: Lokalize 22.04.1\n"
 "X-Qt-Contexts: true\n"
 
 #: controls/AboutItem.qml:117
@@ -43,38 +43,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Lizenz:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Lizenz: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Verwendete Bibliotheken"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autoren"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Fotos von Autoren anzeigen"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Danksagungen"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Übersetzer"
@@ -88,7 +88,7 @@ msgstr "Über %1"
 #: controls/AboutPage.qml:80
 msgctxt "AboutPage|"
 msgid "Report Bug…"
-msgstr "Problem berichten ..."
+msgstr "Probleme oder Wünsche berichten …"
 
 #: controls/AbstractApplicationWindow.qml:340
 msgctxt "AbstractApplicationWindow|"
@@ -126,12 +126,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Seitenleiste schließen"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Seitenleiste öffnen"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Wird geladen ..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Passwort"
diff -pruN 5.94.0-1/po/el/libkirigami2plugin_qt.po 5.96.0-1/po/el/libkirigami2plugin_qt.po
--- 5.94.0-1/po/el/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/el/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Άδεια χρήσης:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Άδεια χρήσης: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Βιβλιοθήκες σε χρήση"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Συγγραφείς"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Εμφάνιση φωτογραφιών συγγραφέων"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Ευχαριστίες"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Μεταφραστές"
@@ -124,12 +124,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Κλείσιμο πλευρικής γραμμής"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Κλείσιμο πλευρικής γραμμής"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Κωδικός πρόσβασης"
diff -pruN 5.94.0-1/po/en_GB/libkirigami2plugin_qt.po 5.96.0-1/po/en_GB/libkirigami2plugin_qt.po
--- 5.94.0-1/po/en_GB/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/en_GB/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licence:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licence: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Libraries in use"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Authors"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Show author photos"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Credits"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Translators"
@@ -124,12 +124,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Close Sidebar"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Close Sidebar"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Loading…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Password"
diff -pruN 5.94.0-1/po/es/libkirigami2plugin_qt.po 5.96.0-1/po/es/libkirigami2plugin_qt.po
--- 5.94.0-1/po/es/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/es/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: libkirigamiplugin_qt\n"
-"PO-Revision-Date: 2022-04-15 00:41+0200\n"
+"PO-Revision-Date: 2022-05-17 17:20+0200\n"
 "Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
 "Language-Team: Spanish <kde-l10n-es@kde.org>\n"
 "Language: es\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 22.03.90\n"
+"X-Generator: Lokalize 22.04.1\n"
 
 #: controls/AboutItem.qml:117
 #, qt-format
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licencia:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licencia: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Bibliotecas en uso"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autores"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Mostrar fotos del autor"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Créditos"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Traductores"
@@ -124,12 +124,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Cerrar la barra lateral"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Abrir la barra lateral"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Cargando..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Contraseña"
diff -pruN 5.94.0-1/po/et/libkirigami2plugin_qt.po 5.96.0-1/po/et/libkirigami2plugin_qt.po
--- 5.94.0-1/po/et/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/et/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -47,7 +47,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Autoriõigus"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -55,7 +55,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Litsents:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -63,7 +63,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Litsents: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -71,7 +71,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Kasutatavad teegid"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -79,12 +79,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autorid"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -92,7 +92,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Tunnustus"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -149,12 +149,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Sulge külgriba"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Sulge külgriba"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Parool"
diff -pruN 5.94.0-1/po/eu/libkirigami2plugin_qt.po 5.96.0-1/po/eu/libkirigami2plugin_qt.po
--- 5.94.0-1/po/eu/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/eu/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -58,7 +58,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -66,7 +66,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Lizentzia:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -74,7 +74,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Lizentzia: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -82,7 +82,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Erabiltzen ari diren liburutegiak"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -90,7 +90,7 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Egileak"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Show author photos"
@@ -98,7 +98,7 @@ msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Erakutsi egilearen argazkiak"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -106,7 +106,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Merituak"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -161,12 +161,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Itxi alboko-barra"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Itxi alboko-barra"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Pasahitza"
diff -pruN 5.94.0-1/po/fi/libkirigami2plugin_qt.po 5.96.0-1/po/fi/libkirigami2plugin_qt.po
--- 5.94.0-1/po/fi/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/fi/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-02-13 21:04+0200\n"
+"PO-Revision-Date: 2022-05-18 19:12+0300\n"
 "Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
 "Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
 "Language: fi\n"
@@ -42,38 +42,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Tekijänoikeudet"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Lisenssi:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Lisenssi: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Käytetyt kirjastot"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Tekijät"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Näytä tekijöiden valokuvat"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Kiitokset"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Kääntäjät"
@@ -125,12 +125,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Sulje sivupaneeli"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Sulje sivupaneeli"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
-msgstr ""
+msgstr "Ladataan…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Salasana"
@@ -192,17 +200,14 @@ msgid "Navigate to %1."
 msgstr "Siirry kohteeseen %1."
 
 #: controls/templates/OverlayDrawer.qml:124
-#, fuzzy
-#| msgctxt "GlobalDrawer|"
-#| msgid "Close Sidebar"
 msgctxt "OverlayDrawer|"
 msgid "Close drawer"
-msgstr "Sulje sivupaneeli"
+msgstr "Sulje laatikko"
 
 #: controls/templates/OverlayDrawer.qml:130
 msgctxt "OverlayDrawer|"
 msgid "Open drawer"
-msgstr ""
+msgstr "Avaa laatikko"
 
 #: controls/templates/private/BackButton.qml:36
 msgctxt "BackButton|"
diff -pruN 5.94.0-1/po/fr/libkirigami2plugin_qt.po 5.96.0-1/po/fr/libkirigami2plugin_qt.po
--- 5.94.0-1/po/fr/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/fr/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -4,7 +4,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-14 21:07+0200\n"
+"PO-Revision-Date: 2022-05-17 19:39+0200\n"
 "Last-Translator: Xavier Besnard <xavier.besnard@neuf.fr>\n"
 "Language-Team: French <kde-francophone@kde.org>\n"
 "Language: fr\n"
@@ -12,7 +12,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Lokalize 21.12.3\n"
+"X-Generator: Lokalize 22.04.1\n"
 "X-Environment: kde\n"
 "X-Accelerator-Marker: &\n"
 "X-Text-Markup: qtrich\n"
@@ -46,38 +46,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Droit d'auteur"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licence :"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licence : %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Bibliothèques en cours d'utilisation"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Auteurs"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Afficher les photos des auteurs"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Crédits"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Traducteurs"
@@ -129,12 +129,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Fermer la barre latérale"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Ouvrir une barre latérale"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Chargement en cours..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Mot de passe"
diff -pruN 5.94.0-1/po/gl/libkirigami2plugin_qt.po 5.96.0-1/po/gl/libkirigami2plugin_qt.po
--- 5.94.0-1/po/gl/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/gl/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -45,7 +45,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Dereitos de copia"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -53,7 +53,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licenza:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -61,7 +61,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licenza: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -69,7 +69,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Bibliotecas usadas"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -77,12 +77,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autores"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -90,7 +90,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Recoñecementos"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -150,12 +150,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr ""
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr ""
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Contrasinal"
diff -pruN 5.94.0-1/po/hi/libkirigami2plugin_qt.po 5.96.0-1/po/hi/libkirigami2plugin_qt.po
--- 5.94.0-1/po/hi/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/hi/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -51,7 +51,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "सर्वाधिकार"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -59,7 +59,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "अनुज्ञापत्र :"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -67,7 +67,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "अनुज्ञापत्र : %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -75,7 +75,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "उपयोग किए गए संग्रह"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -83,7 +83,7 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "लेखक"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Show author photos"
@@ -91,7 +91,7 @@ msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "लेखक की फोटोओं को दिखाएँ"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -99,7 +99,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "आभार सूची"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -154,12 +154,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "बाजूपट्टी बंद करें"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "बाजूपट्टी बंद करें"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "कूटशब्द"
diff -pruN 5.94.0-1/po/hu/libkirigami2plugin_qt.po 5.96.0-1/po/hu/libkirigami2plugin_qt.po
--- 5.94.0-1/po/hu/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/hu/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -42,38 +42,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licenc:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licenc: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Felhasznált függvénykönyvtárak"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Szerzők"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "A szerző fényképének megjelenítése"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Köszönetnyilvánítás"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Fordítók"
@@ -125,12 +125,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Oldalsáv bezárása"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Oldalsáv bezárása"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Jelszó"
diff -pruN 5.94.0-1/po/ia/libkirigami2plugin_qt.po 5.96.0-1/po/ia/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ia/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ia/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licentia:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licentia: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Bibliothecas in uso"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autores"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Monstra photos de autor"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Gratias"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Traductores"
@@ -124,12 +124,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Claude barra lateral"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Claude barra lateral"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Cargante..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Contrasigno"
diff -pruN 5.94.0-1/po/id/libkirigami2plugin_qt.po 5.96.0-1/po/id/libkirigami2plugin_qt.po
--- 5.94.0-1/po/id/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/id/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -43,7 +43,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Hakcipta"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -51,7 +51,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Lisensi:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -59,7 +59,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Lisensi: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -67,7 +67,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Pustaka Lib yang digunakan"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -75,12 +75,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Penulis"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -88,7 +88,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Pujian"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -148,12 +148,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Tutup BilahSisi"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Tutup BilahSisi"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Password"
diff -pruN 5.94.0-1/po/it/libkirigami2plugin_qt.po 5.96.0-1/po/it/libkirigami2plugin_qt.po
--- 5.94.0-1/po/it/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/it/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-14 19:06+0200\n"
+"PO-Revision-Date: 2022-05-19 12:58+0200\n"
 "Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
 "Language-Team: Italian <kde-i18n-it@kde.org>\n"
 "Language: it\n"
@@ -10,7 +10,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 21.12.3\n"
+"X-Generator: Lokalize 22.04.1\n"
 "X-Qt-Contexts: true\n"
 
 #: controls/AboutItem.qml:117
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licenza:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licenza: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Librerie in uso"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autori"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Mostra le foto degli autori"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Riconoscimenti"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Traduttori"
@@ -124,12 +124,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Chiudi la barra laterale"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Apri la barra laterale"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Caricamento…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Password"
diff -pruN 5.94.0-1/po/ja/libkirigami2plugin_qt.po 5.96.0-1/po/ja/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ja/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ja/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -39,38 +39,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr ""
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr ""
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr ""
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr ""
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr ""
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr ""
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr ""
@@ -122,12 +122,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr ""
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr ""
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr ""
diff -pruN 5.94.0-1/po/ko/libkirigami2plugin_qt.po 5.96.0-1/po/ko/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ko/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ko/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "저작권"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "라이선스:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "라이선스: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "사용하는 라이브러리"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "작성자"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "작성자 사진 표시"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "제작진"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "번역자"
@@ -124,12 +124,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "사이드바 닫기"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "사이드바 닫기"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "불러오는 중…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "암호"
diff -pruN 5.94.0-1/po/lt/libkirigami2plugin_qt.po 5.96.0-1/po/lt/libkirigami2plugin_qt.po
--- 5.94.0-1/po/lt/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/lt/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -45,7 +45,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Autorių teisės"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -53,7 +53,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licencija:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -61,7 +61,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licencija: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -69,7 +69,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Naudojamos bibliotekos"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -77,12 +77,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autoriai"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -90,7 +90,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Padėkos"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -150,12 +150,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Užverti šoninę juostą"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Užverti šoninę juostą"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Slaptažodis"
diff -pruN 5.94.0-1/po/ml/libkirigami2plugin_qt.po 5.96.0-1/po/ml/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ml/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ml/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -39,38 +39,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr ""
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr ""
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr ""
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr ""
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr ""
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr ""
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr ""
@@ -122,12 +122,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr ""
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr ""
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr ""
diff -pruN 5.94.0-1/po/nl/libkirigami2plugin_qt.po 5.96.0-1/po/nl/libkirigami2plugin_qt.po
--- 5.94.0-1/po/nl/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/nl/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-14 12:38+0200\n"
+"PO-Revision-Date: 2022-05-17 08:59+0200\n"
 "Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
 "Language-Team: \n"
 "Language: nl\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 21.12.3\n"
+"X-Generator: Lokalize 22.04.0\n"
 
 #: controls/AboutItem.qml:117
 #, qt-format
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licentie:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licentie: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Bibliotheken in gebruik"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Auteurs"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Foto's van auteurs tonen"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Dankbetuigingen"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Vertalers"
@@ -124,12 +124,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Zijbalk sluiten"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Zijbalk openen"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Bezig met laden…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Wachtwoord"
diff -pruN 5.94.0-1/po/nn/libkirigami2plugin_qt.po 5.96.0-1/po/nn/libkirigami2plugin_qt.po
--- 5.94.0-1/po/nn/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/nn/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -46,38 +46,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr ""
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr ""
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr ""
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr ""
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr ""
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr ""
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr ""
@@ -129,12 +129,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Lukk sidestolpen"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr ""
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Passord"
diff -pruN 5.94.0-1/po/pa/libkirigami2plugin_qt.po 5.96.0-1/po/pa/libkirigami2plugin_qt.po
--- 5.94.0-1/po/pa/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/pa/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -46,7 +46,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "ਕਾਪੀਰਾਈਟ"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -54,7 +54,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "ਲਸੰਸ:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -62,7 +62,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "ਲਸੰਸ: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -70,7 +70,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "ਵਰਤਣ ਲਈ ਲਾਇਬਰੇਰੀਆਂ"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -78,12 +78,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "ਲੇਖਕ"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -91,7 +91,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "ਮਾਣ"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -148,12 +148,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "ਬਾਹੀ ਬੰਦ ਕਰੋ"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "ਬਾਹੀ ਬੰਦ ਕਰੋ"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "ਪਾਸਵਰਡ"
diff -pruN 5.94.0-1/po/pl/libkirigami2plugin_qt.po 5.96.0-1/po/pl/libkirigami2plugin_qt.po
--- 5.94.0-1/po/pl/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/pl/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-30 21:02+0200\n"
+"PO-Revision-Date: 2022-06-04 10:08+0200\n"
 "Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
 "Language-Team: Polish <kde-i18n-doc@kde.org>\n"
 "Language: pl\n"
@@ -42,38 +42,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Prawa autorskie"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licencja:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licencja: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Używane biblioteki"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autorzy"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Pokaż zdjęcia autorów"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Zasługi"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Tłumacze"
@@ -125,12 +125,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Zamknij pasek boczny"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Otwórz pasek boczny"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Wczytywanie..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Hasło"
diff -pruN 5.94.0-1/po/pt/libkirigami2plugin_qt.po 5.96.0-1/po/pt/libkirigami2plugin_qt.po
--- 5.94.0-1/po/pt/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/pt/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: libkirigami2plugin_qt\n"
-"PO-Revision-Date: 2022-04-20 15:14+0100\n"
+"PO-Revision-Date: 2022-05-17 09:31+0100\n"
 "Last-Translator: José Nuno Coelho Pires <zepires@gmail.com>\n"
 "Language-Team: Portuguese <kde-i18n-pt@kde.org>\n"
 "Language: pt\n"
@@ -43,38 +43,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "'Copyright'"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licença:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licença: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Bibliotecas usadas"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autores"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Mostrar as fotografias dos autores"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Créditos"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Tradutores"
@@ -126,12 +126,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Fechar a Barra Lateral"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Abrir a Barra Lateral"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "A carregar…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Senha"
diff -pruN 5.94.0-1/po/pt_BR/libkirigami2plugin_qt.po 5.96.0-1/po/pt_BR/libkirigami2plugin_qt.po
--- 5.94.0-1/po/pt_BR/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/pt_BR/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -48,38 +48,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licença:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licença: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Bibliotecas em uso"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autores"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Mostrar as fotos dos autores"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Créditos"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Tradutores"
@@ -131,12 +131,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Fechar barra lateral"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Fechar barra lateral"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Carregando..."
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Senha"
diff -pruN 5.94.0-1/po/ro/libkirigami2plugin_qt.po 5.96.0-1/po/ro/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ro/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ro/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-30 12:15+0100\n"
+"PO-Revision-Date: 2022-06-01 15:32+0100\n"
 "Last-Translator: Sergiu Bivol <sergiu@cip.md>\n"
 "Language-Team: Romanian <kde-i18n-ro@kde.org>\n"
 "Language: ro\n"
@@ -42,38 +42,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Drept de autor"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licență:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licență: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Biblioteci folosite"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autori"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Arată pozele autorilor"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Mulțumiri"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Traducători"
@@ -125,12 +125,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Închide bara laterală"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Deschide bara laterală"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Se încarcă…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Parolă"
diff -pruN 5.94.0-1/po/ru/libkirigami2plugin_qt.po 5.96.0-1/po/ru/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ru/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ru/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -44,38 +44,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Авторские права"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Лицензия:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Лицензия: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Используемые библиотеки"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Авторы"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Показать фотографии авторов"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Благодарности"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Переводчики"
@@ -127,12 +127,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Закрыть боковую панель"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Закрыть боковую панель"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Пароль"
diff -pruN 5.94.0-1/po/sk/libkirigami2plugin_qt.po 5.96.0-1/po/sk/libkirigami2plugin_qt.po
--- 5.94.0-1/po/sk/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/sk/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -56,7 +56,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -64,7 +64,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licencia:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -72,7 +72,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licencia: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -80,7 +80,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Použité knižnice"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -88,7 +88,7 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Autori"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Show author photos"
@@ -96,7 +96,7 @@ msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Zobraziť fotografie autora"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -104,7 +104,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Zásluhy"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -159,12 +159,20 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Zatvoriť bočný panel"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Zatvoriť bočný panel"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Heslo"
diff -pruN 5.94.0-1/po/sl/libkirigami2plugin_qt.po 5.96.0-1/po/sl/libkirigami2plugin_qt.po
--- 5.94.0-1/po/sl/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/sl/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2022-04-15 07:48+0200\n"
+"PO-Revision-Date: 2022-05-18 07:29+0200\n"
 "Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n"
 "Language-Team: Slovenian <lugos-slo@lugos.si>\n"
 "Language: sl\n"
@@ -47,38 +47,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Dovoljenje:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Dovoljenje: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Knjižnice v rabi"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Avtorji"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Prikaži fotografije avtorjev"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Zasluge"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Prevajalci"
@@ -130,12 +130,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Zapri stransko letvico"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Odpri stransko letvico"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Nalaganje…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Geslo"
diff -pruN 5.94.0-1/po/sv/libkirigami2plugin_qt.po 5.96.0-1/po/sv/libkirigami2plugin_qt.po
--- 5.94.0-1/po/sv/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/sv/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-14 18:41+0200\n"
+"PO-Revision-Date: 2022-05-21 10:41+0200\n"
 "Last-Translator: Stefan Asserhäll <stefan.asserhall@bredband.net>\n"
 "Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
 "Language: sv\n"
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Licens:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Licens: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Använda bibliotek"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Upphovsmän"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Visa foton av upphovsmän"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Tack till"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Översättare"
@@ -124,12 +124,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Stäng sidorad"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Öppna sidorad"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Läser in…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Lösenord"
diff -pruN 5.94.0-1/po/ta/libkirigami2plugin_qt.po 5.96.0-1/po/ta/libkirigami2plugin_qt.po
--- 5.94.0-1/po/ta/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/ta/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -2,7 +2,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-14 19:36+0530\n"
+"PO-Revision-Date: 2022-05-17 21:28+0530\n"
 "Last-Translator: Kishore G <kishore96@gmail.com>\n"
 "Language-Team: Tamil <kde-i18n-doc@kde.org>\n"
 "Language: ta\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Lokalize 22.03.90\n"
+"X-Generator: Lokalize 22.04.1\n"
 
 #: controls/AboutItem.qml:117
 #, qt-format
@@ -41,38 +41,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "பதிப்புரிமை"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "உரிமம்:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "உரிமம்: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "பயன்படுத்தும் நிரலகங்கள்"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "இயற்றியவர்கள்"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "இயற்றியவர்களின் படங்களைக் காட்டு"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "நன்றி"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "மொழிபெயர்ப்பாளர்கள்"
@@ -124,12 +124,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "ஓரப்பட்டையை மூடு"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "ஓரப்பட்டையை திற"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "ஏற்றப்படுகிறது…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "கடவுச்சொல்"
diff -pruN 5.94.0-1/po/tg/libkirigami2plugin_qt.po 5.96.0-1/po/tg/libkirigami2plugin_qt.po
--- 5.94.0-1/po/tg/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/tg/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -44,7 +44,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Ҳуқуқи муаллиф"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -52,7 +52,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Иҷозатнома:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -60,7 +60,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Иҷозатнома: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -68,7 +68,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Китобхонаҳое, ки истифода мешаванд"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -76,12 +76,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Муаллифон"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -89,7 +89,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Сипосгузорӣ"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -149,12 +149,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr ""
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr ""
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Ниҳонвожа"
diff -pruN 5.94.0-1/po/tr/libkirigami2plugin_qt.po 5.96.0-1/po/tr/libkirigami2plugin_qt.po
--- 5.94.0-1/po/tr/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/tr/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -3,7 +3,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
-"PO-Revision-Date: 2022-04-14 17:28+0300\n"
+"PO-Revision-Date: 2022-05-17 11:22+0300\n"
 "Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
 "Language-Team: Turkish <kde-l10n-tr@kde.org>\n"
 "Language: tr\n"
@@ -11,7 +11,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Lokalize 21.12.3\n"
+"X-Generator: Lokalize 22.04.0\n"
 "X-Qt-Contexts: true\n"
 "X-POOTLE-MTIME: 1497529432.000000\n"
 
@@ -43,38 +43,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Telif hakkı"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Lisans:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Lisans: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Kullanılan kitaplıklar"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Yazarlar"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Yazar fotoğraflarını göster"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Teşekkürler"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Çevirmenler"
@@ -126,12 +126,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Kenar Çubuğunu Kapat"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Kenar Çubuğunu Aç"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Yükleniyor…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Parola"
diff -pruN 5.94.0-1/po/uk/libkirigami2plugin_qt.po 5.96.0-1/po/uk/libkirigami2plugin_qt.po
--- 5.94.0-1/po/uk/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/uk/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -7,7 +7,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: libkirigami2plugin_qt\n"
-"PO-Revision-Date: 2022-04-14 08:41+0300\n"
+"PO-Revision-Date: 2022-05-17 09:02+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
 "Language: uk\n"
@@ -48,38 +48,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Авторські права"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "Ліцензування:"
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "Ліцензування: %1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "Використані бібліотеки"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "Автори"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "Показати фотографії авторів"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "Подяки"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "Перекладачі"
@@ -131,12 +131,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "Закрити бічну панель"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "Відкрити бічну панель"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "Завантаження…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "Пароль"
diff -pruN 5.94.0-1/po/zh_CN/libkirigami2plugin_qt.po 5.96.0-1/po/zh_CN/libkirigami2plugin_qt.po
--- 5.94.0-1/po/zh_CN/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/zh_CN/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -1,10 +1,6 @@
 # Weng Xuetian <wengxt@gmail.com>, 2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: kdeorg\n"
-"PO-Revision-Date: 2022-04-26 15:18\n"
-"Language-Team: Chinese Simplified\n"
-"Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -15,6 +11,10 @@ msgstr ""
 "X-Crowdin-Language: zh-CN\n"
 "X-Crowdin-File: /kf5-trunk/messages/kirigami/libkirigami2plugin_qt.pot\n"
 "X-Crowdin-File-ID: 6217\n"
+"Project-Id-Version: kdeorg\n"
+"Language-Team: Chinese Simplified\n"
+"Language: zh_CN\n"
+"PO-Revision-Date: 2022-07-02 10:59\n"
 
 #: controls/AboutItem.qml:117
 #, qt-format
@@ -44,38 +44,38 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "Copyright"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 msgctxt "AboutItem|"
 msgid "License:"
 msgstr "许可证："
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, qt-format
 msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "许可证：%1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "使用的程序库"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "开发人员"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr "显示开发人员照片"
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "致谢"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 msgctxt "AboutItem|"
 msgid "Translators"
 msgstr "翻译人员"
@@ -127,12 +127,17 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "关闭侧栏"
 
+#: controls/GlobalDrawer.qml:567
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "打开侧边栏"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr "正在加载…"
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "密码"
diff -pruN 5.94.0-1/po/zh_TW/libkirigami2plugin_qt.po 5.96.0-1/po/zh_TW/libkirigami2plugin_qt.po
--- 5.94.0-1/po/zh_TW/libkirigami2plugin_qt.po	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/po/zh_TW/libkirigami2plugin_qt.po	2022-07-02 15:54:45.000000000 +0000
@@ -1,19 +1,20 @@
 # Jeff Huang <s8321414@gmail.com>, 2016.
 # Franklin Weng <franklin@goodhorse.idv.tw>, 2017.
 # pan93412 <pan93412@gmail.com>, 2018, 2019.
+# Kisaragi Hiu <mail@kisaragi-hiu.com>, 2022.
 msgid ""
 msgstr ""
 "Project-Id-Version: libkirigamiplugin_qt\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-09-22 20:41+0800\n"
-"PO-Revision-Date: 2019-12-20 02:11+0800\n"
-"Last-Translator: pan93412 <pan93412@gmail.com>\n"
-"Language-Team: Chinese <zh-l10n@lists.linux.org.tw>\n"
+"PO-Revision-Date: 2022-06-12 04:37+0900\n"
+"Last-Translator: Kisaragi Hiu <mail@kisaragi-hiu.com>\n"
+"Language-Team: Chinese <kde-i18n-doc@kde.org>\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 19.12.0\n"
+"X-Generator: Lokalize 22.04.2\n"
 "X-Qt-Contexts: true\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
@@ -48,7 +49,7 @@ msgctxt "AboutItem|"
 msgid "Copyright"
 msgstr "版權"
 
-#: controls/AboutItem.qml:242
+#: controls/AboutItem.qml:243
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "License:"
@@ -56,7 +57,7 @@ msgctxt "AboutItem|"
 msgid "License:"
 msgstr "授權："
 
-#: controls/AboutItem.qml:264
+#: controls/AboutItem.qml:265
 #, fuzzy, qt-format
 #| msgctxt "AboutPage|"
 #| msgid "License: %1"
@@ -64,7 +65,7 @@ msgctxt "AboutItem|"
 msgid "License: %1"
 msgstr "授權：%1"
 
-#: controls/AboutItem.qml:275
+#: controls/AboutItem.qml:276
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Libraries in use"
@@ -72,7 +73,7 @@ msgctxt "AboutItem|"
 msgid "Libraries in use"
 msgstr "使用中函式庫"
 
-#: controls/AboutItem.qml:305
+#: controls/AboutItem.qml:306
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Authors"
@@ -80,12 +81,12 @@ msgctxt "AboutItem|"
 msgid "Authors"
 msgstr "作者"
 
-#: controls/AboutItem.qml:314
+#: controls/AboutItem.qml:315
 msgctxt "AboutItem|"
 msgid "Show author photos"
 msgstr ""
 
-#: controls/AboutItem.qml:345
+#: controls/AboutItem.qml:346
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Credits"
@@ -93,7 +94,7 @@ msgctxt "AboutItem|"
 msgid "Credits"
 msgstr "幫助者"
 
-#: controls/AboutItem.qml:358
+#: controls/AboutItem.qml:359
 #, fuzzy
 #| msgctxt "AboutPage|"
 #| msgid "Translators"
@@ -153,20 +154,25 @@ msgctxt "GlobalDrawer|"
 msgid "Close Sidebar"
 msgstr "關閉側邊列"
 
+#: controls/GlobalDrawer.qml:567
+#, fuzzy
+#| msgctxt "GlobalDrawer|"
+#| msgid "Close Sidebar"
+msgctxt "GlobalDrawer|"
+msgid "Open Sidebar"
+msgstr "關閉側邊列"
+
 #: controls/LoadingPlaceholder.qml:55
 msgctxt "LoadingPlaceholder|"
 msgid "Loading…"
 msgstr ""
 
-#: controls/PasswordField.qml:32
+#: controls/PasswordField.qml:43
 msgctxt "PasswordField|"
 msgid "Password"
 msgstr "密碼"
 
 #: controls/SearchField.qml:91
-#, fuzzy
-#| msgctxt "SearchField|"
-#| msgid "Search..."
 msgctxt "SearchField|"
 msgid "Search…"
 msgstr "搜尋…"
diff -pruN 5.94.0-1/src/CMakeLists.txt 5.96.0-1/src/CMakeLists.txt
--- 5.94.0-1/src/CMakeLists.txt	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/CMakeLists.txt	2022-07-02 15:54:45.000000000 +0000
@@ -199,6 +199,10 @@ ecm_target_qml_sources(KirigamiPlugin VE
     controls/LoadingPlaceholder.qml
 )
 
+ecm_target_qml_sources(KirigamiPlugin VERSION 2.20 SOURCES
+    controls/SelectableLabel.qml
+)
+
 ecm_target_qml_sources(KirigamiPlugin PRIVATE PATH private SOURCES
     controls/private/ActionButton.qml
     controls/private/ActionIconGroup.qml
diff -pruN 5.94.0-1/src/columnview.cpp 5.96.0-1/src/columnview.cpp
--- 5.94.0-1/src/columnview.cpp	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/columnview.cpp	2022-07-02 15:54:45.000000000 +0000
@@ -626,6 +626,7 @@ QQuickItem *ContentItem::ensureSeparator
         separatorItem = qobject_cast<QQuickItem *>(
             privateQmlComponentsPoolSelf->instance(qmlEngine(item))->m_separatorComponent->beginCreate(QQmlEngine::contextForObject(item)));
         if (separatorItem) {
+            separatorItem->setParent(this);
             separatorItem->setParentItem(item);
             separatorItem->setZ(9999);
             separatorItem->setProperty("column", QVariant::fromValue(item));
@@ -645,6 +646,7 @@ QQuickItem *ContentItem::ensureRightSepa
         separatorItem = qobject_cast<QQuickItem *>(
             QmlComponentsPoolSingleton::instance(qmlEngine(item))->m_rightSeparatorComponent->beginCreate(QQmlEngine::contextForObject(item)));
         if (separatorItem) {
+            separatorItem->setParent(this);
             separatorItem->setParentItem(item);
             separatorItem->setZ(9999);
             separatorItem->setProperty("column", QVariant::fromValue(item));
diff -pruN 5.94.0-1/src/controls/AboutItem.qml 5.96.0-1/src/controls/AboutItem.qml
--- 5.94.0-1/src/controls/AboutItem.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/AboutItem.qml	2022-07-02 15:54:45.000000000 +0000
@@ -230,6 +230,7 @@ Item
             contentItem: QQC2.Label {
                 id: bodyLabel
                 text: licenseSheet.text
+                wrapMode: Text.Wrap
             }
         }
 
diff -pruN 5.94.0-1/src/controls/AbstractApplicationWindow.qml 5.96.0-1/src/controls/AbstractApplicationWindow.qml
--- 5.94.0-1/src/controls/AbstractApplicationWindow.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/AbstractApplicationWindow.qml	2022-07-02 15:54:45.000000000 +0000
@@ -27,7 +27,7 @@ import org.kde.kirigami 2.4
  * will set its initial size, but it won't set it as an automatically binding.
  * to resize programmatically the ApplicationWindow they need to
  * be assigned again in an imperative fashion
- * 
+ *
  *
  * Example usage:
  * @code
@@ -76,11 +76,11 @@ QQC2.ApplicationWindow {
     /**
      * This property holds the stack used to allocate the pages and to manage the
      * transitions between them.
-     * 
+     *
      * Put a container here, such as QtQuick.Controls.StackView.
      */
     property Item pageStack
-    LayoutMirroring.enabled: Qt.application.layoutDirection == Qt.RightToLeft
+    LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
     LayoutMirroring.childrenInherit: true
 
     /**
diff -pruN 5.94.0-1/src/controls/ActionTextField.qml 5.96.0-1/src/controls/ActionTextField.qml
--- 5.94.0-1/src/controls/ActionTextField.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ActionTextField.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,18 +4,19 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.6
-import QtQuick.Controls 2.1 as Controls
-import org.kde.kirigami 2.7 as Kirigami
+import QtQuick 2.15
+import QtQuick.Controls 2.15 as Controls
+
+import org.kde.kirigami 2.20 as Kirigami
 
 /**
  * This is advanced textfield. It is recommended to use this class when there
- * is a need to create a create a textfield with action buttons(e.g a clear
+ * is a need to create a create a textfield with action buttons (e.g a clear
  * action).
  *
  * Example usage for a search field:
  * @code
- * import org.kde.kirigami 2.7 as Kirigami
+ * import org.kde.kirigami 2.20 as Kirigami
  *
  * Kirigami.ActionTextField {
  *     id: searchField
@@ -24,21 +25,20 @@ import org.kde.kirigami 2.7 as Kirigami
  *
  *     focusSequence: "Ctrl+F"
  *
- *     rightActions: [
- *         Kirigami.Action {
- *             icon.name: "edit-clear"
- *             visible: searchField.text !== ""
- *             onTriggered: {
- *                 searchField.text = ""
- *                 searchField.accepted()
- *             }
+ *     rightActions: Kirigami.Action {
+ *         icon.name: "edit-clear"
+ *         visible: searchField.text !== ""
+ *         onTriggered: {
+ *             searchField.text = ""
+ *             searchField.accepted()
  *         }
- *     ]
+ *     }
  *
  *     onAccepted: console.log("Search text is " + searchField.text)
  * }
  * @endcode
  *
+ * @since 5.56
  * @inherit QtQuick.Controls.TextField
  */
 Controls.TextField
@@ -47,6 +47,8 @@ Controls.TextField
 
     /**
      * This property holds a shortcut sequence that will focus the text field.
+     *
+     * @since 5.56
      */
     property string focusSequence
 
@@ -54,6 +56,8 @@ Controls.TextField
      * This property holds a list of actions that will be displayed on the left side of the text field.
      *
      * By default this list is empty.
+     *
+     * @since 5.56
      */
     property list<QtObject> leftActions
 
@@ -61,6 +65,8 @@ Controls.TextField
      * This property holds a list of actions that will be displayed on the right side of the text field.
      *
      * By default this list is empty.
+     *
+     * @since 5.56
      */
     property list<QtObject> rightActions
 
@@ -69,16 +75,12 @@ Controls.TextField
 
     hoverEnabled: true
 
-    leftPadding: if (Qt.application.layoutDirection === Qt.RightToLeft) {
-        return _rightActionsRow.width + Kirigami.Units.smallSpacing
-    } else {
-        return _leftActionsRow.width + Kirigami.Units.smallSpacing
-    }
-    rightPadding: if (Qt.application.layoutDirection === Qt.RightToLeft) {
-        return _leftActionsRow.width + Kirigami.Units.smallSpacing
-    } else {
-        return _rightActionsRow.width + Kirigami.Units.smallSpacing
-    }
+    horizontalAlignment: Qt.AlignLeft
+    LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
+    LayoutMirroring.childrenInherit: true
+
+    leftPadding: Kirigami.Units.smallSpacing + (LayoutMirroring.enabled ? rightActionsRow : leftActionsRow).width
+    rightPadding: Kirigami.Units.smallSpacing + (LayoutMirroring.enabled ? leftActionsRow : rightActionsRow).width
 
     Behavior on leftPadding {
         NumberAnimation {
@@ -94,7 +96,6 @@ Controls.TextField
         }
     }
 
-
     Shortcut {
         id: focusShortcut
         enabled: root.focusSequence
@@ -113,6 +114,8 @@ Controls.TextField
     Row {
         id: leftActionsRow
         padding: Kirigami.Units.smallSpacing
+        spacing: Kirigami.Units.smallSpacing
+        layoutDirection: Qt.LeftToRight
         anchors.left: parent.left
         anchors.leftMargin: Kirigami.Units.smallSpacing
         anchors.top: parent.top
@@ -126,13 +129,13 @@ Controls.TextField
                 implicitHeight: Kirigami.Units.iconSizes.sizeForLabels
 
                 anchors.verticalCenter: parent.verticalCenter
-                anchors.bottomMargin: root.bottomPadding
-                anchors.bottom: parent.bottom
 
                 source: modelData.icon.name.length > 0 ? modelData.icon.name : modelData.icon.source
+                active: leftActionArea.containsPress
                 visible: modelData.visible
                 enabled: modelData.enabled
                 MouseArea {
+                    id: leftActionArea
                     anchors.fill: parent
                     onClicked: modelData.trigger()
                     cursorShape: Qt.PointingHandCursor
@@ -144,6 +147,7 @@ Controls.TextField
     Row {
         id: rightActionsRow
         padding: Kirigami.Units.smallSpacing
+        spacing: Kirigami.Units.smallSpacing
         layoutDirection: Qt.RightToLeft
         anchors.right: parent.right
         anchors.rightMargin: Kirigami.Units.smallSpacing
@@ -160,11 +164,11 @@ Controls.TextField
                 anchors.verticalCenter: parent.verticalCenter
 
                 source: modelData.icon.name.length > 0 ? modelData.icon.name : modelData.icon.source
-                active: actionArea.containsPress
+                active: rightActionArea.containsPress
                 visible: modelData.visible
                 enabled: modelData.enabled
                 MouseArea {
-                    id: actionArea
+                    id: rightActionArea
                     anchors.fill: parent
                     onClicked: modelData.trigger()
                     cursorShape: Qt.PointingHandCursor
diff -pruN 5.94.0-1/src/controls/ActionToolBar.qml 5.96.0-1/src/controls/ActionToolBar.qml
--- 5.94.0-1/src/controls/ActionToolBar.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ActionToolBar.qml	2022-07-02 15:54:45.000000000 +0000
@@ -191,7 +191,7 @@ Controls.Control {
             }
 
             menuActions: {
-                if (root.hiddenActions.length == 0) {
+                if (root.hiddenActions.length === 0) {
                     return root.actions
                 } else {
                     result = []
diff -pruN 5.94.0-1/src/controls/ApplicationItem.qml 5.96.0-1/src/controls/ApplicationItem.qml
--- 5.94.0-1/src/controls/ApplicationItem.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ApplicationItem.qml	2022-07-02 15:54:45.000000000 +0000
@@ -106,7 +106,7 @@ AbstractApplicationItem {
         anchors {
             fill: parent
             //HACK: workaround a bug in android iOS keyboard management
-            bottomMargin: ((Qt.platform.os == "android" || Qt.platform.os == "ios") || !Qt.inputMethod.visible) ? 0 : Qt.inputMethod.keyboardRectangle.height
+            bottomMargin: ((Qt.platform.os === "android" || Qt.platform.os === "ios") || !Qt.inputMethod.visible) ? 0 : Qt.inputMethod.keyboardRectangle.height
             onBottomMarginChanged: {
                 if (bottomMargin > 0) {
                     root.reachableMode = false;
diff -pruN 5.94.0-1/src/controls/ApplicationWindow.qml 5.96.0-1/src/controls/ApplicationWindow.qml
--- 5.94.0-1/src/controls/ApplicationWindow.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ApplicationWindow.qml	2022-07-02 15:54:45.000000000 +0000
@@ -22,7 +22,7 @@ import org.kde.kirigami 2.4 as Kirigami
  * will set its initial size, but it won't set it as an automatically binding.
  * to resize programmatically the ApplicationWindow they need to
  * be assigned again in an imperative fashion
- * 
+ *
  * Example usage:
  * @code
  * import org.kde.kirigami 2.4 as Kirigami
@@ -119,7 +119,7 @@ AbstractApplicationWindow {
         anchors {
             fill: parent
             //HACK: workaround a bug in android iOS keyboard management
-            bottomMargin: ((Qt.platform.os == "android" || Qt.platform.os == "ios") || !Qt.inputMethod.visible) ? 0 : Qt.inputMethod.keyboardRectangle.height
+            bottomMargin: ((Qt.platform.os === "android" || Qt.platform.os === "ios") || !Qt.inputMethod.visible) ? 0 : Qt.inputMethod.keyboardRectangle.height
             onBottomMarginChanged: {
                 if (__pageStack.anchors.bottomMargin > 0) {
                     root.reachableMode = false;
diff -pruN 5.94.0-1/src/controls/Avatar.qml 5.96.0-1/src/controls/Avatar.qml
--- 5.94.0-1/src/controls/Avatar.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/Avatar.qml	2022-07-02 15:54:45.000000000 +0000
@@ -217,12 +217,12 @@ QQC2.Control {
 
     QtObject {
         id: __private
-        property color textColor: Kirigami.ColorUtils.brightnessForColor(avatarRoot.color) == Kirigami.ColorUtils.Light
+        property color textColor: Kirigami.ColorUtils.brightnessForColor(avatarRoot.color) === Kirigami.ColorUtils.Light
                                 ? "black"
                                 : "white"
         property bool showImage: {
-            return (avatarRoot.imageMode == Kirigami.Avatar.ImageMode.AlwaysShowImage) ||
-                   (avatarImage.status == Image.Ready && avatarRoot.imageMode == Kirigami.Avatar.ImageMode.AdaptiveImageOrInitals)
+            return (avatarRoot.imageMode === Kirigami.Avatar.ImageMode.AlwaysShowImage) ||
+                   (avatarImage.status === Image.Ready && avatarRoot.imageMode === Kirigami.Avatar.ImageMode.AdaptiveImageOrInitals)
         }
     }
 
@@ -230,7 +230,7 @@ QQC2.Control {
         Text {
             id: avatarText
             fontSizeMode: Text.Fit
-            visible: avatarRoot.initialsMode == Kirigami.Avatar.InitialsMode.UseInitials &&
+            visible: avatarRoot.initialsMode === Kirigami.Avatar.InitialsMode.UseInitials &&
                     !__private.showImage &&
                     !Kirigami.NameUtils.isStringUnsuitableForInitials(avatarRoot.name) &&
                     avatarRoot.width > Kirigami.Units.gridUnit
@@ -249,7 +249,7 @@ QQC2.Control {
         }
         Kirigami.Icon {
             id: avatarIcon
-            visible: (avatarRoot.initialsMode == Kirigami.Avatar.InitialsMode.UseIcon && !__private.showImage) ||
+            visible: (avatarRoot.initialsMode === Kirigami.Avatar.InitialsMode.UseIcon && !__private.showImage) ||
                     (Kirigami.NameUtils.isStringUnsuitableForInitials(avatarRoot.name) && !__private.showImage)
 
             source: "user"
diff -pruN 5.94.0-1/src/controls/BasicListItem.qml 5.96.0-1/src/controls/BasicListItem.qml
--- 5.94.0-1/src/controls/BasicListItem.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/BasicListItem.qml	2022-07-02 15:54:45.000000000 +0000
@@ -144,7 +144,7 @@ AbstractListItem {
      *     height: int,
      *     color:  color,
      * }
-     * 
+     *
      * type Icon = string | IconGroup | URL
      * @endcode
      *
@@ -230,7 +230,7 @@ AbstractListItem {
 
     /**
      * This property holds the spacing between the label row and subtitle row.
-     * 
+     *
      * @since 5.83
      * @since org.kde.kirigami 2.15
      * @property real textSpacing
@@ -308,7 +308,7 @@ AbstractListItem {
                 Layout.maximumWidth: size
                 selected: (listItem.highlighted || listItem.checked || (listItem.pressed && listItem.supportsMouseEvents))
                 opacity: listItem.fadeContent ? 0.4 : 1.0
-                visible: source != undefined
+                visible: source !== undefined
             }
             ColumnLayout {
                 id: labelColumn
diff -pruN 5.94.0-1/src/controls/Card.qml 5.96.0-1/src/controls/Card.qml
--- 5.94.0-1/src/controls/Card.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/Card.qml	2022-07-02 15:54:45.000000000 +0000
@@ -82,19 +82,19 @@ Kirigami.AbstractCard {
         id: bannerImage
         anchors.leftMargin: -root.leftPadding + root.background.border.width
         anchors.topMargin: -root.topPadding + root.background.border.width
-        anchors.rightMargin: root.headerOrientation == Qt.Vertical ? -root.rightPadding + root.background.border.width : 0
-        anchors.bottomMargin: root.headerOrientation == Qt.Horizontal ? -root.bottomPadding + root.background.border.width : 0
+        anchors.rightMargin: root.headerOrientation === Qt.Vertical ? -root.rightPadding + root.background.border.width : 0
+        anchors.bottomMargin: root.headerOrientation === Qt.Horizontal ? -root.bottomPadding + root.background.border.width : 0
         //height: Layout.preferredHeight
-        implicitWidth: root.headerOrientation == Qt.Horizontal ? sourceSize.width : Layout.preferredWidth
-        Layout.preferredHeight: (source != "" ? width / (sourceSize.width / sourceSize.height) : Layout.minimumHeight) + anchors.topMargin + anchors.bottomMargin
+        implicitWidth: root.headerOrientation === Qt.Horizontal ? sourceSize.width : Layout.preferredWidth
+        Layout.preferredHeight: (source.toString() !== "" ? width / (sourceSize.width / sourceSize.height) : Layout.minimumHeight) + anchors.topMargin + anchors.bottomMargin
 
         readonly property real widthWithBorder: width + root.background.border.width * 2
         readonly property real heightWithBorder: height + root.background.border.width * 2
         readonly property real radiusFromBackground: root.background.radius - root.background.border.width
 
         corners.topLeftRadius: radiusFromBackground
-        corners.topRightRadius: (root.headerOrientation == Qt.Horizontal && widthWithBorder < root.width) ? 0 : radiusFromBackground
-        corners.bottomLeftRadius: (root.headerOrientation != Qt.Horizontal && heightWithBorder < root.height) ? 0 : radiusFromBackground
+        corners.topRightRadius: (root.headerOrientation === Qt.Horizontal && widthWithBorder < root.width) ? 0 : radiusFromBackground
+        corners.bottomLeftRadius: (root.headerOrientation !== Qt.Horizontal && heightWithBorder < root.height) ? 0 : radiusFromBackground
         corners.bottomRightRadius: heightWithBorder < root.height ? 0 : radiusFromBackground
     }
 
@@ -103,16 +103,16 @@ Kirigami.AbstractCard {
             return;
         }
 
-        header.anchors.leftMargin = Qt.binding(function() {return -root.leftPadding});
-        header.anchors.topMargin = Qt.binding(function() {return  -root.topPadding});
-        header.anchors.rightMargin = Qt.binding(function() {return root.headerOrientation == Qt.Vertical ? -root.rightPadding : 0});
-        header.anchors.bottomMargin = Qt.binding(function() {return root.headerOrientation == Qt.Horizontal ? -root.bottomPadding : 0});
+        header.anchors.leftMargin = Qt.binding(() => -root.leftPadding);
+        header.anchors.topMargin = Qt.binding(() =>  -root.topPadding);
+        header.anchors.rightMargin = Qt.binding(() => root.headerOrientation === Qt.Vertical ? -root.rightPadding : 0);
+        header.anchors.bottomMargin = Qt.binding(() => root.headerOrientation === Qt.Horizontal ? -root.bottomPadding : 0);
     }
 
     footer: Kirigami.ActionToolBar {
         id: actionsToolBar
         actions: root.actions
         position: Controls.ToolBar.Footer
-        visible: root.footer == actionsToolBar
+        visible: root.footer === actionsToolBar
     }
 }
diff -pruN 5.94.0-1/src/controls/CardsListView.qml 5.96.0-1/src/controls/CardsListView.qml
--- 5.94.0-1/src/controls/CardsListView.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/CardsListView.qml	2022-07-02 15:54:45.000000000 +0000
@@ -27,7 +27,7 @@ import "private"
 ListView {
     id: root
     spacing: Kirigami.Units.largeSpacing * 2
-    topMargin: headerPositioning != ListView.InlineHeader ? spacing : 0
+    topMargin: headerPositioning !== ListView.InlineHeader ? spacing : 0
     rightMargin: Kirigami.Units.largeSpacing * 2
     leftMargin: Kirigami.Units.largeSpacing * 2
     reuseItems: true
diff -pruN 5.94.0-1/src/controls/ContextDrawer.qml 5.96.0-1/src/controls/ContextDrawer.qml
--- 5.94.0-1/src/controls/ContextDrawer.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ContextDrawer.qml	2022-07-02 15:54:45.000000000 +0000
@@ -89,7 +89,7 @@ OverlayDrawer {
             (typeof applicationWindow() === "undefined" || !applicationWindow().pageStack.globalToolBar ||
             (applicationWindow().pageStack.lastVisibleItem && applicationWindow().pageStack.lastVisibleItem.globalToolBarStyle !== ApplicationHeaderStyle.ToolBar) ||
             (applicationWindow().pageStack.layers && applicationWindow().pageStack.layers.depth > 1 && applicationWindow().pageStack.layers.currentItem && applicationWindow().pageStack.layers.currentItem.globalToolBarStyle !== ApplicationHeaderStyle.ToolBar))
-    edge: Qt.application.layoutDirection == Qt.RightToLeft ? Qt.LeftEdge : Qt.RightEdge
+    edge: Qt.application.layoutDirection === Qt.RightToLeft ? Qt.LeftEdge : Qt.RightEdge
     drawerOpen: false
 
     /**
@@ -111,7 +111,7 @@ OverlayDrawer {
     rightPadding: 0
     bottomPadding: 0
 
-    handleVisible: applicationWindow == undefined ? false : applicationWindow().controlsVisible
+    handleVisible: applicationWindow === undefined ? false : applicationWindow().controlsVisible
 
     onPeekingChanged: {
         if (page) {
@@ -126,7 +126,7 @@ OverlayDrawer {
             id: menu
             interactive: contentHeight > height
             model: {
-                if (typeof root.actions == "undefined") {
+                if (typeof root.actions === "undefined") {
                     return null;
                 }
                 if (root.actions.length === 0) {
diff -pruN 5.94.0-1/src/controls/Dialog.qml 5.96.0-1/src/controls/Dialog.qml
--- 5.94.0-1/src/controls/Dialog.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/Dialog.qml	2022-07-02 15:54:45.000000000 +0000
@@ -390,7 +390,7 @@ T.Dialog {
                 Layout.fillWidth: true
                 Layout.alignment: Qt.AlignVCenter
                 level: 2
-                text: root.title == "" ? " " : root.title // always have text to ensure header height
+                text: root.title === "" ? " " : root.title // always have text to ensure header height
                 elide: Text.ElideRight
 
                 // use tooltip for long text that is elided
diff -pruN 5.94.0-1/src/controls/FormLayout.qml 5.96.0-1/src/controls/FormLayout.qml
--- 5.94.0-1/src/controls/FormLayout.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/FormLayout.qml	2022-07-02 15:54:45.000000000 +0000
@@ -85,7 +85,9 @@ Item {
 
     Component.onDestruction: {
         for (let i in twinFormLayouts) {
-            twinFormLayouts[i].children[0].reverseTwins = twinFormLayouts[i].children[0].reverseTwins.filter(function(value, index, arr){ return value != root;})
+            const twin = twinFormLayouts[i];
+            const child = twin.children[0];
+            child.reverseTwins = child.reverseTwins.filter((value, index, arr) => value !== root)
         }
     }
     GridLayout {
@@ -228,7 +230,7 @@ Item {
          */
         function effectiveTextLayout(item) {
             if (root.wideMode) {
-                return item.Kirigami.FormData.labelAlignment != 0 ? item.Kirigami.FormData.labelAlignment : Text.AlignVCenter
+                return item.Kirigami.FormData.labelAlignment !== 0 ? item.Kirigami.FormData.labelAlignment : Text.AlignVCenter
             }
             return Text.AlignBottom
         }
@@ -244,7 +246,7 @@ Item {
                 const item = __items[i];
 
                 //skip items that are already there
-                if (lay.knownItems.indexOf(item) != -1 || item instanceof Repeater) {
+                if (lay.knownItems.indexOf(item) !== -1 || item instanceof Repeater) {
                     continue;
                 }
                 lay.knownItems.push(item);
@@ -399,7 +401,15 @@ Item {
             Kirigami.MnemonicData.label: item.Kirigami.FormData.label
 
             Layout.columnSpan: item.Kirigami.FormData.isSection ? lay.columns : 1
-            Layout.preferredHeight: item.Kirigami.FormData.label.length > 0 ? implicitHeight : Kirigami.Units.smallSpacing
+            Layout.preferredHeight: {
+                if (item.Kirigami.FormData.label.length > 0) {
+                    if (root.wideMode && !(item.Kirigami.FormData.buddyFor instanceof TextArea)) {
+                        return Math.max(implicitHeight, item.Kirigami.FormData.buddyFor.height)
+                    }
+                    return implicitHeight
+                }
+                return Kirigami.Units.smallSpacing;
+            }
 
             Layout.alignment: temp.effectiveLayout(this)
             Layout.topMargin: item.Kirigami.FormData.buddyFor.height > implicitHeight * 2 ? Kirigami.Units.smallSpacing/2 : 0
@@ -428,7 +438,7 @@ Item {
             contentItem: Kirigami.Heading {
                 id: labelItemHeading
                 level: labelItem.item.Kirigami.FormData.isSection ? 3 : 5
-                text: labelItem.text
+                text: labelItem.Kirigami.MnemonicData.richTextLabel
                 type: item.Kirigami.FormData.isSection ? Kirigami.Heading.Type.Primary : Kirigami.Heading.Type.Normal
                 verticalAlignment: temp.effectiveTextLayout(labelItem.item)
                 enabled: labelItem.item.Kirigami.FormData.enabled
diff -pruN 5.94.0-1/src/controls/GlobalDrawer.qml 5.96.0-1/src/controls/GlobalDrawer.qml
--- 5.94.0-1/src/controls/GlobalDrawer.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/GlobalDrawer.qml	2022-07-02 15:54:45.000000000 +0000
@@ -338,7 +338,7 @@ OverlayDrawer {
                     Layout.fillWidth: true
                     visible: contentItem && opacity > 0
                     // Workaround for https://bugreports.qt.io/browse/QTBUG-90034
-                    Layout.preferredHeight: implicitHeight <= 0 || opacity == 1 ? -1 : implicitHeight * opacity
+                    Layout.preferredHeight: implicitHeight <= 0 || opacity === 1 ? -1 : implicitHeight * opacity
                     opacity: !root.collapsed || showHeaderWhenCollapsed
                     Behavior on opacity {
                         //not an animator as is binded
@@ -562,6 +562,10 @@ OverlayDrawer {
                     onClicked: root.collapsed = !root.collapsed
                     visible: root.collapsible && root.collapseButtonVisible
                     text: root.collapsed ? "" : qsTr("Close Sidebar")
+
+                    QQC2.ToolTip.visible: root.collapsed && hovered
+                    QQC2.ToolTip.text: qsTr("Open Sidebar")
+                    QQC2.ToolTip.delay: Units.toolTipDelay
                 }
             }
         }
diff -pruN 5.94.0-1/src/controls/Hero.qml 5.96.0-1/src/controls/Hero.qml
--- 5.94.0-1/src/controls/Hero.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/Hero.qml	2022-07-02 15:54:45.000000000 +0000
@@ -127,14 +127,14 @@ Item {
     }
 
     function open() {
-        if (source != null && destination != null && !heroAnimation.running) {
+        if (source !== null && destination !== null && !heroAnimation.running) {
             heroAnimation.source = source
             heroAnimation.destination = destination
             heroAnimation.restart()
         }
     }
     function close() {
-        if (source != null && destination != null && !heroAnimation.running) {
+        if (source !== null && destination !== null && !heroAnimation.running) {
             // doing a switcheroo simplifies the code
             heroAnimation.source = destination
             heroAnimation.destination = source
diff -pruN 5.94.0-1/src/controls/InlineMessage.qml 5.96.0-1/src/controls/InlineMessage.qml
--- 5.94.0-1/src/controls/InlineMessage.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/InlineMessage.qml	2022-07-02 15:54:45.000000000 +0000
@@ -67,11 +67,11 @@ T.InlineMessage {
         id: bgBorderRect
 
         color: {
-            if (root.type == Kirigami.MessageType.Positive) {
+            if (root.type === Kirigami.MessageType.Positive) {
                 return Kirigami.Theme.positiveTextColor;
-            } else if (root.type == Kirigami.MessageType.Warning) {
+            } else if (root.type === Kirigami.MessageType.Warning) {
                 return Kirigami.Theme.neutralTextColor;
-            } else if (root.type == Kirigami.MessageType.Error) {
+            } else if (root.type === Kirigami.MessageType.Error) {
                 return Kirigami.Theme.negativeTextColor;
             }
 
diff -pruN 5.94.0-1/src/controls/ItemViewHeader.qml 5.96.0-1/src/controls/ItemViewHeader.qml
--- 5.94.0-1/src/controls/ItemViewHeader.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ItemViewHeader.qml	2022-07-02 15:54:45.000000000 +0000
@@ -41,12 +41,12 @@ Kirigami.AbstractItemViewHeader {
             asynchronous: true
         }
         EdgeShadow {
-            edge: root.view.headerPositioning == ListView.InlineHeader ? Qt.BottomEdge : Qt.TopEdge
+            edge: root.view.headerPositioning === ListView.InlineHeader ? Qt.BottomEdge : Qt.TopEdge
             anchors {
                 right: parent.right
                 left: parent.left
-                top: root.view.headerPositioning == ListView.InlineHeader ? undefined : parent.bottom
-                bottom: root.view.headerPositioning == ListView.InlineHeader ? parent.top : undefined
+                top: root.view.headerPositioning === ListView.InlineHeader ? undefined : parent.bottom
+                bottom: root.view.headerPositioning === ListView.InlineHeader ? parent.top : undefined
             }
         }
 
diff -pruN 5.94.0-1/src/controls/MenuDialog.qml 5.96.0-1/src/controls/MenuDialog.qml
--- 5.94.0-1/src/controls/MenuDialog.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/MenuDialog.qml	2022-07-02 15:54:45.000000000 +0000
@@ -11,16 +11,16 @@ import org.kde.kirigami 2.19 as Kirigami
 /**
  * A dialog that prompts users with a context menu, with
  * list items that perform actions.
- * 
+ *
  * @see Dialog
  * @see PromptDialog
- * 
+ *
  * Example usage:
- * 
+ *
  * @code{.qml}
  * Kirigami.MenuDialog {
  *     title: i18n("Track Options")
- *     
+ *
  *     actions: [
  *         Kirigami.Action {
  *             iconName: "media-playback-start"
@@ -51,35 +51,35 @@ import org.kde.kirigami 2.19 as Kirigami
  *     ]
  * }
  * @endcode
- * 
+ *
  * @inherit Dialog
  */
 Kirigami.Dialog {
-    
+
     /**
      * The list of actions to show in the context menu.
      */
     property list<QtObject> actions
-    
+
     /**
      * The content header, which appears above the actions
      * but below the header bar.
      */
     property Item contentHeader
-    
+
     /**
-     * Provides access to the content header QtQuick.Control, 
+     * Provides access to the content header QtQuick.Control,
      * which can allow for setting its padding (ex. `contentHeaderControl.topPadding`).
      */
     property alias contentHeaderControl: columnHeader
-    
+
     preferredWidth: Kirigami.Units.gridUnit * 20
     padding: 0
-    
+
     ColumnLayout {
         id: column
         spacing: 0
-        
+
         Controls.Control {
             id: columnHeader
             topPadding: 0
@@ -88,27 +88,27 @@ Kirigami.Dialog {
             rightPadding: 0
             contentItem: contentHeader
         }
-        
+
         Repeater {
             model: actions
-            
+
             delegate: Kirigami.BasicListItem {
                 Layout.fillWidth: true
                 Layout.preferredHeight: Kirigami.Units.gridUnit * 2
-                
+
                 iconSize: Kirigami.Units.gridUnit
                 leftPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
                 rightPadding: Kirigami.Units.largeSpacing + + Kirigami.Units.smallSpacing
-                
+
                 icon: modelData.icon.name
                 text: modelData.text
                 onClicked: modelData.trigger(this)
-                
+
                 enabled: modelData.enabled
-                
+
                 visible: modelData.visible
-                
-                Controls.ToolTip.visible: modelData.tooltip != "" && hoverHandler.hovered
+
+                Controls.ToolTip.visible: modelData.tooltip !== "" && hoverHandler.hovered
                 Controls.ToolTip.text: modelData.tooltip
                 HoverHandler { id: hoverHandler }
             }
diff -pruN 5.94.0-1/src/controls/NavigationTabBar.qml 5.96.0-1/src/controls/NavigationTabBar.qml
--- 5.94.0-1/src/controls/NavigationTabBar.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/NavigationTabBar.qml	2022-07-02 15:54:45.000000000 +0000
@@ -111,6 +111,7 @@ import QtGraphicalEffects 1.12
  *
  * @endcode
  * 
+ * @see NavigationTabButton
  * @inherit QtQuick.Templates.Toolbar
  * @since 5.87
  * @since org.kde.kirigami 2.19
@@ -176,6 +177,15 @@ T.ToolBar {
      * This property holds the ButtonGroup used to manage the tabs.
      */
     readonly property T.ButtonGroup tabGroup: tabGroup
+    
+    /**
+     * Whether the icon colors should be masked with a single color.
+     * 
+     * This only applies to buttons generated by the actions property.
+     * 
+     * @since 5.96
+     */
+    property bool recolorIcons: true
 
     onCurrentIndexChanged: {
         if (currentIndex === -1) {
@@ -250,6 +260,7 @@ T.ToolBar {
             parent: root.contentItem
             action: modelData
             visible: modelData.visible
+            recolorIcon: root.recolorIcons
             T.ButtonGroup.group: tabGroup
             // Workaround setting the action when checkable is not explicitly set making tabs uncheckable
             onActionChanged: action.checkable = true
diff -pruN 5.94.0-1/src/controls/NavigationTabButton.qml 5.96.0-1/src/controls/NavigationTabButton.qml
--- 5.94.0-1/src/controls/NavigationTabButton.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/NavigationTabButton.qml	2022-07-02 15:54:45.000000000 +0000
@@ -9,6 +9,62 @@ import QtQuick.Controls 2.15 as QQC2
 import QtQuick.Layouts 1.15
 import org.kde.kirigami 2.19 as Kirigami
 
+/**
+ * Navigation buttons to be used for the NavigationTabBar component.
+ * 
+ * Alternative way to the "actions" property on NavigationTabBar, as it can be used
+ * with Repeater to generate buttons from models.
+ * 
+ * Example:
+ * @code{.qml}
+ * Kirigami.NavigationTabBar {
+ *      id: navTabBar
+ *      Kirigami.NavigationTabButton {
+ *          visible: true
+ *          icon.name: "document-save"
+ *          text: `test ${tabIndex + 1}`
+ *          QQC2.ButtonGroup.group: navTabBar.tabGroup
+ *      }
+ *      Kirigami.NavigationTabButton {
+ *          visible: false
+ *          icon.name: "document-send"
+ *          text: `test ${tabIndex + 1}`
+ *          QQC2.ButtonGroup.group: navTabBar.tabGroup
+ *      }
+ *      actions: [
+ *          Kirigami.Action {
+ *              visible: true
+ *              icon.name: "edit-copy"
+ *              icon.height: 32
+ *              icon.width: 32
+ *              text: `test 3`
+ *              checked: true
+ *          },
+ *          Kirigami.Action {
+ *              visible: true
+ *              icon.name: "edit-cut"
+ *              text: `test 4`
+ *              checkable: true
+ *          },
+ *          Kirigami.Action {
+ *              visible: false
+ *              icon.name: "edit-paste"
+ *              text: `test 5`
+ *          },
+ *          Kirigami.Action {
+ *              visible: true
+ *              icon.source: "../logo.png"
+ *              text: `test 6`
+ *              checkable: true
+ *          }
+ *      ]
+ *  }
+ * @endcode
+ * 
+ * @inherit QtQuick.Templates.TabButton
+ * @since 5.87
+ * @since org.kde.kirigami 2.19
+ */
 T.TabButton {
     id: control
 
@@ -26,6 +82,13 @@ T.TabButton {
         }
         return -1
     }
+    
+    /**
+     * Whether the icon colors should be masked with a single color.
+     * 
+     * @since 5.96
+     */
+    property bool recolorIcon: true
 
     property color foregroundColor: Qt.rgba(Kirigami.Theme.textColor.r, Kirigami.Theme.textColor.g, Kirigami.Theme.textColor.b, 0.85)
     property color highlightForegroundColor: Qt.rgba(Kirigami.Theme.textColor.r, Kirigami.Theme.textColor.g, Kirigami.Theme.textColor.b, 0.85)
@@ -98,11 +161,13 @@ T.TabButton {
         spacing: label.lineCount > 1 ? 0 : control.spacing
 
         Kirigami.Icon {
+            id: icon
             source: control.icon.name || control.icon.source
-            isMask: true
+            isMask: control.recolorIcon
             Layout.alignment: Qt.AlignHCenter | (label.lineCount > 1 ? 0 : Qt.AlignBottom)
-            implicitHeight: control.icon.height
-            implicitWidth: control.icon.width
+            implicitHeight: source ? control.icon.height : 0
+            implicitWidth: source ? control.icon.width : 0
+            visible: control.icon.name !== '' && control.icon.source !== ''
             color: control.icon.color
             Behavior on color { ColorAnimation {} }
             Behavior on opacity { NumberAnimation {} }
@@ -112,9 +177,9 @@ T.TabButton {
             Kirigami.MnemonicData.enabled: control.enabled && control.visible
             Kirigami.MnemonicData.controlType: Kirigami.MnemonicData.MenuItem
             Kirigami.MnemonicData.label: control.text
-            
+
             text: Kirigami.MnemonicData.richTextLabel
-            Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
+            Layout.alignment: icon.visible ? Qt.AlignHCenter | Qt.AlignTop : Qt.AlignCenter
             horizontalAlignment: Text.AlignHCenter
 
             wrapMode: Text.Wrap
@@ -122,16 +187,16 @@ T.TabButton {
             color: control.checked ? control.highlightForegroundColor : control.foregroundColor
             font.bold: control.checked
             font.family: Kirigami.Theme.smallFont.family
-            font.pointSize: Kirigami.Theme.smallFont.pointSize
-            
+            font.pointSize: icon.visible ? Kirigami.Theme.smallFont.pointSize : Kirigami.Theme.defaultFont.pointSize * 1.20 // 1.20 is equivalent to level 2 heading
+
             Behavior on color { ColorAnimation {} }
             Behavior on opacity { NumberAnimation {} }
-            
+
             // Work around bold text changing implicit size
             Layout.preferredWidth: boldMetrics.implicitWidth
             Layout.preferredHeight: boldMetrics.implicitHeight * label.lineCount
             Layout.fillWidth: true
-            
+
             QQC2.Label {
                 id: boldMetrics
                 visible: false
diff -pruN 5.94.0-1/src/controls/OverlayDrawer.qml 5.96.0-1/src/controls/OverlayDrawer.qml
--- 5.94.0-1/src/controls/OverlayDrawer.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/OverlayDrawer.qml	2022-07-02 15:54:45.000000000 +0000
@@ -85,7 +85,7 @@ T.OverlayDrawer {
 
                 source: {
                     var edge = root.edge;
-                    if (Qt.application.layoutDirection == Qt.RightToLeft) {
+                    if (Qt.application.layoutDirection === Qt.RightToLeft) {
                         if (edge === Qt.LeftEdge) {
                             edge = Qt.RightEdge;
                         } else {
@@ -96,9 +96,9 @@ T.OverlayDrawer {
                     if ((root.handleClosedIcon.source || root.handleClosedIcon.name)
                         && (root.handleOpenIcon.source || root.handleOpenIcon.name)) {
                         return Qt.resolvedUrl("templates/private/GenericDrawerIcon.qml");
-                    } else if (edge == Qt.LeftEdge ) {
+                    } else if (edge === Qt.LeftEdge ) {
                         return Qt.resolvedUrl("templates/private/MenuIcon.qml");
-                    } else if(edge == Qt.RightEdge && root.hasOwnProperty("actions")) {
+                    } else if(edge === Qt.RightEdge && root.hasOwnProperty("actions")) {
                         return Qt.resolvedUrl("templates/private/ContextIcon.qml");
                     }else {
                         return "";
@@ -118,10 +118,10 @@ T.OverlayDrawer {
             LayoutMirroring.enabled: false
            // LayoutMirroring.childrenInherit: true
             anchors {
-                right: root.edge == Qt.RightEdge ? parent.left : (root.edge == Qt.LeftEdge ? undefined : parent.right)
-                left: root.edge == Qt.LeftEdge ? parent.right : (root.edge == Qt.RightEdge ? undefined : parent.left)
-                top: root.edge == Qt.TopEdge ? parent.bottom : (root.edge == Qt.BottomEdge ? undefined : parent.top)
-                bottom: root.edge == Qt.BottomEdge ? parent.top : (root.edge == Qt.TopEdge ? undefined : parent.bottom)
+                right: root.edge === Qt.RightEdge ? parent.left : (root.edge === Qt.LeftEdge ? undefined : parent.right)
+                left: root.edge === Qt.LeftEdge ? parent.right : (root.edge === Qt.RightEdge ? undefined : parent.left)
+                top: root.edge === Qt.TopEdge ? parent.bottom : (root.edge === Qt.BottomEdge ? undefined : parent.top)
+                bottom: root.edge === Qt.BottomEdge ? parent.top : (root.edge === Qt.TopEdge ? undefined : parent.bottom)
             }
             visible: !root.modal
         }
@@ -130,13 +130,13 @@ T.OverlayDrawer {
             visible: root.modal
             edge: root.edge
             anchors {
-                right: root.edge == Qt.RightEdge ? parent.left : (root.edge == Qt.LeftEdge ? undefined : parent.right)
-                left: root.edge == Qt.LeftEdge ? parent.right : (root.edge == Qt.RightEdge ? undefined : parent.left)
-                top: root.edge == Qt.TopEdge ? parent.bottom : (root.edge == Qt.BottomEdge ? undefined : parent.top)
-                bottom: root.edge == Qt.BottomEdge ? parent.top : (root.edge == Qt.TopEdge ? undefined : parent.bottom)
+                right: root.edge === Qt.RightEdge ? parent.left : (root.edge === Qt.LeftEdge ? undefined : parent.right)
+                left: root.edge === Qt.LeftEdge ? parent.right : (root.edge === Qt.RightEdge ? undefined : parent.left)
+                top: root.edge === Qt.TopEdge ? parent.bottom : (root.edge === Qt.BottomEdge ? undefined : parent.top)
+                bottom: root.edge === Qt.BottomEdge ? parent.top : (root.edge === Qt.TopEdge ? undefined : parent.bottom)
             }
 
-            opacity: root.position == 0 ? 0 : 1
+            opacity: root.position === 0 ? 0 : 1
 
             Behavior on opacity {
                 NumberAnimation {
diff -pruN 5.94.0-1/src/controls/PagePoolAction.qml 5.96.0-1/src/controls/PagePoolAction.qml
--- 5.94.0-1/src/controls/PagePoolAction.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/PagePoolAction.qml	2022-07-02 15:54:45.000000000 +0000
@@ -39,7 +39,7 @@ Kirigami.Action {
      * By default this property is binded to ApplicationWindow's global
      * pageStack, which is a PageRow by default.
      */
-    property Item pageStack: typeof applicationWindow != undefined ? applicationWindow().pageStack : null
+    property Item pageStack: typeof applicationWindow !== 'undefined' ? applicationWindow().pageStack : null
 
     /**
      * The page of pageStack new pages will be pushed after.
@@ -48,32 +48,32 @@ Kirigami.Action {
     property Controls.Page basePage
 
     /**
-      * @property QVariantMap initialProperties
-      *
-      * This property holds a function that generate the property values for the created page
-      * when it is pushed onto the Kirigami.PagePool.
-      *
-      * @code{.qml}
-      * Kirigami.PagePoolAction {
-      *     text: i18n("Security")
-      *     icon.name: "security-low"
-      *     page: Qt.resolvedUrl("Security.qml")
-      *     initialProperties: {
-      *         return {
-      *             room: root.room
-      *         }
-      *     }
-      * }
-      * @endcode
-      */
+     * @property QVariantMap initialProperties
+     *
+     * This property holds a function that generate the property values for the created page
+     * when it is pushed onto the Kirigami.PagePool.
+     *
+     * @code{.qml}
+     * Kirigami.PagePoolAction {
+     *     text: i18n("Security")
+     *     icon.name: "security-low"
+     *     page: Qt.resolvedUrl("Security.qml")
+     *     initialProperties: {
+     *         return {
+     *             room: root.room
+     *         }
+     *     }
+     * }
+     * @endcode
+     */
     property var initialProperties
 
-    /** 
+    /**
       * @since 5.70
       * @since org.kde.kirigami 2.12
       * When true the PagePoolAction will use the layers property of the pageStack.
       * This is intended for use with PageRow layers to allow PagePoolActions to
-      * push context-specific pages onto the layers stack. 
+      * push context-specific pages onto the layers stack.
       */
     property bool useLayers: false
 
@@ -109,7 +109,7 @@ Kirigami.Action {
     checkable: true
 
     onTriggered: {
-        if (page.length == 0 || !pagePool || !pageStack) {
+        if (page.length === 0 || !pagePool || !pageStack) {
             return;
         }
 
@@ -179,7 +179,7 @@ Kirigami.Action {
         function clearLayers() {
             pageStack.layers.clear()
         }
-        
+
         property list<Connections> connections: [
             Connections {
                 target: pageStack
@@ -207,7 +207,7 @@ Kirigami.Action {
                         _private.setChecked(root.layerContainsPage());
 
                     } else {
-                        if (pageStack.layers.depth == 1 && root.stackContainsPage()) {
+                        if (pageStack.layers.depth === 1 && root.stackContainsPage()) {
                             _private.setChecked(true)
                         }
                     }
diff -pruN 5.94.0-1/src/controls/Page.qml 5.96.0-1/src/controls/Page.qml
--- 5.94.0-1/src/controls/Page.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/Page.qml	2022-07-02 15:54:45.000000000 +0000
@@ -194,7 +194,7 @@ QQC2.Page {
      */
     //TODO KF6: remove this or at least all the assumptions about the internal tree structure of items
     readonly property bool isCurrentPage: Kirigami.ColumnView.view
-            ? (Kirigami.ColumnView.index == Kirigami.ColumnView.view.currentIndex && Kirigami.ColumnView.view.parent.parent.currentItem === Kirigami.ColumnView.view.parent)
+            ? (Kirigami.ColumnView.index === Kirigami.ColumnView.view.currentIndex && Kirigami.ColumnView.view.parent.parent.currentItem === Kirigami.ColumnView.view.parent)
             : (parent && parent instanceof QQC2.StackView
                 ? parent.currentItem === root
                 : true)
@@ -236,11 +236,9 @@ QQC2.Page {
     property Component titleDelegate: Component {
         id: defaultTitleDelegate
         Kirigami.Heading {
-            level: 1
             Layout.fillWidth: true
             Layout.maximumWidth: implicitWidth + 1 // The +1 is to make sure we do not trigger eliding at max width
             Layout.minimumWidth: 0
-            opacity: root.isCurrentPage ? 1 : 0.4
             maximumLineCount: 1
             elide: Text.ElideRight
             text: root.title
@@ -319,11 +317,11 @@ QQC2.Page {
     implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding
 
     //FIXME: on material the shadow would bleed over
-    clip: root.header != null;
+    clip: root.header !== null;
 
     onHeaderChanged: {
         if (header) {
-            header.anchors.top = Qt.binding(function() {return globalToolBar.visible ? globalToolBar.bottom : root.top});
+            header.anchors.top = Qt.binding(() => globalToolBar.visible ? globalToolBar.bottom : root.top);
         }
     }
 
@@ -400,19 +398,23 @@ QQC2.Page {
                     root.titleDelegate !== defaultTitleDelegate) {
                     sourceComponent = root.titleDelegate;
                 } else if (active) {
-                    setSource(Qt.resolvedUrl(root.globalToolBarStyle === Kirigami.ApplicationHeaderStyle.ToolBar ? "private/globaltoolbar/ToolBarPageHeader.qml" : "private/globaltoolbar/TitlesPageHeader.qml"),
+                    const url = root.globalToolBarStyle === Kirigami.ApplicationHeaderStyle.ToolBar
+                        ? "private/globaltoolbar/ToolBarPageHeader.qml"
+                        : "private/globaltoolbar/TitlesPageHeader.qml";
                     //TODO: find container reliably, remove assumption
-                    {"pageRow": Qt.binding(function() {return row}),
-                    "page": root,
-                    "current": Qt.binding(function() {
-                        if (!row && !stack) {
-                            return true;
-                        } else if (stack) {
-                            return stack;
-                        } else {
-                            return row.currentIndex === root.Kirigami.ColumnView.level;
-                        }
-                    })});
+                    setSource(Qt.resolvedUrl(url), {
+                        pageRow: Qt.binding(() => row),
+                        page: root,
+                        current: Qt.binding(() => {
+                            if (!row && !stack) {
+                                return true;
+                            } else if (stack) {
+                                return stack;
+                            } else {
+                                return row.currentIndex === root.Kirigami.ColumnView.level;
+                            }
+                        }),
+                    });
                 }
             }
         },
@@ -453,7 +455,7 @@ QQC2.Page {
                     return false;
                 }
 
-                if (!root.actions.main && !root.actions.left && !root.actions.right && root.actions.contextualActions.length == 0) {
+                if (!root.actions.main && !root.actions.left && !root.actions.right && root.actions.contextualActions.length === 0) {
                     return false;
                 }
 
diff -pruN 5.94.0-1/src/controls/PageRow.qml 5.96.0-1/src/controls/PageRow.qml
--- 5.94.0-1/src/controls/PageRow.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/PageRow.qml	2022-07-02 15:54:45.000000000 +0000
@@ -404,7 +404,7 @@ T.Control {
             return null
         }
         //don't push again things already there
-        if (page.createObject === undefined && typeof page != "string" && columnView.containsItem(page)) {
+        if (page.createObject === undefined && typeof page !== "string" && columnView.containsItem(page)) {
             print("The item " + page + " is already in the PageRow");
             return null;
         }
@@ -420,7 +420,7 @@ T.Control {
             pages = page;
             page = pages.pop();
             //compatibility with pre-qqc1 api, can probably be removed
-            if (page.createObject === undefined && page.parent === undefined && typeof page != "string") {
+            if (page.createObject === undefined && page.parent === undefined && typeof page !== "string") {
                 properties = properties || page.properties;
                 page = page.page;
             }
@@ -439,7 +439,7 @@ T.Control {
                 var tPage = pages[i];
                 var tProps = propsArray[i];
                 //compatibility with pre-qqc1 api, can probably be removed
-                if (tPage.createObject === undefined && tPage.parent === undefined && typeof tPage != "string") {
+                if (tPage.createObject === undefined && tPage.parent === undefined && typeof tPage !== "string") {
                     if (columnView.containsItem(tPage)) {
                         print("The item " + page + " is already in the PageRow");
                         continue;
@@ -478,7 +478,7 @@ T.Control {
      * @since 2.7
      */
     function removePage(page) {
-        if (depth == 0) {
+        if (depth === 0) {
             return null;
         }
 
@@ -493,7 +493,7 @@ T.Control {
      * @return The page instance that was popped off the stack.
      */
     function pop(page) {
-        if (depth == 0) {
+        if (depth === 0) {
             return null;
         }
 
@@ -676,7 +676,7 @@ T.Control {
     }
 
     Keys.onReleased: {
-        if (event.key == Qt.Key_Back) {
+        if (event.key === Qt.Key_Back) {
             this.goBack(event)
         }
     }
@@ -834,8 +834,8 @@ T.Control {
         }
         z: 100
         property T.Control pageRow: root
-        active: (!firstVisibleItem || firstVisibleItem.globalToolBarStyle != ApplicationHeaderStyle.None) && 
-                (globalToolBar.actualStyle != ApplicationHeaderStyle.None || (firstVisibleItem && firstVisibleItem.globalToolBarStyle == ApplicationHeaderStyle.ToolBar))
+        active: (!firstVisibleItem || firstVisibleItem.globalToolBarStyle !== ApplicationHeaderStyle.None) &&
+                (globalToolBar.actualStyle !== ApplicationHeaderStyle.None || (firstVisibleItem && firstVisibleItem.globalToolBarStyle === ApplicationHeaderStyle.ToolBar))
         visible: active
         height: active ? implicitHeight : 0
         // If load is asynchronous, it will fail to compute the initial implicitHeight
@@ -854,7 +854,7 @@ T.Control {
             if (page.createObject) {
                 // page defined as component
                 pageComp = page;
-            } else if (typeof page == "string") {
+            } else if (typeof page === "string") {
                 // page defined as string (a url)
                 pageComp = pagesLogic.componentCache[page];
                 if (!pageComp) {
diff -pruN 5.94.0-1/src/controls/PasswordField.qml 5.96.0-1/src/controls/PasswordField.qml
--- 5.94.0-1/src/controls/PasswordField.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/PasswordField.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,37 +4,54 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.6
-import QtQuick.Controls 2.1 as Controls
-import org.kde.kirigami 2.7 as Kirigami
+import QtQuick 2.15
+import org.kde.kirigami 2.20 as Kirigami
 
 /**
  * This is a standard password text field.
  *
  * Example usage for the password field component:
- * @code
- * import org.kde.kirigami 2.8 as Kirigami
+ *
+ * @code{.qml}
+ * import org.kde.kirigami 2.20 as Kirigami
  *
  * Kirigami.PasswordField {
  *     id: passwordField
- *     onAccepted: // check if passwordField.text is valid
+ *     onAccepted: {
+ *         // check if passwordField.text is valid
+ *     }
  * }
  * @endcode
  *
+ * @since 5.57
  * @inherit org::kde::kirgami::ActionTextField
+ * @author Carl Schwan <carl@carlschwan.eu>
  */
 Kirigami.ActionTextField
 {
     id: root
 
+    /**
+     * This property holds whether we show the clear text password.
+     *
+     * By default, it's false.
+     * @since 5.57
+     */
     property bool showPassword: false
+
     echoMode: root.showPassword ? TextInput.Normal : TextInput.Password
     placeholderText: qsTr("Password")
     inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | Qt.ImhSensitiveData
-    rightActions: [
-        Kirigami.Action {
-            icon.name: root.showPassword ? "password-show-off" : "password-show-on"
-            onTriggered: root.showPassword = !root.showPassword
+    rightActions: Kirigami.Action {
+        icon.name: root.showPassword ? "password-show-off" : "password-show-on"
+        onTriggered: root.showPassword = !root.showPassword
+    }
+
+    Keys.onPressed: {
+        if (event.matches(StandardKey.Undo)) {
+            // Disable undo action for security reasons
+            // See QTBUG-103934
+            event.accepted = true
         }
-    ]
+    }
 }
diff -pruN 5.94.0-1/src/controls/PlaceholderMessage.qml 5.96.0-1/src/controls/PlaceholderMessage.qml
--- 5.94.0-1/src/controls/PlaceholderMessage.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/PlaceholderMessage.qml	2022-07-02 15:54:45.000000000 +0000
@@ -36,7 +36,7 @@ import "private"
  *         anchors.centerIn: parent
  *         width: parent.width - (Kirigami.Units.largeSpacing * 4)
  *
- *         visible: listView.count == 0
+ *         visible: listView.count === 0
  *
  *         text: "There are no items in this list"
  *     }
@@ -55,7 +55,7 @@ import "private"
  *         anchors.centerIn: parent
  *         width: parent.width - (Kirigami.Units.largeSpacing * 4)
  *
- *         visible: listView.count == 0
+ *         visible: listView.count === 0
  *
  *         text: "Add an item to proceed"
  *
@@ -215,7 +215,7 @@ ColumnLayout {
     spacing: Kirigami.Units.largeSpacing
 
     Kirigami.Icon {
-        visible: source != undefined
+        visible: source !== undefined
         opacity: 0.5
 
         Layout.alignment: Qt.AlignHCenter
@@ -223,9 +223,9 @@ ColumnLayout {
         Layout.preferredHeight: Math.round(Kirigami.Units.iconSizes.huge * 1.5)
 
         source: {
-            if (root.icon.source && root.icon.source.length > 0) {
+            if (root.icon.source.length > 0) {
                 return root.icon.source
-            } else if (root.icon.name && root.icon.name.length > 0) {
+            } else if (root.icon.name.length > 0) {
                 return root.icon.name
             }
             return undefined
@@ -237,7 +237,7 @@ ColumnLayout {
         visible: text.length > 0
 
         type: Kirigami.Heading.Primary
-        opacity: root.type == PlaceholderMessage.Type.Actionable ? 1 : 0.65
+        opacity: root.type === PlaceholderMessage.Type.Actionable ? 1 : 0.65
 
 
         Layout.fillWidth: true
@@ -249,7 +249,7 @@ ColumnLayout {
     QQC2.Label {
         text: root.explanation
         visible:  root.explanation !== ""
-        opacity: root.type == PlaceholderMessage.Type.Actionable ? 1 : 0.65
+        opacity: root.type === PlaceholderMessage.Type.Actionable ? 1 : 0.65
 
         horizontalAlignment: Qt.AlignHCenter
         wrapMode: Text.WordWrap
diff -pruN 5.94.0-1/src/controls/private/ActionButton.qml 5.96.0-1/src/controls/private/ActionButton.qml
--- 5.94.0-1/src/controls/private/ActionButton.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/ActionButton.qml	2022-07-02 15:54:45.000000000 +0000
@@ -80,7 +80,7 @@ Item {
                 target: translateTransform
                 property: "y"
                 duration: Units.longDuration
-                easing.type: mouseArea.internalVisibility == true ? Easing.InQuad : Easing.OutQuad
+                easing.type: mouseArea.internalVisibility ? Easing.InQuad : Easing.OutQuad
             }
             OpacityAnimator {
                 duration: Units.longDuration
@@ -98,7 +98,7 @@ Item {
         // Remove after Plasma 5.23 is released, and switch back to Units.iconSizes.medium/large
         property int mediumIconSizing: Units.iconSizes.sizeForLabels * 2
         property int largeIconSizing: Units.iconSizes.sizeForLabels * 3
-        
+
         anchors.bottom: edgeMouseArea.bottom
 
         implicitWidth: implicitHeight + mediumIconSizing*2 + Units.gridUnit
@@ -132,7 +132,7 @@ Item {
             id: mouseArea
             anchors.fill: parent
 
-            visible: action != null || leftAction != null || rightAction != null
+            visible: action !== null || leftAction !== null || rightAction !== null
             property bool internalVisibility: (!root.hasApplicationWindow || (applicationWindow().controlsVisible && applicationWindow().height > root.height*2)) && (root.action === null || root.action.visible === undefined || root.action.visible)
             preventStealing: true
 
@@ -304,8 +304,8 @@ Item {
                     width: height
                     enabled: root.action && root.action.enabled
                     visible: root.action
-                    readonly property bool pressed: root.action && root.action.enabled && ((root.action == mouseArea.actionUnderMouse && mouseArea.pressed) || root.action.checked)
-                    property color baseColor: root.action && root.action.icon && root.action.icon.color && root.action.icon.color != undefined && root.action.icon.color.a > 0 ? root.action.icon.color : Theme.highlightColor
+                    readonly property bool pressed: root.action && root.action.enabled && ((root.action === mouseArea.actionUnderMouse && mouseArea.pressed) || root.action.checked)
+                    property color baseColor: root.action && root.action.icon && root.action.icon.color && root.action.icon.color !== undefined && root.action.icon.color.a > 0 ? root.action.icon.color : Theme.highlightColor
                     color: pressed ? Qt.darker(baseColor, 1.3) : baseColor
 
                     ActionsMenu {
@@ -354,8 +354,8 @@ Item {
                     width: height + (root.action ? Units.gridUnit*2 : 0)
                     visible: root.leftAction
 
-                    readonly property bool pressed: root.leftAction && root.leftAction.enabled && ((mouseArea.actionUnderMouse == root.leftAction && mouseArea.pressed) || root.leftAction.checked)
-                    property color baseColor: root.leftAction && root.leftAction.icon && root.leftAction.icon.color && root.leftAction.icon.color != undefined && root.leftAction.icon.color.a > 0 ? root.leftAction.icon.color : Theme.highlightColor
+                    readonly property bool pressed: root.leftAction && root.leftAction.enabled && ((mouseArea.actionUnderMouse === root.leftAction && mouseArea.pressed) || root.leftAction.checked)
+                    property color baseColor: root.leftAction && root.leftAction.icon && root.leftAction.icon.color && root.leftAction.icon.color !== undefined && root.leftAction.icon.color.a > 0 ? root.leftAction.icon.color : Theme.highlightColor
                     color: pressed ? baseColor : Theme.backgroundColor
                     Behavior on color {
                         ColorAnimation {
@@ -400,8 +400,8 @@ Item {
                     height: button.mediumIconSizing + Units.smallSpacing * 2
                     width: height + (root.action ? Units.gridUnit*2 : 0)
                     visible: root.rightAction
-                    readonly property bool pressed: root.rightAction && root.rightAction.enabled && ((mouseArea.actionUnderMouse == root.rightAction && mouseArea.pressed) || root.rightAction.checked)
-                    property color baseColor: root.rightAction && root.rightAction.icon && root.rightAction.icon.color && root.rightAction.icon.color != undefined && root.rightAction.icon.color.a > 0 ? root.rightAction.icon.color : Theme.highlightColor
+                    readonly property bool pressed: root.rightAction && root.rightAction.enabled && ((mouseArea.actionUnderMouse === root.rightAction && mouseArea.pressed) || root.rightAction.checked)
+                    property color baseColor: root.rightAction && root.rightAction.icon && root.rightAction.icon.color && root.rightAction.icon.color !== undefined && root.rightAction.icon.color.a > 0 ? root.rightAction.icon.color : Theme.highlightColor
                     color: pressed ? baseColor : Theme.backgroundColor
                     Behavior on color {
                         ColorAnimation {
diff -pruN 5.94.0-1/src/controls/private/ActionsMenu.qml 5.96.0-1/src/controls/private/ActionsMenu.qml
--- 5.94.0-1/src/controls/private/ActionsMenu.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/ActionsMenu.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,9 +4,10 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.3
-import QtQuick.Controls 2.4 as Controls
-import org.kde.kirigami 2.4 as Kirigami
+import QtQuick 2.15
+import QtQuick.Controls 2.15 as Controls
+
+import org.kde.kirigami 2.20 as Kirigami
 
 Controls.Menu
 {
diff -pruN 5.94.0-1/src/controls/private/BannerImage.qml 5.96.0-1/src/controls/private/BannerImage.qml
--- 5.94.0-1/src/controls/private/BannerImage.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/BannerImage.qml	2022-07-02 15:54:45.000000000 +0000
@@ -59,13 +59,13 @@ Kirigami.ShadowedImage {
     Layout.fillWidth: true
 
     Layout.preferredWidth: titleLayout.implicitWidth || sourceSize.width
-    Layout.preferredHeight: titleLayout.completed && source != "" ? width/(sourceSize.width / sourceSize.height) : Layout.minimumHeight
+    Layout.preferredHeight: titleLayout.completed && source.toString() !== "" ? width/(sourceSize.width / sourceSize.height) : Layout.minimumHeight
     Layout.minimumHeight: titleLayout.implicitHeight > 0 ? titleLayout.implicitHeight + Kirigami.Units.smallSpacing * 2 : 0
     property int implicitWidth: Layout.preferredWidth
 
-    readonly property bool empty: bannerImage.title !== undefined && bannerImage.title.length === 0 &&
-                                  bannerImage.source !== undefined && bannerImage.source.length === 0 &&
-                                  bannerImage.titleIcon !== undefined &&bannerImage.titleIcon.length === 0
+    readonly property bool empty: title.length === 0 &&             // string
+                                  source.toString().length === 0 && // QUrl
+                                  !titleIcon                        // QVariant hanled by Kirigami.Icon
 
     fillMode: Image.PreserveAspectCrop
     asynchronous: true
@@ -88,7 +88,7 @@ Kirigami.ShadowedImage {
         opacity: 0.5
         color: "black"
 
-        visible: root.source != "" && root.title != "" && ((root.titleAlignment & Qt.AlignTop) || (root.titleAlignment & Qt.AlignBottom))
+        visible: root.source.toString() !== "" && root.title !== "" && ((root.titleAlignment & Qt.AlignTop) || (root.titleAlignment & Qt.AlignBottom))
 
         corners.topLeftRadius: root.titleAlignment & Qt.AlignTop ? root.corners.topLeftRadius : 0
         corners.topRightRadius: root.titleAlignment & Qt.AlignTop ? root.corners.topRightRadius : 0
@@ -128,7 +128,7 @@ Kirigami.ShadowedImage {
             verticalAlignment: Text.AlignVCenter
             visible: text.length > 0
             level: 1
-            color: source != "" ? "white" : Kirigami.Theme.textColor
+            color: root.source.toString() !== "" ? "white" : Kirigami.Theme.textColor
             wrapMode: Text.NoWrap
             elide: Text.ElideRight
         }
diff -pruN 5.94.0-1/src/controls/private/ContextDrawerActionItem.qml 5.96.0-1/src/controls/private/ContextDrawerActionItem.qml
--- 5.94.0-1/src/controls/private/ContextDrawerActionItem.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/ContextDrawerActionItem.qml	2022-07-02 15:54:45.000000000 +0000
@@ -53,9 +53,9 @@ BasicListItem {
         Layout.fillHeight: true
         sourceComponent: modelData.displayComponent
         onStatusChanged: {
-            for (var i in parent.children) {
-                var child = parent.children[i];
-                if (child == this) {
+            for (let i in parent.children) {
+                const child = parent.children[i];
+                if (child === this) {
                     child.visible = status === Loader.Ready;
                     break;
                 } else {
diff -pruN 5.94.0-1/src/controls/private/DefaultListItemBackground.qml 5.96.0-1/src/controls/private/DefaultListItemBackground.qml
--- 5.94.0-1/src/controls/private/DefaultListItemBackground.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/DefaultListItemBackground.qml	2022-07-02 15:54:45.000000000 +0000
@@ -29,10 +29,10 @@ Rectangle {
                                                && !listItem.pressed
                                                && !listItem.checked
                                                // ...Unless the colored rectangle is transparent
-                                               && (!listItem.hovered || listItem.activeBackgroundColor.a == 0)
+                                               && (!listItem.hovered || listItem.activeBackgroundColor.a === 0)
                                                // It would touch the section header
                                                && !listItem.sectionDelegate
-                                               && (!!listItem.ListView.view ? listItem.ListView.nextSection == listItem.ListView.section : true)
+                                               && (!!listItem.ListView.view ? listItem.ListView.nextSection === listItem.ListView.section : true)
                                                // This is the last item in the list
                                                // TODO: implement this
 
diff -pruN 5.94.0-1/src/controls/private/GlobalDrawerActionItem.qml 5.96.0-1/src/controls/private/GlobalDrawerActionItem.qml
--- 5.94.0-1/src/controls/private/GlobalDrawerActionItem.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/GlobalDrawerActionItem.qml	2022-07-02 15:54:45.000000000 +0000
@@ -27,18 +27,18 @@ AbstractListItem {
             id: iconItem
             color: modelData.icon.color
             source: modelData.icon.name || modelData.icon.source
-            
+
             // We have a mismatch in releases in removing the mobile x1.5 sizing (kirigami is part of frameworks, but styles are part of plasma releases)
             // Remove after Plasma 5.23 is released, and switch back to Units.iconSizes.medium/large
             property int mediumIconSizing: Units.iconSizes.sizeForLabels * 2
-            
+
             property int size: Settings.isMobile ? mediumIconSizing : Units.iconSizes.smallMedium
             Layout.minimumHeight: size
             Layout.maximumHeight: size
             Layout.minimumWidth: size
             Layout.maximumWidth: size
             selected: (listItem.highlighted || listItem.checked || (listItem.pressed && listItem.supportsMouseEvents))
-            visible: source != undefined
+            visible: source !== undefined
         }
         QQC2Impl.MnemonicLabel {
             id: labelItem
diff -pruN 5.94.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarStyleGroup.qml 5.96.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarStyleGroup.qml
--- 5.94.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarStyleGroup.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarStyleGroup.qml	2022-07-02 15:54:45.000000000 +0000
@@ -46,6 +46,7 @@ QtObject {
      */
     property bool canContainHandles: true
     property int toolbarActionAlignment: Qt.AlignRight
+    property int toolbarActionHeightMode: Kirigami.ToolBarLayout.ConstrainIfLarger
 
     property int minimumHeight: 0
     // FIXME: Figure out the exact standard size of a Toolbar
diff -pruN 5.94.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml 5.96.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml
--- 5.94.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/globaltoolbar/PageRowGlobalToolBarUI.qml	2022-07-02 15:54:45.000000000 +0000
@@ -78,7 +78,7 @@ Kirigami.AbstractApplicationHeader {
             Layout.leftMargin: leftHandleAnchor.visible ? Kirigami.Units.smallSpacing : 0
 
             // TODO KF6: make showNavigationButtons an int, and replace with strict === equality
-            visible: (globalToolBar.showNavigationButtons != Kirigami.ApplicationHeaderStyle.NoNavigationButtons || applicationWindow().pageStack.layers.depth > 1)
+            visible: (globalToolBar.showNavigationButtons !== Kirigami.ApplicationHeaderStyle.NoNavigationButtons || applicationWindow().pageStack.layers.depth > 1)
                 && globalToolBar.actualStyle !== Kirigami.ApplicationHeaderStyle.None
 
             Layout.maximumWidth: visibleChildren.length > 0 ? Layout.preferredWidth : 0
diff -pruN 5.94.0-1/src/controls/private/globaltoolbar/ToolBarPageHeader.qml 5.96.0-1/src/controls/private/globaltoolbar/ToolBarPageHeader.qml
--- 5.94.0-1/src/controls/private/globaltoolbar/ToolBarPageHeader.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/globaltoolbar/ToolBarPageHeader.qml	2022-07-02 15:54:45.000000000 +0000
@@ -53,7 +53,7 @@ AbstractPageHeader {
 
             visible: actions.length > 0
             alignment: pageRow ? pageRow.globalToolBar.toolbarActionAlignment : Qt.AlignRight
-            heightMode: ToolBarLayout.ConstrainIfLarger
+            heightMode: pageRow ? pageRow.globalToolBar.toolbarActionHeightMode : ToolBarLayout.ConstrainIfLarger
 
             actions: {
                 if (!page) {
diff -pruN 5.94.0-1/src/controls/private/PrivateActionToolButton.qml 5.96.0-1/src/controls/private/PrivateActionToolButton.qml
--- 5.94.0-1/src/controls/private/PrivateActionToolButton.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/PrivateActionToolButton.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,17 +4,18 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.7
-import QtQuick.Layouts 1.2
-import QtQuick.Controls 2.4 as Controls
-import org.kde.kirigami 2.14
+import QtQuick 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Controls 2.15 as Controls
+
+import org.kde.kirigami 2.20 as Kirigami
 
 Controls.ToolButton {
     id: control
 
-    signal menuAboutToShow
+    signal menuAboutToShow()
 
-    Icon {
+    Kirigami.Icon {
         id: kirigamiIcon
         visible: false
         source: control.icon.name
@@ -24,11 +25,11 @@ Controls.ToolButton {
 
     display: Controls.ToolButton.TextBesideIcon
 
-    property bool showMenuArrow: !DisplayHint.displayHintSet(action, DisplayHint.HideChildIndicator)
+    property bool showMenuArrow: !Kirigami.DisplayHint.displayHintSet(action, Kirigami.DisplayHint.HideChildIndicator)
 
     property var menuActions: {
         if (action && action.hasOwnProperty("children")) {
-            return Array.prototype.map.call(action.children, (i) => i)
+            return Array.prototype.slice.call(action.children)
         }
         return []
     }
@@ -45,17 +46,17 @@ Controls.ToolButton {
     onMenuActionsChanged: {
         if (menuComponent && menuActions.length > 0) {
             if (!menu) {
-                var setupIncubatedMenu = function(incubatedMenu) {
+                const setupIncubatedMenu = incubatedMenu => {
                     menu = incubatedMenu
                     // Important: We handle the press on parent in the parent, so ignore it here.
                     menu.closePolicy = Controls.Popup.CloseOnEscape | Controls.Popup.CloseOnPressOutsideParent
                     menu.closed.connect(() => control.checked = false)
                     menu.actions = control.menuActions
                 }
-                let incubator = menuComponent.incubateObject(control, {"actions": menuActions})
-                if (incubator.status != Component.Ready) {
-                    incubator.onStatusChanged = function(status) {
-                        if (status == Component.Ready) {
+                const incubator = menuComponent.incubateObject(control, {"actions": menuActions})
+                if (incubator.status !== Component.Ready) {
+                    incubator.onStatusChanged = status => {
+                        if (status === Component.Ready) {
                             setupIncubatedMenu(incubator.object)
                         }
                     }
@@ -88,19 +89,20 @@ Controls.ToolButton {
         }
     }
 
-    Controls.ToolTip.visible: control.hovered && Controls.ToolTip.text.length > 0 && !(menu && menu.visible) && !control.pressed
-    Controls.ToolTip.text: {
-        if (action) {
-            if (action.tooltip) {
-                return action.tooltip;
-            } else if (control.display === Controls.Button.IconOnly) {
-                return action.text;
+    Controls.ToolTip {
+        visible: control.hovered && text.length > 0 && !(control.menu && control.menu.visible) && !control.pressed
+        text: {
+            const a = control.action;
+            if (a) {
+                if (a.tooltip) {
+                    return a.tooltip;
+                } else if (control.display === Controls.Button.IconOnly) {
+                    return a.text;
+                }
             }
+            return "";
         }
-        return "";
     }
-    Controls.ToolTip.delay: Units.toolTipDelay
-    Controls.ToolTip.timeout: 5000
 
     // This is slightly ugly but saves us from needing to recreate the entire
     // contents of the toolbutton. When using QQC2-desktop-style, the background
@@ -109,7 +111,7 @@ Controls.ToolButton {
     // TODO: Support other styles
     Component.onCompleted: {
         if (background.hasOwnProperty("showMenuArrow")) {
-            background.showMenuArrow = Qt.binding(() => { return control.showMenuArrow && control.menuActions.length > 0 })
+            background.showMenuArrow = Qt.binding(() => control.showMenuArrow && control.menuActions.length > 0)
         }
     }
 }
diff -pruN 5.94.0-1/src/controls/private/RefreshableScrollView.qml 5.96.0-1/src/controls/private/RefreshableScrollView.qml
--- 5.94.0-1/src/controls/private/RefreshableScrollView.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/private/RefreshableScrollView.qml	2022-07-02 15:54:45.000000000 +0000
@@ -115,10 +115,10 @@ P.ScrollView {
             onYChanged: {
                 //it's overshooting enough and not reachable: start countdown for reachability
 
-                if (y > root.topPadding + Units.gridUnit && (typeof(applicationWindow) == "undefined" || !applicationWindow().reachableMode)) {
+                if (y > root.topPadding + Units.gridUnit && (typeof applicationWindow === "undefined" || !applicationWindow().reachableMode)) {
                     overshootResetTimer.running = true;
                 //not reachable and not overshooting enough, stop reachability countdown
-                } else if (typeof(applicationWindow) == "undefined" || !applicationWindow().reachableMode) {
+                } else if (typeof applicationWindow === "undefined" || !applicationWindow().reachableMode) {
                     //it's important it doesn't restart
                     overshootResetTimer.running = false;
                 }
@@ -178,7 +178,7 @@ P.ScrollView {
                 property: "width"
                 restoreMode: Binding.RestoreBinding
                 value: root.flickableItem.width
-                when: root.horizontalScrollBarPolicy == Qt.ScrollBarAlwaysOff
+                when: root.horizontalScrollBarPolicy === Qt.ScrollBarAlwaysOff
             }
         }
     ]
@@ -187,8 +187,8 @@ P.ScrollView {
     onRightPaddingChanged: leftPaddingChanged()
     onLeftPaddingChanged: {
         //for gridviews do apply margins
-        if (root.contentItem == root.flickableItem) {
-            if (typeof root.flickableItem.cellWidth != "undefined") {
+        if (root.contentItem === root.flickableItem) {
+            if (typeof root.flickableItem.cellWidth !== "undefined") {
                 flickableItem.anchors.leftMargin = leftPadding;
                 flickableItem.anchors.rightMargin = rightPadding;
             } else {
diff -pruN 5.94.0-1/src/controls/SearchField.qml 5.96.0-1/src/controls/SearchField.qml
--- 5.94.0-1/src/controls/SearchField.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/SearchField.qml	2022-07-02 15:54:45.000000000 +0000
@@ -59,10 +59,10 @@ Kirigami.ActionTextField
     leftPadding: if (Qt.application.layoutDirection === Qt.RightToLeft) {
         return _rightActionsRow.width + Kirigami.Units.smallSpacing
     } else {
-        return (activeFocus || root.text.length > 0 ? 0 : (searchIcon.width + Kirigami.Units.smallSpacing)) + _leftActionsRow.width
+        return (activeFocus || root.text.length > 0 ? 0 : (searchIcon.width + Kirigami.Units.smallSpacing)) + Kirigami.Units.smallSpacing * 2
     }
     rightPadding: if (Qt.application.layoutDirection === Qt.RightToLeft) {
-        return (activeFocus || root.text.length > 0 ? 0 : (searchIcon.width + Kirigami.Units.smallSpacing)) + _leftActionsRow.width
+        return (activeFocus || root.text.length > 0 ? 0 : (searchIcon.width + Kirigami.Units.smallSpacing)) + Kirigami.Units.smallSpacing * 2
     } else {
         return _rightActionsRow.width + Kirigami.Units.smallSpacing
     }
diff -pruN 5.94.0-1/src/controls/SelectableLabel.qml 5.96.0-1/src/controls/SelectableLabel.qml
--- 5.94.0-1/src/controls/SelectableLabel.qml	1970-01-01 00:00:00.000000000 +0000
+++ 5.96.0-1/src/controls/SelectableLabel.qml	2022-07-02 15:54:45.000000000 +0000
@@ -0,0 +1,59 @@
+/*
+ *  SPDX-FileCopyrightText: 2022 Fushan Wen <qydwhotmail@gmail.com>
+ *
+ *  SPDX-License-Identifier: LGPL-2.0-or-later
+ */
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15 as QQC2
+
+/**
+ * This is a label which supports text selection.
+ *
+ * You can use all elements of the QML TextArea component, in particular
+ * the "text" property to define the label text.
+ *
+ * @code{.qml}
+ *     Kirigami.SelectableLabel {
+ *         text: "Label"
+ *     }
+ * @endcode
+ *
+ * @inherit QtQuick.Controls.TextArea
+ * @see https://bugreports.qt.io/browse/QTBUG-14077
+ * @since 5.95
+ * @since org.kde.kirigami 2.20
+ */
+QQC2.TextArea {
+    id: selectableLabel
+
+    /**
+     * This property holds the cursor shape that will appear whenever
+     * the mouse is hovering over the label.
+     *
+     * The default value is @c Qt.IBeamCursor
+     *
+     * @property Qt::CursorShape cursorShape
+     */
+    property alias cursorShape: hoverHandler.cursorShape
+
+    padding: 0
+    leftPadding: 0
+    rightPadding: 0
+    topPadding: 0
+    bottomPadding: 0
+
+    readOnly: true
+    wrapMode: Text.WordWrap
+    verticalAlignment: TextEdit.AlignTop
+
+    Accessible.selectableText: true
+    Accessible.editable: false
+
+    background: Item {}
+
+    HoverHandler {
+        id: hoverHandler
+        cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.IBeamCursor
+    }
+}
diff -pruN 5.94.0-1/src/controls/Separator.qml 5.96.0-1/src/controls/Separator.qml
--- 5.94.0-1/src/controls/Separator.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/Separator.qml	2022-07-02 15:54:45.000000000 +0000
@@ -29,13 +29,13 @@ Rectangle {
 
     /**
      * This property holds the visual weight of the separator.
-     * 
+     *
      * Weight values:
      * * `Separator.Weight.Light`
      * * `Separator.Weight.Normal`
-     * 
+     *
      * The default is `Separator.Weight.Normal`
-     * 
+     *
      * @since 5.72
      * @since org.kde.kirigami 2.12
      */
@@ -45,6 +45,5 @@ Rectangle {
      * mix weights lower than Normal with the background color
      * and mix weights higher than Normal with the text color.
      */
-    color: ColorUtils.linearInterpolation(Theme.backgroundColor, Theme.textColor, weight == Separator.Weight.Light ? 0.07 : 0.15);
+    color: ColorUtils.linearInterpolation(Theme.backgroundColor, Theme.textColor, weight === Separator.Weight.Light ? 0.07 : 0.15)
 }
-
diff -pruN 5.94.0-1/src/controls/ShadowedImage.qml 5.96.0-1/src/controls/ShadowedImage.qml
--- 5.94.0-1/src/controls/ShadowedImage.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ShadowedImage.qml	2022-07-02 15:54:45.000000000 +0000
@@ -125,6 +125,6 @@ Item {
         id: shadowRectangle
         anchors.fill: parent
 
-        source: image.status == Image.Ready ? image : null
+        source: image.status === Image.Ready ? image : null
     }
 }
diff -pruN 5.94.0-1/src/controls/swipenavigator/PageTab.qml 5.96.0-1/src/controls/swipenavigator/PageTab.qml
--- 5.94.0-1/src/controls/swipenavigator/PageTab.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/swipenavigator/PageTab.qml	2022-07-02 15:54:45.000000000 +0000
@@ -41,7 +41,7 @@ T.PageTab {
 
     PrivateSwipeProgress {
         anchors.fill: parent
-        visible: control.progress != undefined
+        visible: control.progress !== undefined
         progress: control.progress
     }
 
@@ -111,4 +111,4 @@ T.PageTab {
 
     Layout.fillHeight: true
     Layout.alignment: Qt.AlignHCenter
-}
\ No newline at end of file
+}
diff -pruN 5.94.0-1/src/controls/swipenavigator/PrivateSwipeHighlight.qml 5.96.0-1/src/controls/swipenavigator/PrivateSwipeHighlight.qml
--- 5.94.0-1/src/controls/swipenavigator/PrivateSwipeHighlight.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/swipenavigator/PrivateSwipeHighlight.qml	2022-07-02 15:54:45.000000000 +0000
@@ -20,9 +20,9 @@ Rectangle {
     }
 
     color: {
-        if (state == "highlighted") {
+        if (state === "highlighted") {
             return Kirigami.Theme.activeTextColor
-        } else if (state == "requestingAttention") {
+        } else if (state === "requestingAttention") {
             return Kirigami.Theme.negativeTextColor
         }
         return "transparent"
@@ -30,4 +30,4 @@ Rectangle {
 
     // Unlike most things, we don't want to scale with the em grid, so we don't use a Unit.
     height: 2
-}
\ No newline at end of file
+}
diff -pruN 5.94.0-1/src/controls/swipenavigator/PrivateSwipeTab.qml 5.96.0-1/src/controls/swipenavigator/PrivateSwipeTab.qml
--- 5.94.0-1/src/controls/swipenavigator/PrivateSwipeTab.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/swipenavigator/PrivateSwipeTab.qml	2022-07-02 15:54:45.000000000 +0000
@@ -29,7 +29,7 @@ Kirigami.PageTab {
     Connections {
         target: columnView
         function onCurrentIndexChanged() {
-            if (index == columnView.currentIndex) {
+            if (index === columnView.currentIndex) {
                 tabRoot.indexChanged(tabRoot.x, tabRoot.width)
             }
         }
diff -pruN 5.94.0-1/src/controls/swipenavigator/templates/PageTab.qml 5.96.0-1/src/controls/swipenavigator/templates/PageTab.qml
--- 5.94.0-1/src/controls/swipenavigator/templates/PageTab.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/swipenavigator/templates/PageTab.qml	2022-07-02 15:54:45.000000000 +0000
@@ -59,7 +59,7 @@ QQC2.Control {
     Accessible.onPressAction: control.clicked()
 
     Keys.onPressed: {
-        if (event.key == Qt.Key_Enter || event.key == Qt.Key_Return) {
+        if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return) {
             control.clicked()
         }
     }
diff -pruN 5.94.0-1/src/controls/templates/AbstractApplicationHeader.qml 5.96.0-1/src/controls/templates/AbstractApplicationHeader.qml
--- 5.94.0-1/src/controls/templates/AbstractApplicationHeader.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/AbstractApplicationHeader.qml	2022-07-02 15:54:45.000000000 +0000
@@ -47,7 +47,7 @@ Item {
     // touch screen
     property bool hideWhenTouchScrolling: root.pageRow ? root.pageRow.globalToolBar.hideWhenTouchScrolling : false
 
-    LayoutMirroring.enabled: Qt.application.layoutDirection == Qt.RightToLeft
+    LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
     LayoutMirroring.childrenInherit: true
 
     Theme.inherit: true
diff -pruN 5.94.0-1/src/controls/templates/AbstractCard.qml 5.96.0-1/src/controls/templates/AbstractCard.qml
--- 5.94.0-1/src/controls/templates/AbstractCard.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/AbstractCard.qml	2022-07-02 15:54:45.000000000 +0000
@@ -58,7 +58,7 @@ T.ItemDelegate {
 
     hoverEnabled: !Kirigami.Settings.tabletMode && showClickFeedback
     //if it's in a CardLayout, try to expand horizontal cards to both columns
-    Layout.columnSpan: headerOrientation == Qt.Horizontal && parent.hasOwnProperty("columns") ? parent.columns : 1
+    Layout.columnSpan: headerOrientation === Qt.Horizontal && parent.hasOwnProperty("columns") ? parent.columns : 1
 
     Kirigami.Theme.inherit: false
     Kirigami.Theme.colorSet: Kirigami.Theme.View
@@ -84,7 +84,7 @@ T.ItemDelegate {
             bottom:parent.bottom
             bottomMargin: root.bottomPadding
         }
-        columns: headerOrientation == Qt.Vertical ? 1 : 2
+        columns: headerOrientation === Qt.Vertical ? 1 : 2
         function preferredHeight(item) {
             if (!item) {
                 return 0;
@@ -97,10 +97,10 @@ T.ItemDelegate {
         Item {
             id: headerParent
             Layout.fillWidth: true
-            Layout.fillHeight: root.headerOrientation == Qt.Horizontal
-            Layout.rowSpan: root.headerOrientation == Qt.Vertical ? 1 : 2
+            Layout.fillHeight: root.headerOrientation === Qt.Horizontal
+            Layout.rowSpan: root.headerOrientation === Qt.Vertical ? 1 : 2
             Layout.preferredWidth: header ? header.implicitWidth : 0
-            Layout.preferredHeight: root.headerOrientation == Qt.Vertical ? mainLayout.preferredHeight(header) : -1
+            Layout.preferredHeight: root.headerOrientation === Qt.Vertical ? mainLayout.preferredHeight(header) : -1
             visible: children.length > 0
         }
         Item {
diff -pruN 5.94.0-1/src/controls/templates/ApplicationHeader.qml 5.96.0-1/src/controls/templates/ApplicationHeader.qml
--- 5.94.0-1/src/controls/templates/ApplicationHeader.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/ApplicationHeader.qml	2022-07-02 15:54:45.000000000 +0000
@@ -41,7 +41,7 @@ AbstractApplicationHeader {
      * backButtonEnabled: bool
      * if true, there will be a back button present that will make the pagerow scroll back when clicked
      */
-    property bool backButtonEnabled: (!titleList.isTabBar && (!Settings.isMobile || Qt.platform.os == "ios"))
+    property bool backButtonEnabled: (!titleList.isTabBar && (!Settings.isMobile || Qt.platform.os === "ios"))
 
     onBackButtonEnabledChanged: {
         if (backButtonEnabled && !titleList.backButton) {
@@ -64,7 +64,7 @@ AbstractApplicationHeader {
 
             Icon {
                 //in tabbar mode this is just a spacer
-                visible: !titleList.wideMode && ((typeof(modelData) != "undefined" && modelData > 0) || titleList.internalHeaderStyle == ApplicationHeaderStyle.TabBar)
+                visible: !titleList.wideMode && ((typeof modelData !== "undefined" && modelData > 0) || titleList.internalHeaderStyle === ApplicationHeaderStyle.TabBar)
                 anchors.verticalCenter: parent.verticalCenter
                 height: Units.iconSizes.small
                 width: height
@@ -119,7 +119,7 @@ AbstractApplicationHeader {
         anchors {
             fill: parent
             leftMargin: navButtons.width
-            rightMargin: __appWindow.contextDrawer && __appWindow.contextDrawer.handleVisible && __appWindow.contextDrawer.handle && __appWindow.contextDrawer.handle.y == 0 ? __appWindow.contextDrawer.handle.width : 0
+            rightMargin: __appWindow.contextDrawer && __appWindow.contextDrawer.handleVisible && __appWindow.contextDrawer.handle && __appWindow.contextDrawer.handle.y === 0 ? __appWindow.contextDrawer.handle.width : 0
         }
         initialItem: titleList
 
@@ -224,12 +224,12 @@ AbstractApplicationHeader {
     Flickable {
         id: titleList
         readonly property bool wideMode: pageRow.hasOwnProperty("wideMode") ? pageRow.wideMode : __appWindow.wideScreen
-        property int internalHeaderStyle: header.headerStyle == ApplicationHeaderStyle.Auto ? (titleList.wideMode ? ApplicationHeaderStyle.Titles : ApplicationHeaderStyle.Breadcrumb) : header.headerStyle
+        property int internalHeaderStyle: header.headerStyle === ApplicationHeaderStyle.Auto ? (titleList.wideMode ? ApplicationHeaderStyle.Titles : ApplicationHeaderStyle.Breadcrumb) : header.headerStyle
         //if scrolling the titlebar should scroll also the pages and vice versa
-        property bool scrollingLocked: (header.headerStyle == ApplicationHeaderStyle.Titles || titleList.wideMode)
+        property bool scrollingLocked: (header.headerStyle === ApplicationHeaderStyle.Titles || titleList.wideMode)
         //uses this to have less strings comparisons
         property bool scrollMutex
-        property bool isTabBar: header.headerStyle == ApplicationHeaderStyle.TabBar
+        property bool isTabBar: header.headerStyle === ApplicationHeaderStyle.TabBar
 
         property Item backButton
         property Item forwardButton
@@ -320,7 +320,7 @@ AbstractApplicationHeader {
                     width: {
                         //more columns shown?
                         if (titleList.scrollingLocked && delegateLoader.page) {
-                            return delegateLoader.page.width - (index == 0 ? navButtons.width : 0) - (index == pageRow.depth-1  ? stack.anchors.rightMargin : 0);
+                            return delegateLoader.page.width - (index === 0 ? navButtons.width : 0) - (index === pageRow.depth-1  ? stack.anchors.rightMargin : 0);
                         } else {
                             return Math.min(titleList.width, delegateLoader.implicitWidth + Units.smallSpacing);
                         }
@@ -346,7 +346,7 @@ AbstractApplicationHeader {
                     Loader {
                         id: delegateLoader
                         height: parent.height
-                        x: titleList.wideMode || headerStyle == ApplicationHeaderStyle.Titles ? (Math.min(delegate.width - implicitWidth, Math.max(0, titleList.contentX - delegate.x))) : 0
+                        x: titleList.wideMode || headerStyle === ApplicationHeaderStyle.Titles ? (Math.min(delegate.width - implicitWidth, Math.max(0, titleList.contentX - delegate.x))) : 0
                         width: parent.width - x
 
                         Connections {
diff -pruN 5.94.0-1/src/controls/templates/InlineMessage.qml 5.96.0-1/src/controls/templates/InlineMessage.qml
--- 5.94.0-1/src/controls/templates/InlineMessage.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/InlineMessage.qml	2022-07-02 15:54:45.000000000 +0000
@@ -139,11 +139,11 @@ T2.Control {
 
     onVisibleChanged: {
         if (!visible) {
-            contentLayout.opacity = 0.0;
+            contentLayout.opacity = 0;
         }
     }
 
-    opacity: visible ? 1.0 : 0.0
+    opacity: visible ? 1 : 0
 
     Behavior on opacity {
         enabled: !root.visible
@@ -152,10 +152,10 @@ T2.Control {
     }
 
     onOpacityChanged: {
-        if (opacity == 0.0) {
-            contentLayout.opacity = 0.0;
-        } else if (opacity == 1.0) {
-            contentLayout.opacity = 1.0;
+        if (opacity === 0) {
+            contentLayout.opacity = 0;
+        } else if (opacity === 1) {
+            contentLayout.opacity = 1;
         }
     }
 
@@ -187,7 +187,9 @@ T2.Control {
             }
         }
 
-        property bool multiline: text.lineCount > 1 || actionsLayout.atBottom
+        readonly property int remainingWidth: width - (text.implicitWidth + icon.width + Kirigami.Units.smallSpacing * 2)
+                                                - (closeButton.visible ? closeButton.width + Kirigami.Units.smallSpacing : 0)
+        readonly property bool multiline: remainingWidth <= 0 || actionsLayout.atBottom
 
         Kirigami.Icon {
             id: icon
@@ -208,11 +210,11 @@ T2.Control {
                     return root.icon.source;
                 }
 
-                if (root.type == Kirigami.MessageType.Positive) {
+                if (root.type === Kirigami.MessageType.Positive) {
                     return "dialog-positive";
-                } else if (root.type == Kirigami.MessageType.Warning) {
+                } else if (root.type === Kirigami.MessageType.Warning) {
                     return "dialog-warning";
-                } else if (root.type == Kirigami.MessageType.Error) {
+                } else if (root.type === Kirigami.MessageType.Error) {
                     return "dialog-error";
                 }
 
@@ -231,13 +233,13 @@ T2.Control {
                 right: closeButton.visible ? closeButton.left : parent.right
                 rightMargin: closeButton.visible ? Kirigami.Units.smallSpacing : 0
                 top: parent.top
-                bottom: actionsLayout.atBottom ? undefined : parent.bottom
+                bottom: contentLayout.multiline ? undefined : parent.bottom
             }
 
             cursorShape: text.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
 
             implicitWidth: text.implicitWidth
-            height: actionsLayout.atBottom ? text.implicitHeight : implicitHeight
+            height: contentLayout.multiline ? text.implicitHeight : implicitHeight
 
             Controls.Label {
                 id: text
@@ -266,18 +268,7 @@ T2.Control {
             visible: root.actions.length
             alignment: Qt.AlignRight
 
-            property bool atBottom: {
-                if (root.actions.length === 0) {
-                    return false
-                }
-
-                var remainingWidth = parent.width - text.implicitWidth - Kirigami.Units.smallSpacing * 2 - icon.width
-                if (closeButton.visible) {
-                    remainingWidth -= closeButton.width - Kirigami.Units.smallSpacing
-                }
-
-                return text.lineCount > 1 || implicitWidth > remainingWidth
-            }
+            readonly property bool atBottom: (root.actions.length > 0) && (text.lineCount > 1 || implicitWidth > contentLayout.remainingWidth)
 
             anchors {
                 left: parent.left
diff -pruN 5.94.0-1/src/controls/templates/OverlayDrawer.qml 5.96.0-1/src/controls/templates/OverlayDrawer.qml
--- 5.94.0-1/src/controls/templates/OverlayDrawer.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/OverlayDrawer.qml	2022-07-02 15:54:45.000000000 +0000
@@ -161,8 +161,8 @@ T2.Drawer {
         T2.ToolTip.delay: Units.toolTipDelay
 
         property Item handleAnchor: (applicationWindow().pageStack && applicationWindow().pageStack.globalToolBar)
-                ? ((root.edge === Qt.LeftEdge && Qt.application.layoutDirection == Qt.LeftToRight)
-                   || (root.edge === Qt.RightEdge && Qt.application.layoutDirection == Qt.RightToLeft)
+                ? ((root.edge === Qt.LeftEdge && Qt.application.layoutDirection === Qt.LeftToRight)
+                   || (root.edge === Qt.RightEdge && Qt.application.layoutDirection === Qt.RightToLeft)
                    ? applicationWindow().pageStack.globalToolBar.leftHandleAnchor
                    : applicationWindow().pageStack.globalToolBar.rightHandleAnchor)
                 : (applicationWindow().header && applicationWindow().header.toString().indexOf("ToolBarApplicationHeader") !== -1 ? applicationWindow().header : null)
@@ -265,7 +265,7 @@ T2.Drawer {
             }
         }
 
-        visible: root.enabled && (root.edge === Qt.LeftEdge || root.edge === Qt.RightEdge)
+        visible: root.enabled && (root.edge === Qt.LeftEdge || root.edge === Qt.RightEdge) && opacity > 0
         width: handleAnchor && handleAnchor.visible ? handleAnchor.width : Units.iconSizes.smallMedium + Units.smallSpacing*2
         height: handleAnchor && handleAnchor.visible ? handleAnchor.height : width
         opacity: root.handleVisible ? 1 : 0
@@ -307,7 +307,7 @@ T2.Drawer {
 
     y: modal ? 0 : ((T2.ApplicationWindow.menuBar ? T2.ApplicationWindow.menuBar.height : 0) + (T2.ApplicationWindow.header ? T2.ApplicationWindow.header.height : 0))
 
-    height: parent && (root.edge == Qt.LeftEdge || root.edge == Qt.RightEdge) ? (modal ? parent.height : (parent.height - y - (T2.ApplicationWindow.footer ? T2.ApplicationWindow.footer.height : 0))) : implicitHeight
+    height: parent && (root.edge === Qt.LeftEdge || root.edge === Qt.RightEdge) ? (modal ? parent.height : (parent.height - y - (T2.ApplicationWindow.footer ? T2.ApplicationWindow.footer.height : 0))) : implicitHeight
 
     parent: modal || edge === Qt.LeftEdge || edge === Qt.RightEdge ? T2.ApplicationWindow.overlay : T2.ApplicationWindow.contentItem
 
@@ -483,7 +483,7 @@ T2.Drawer {
             }
             ScriptAction {
                 script: {
-                    root.drawerOpen = internalAnim.to != 0;
+                    root.drawerOpen = internalAnim.to !== 0;
                 }
             }
         }
diff -pruN 5.94.0-1/src/controls/templates/OverlaySheet.qml 5.96.0-1/src/controls/templates/OverlaySheet.qml
--- 5.94.0-1/src/controls/templates/OverlaySheet.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/OverlaySheet.qml	2022-07-02 15:54:45.000000000 +0000
@@ -223,7 +223,7 @@ QtObject {
         z: 101
         //we want to be over any possible OverlayDrawers, including handles
         parent: {
-            if (root.parent && root.parent.ColumnView.view && (root.parent.ColumnView.view == root.parent || root.parent.ColumnView.view == root.parent.parent)) {
+            if (root.parent && root.parent.ColumnView.view && (root.parent.ColumnView.view === root.parent || root.parent.ColumnView.view === root.parent.parent)) {
                 return root.parent.ColumnView.view.parent;
             } else if (root.parent && root.parent.overlay) {
                 root.parent.overlay;
@@ -388,11 +388,11 @@ QtObject {
 
                 readonly property real listHeaderHeight: scrollView.flickableItem ? -scrollView.flickableItem.originY : 0
 
-                y: (scrollView.contentItem != flickableContents ? -scrollView.flickableItem.contentY - listHeaderHeight  - (headerItem.visible ? headerItem.height : 0): 0)
+                y: (scrollView.contentItem !== flickableContents ? -scrollView.flickableItem.contentY - listHeaderHeight  - (headerItem.visible ? headerItem.height : 0): 0)
 
                 width: mainItem.contentItemPreferredWidth <= 0 ? mainItem.width : (mainItem.contentItemMaximumWidth > 0 ? Math.min( mainItem.contentItemMaximumWidth, Math.max( mainItem.width/2, mainItem.contentItemPreferredWidth ) ) : Math.max( mainItem.width / 2, mainItem.contentItemPreferredWidth ) ) + leftPadding + rightPadding
 
-                implicitHeight: scrollView.contentItem == flickableContents ? root.contentItem.height + topPadding + bottomPadding : 0
+                implicitHeight: scrollView.contentItem === flickableContents ? root.contentItem.height + topPadding + bottomPadding : 0
                 Connections {
                     target: enabled ? flickableContents.Window.activeFocusItem : null
                     enabled: flickableContents.focus && flickableContents.Window.activeFocusItem && flickableContents.Window.activeFocusItem.hasOwnProperty("text")
@@ -471,9 +471,14 @@ QtObject {
 
                 function adjustPosition() {
                     if(layoutMovingGuard) return;
-                    openAnimation.running = false;
-                    resetAnimation.running = false;
-                    contentY = openPosition;
+
+                    if (openAnimation.running) {
+                        openAnimation.running = false;
+                        open()
+                    } else {
+                        resetAnimation.running = false;
+                        contentY = openPosition;
+                    }
                 }
 
                 // disable dragging the sheet with a mouse on header bar
@@ -749,10 +754,12 @@ QtObject {
                     color: Theme.backgroundColor
 
                     //Show an extra margin when:
-                    //* the application is in mobile mode (no toolbarapplicationheader)
+                    //* the application is in mobile mode
+                    //* it doesn't use toolbarapplicationheader
                     //* the bottom screen controls are visible
                     //* the sheet is displayed *under* the controls
                     property int extraMargin: (!root.parent ||
+                        !Settings.isMobile ||
                         typeof applicationWindow === "undefined" ||
                         (root.parent === applicationWindow().overlay) ||
                         !applicationWindow().controlsVisible ||
diff -pruN 5.94.0-1/src/controls/templates/private/ContextIcon.qml 5.96.0-1/src/controls/templates/private/ContextIcon.qml
--- 5.94.0-1/src/controls/templates/private/ContextIcon.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/private/ContextIcon.qml	2022-07-02 15:54:45.000000000 +0000
@@ -34,7 +34,7 @@ Item {
                 //horizontalCenterOffset: -parent.width/2
                 topMargin: (parent.height/2 - iconRoot.thickness/2) * drawer.position
             }
-            antialiasing: drawer.position != 0
+            antialiasing: drawer.position !== 0
             transformOrigin: Item.Center
             width: (1 - drawer.position) * height + drawer.position * (Math.sqrt(2*(parent.width*parent.width)))
             height: iconRoot.thickness
@@ -57,7 +57,7 @@ Item {
              //   topMargin: -iconRoot.thickness/2 * drawer.position
                 bottomMargin: (parent.height/2 - iconRoot.thickness/2) * drawer.position
             }
-            antialiasing: drawer.position != 0
+            antialiasing: drawer.position !== 0
             transformOrigin: Item.Center
             width: (1 - drawer.position) * height + drawer.position * (Math.sqrt(2*(parent.width*parent.width)))
             height: iconRoot.thickness
diff -pruN 5.94.0-1/src/controls/templates/private/ForwardButton.qml 5.96.0-1/src/controls/templates/private/ForwardButton.qml
--- 5.94.0-1/src/controls/templates/private/ForwardButton.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/private/ForwardButton.qml	2022-07-02 15:54:45.000000000 +0000
@@ -25,7 +25,7 @@ Controls.ToolButton {
         }
     }
     // The gridUnit wiggle room is used to not flicker the button visibility during an animated resize for instance due to a sidebar collapse
-    visible: applicationWindow().pageStack.layers.depth == 1 && applicationWindow().pageStack.contentItem.contentWidth > applicationWindow().pageStack.width + Units.gridUnit && (showNavButtons === true || (showNavButtons & ApplicationHeaderStyle.ShowForwardButton))
+    visible: applicationWindow().pageStack.layers.depth === 1 && applicationWindow().pageStack.contentItem.contentWidth > applicationWindow().pageStack.width + Units.gridUnit && (showNavButtons === true || (showNavButtons & ApplicationHeaderStyle.ShowForwardButton))
 
     onClicked: applicationWindow().pageStack.goForward();
 
diff -pruN 5.94.0-1/src/controls/templates/private/MenuIcon.qml 5.96.0-1/src/controls/templates/private/MenuIcon.qml
--- 5.94.0-1/src/controls/templates/private/MenuIcon.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/private/MenuIcon.qml	2022-07-02 15:54:45.000000000 +0000
@@ -34,7 +34,7 @@ Item {
                 top: parent.top
                 topMargin: -iconRoot.thickness/2 * iconRoot.drawerPosition
             }
-            antialiasing: iconRoot.drawerPosition != 0
+            antialiasing: iconRoot.drawerPosition !== 0
             transformOrigin: Item.Right
             width: (1 - iconRoot.drawerPosition) * parent.width + iconRoot.drawerPosition * (Math.sqrt(2*(parent.width*parent.width)))
             height: iconRoot.thickness
@@ -55,7 +55,7 @@ Item {
                 bottom: parent.bottom
                 bottomMargin: -iconRoot.thickness/2 * iconRoot.drawerPosition
             }
-            antialiasing: iconRoot.drawerPosition != 0
+            antialiasing: iconRoot.drawerPosition !== 0
             transformOrigin: Item.Right
             width: (1 - iconRoot.drawerPosition) * parent.width + iconRoot.drawerPosition * (Math.sqrt(2*(parent.width*parent.width)))
             height: iconRoot.thickness
diff -pruN 5.94.0-1/src/controls/templates/private/PassiveNotification.qml 5.96.0-1/src/controls/templates/private/PassiveNotification.qml
--- 5.94.0-1/src/controls/templates/private/PassiveNotification.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/private/PassiveNotification.qml	2022-07-02 15:54:45.000000000 +0000
@@ -15,9 +15,9 @@ import org.kde.kirigami 2.12 as Kirigami
  * PassiveNotification is a type for small, passive and inline
 notifications in the app.
  * used to show messages of limited importance that make sense only when
- * the user is using the application and wouldn't be suited as a global 
+ * the user is using the application and wouldn't be suited as a global
  * system-wide notification.
- * This is not a full-fledged notification system. the applciation should 
+ * This is not a full-fledged notification system. the applciation should
  * use this with care and only one notification should be visible at once per app.
 */
 Controls.Popup {
@@ -49,9 +49,9 @@ Controls.Popup {
 
         let interval = 7000;
 
-        if (timeout == "short") {
+        if (timeout === "short") {
             interval = 4000;
-        } else if (timeout == "long") {
+        } else if (timeout === "long") {
             interval = 12000;
         } else if (timeout > 0) {
             interval = timeout;
@@ -79,7 +79,7 @@ Controls.Popup {
 
     Kirigami.Theme.inherit: false
     Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
-    
+
     background: Item {}
 
     contentItem: GridLayout {
@@ -195,7 +195,7 @@ Controls.Popup {
                 Kirigami.Theme.colorSet: root.Kirigami.Theme.colorSet
                 shadow {
                     size: Kirigami.Units.gridUnit/2
-                    color: Qt.rgba(0, 0, 0, 0.4) 
+                    color: Qt.rgba(0, 0, 0, 0.4)
                     yOffset: 2
                 }
                 radius: Kirigami.Units.smallSpacing * 2
diff -pruN 5.94.0-1/src/controls/templates/private/ScrollView.qml 5.96.0-1/src/controls/templates/private/ScrollView.qml
--- 5.94.0-1/src/controls/templates/private/ScrollView.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/private/ScrollView.qml	2022-07-02 15:54:45.000000000 +0000
@@ -58,7 +58,7 @@ MouseArea {
     onContentItemChanged: {
         if (contentItem.hasOwnProperty("contentY")) {
             flickableItem = contentItem;
-            if (typeof(flickableItem.keyNavigationEnabled) != "undefined") {
+            if (typeof flickableItem.keyNavigationEnabled !== "undefined") {
                 flickableItem.keyNavigationEnabled = true;
                 flickableItem.keyNavigationWraps = false;
             }
@@ -86,19 +86,19 @@ MouseArea {
         onTriggered: {
             //create or destroy the vertical scrollbar
             if ((!flickableItem.ScrollBar.vertical) &&
-                verticalScrollBarPolicy != Qt.ScrollBarAlwaysOff) {
+                verticalScrollBarPolicy !== Qt.ScrollBarAlwaysOff) {
                 flickableItem.ScrollBar.vertical = verticalScrollComponent.createObject(root);
             } else if (flickableItem.ScrollBar.vertical &&
-                verticalScrollBarPolicy == Qt.ScrollBarAlwaysOff) {
+                verticalScrollBarPolicy === Qt.ScrollBarAlwaysOff) {
                 flickableItem.ScrollBar.vertical.destroy();
             }
 
             //create or destroy the horizontal scrollbar
             if ((!flickableItem.ScrollBar.horizontal) &&
-                horizontalScrollBarPolicy != Qt.ScrollBarAlwaysOff) {
+                horizontalScrollBarPolicy !== Qt.ScrollBarAlwaysOff) {
                 flickableItem.ScrollBar.horizontal = horizontalScrollComponent.createObject(root);
             } else if (flickableItem.ScrollBar.horizontal &&
-                horizontalScrollBarPolicy == Qt.ScrollBarAlwaysOff) {
+                horizontalScrollBarPolicy === Qt.ScrollBarAlwaysOff) {
                 flickableItem.ScrollBar.horizontal.destroy();
             }
         }
@@ -132,7 +132,7 @@ MouseArea {
         id: verticalScrollComponent
         ScrollBar {
             z: flickableParent.z + 1
-            visible: root.verticalScrollBarPolicy != Qt.ScrollBarAlwaysOff && root.contentItem.visible && size < 1
+            visible: root.verticalScrollBarPolicy !== Qt.ScrollBarAlwaysOff && root.contentItem.visible && size < 1
             interactive: !Kirigami.Settings.hasTransientTouchInput
 
             anchors {
@@ -147,7 +147,7 @@ MouseArea {
         id: horizontalScrollComponent
         ScrollBar {
             z: flickableParent.z + 1
-            visible: root.horizontalScrollBarPolicy != Qt.ScrollBarAlwaysOff && root.contentItem.visible && size < 1
+            visible: root.horizontalScrollBarPolicy !== Qt.ScrollBarAlwaysOff && root.contentItem.visible && size < 1
             interactive: !Kirigami.Settings.hasTransientTouchInput
 
             anchors {
diff -pruN 5.94.0-1/src/controls/templates/SwipeListItem.qml 5.96.0-1/src/controls/templates/SwipeListItem.qml
--- 5.94.0-1/src/controls/templates/SwipeListItem.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/templates/SwipeListItem.qml	2022-07-02 15:54:45.000000000 +0000
@@ -216,11 +216,31 @@ T2.SwipeDelegate {
     Loader {
         id: overlayLoader
         readonly property int paddingOffset: (visible ? width : 0) + Kirigami.Units.smallSpacing
+        readonly property int expectedLeftPadding: listItem.padding * 2 + (listItem.mirrored ? overlayLoader.paddingOffset : 0)
+        readonly property int expectedRightPadding: listItem.padding * 2 + (listItem.mirrored ? 0 : overlayLoader.paddingOffset)
+        readonly property var theAlias: anchors
+        function validate(want, defaultValue) {
+            const warningText =
+                `Don't override the leftPadding or rightPadding on a SwipeListItem!\n` +
+                `This makes it impossible for me to adjust my layout as I need to for various usecases.\n` +
+                `I'll try to fix the mistake for you, but you should remove your overrides from your app's code entirely.\n` +
+                `If I can't fix the paddings, I'll fall back to a default layout, but it'll be slightly incorrect and lacks\n` +
+                `adaptations needed for touch screens and right-to-left languages, among other things.`
+
+            if (listItem.leftPadding != this.expectedLeftPadding || listItem.rightPadding != this.expectedRightPadding) {
+                listItem.leftPadding = Qt.binding(() => this.expectedLeftPadding)
+                listItem.rightPadding = Qt.binding(() => this.expectedRightPadding)
+                console.warn(warningText)
+                return defaultValue
+            }
+
+            return want
+        }
         anchors {
-            right: (Qt.application.layoutDirection == Qt.RightToLeft) ? undefined : (contentItem ? contentItem.right : undefined)
-            rightMargin: -paddingOffset
-            left: (Qt.application.layoutDirection == Qt.LeftToRight) ? undefined : (contentItem ? contentItem.left : undefined)
-            leftMargin: -paddingOffset
+            right: validate((Qt.application.layoutDirection === Qt.RightToLeft) ? undefined : (contentItem ? contentItem.right : undefined), contentItem ? contentItem.right : undefined)
+            rightMargin: validate(-paddingOffset, 0)
+            left: validate((Qt.application.layoutDirection === Qt.LeftToRight) ? undefined : (contentItem ? contentItem.left : undefined), undefined)
+            leftMargin: validate(-paddingOffset, 0)
             top: parent.top
             bottom: parent.bottom
         }
diff -pruN 5.94.0-1/src/controls/ToolBarApplicationHeader.qml 5.96.0-1/src/controls/ToolBarApplicationHeader.qml
--- 5.94.0-1/src/controls/ToolBarApplicationHeader.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/ToolBarApplicationHeader.qml	2022-07-02 15:54:45.000000000 +0000
@@ -82,20 +82,20 @@ ApplicationHeader {
 
             PrivateActionToolButton {
                 Layout.alignment: Qt.AlignVCenter
-                kirigamiAction: page && page.actions ? page.actions.left : null
-                showText: !parent.toobig
+                action: page && page.actions ? page.actions.left : null
+                display: parent.toobig ? Controls.AbstractButton.IconOnly : Controls.AbstractButton.TextBesideIcon
             }
             PrivateActionToolButton {
                 Layout.alignment: Qt.AlignVCenter
                 Layout.rightMargin: Units.smallSpacing
-                kirigamiAction: page && page.actions ? page.actions.main : null
-                showText: !parent.toobig
+                action: page && page.actions ? page.actions.main : null
+                display: parent.toobig ? Controls.AbstractButton.IconOnly : Controls.AbstractButton.TextBesideIcon
                 flat: false
             }
             PrivateActionToolButton {
                 Layout.alignment: Qt.AlignVCenter
-                kirigamiAction: page && page.actions ? page.actions.right : null
-                showText: !parent.toobig
+                action: page && page.actions ? page.actions.right : null
+                display: parent.toobig ? Controls.AbstractButton.IconOnly : Controls.AbstractButton.TextBesideIcon
             }
         }
 
@@ -115,7 +115,7 @@ ApplicationHeader {
                 children: page && page.actions.contextualActions ? page.actions.contextualActions : null
             }
 
-            kirigamiAction: page && page.actions.contextualActions.length === 1 ? page.actions.contextualActions[0] : overflowAction
+            action: page && page.actions.contextualActions.length === 1 ? page.actions.contextualActions[0] : overflowAction
         }
     }
 }
diff -pruN 5.94.0-1/src/controls/UrlButton.qml 5.96.0-1/src/controls/UrlButton.qml
--- 5.94.0-1/src/controls/UrlButton.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/controls/UrlButton.qml	2022-07-02 15:54:45.000000000 +0000
@@ -35,7 +35,7 @@ LinkButton
 
     QQC2.ToolTip {
         // If button's text has been overridden, show a tooltip to expose the raw URL
-        visible: button.text != button.url && button.mouseArea.containsMouse
+        visible: button.text !== button.url && button.mouseArea.containsMouse
         text: url
     }
 
diff -pruN 5.94.0-1/src/delegaterecycler.cpp 5.96.0-1/src/delegaterecycler.cpp
--- 5.94.0-1/src/delegaterecycler.cpp	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/delegaterecycler.cpp	2022-07-02 15:54:45.000000000 +0000
@@ -127,7 +127,7 @@ DelegateRecycler::~DelegateRecycler()
 void DelegateRecycler::syncIndex()
 {
     const QVariant newIndex = m_propertiesTracker->property("trackedIndex");
-    if (!newIndex.isValid()) {
+    if (!m_item || !newIndex.isValid()) {
         return;
     }
     QQmlContext *ctx = QQmlEngine::contextForObject(m_item)->parentContext();
@@ -137,7 +137,7 @@ void DelegateRecycler::syncIndex()
 void DelegateRecycler::syncModel()
 {
     const QVariant newModel = m_propertiesTracker->property("trackedModel");
-    if (!newModel.isValid()) {
+    if (!m_item || !newModel.isValid()) {
         return;
     }
     QQmlContext *ctx = QQmlEngine::contextForObject(m_item)->parentContext();
@@ -156,7 +156,7 @@ void DelegateRecycler::syncModel()
 void DelegateRecycler::syncModelProperties()
 {
     const QVariant model = m_propertiesTracker->property("trackedModel");
-    if (!model.isValid()) {
+    if (!m_item || !model.isValid()) {
         return;
     }
     QQmlContext *ctx = QQmlEngine::contextForObject(m_item)->parentContext();
@@ -174,7 +174,7 @@ void DelegateRecycler::syncModelProperti
 void DelegateRecycler::syncModelData()
 {
     const QVariant newModelData = m_propertiesTracker->property("trackedModelData");
-    if (!newModelData.isValid()) {
+    if (!m_item || !newModelData.isValid()) {
         return;
     }
     QQmlContext *ctx = QQmlEngine::contextForObject(m_item)->parentContext();
@@ -241,7 +241,10 @@ QtObject {
     if (!m_item) {
         QQuickItem *candidate = parentItem();
         QQmlContext *ctx = nullptr;
-        while (candidate) {
+        if (component->creationContext()) {
+            ctx = new QQmlContext(component->creationContext());
+        }
+        while (!ctx && candidate) {
             QQmlContext *parentCtx = QQmlEngine::contextForObject(candidate);
             if (parentCtx) {
                 ctx = new QQmlContext(parentCtx, candidate);
diff -pruN 5.94.0-1/src/icon.cpp 5.96.0-1/src/icon.cpp
--- 5.94.0-1/src/icon.cpp	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/icon.cpp	2022-07-02 15:54:45.000000000 +0000
@@ -20,7 +20,6 @@
 #include <QSGSimpleTextureNode>
 #include <QSGTexture>
 #include <QScreen>
-#include <QSharedPointer>
 #include <QtQml>
 
 Q_GLOBAL_STATIC(ImageTexturesCache, s_iconImageCache)
@@ -540,7 +539,7 @@ bool Icon::guessMonochrome(const QImage
         ++it;
     }
 
-    // Arbitrarly low values of entropy and colored pixels
+    // Arbitrarily low values of entropy and colored pixels
     m_monochromeHeuristics[stdSize] = saturatedPixels <= (img.size().width() * img.size().height() - transparentPixels) * 0.3 && entropy <= 0.3;
     return m_monochromeHeuristics[stdSize];
 }
diff -pruN 5.94.0-1/src/kirigamiplugin.cpp 5.96.0-1/src/kirigamiplugin.cpp
--- 5.94.0-1/src/kirigamiplugin.cpp	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/kirigamiplugin.cpp	2022-07-02 15:54:45.000000000 +0000
@@ -322,6 +322,9 @@ void KirigamiPlugin::registerTypes(const
         return new InputMethod{};
     });
 
+    // 2.20
+    qmlRegisterType(componentUrl(QStringLiteral("SelectableLabel.qml")), uri, 2, 20, "SelectableLabel");
+
     qmlProtectModule(uri, 2);
 }
 
diff -pruN 5.94.0-1/src/plugins.qmltypes 5.96.0-1/src/plugins.qmltypes
--- 5.94.0-1/src/plugins.qmltypes	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/plugins.qmltypes	2022-07-02 15:54:45.000000000 +0000
@@ -2035,6 +2035,15 @@ Module {
         Property { name: "rightActions"; type: "QObject"; isList: true; isReadonly: true }
     }
     Component {
+        prototype: "QQuickTextArea"
+        name: "org.kde.kirigami/SelectableLabel 2.20"
+        exports: ["org.kde.kirigami/SelectableLabel 2.20"]
+        exportMetaObjectRevisions: [20]
+        isComposite: true
+        defaultProperty: "data"
+        Property { name: "cursorShape"; type: "Qt::CursorShape" }
+    }
+    Component {
         prototype: "QQuickRectangle"
         name: "org.kde.kirigami/Separator 2.0"
         exports: ["org.kde.kirigami/Separator 2.0"]
diff -pruN 5.94.0-1/src/scenegraph/managedtexturenode.cpp 5.96.0-1/src/scenegraph/managedtexturenode.cpp
--- 5.94.0-1/src/scenegraph/managedtexturenode.cpp	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/scenegraph/managedtexturenode.cpp	2022-07-02 15:54:45.000000000 +0000
@@ -12,10 +12,10 @@ ManagedTextureNode::ManagedTextureNode()
 {
 }
 
-void ManagedTextureNode::setTexture(QSharedPointer<QSGTexture> texture)
+void ManagedTextureNode::setTexture(std::shared_ptr<QSGTexture> texture)
 {
     m_texture = texture;
-    QSGSimpleTextureNode::setTexture(texture.data());
+    QSGSimpleTextureNode::setTexture(texture.get());
 }
 
 ImageTexturesCache::ImageTexturesCache()
@@ -27,35 +27,35 @@ ImageTexturesCache::~ImageTexturesCache(
 {
 }
 
-QSharedPointer<QSGTexture> ImageTexturesCache::loadTexture(QQuickWindow *window, const QImage &image, QQuickWindow::CreateTextureOptions options)
+std::shared_ptr<QSGTexture> ImageTexturesCache::loadTexture(QQuickWindow *window, const QImage &image, QQuickWindow::CreateTextureOptions options)
 {
     qint64 id = image.cacheKey();
-    QSharedPointer<QSGTexture> texture = d->cache.value(id).value(window).toStrongRef();
+    std::shared_ptr<QSGTexture> texture = d->cache.value(id).value(window).lock();
 
     if (!texture) {
         auto cleanAndDelete = [this, window, id](QSGTexture *texture) {
-            QHash<QWindow *, QWeakPointer<QSGTexture>> &textures = (d->cache)[id];
+            QHash<QWindow *, std::weak_ptr<QSGTexture>> &textures = (d->cache)[id];
             textures.remove(window);
             if (textures.isEmpty()) {
                 d->cache.remove(id);
             }
             delete texture;
         };
-        texture = QSharedPointer<QSGTexture>(window->createTextureFromImage(image, options), cleanAndDelete);
-        (d->cache)[id][window] = texture.toWeakRef();
+        texture = std::shared_ptr<QSGTexture>(window->createTextureFromImage(image, options), cleanAndDelete);
+        (d->cache)[id][window] = texture;
     }
 
     // if we have a cache in an atlas but our request cannot use an atlassed texture
     // create a new texture and use that
     // don't use removedFromAtlas() as that requires keeping a reference to the non atlased version
     if (!(options & QQuickWindow::TextureCanUseAtlas) && texture->isAtlasTexture()) {
-        texture = QSharedPointer<QSGTexture>(window->createTextureFromImage(image, options));
+        texture = std::shared_ptr<QSGTexture>(window->createTextureFromImage(image, options));
     }
 
     return texture;
 }
 
-QSharedPointer<QSGTexture> ImageTexturesCache::loadTexture(QQuickWindow *window, const QImage &image)
+std::shared_ptr<QSGTexture> ImageTexturesCache::loadTexture(QQuickWindow *window, const QImage &image)
 {
     return loadTexture(window, image, {});
 }
diff -pruN 5.94.0-1/src/scenegraph/managedtexturenode.h 5.96.0-1/src/scenegraph/managedtexturenode.h
--- 5.94.0-1/src/scenegraph/managedtexturenode.h	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/src/scenegraph/managedtexturenode.h	2022-07-02 15:54:45.000000000 +0000
@@ -11,7 +11,7 @@
 #include <QQuickWindow>
 #include <QSGSimpleTextureNode>
 #include <QSGTexture>
-#include <QSharedPointer>
+#include <memory>
 
 class ManagedTextureNode : public QSGSimpleTextureNode
 {
@@ -19,13 +19,13 @@ class ManagedTextureNode : public QSGSim
 public:
     ManagedTextureNode();
 
-    void setTexture(QSharedPointer<QSGTexture> texture);
+    void setTexture(std::shared_ptr<QSGTexture> texture);
 
 private:
-    QSharedPointer<QSGTexture> m_texture;
+    std::shared_ptr<QSGTexture> m_texture;
 };
 
-typedef QHash<qint64, QHash<QWindow *, QWeakPointer<QSGTexture>>> TexturesCache;
+typedef QHash<qint64, QHash<QWindow *, std::weak_ptr<QSGTexture>>> TexturesCache;
 
 struct ImageTexturesCachePrivate {
     TexturesCache cache;
@@ -43,10 +43,10 @@ public:
      * If an @p image id is the same as one already provided before, we won't create
      * a new texture and return a shared pointer to the existing texture.
      */
-    QSharedPointer<QSGTexture> loadTexture(QQuickWindow *window, const QImage &image, QQuickWindow::CreateTextureOptions options);
+    std::shared_ptr<QSGTexture> loadTexture(QQuickWindow *window, const QImage &image, QQuickWindow::CreateTextureOptions options);
 
-    QSharedPointer<QSGTexture> loadTexture(QQuickWindow *window, const QImage &image);
+    std::shared_ptr<QSGTexture> loadTexture(QQuickWindow *window, const QImage &image);
 
 private:
-    QScopedPointer<ImageTexturesCachePrivate> d;
+    std::unique_ptr<ImageTexturesCachePrivate> d;
 };
diff -pruN 5.94.0-1/templates/kirigami/android/AndroidManifest.xml 5.96.0-1/templates/kirigami/android/AndroidManifest.xml
--- 5.94.0-1/templates/kirigami/android/AndroidManifest.xml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/templates/kirigami/android/AndroidManifest.xml	2022-07-02 15:54:45.000000000 +0000
@@ -28,14 +28,14 @@
             <meta-data android:name="android.app.extract_android_style" android:value="minimal"/>
 
             <!-- Deploy Qt libs as part of package -->
-            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
+            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%%BUNDLE_LOCAL_QT_LIBS%%% --"/>
             <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/>
             <!-- Run with local libs -->
-            <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
+            <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%%USE_LOCAL_QT_LIBS%%% --"/>
             <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
-            <meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
-            <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
-            <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
+            <meta-data android:name="android.app.load_local_libs" android:value="-- %%%INSERT_LOCAL_LIBS%%% --"/>
+            <meta-data android:name="android.app.load_local_jars" android:value="-- %%%INSERT_LOCAL_JARS%%% --"/>
+            <meta-data android:name="android.app.static_init_classes" android:value="-- %%%INSERT_INIT_CLASSES%%% --"/>
             <!--  Messages maps -->
             <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
             <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
diff -pruN 5.94.0-1/templates/kirigami/android/build.gradle 5.96.0-1/templates/kirigami/android/build.gradle
--- 5.94.0-1/templates/kirigami/android/build.gradle	1970-01-01 00:00:00.000000000 +0000
+++ 5.96.0-1/templates/kirigami/android/build.gradle	2022-07-02 15:54:45.000000000 +0000
@@ -0,0 +1,78 @@
+/*
+    SPDX-FileCopyrightText: %{CURRENT_YEAR} %{AUTHOR} <%{EMAIL}>
+    SPDX-License-Identifier: BSD-3-Clause
+*/
+
+buildscript {
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.6.4'
+    }
+}
+
+repositories {
+    google()
+    jcenter()
+}
+
+
+apply plugin: 'com.android.application'
+apply from: '../version.gradle'
+def timestamp = (int)(new Date().getTime()/1000)
+
+dependencies {
+    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
+}
+
+android {
+    /*******************************************************
+     * The following variables:
+     * - androidBuildToolsVersion,
+     * - androidCompileSdkVersion
+     * - qt5AndroidDir - holds the path to qt android files
+     *                   needed to build any Qt application
+     *                   on Android.
+     *
+     * are defined in gradle.properties file. This file is
+     * updated by QtCreator and androiddeployqt tools.
+     * Changing them manually might break the compilation!
+     *******************************************************/
+
+    compileSdkVersion androidCompileSdkVersion.toInteger()
+
+    buildToolsVersion androidBuildToolsVersion
+
+    sourceSets {
+        main {
+            manifest.srcFile 'AndroidManifest.xml'
+            java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
+            aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
+            res.srcDirs = [qt5AndroidDir + '/res', 'res']
+            resources.srcDirs = ['src']
+            renderscript.srcDirs = ['src']
+            assets.srcDirs = ['assets']
+            jniLibs.srcDirs = ['libs']
+       }
+    }
+
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+
+    lintOptions {
+        abortOnError false
+    }
+
+    defaultConfig {
+        minSdkVersion qtMinSdkVersion
+        targetSdkVersion qtTargetSdkVersion
+        manifestPlaceholders = [versionName: projectVersionFull, versionCode: timestamp]
+    }
+
+}
+
diff -pruN 5.94.0-1/templates/kirigami/android/version.gradle.in 5.96.0-1/templates/kirigami/android/version.gradle.in
--- 5.94.0-1/templates/kirigami/android/version.gradle.in	1970-01-01 00:00:00.000000000 +0000
+++ 5.96.0-1/templates/kirigami/android/version.gradle.in	2022-07-02 15:54:45.000000000 +0000
@@ -0,0 +1,7 @@
+// SPDX-FileCopyrightText: %{CURRENT_YEAR} %{AUTHOR} <%{EMAIL}>
+// SPDX-License-Identifier: BSD-3-Clause
+
+ext {
+    projectVersionFull = "@PROJECT_VERSION@"
+}
+
diff -pruN 5.94.0-1/templates/kirigami/CMakeLists.txt 5.96.0-1/templates/kirigami/CMakeLists.txt
--- 5.94.0-1/templates/kirigami/CMakeLists.txt	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/templates/kirigami/CMakeLists.txt	2022-07-02 15:54:45.000000000 +0000
@@ -29,6 +29,10 @@ ecm_setup_version(${PROJECT_VERSION}
 find_package(Qt5 ${QT5_MIN_VERSION} REQUIRED COMPONENTS Core Gui Qml QuickControls2 Svg)
 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2 CoreAddons Config I18n)
 
+if (ANDROID)
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle)
+endif()
+
 add_subdirectory(src)
 
 install(PROGRAMS org.kde.%{APPNAMELC}.desktop DESTINATION ${KDE_INSTALL_APPDIR})
diff -pruN 5.94.0-1/templates/kirigami/src/app.cpp 5.96.0-1/templates/kirigami/src/app.cpp
--- 5.94.0-1/templates/kirigami/src/app.cpp	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/templates/kirigami/src/app.cpp	2022-07-02 15:54:45.000000000 +0000
@@ -6,6 +6,14 @@
 #include <KWindowConfig>
 #include <QQuickWindow>
 
+void App::restoreWindowGeometry(QQuickWindow *window, const QString &group) const
+{
+    KConfig dataResource(QStringLiteral("data"), KConfig::SimpleConfig, QStandardPaths::AppDataLocation);
+    KConfigGroup windowGroup(&dataResource, QStringLiteral("Window-") + group);
+    KWindowConfig::restoreWindowSize(window, windowGroup);
+    KWindowConfig::restoreWindowPosition(window, windowGroup);
+}
+
 void App::saveWindowGeometry(QQuickWindow *window, const QString &group) const
 {
     KConfig dataResource(QStringLiteral("data"), KConfig::SimpleConfig, QStandardPaths::AppDataLocation);
diff -pruN 5.94.0-1/templates/kirigami/src/app.h 5.96.0-1/templates/kirigami/src/app.h
--- 5.94.0-1/templates/kirigami/src/app.h	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/templates/kirigami/src/app.h	2022-07-02 15:54:45.000000000 +0000
@@ -12,6 +12,8 @@ class App : public QObject
     Q_OBJECT
 
 public:
-    /// Save current window geometry
+    // Restore current window geometry
+    Q_INVOKABLE void restoreWindowGeometry(QQuickWindow *window, const QString &group = QStringLiteral("main")) const;
+    // Save current window geometry
     Q_INVOKABLE void saveWindowGeometry(QQuickWindow *window, const QString &group = QStringLiteral("main")) const;
 };
diff -pruN 5.94.0-1/templates/kirigami/src/CMakeLists.txt 5.96.0-1/templates/kirigami/src/CMakeLists.txt
--- 5.94.0-1/templates/kirigami/src/CMakeLists.txt	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/templates/kirigami/src/CMakeLists.txt	2022-07-02 15:54:45.000000000 +0000
@@ -19,5 +19,14 @@ target_link_libraries(%{APPNAMELC}
     KF5::ConfigCore
     KF5::ConfigGui)
 
+if (ANDROID)
+    kirigami_package_breeze_icons(ICONS
+        list-add
+        help-about
+        application-exit
+        applications-graphics
+    )
+endif()
+
 kconfig_add_kcfg_files(%{APPNAMELC} GENERATE_MOC %{APPNAMELC}config.kcfgc)
 install(TARGETS %{APPNAMELC} ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
diff -pruN 5.94.0-1/templates/kirigami/src/contents/ui/main.qml 5.96.0-1/templates/kirigami/src/contents/ui/main.qml
--- 5.94.0-1/templates/kirigami/src/contents/ui/main.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/templates/kirigami/src/contents/ui/main.qml	2022-07-02 15:54:45.000000000 +0000
@@ -5,6 +5,7 @@ import QtQuick 2.15
 import QtQuick.Controls 2.15 as Controls
 import QtQuick.Layouts 1.15
 import org.kde.kirigami 2.19 as Kirigami
+import org.kde.%{APPNAME} 1.0
 
 Kirigami.ApplicationWindow {
     id: root
@@ -14,13 +15,15 @@ Kirigami.ApplicationWindow {
     minimumWidth: Kirigami.Units.gridUnit * 20
     minimumHeight: Kirigami.Units.gridUnit * 20
 
-    onClosing: Controller.saveWindowGeometry(root)
+    onClosing: App.saveWindowGeometry(root)
 
     onWidthChanged: saveWindowGeometryTimer.restart()
     onHeightChanged: saveWindowGeometryTimer.restart()
     onXChanged: saveWindowGeometryTimer.restart()
     onYChanged: saveWindowGeometryTimer.restart()
 
+    Component.onCompleted: App.restoreWindowGeometry(root)
+
     // This timer allows to batch update the window size change to reduce
     // the io load and also work around the fact that x/y/width/height are
     // changed when loading the page and overwrite the saved geometry from
@@ -28,7 +31,7 @@ Kirigami.ApplicationWindow {
     Timer {
         id: saveWindowGeometryTimer
         interval: 1000
-        onTriggered: Controller.saveWindowGeometry(root)
+        onTriggered: App.saveWindowGeometry(root)
     }
 
     property int counter: 0
diff -pruN 5.94.0-1/templates/kirigami/src/main.cpp 5.96.0-1/templates/kirigami/src/main.cpp
--- 5.94.0-1/templates/kirigami/src/main.cpp	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/templates/kirigami/src/main.cpp	2022-07-02 15:54:45.000000000 +0000
@@ -37,7 +37,10 @@ Q_DECL_EXPORT int main(int argc, char *a
                          KAboutLicense::GPL,
                          // Copyright Statement.
                          i18n("(c) %{CURRENT_YEAR}"));
-    aboutData.addAuthor(i18nc("@info:credit", "AUTHOR"), i18nc("@info:credit", "Author Role"), QStringLiteral("%{EMAIL}"), QStringLiteral("https://yourwebsite.com"));
+    aboutData.addAuthor(i18nc("@info:credit", "%{AUTHOR}"),
+                        i18nc("@info:credit", "Author Role"),
+                        QStringLiteral("%{EMAIL}"),
+                        QStringLiteral("https://yourwebsite.com"));
     KAboutData::setApplicationData(aboutData);
 
     QQmlApplicationEngine engine;
diff -pruN 5.94.0-1/tests/actionsMenu.qml 5.96.0-1/tests/actionsMenu.qml
--- 5.94.0-1/tests/actionsMenu.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/actionsMenu.qml	2022-07-02 15:54:45.000000000 +0000
@@ -5,12 +5,11 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.7
-import QtQuick.Controls 2.3 as QQC2
-import org.kde.kirigami 2.4 as Kirigami
+import QtQuick 2.15
+import QtQuick.Controls 2.15 as QQC2
+import org.kde.kirigami 2.20 as Kirigami
 
-Kirigami.ApplicationWindow
-{
+Kirigami.ApplicationWindow {
     id: main
 
     header: Kirigami.ToolBarApplicationHeader {}
diff -pruN 5.94.0-1/tests/BasicListItemTest.qml 5.96.0-1/tests/BasicListItemTest.qml
--- 5.94.0-1/tests/BasicListItemTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/BasicListItemTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,13 +4,13 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.7
-import QtQuick.Layouts 1.13
-import QtQuick.Controls 2.14 as QQC2
-import org.kde.kirigami 2.14 as Kirigami
+import QtQuick 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Controls 2.15 as QQC2
 
-Kirigami.ApplicationWindow
-{
+import org.kde.kirigami 2.20 as Kirigami
+
+Kirigami.ApplicationWindow {
     GridLayout {
         anchors.fill: parent
         anchors.margins: Kirigami.Units.gridUnit
diff -pruN 5.94.0-1/tests/cardsList.qml 5.96.0-1/tests/cardsList.qml
--- 5.94.0-1/tests/cardsList.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/cardsList.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,12 +4,13 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.7
-import QtQuick.Controls 2.0
-import org.kde.kirigami 2.5 as Kirigami
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+
+import org.kde.kirigami 2.20 as Kirigami
+
+Kirigami.ApplicationWindow {
 
-Kirigami.ApplicationWindow
-{
     Component {
         id: delegateComponent
         Kirigami.Card {
diff -pruN 5.94.0-1/tests/KeyboardListTest.qml 5.96.0-1/tests/KeyboardListTest.qml
--- 5.94.0-1/tests/KeyboardListTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/KeyboardListTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -5,28 +5,22 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.7
-import QtQuick.Controls 2.0
-import org.kde.kirigami 2.4 as Kirigami
+import QtQuick 2.15
+import QtQuick.Controls 2.15
 
-Kirigami.ApplicationWindow
-{
+import org.kde.kirigami 2.20 as Kirigami
+
+Kirigami.ApplicationWindow {
     id: main
-    Component {
-        id: keyPage
-        Kirigami.ScrollablePage {
-            ListView {
-                model: 10
-                delegate: Rectangle {
-                    width: 100
-                    height: 30
-                    color: ListView.isCurrentItem ? "red" : "white"
-                }
+
+    pageStack.initialPage: Kirigami.ScrollablePage {
+        ListView {
+            model: 10
+            delegate: Rectangle {
+                width: 100
+                height: 30
+                color: ListView.isCurrentItem ? "red" : "white"
             }
         }
     }
-
-    Component.onCompleted: {
-        main.pageStack.push(keyPage)
-    }
 }
diff -pruN 5.94.0-1/tests/KeyboardTest.qml 5.96.0-1/tests/KeyboardTest.qml
--- 5.94.0-1/tests/KeyboardTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/KeyboardTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,24 +4,29 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.7
-import QtQuick.Controls 2.0
-import org.kde.kirigami 2.4 as Kirigami
+import QtQuick 2.15
+import QtQuick.Controls 2.15
 
-Kirigami.ApplicationWindow
-{
+import org.kde.kirigami 2.20 as Kirigami
+
+Kirigami.ApplicationWindow {
     id: main
+
     Component {
         id: keyPage
         Kirigami.Page {
+            id: page
+
+            // Don't remove, used in autotests
             readonly property alias lastKey: see.text
-            Text {
+
+            Label {
                 id: see
                 anchors.centerIn: parent
-                color: parent.focus ? "black" : "red"
+                color: page.activeFocus ? Kirigami.Theme.focusColor : Kirigami.Theme.textColor
             }
 
-            Keys.onPressed: {
+            Keys.onPressed: event => {
                 if (event.text)
                     see.text = event.text
                 else
@@ -32,8 +37,9 @@ Kirigami.ApplicationWindow
         }
     }
 
-    header: Text {
-        text: "focus:" + activeFocusItem + " current: " + main.pageStack.currentIndex
+    header: Label {
+        padding: Kirigami.Units.largeSpacing
+        text: `focus: ${main.activeFocusItem}, current: ${main.pageStack.currentIndex}`
     }
 
     Component.onCompleted: {
diff -pruN 5.94.0-1/tests/NavigationTabBarTest.qml 5.96.0-1/tests/NavigationTabBarTest.qml
--- 5.94.0-1/tests/NavigationTabBarTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/NavigationTabBarTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,15 +4,20 @@
 
 import QtQuick 2.15
 import QtQuick.Controls 2.15 as QQC2
-import org.kde.kirigami 2.19 as Kirigami
+
+import org.kde.kirigami 2.20 as Kirigami
 
 QQC2.ApplicationWindow {
     width: 640
     height: 480
+    visible: true
+
     QQC2.SwipeView {
         id: swipeView
+
         anchors.fill: parent
         currentIndex: navTabBar.currentIndex
+
         QQC2.Page {
             contentItem: QQC2.Label {
                 text: "page1"
@@ -39,9 +44,12 @@ QQC2.ApplicationWindow {
         }
         onCurrentIndexChanged: navTabBar.currentIndex = swipeView.currentIndex
     }
+
     footer: Kirigami.NavigationTabBar {
         id: navTabBar
+
         currentIndex: swipeView.currentIndex
+
         Kirigami.NavigationTabButton {
             visible: true
             icon.name: "document-save"
@@ -60,24 +68,24 @@ QQC2.ApplicationWindow {
                 icon.name: "edit-copy"
                 icon.height: 32
                 icon.width: 32
-                text: `test 3`
+                text: "test 3"
                 checked: true
             },
             Kirigami.Action {
                 visible: true
                 icon.name: "edit-cut"
-                text: `test 4`
+                text: "test 4"
                 checkable: true
             },
             Kirigami.Action {
                 visible: false
                 icon.name: "edit-paste"
-                text: `test 5`
+                text: "test 5"
             },
             Kirigami.Action {
                 visible: true
                 icon.source: "../logo.png"
-                text: `test 6`
+                text: "test 6"
                 checkable: true
             }
         ]
diff -pruN 5.94.0-1/tests/OverlayFocusTest.qml 5.96.0-1/tests/OverlayFocusTest.qml
--- 5.94.0-1/tests/OverlayFocusTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/OverlayFocusTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -5,11 +5,11 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.14
-import QtQuick.Layouts 1.14
-import QtQuick.Controls 2.14 as QQC2
-import org.kde.kirigami 2.14 as Kirigami
+import QtQuick 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Controls 2.15 as QQC2
 
+import org.kde.kirigami 2.20 as Kirigami
 
 Rectangle {
     id: background
@@ -23,7 +23,7 @@ Rectangle {
         anchors.centerIn: parent
 
         QQC2.Button {
-            Layout.fillWidth:true
+            Layout.fillWidth: true
             text: "Open overlay sheet"
             onClicked: sheet.open()
         }
@@ -34,9 +34,8 @@ Rectangle {
         parent: background
 
         header: QQC2.TextField {
-            focus: true
             id: headerText
-
+            focus: true
         }
         footer: QQC2.TextField {
             id: footerText
diff -pruN 5.94.0-1/tests/OverlayTest.qml 5.96.0-1/tests/OverlayTest.qml
--- 5.94.0-1/tests/OverlayTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/OverlayTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -1,25 +1,32 @@
+/*
+ *  SPDX-FileCopyrightText: 2022 Aleix Pol <aleixpol@kde.org>
+ *
+ *  SPDX-License-Identifier: LGPL-2.0-or-later
+ */
+
 import QtQuick 2.15
 import QtQuick.Layouts 1.15
 import QtQuick.Controls 2.15 as QQC2
-import org.kde.kirigami 2.17 as Kirigami
+
+import org.kde.kirigami 2.20 as Kirigami
 
 Kirigami.ApplicationWindow {
     height: 720
     width: 360
+    visible: true
 
-    Kirigami.OverlaySheet
-    {
+    Kirigami.OverlaySheet {
         id: sheet
+
         title: "Certificate Viewer"
 
         ColumnLayout {
             QQC2.DialogButtonBox {
-                id: ppp
                 Layout.fillWidth: true
+
                 QQC2.Button {
-                    id: butt
                     QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.ActionRole
-                    text: "Export..."
+                    text: "Export…"
                 }
 
                 QQC2.Button {
diff -pruN 5.94.0-1/tests/ShadowedImageTest.qml 5.96.0-1/tests/ShadowedImageTest.qml
--- 5.94.0-1/tests/ShadowedImageTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/ShadowedImageTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,16 +4,16 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.12
-import QtQuick.Controls 2.12
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Dialogs 1.3 as Dialogs
 
-import org.kde.kirigami 2.12 as Kirigami
+import org.kde.kirigami 2.20 as Kirigami
 
 Kirigami.ApplicationWindow {
-    id: window
-
     width: 600
     height: 800
+    visible: true
 
     pageStack.initialPage: Kirigami.Page {
         leftPadding: 0
diff -pruN 5.94.0-1/tests/ShadowedRectangleTest.qml 5.96.0-1/tests/ShadowedRectangleTest.qml
--- 5.94.0-1/tests/ShadowedRectangleTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/ShadowedRectangleTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,16 +4,15 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.12
-import QtQuick.Controls 2.12
+import QtQuick 2.15
+import QtQuick.Controls 2.15
 
-import org.kde.kirigami 2.12 as Kirigami
+import org.kde.kirigami 2.20 as Kirigami
 
 Kirigami.ApplicationWindow {
-    id: window
-
     width: 600
     height: 800
+    visible: true
 
     pageStack.initialPage: Kirigami.Page {
         leftPadding: 0
diff -pruN 5.94.0-1/tests/swipeListItemTest.qml 5.96.0-1/tests/swipeListItemTest.qml
--- 5.94.0-1/tests/swipeListItemTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/swipeListItemTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,35 +4,29 @@
  *  SPDX-License-Identifier: LGPL-2.0-or-later
  */
 
-import QtQuick 2.7
-import QtQuick.Controls 2.0
-import org.kde.kirigami 2.4 as Kirigami
+import QtQuick 2.15
+import QtQuick.Controls 2.15
 
-Kirigami.ApplicationWindow
-{
+import org.kde.kirigami 2.20 as Kirigami
+
+Kirigami.ApplicationWindow {
     id: main
-    Component {
-        id: keyPage
-        Kirigami.ScrollablePage {
-            ListView {
-                model: 25
-                delegate: Kirigami.SwipeListItem {
-                    supportsMouseEvents: false
-                    actions: [
-                        Kirigami.Action {
-                            iconName: "go-up"
-                        }
-                    ]
-                    Label {
-                        elide: Text.ElideRight
-                        text: "big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana "
+
+    pageStack.initialPage: Kirigami.ScrollablePage {
+        ListView {
+            model: 25
+            delegate: Kirigami.SwipeListItem {
+                supportsMouseEvents: false
+                actions: [
+                    Kirigami.Action {
+                        iconName: "go-up"
                     }
+                ]
+                Label {
+                    elide: Text.ElideRight
+                    text: "big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana big banana"
                 }
             }
         }
     }
-
-    Component.onCompleted: {
-        main.pageStack.push(keyPage)
-    }
 }
diff -pruN 5.94.0-1/tests/wheelhandler/ScrollView.qml 5.96.0-1/tests/wheelhandler/ScrollView.qml
--- 5.94.0-1/tests/wheelhandler/ScrollView.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/wheelhandler/ScrollView.qml	2022-07-02 15:54:45.000000000 +0000
@@ -5,7 +5,8 @@
 import QtQuick 2.15
 import QtQuick.Templates 2.15 as T
 import QtQuick.Controls 2.15 as QQC2
-import org.kde.kirigami 2.19 as Kirigami
+
+import org.kde.kirigami 2.20 as Kirigami
 
 T.ScrollView {
     id: control
@@ -25,13 +26,12 @@ T.ScrollView {
         }
     ]
 
-
     T.ScrollBar.vertical: QQC2.ScrollBar {
         parent: control
         x: control.mirrored ? 0 : control.width - width
         y: control.topPadding
         height: control.availableHeight
-        active: control.T.ScrollBar.vertical && control.T.ScrollBar.vertical.active
+        active: control.T.ScrollBar.horizontal.active
         stepSize: wheelHandler.verticalStepSize / control.contentHeight
     }
 
@@ -40,7 +40,7 @@ T.ScrollView {
         x: control.leftPadding
         y: control.height - height
         width: control.availableWidth
-        active: control.T.ScrollBar.horizontal && control.T.ScrollBar.horizontal.active
+        active: control.T.ScrollBar.vertical.active
         stepSize: wheelHandler.horizontalStepSize / control.contentWidth
     }
 }
diff -pruN 5.94.0-1/tests/wheelhandler/WheelHandlerFlickableTest.qml 5.96.0-1/tests/wheelhandler/WheelHandlerFlickableTest.qml
--- 5.94.0-1/tests/wheelhandler/WheelHandlerFlickableTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/wheelhandler/WheelHandlerFlickableTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -4,12 +4,15 @@
 
 import QtQuick 2.15
 import QtQuick.Controls 2.15 as QQC2
-import org.kde.kirigami 2.19 as Kirigami
+
+import org.kde.kirigami 2.20 as Kirigami
 
 QQC2.ApplicationWindow {
     id: root
     width: flickable.implicitWidth
     height: flickable.implicitHeight
+    visible: true
+
     Flickable {
         id: flickable
         anchors.fill: parent
diff -pruN 5.94.0-1/tests/wheelhandler/WheelHandlerScrollViewTest.qml 5.96.0-1/tests/wheelhandler/WheelHandlerScrollViewTest.qml
--- 5.94.0-1/tests/wheelhandler/WheelHandlerScrollViewTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/wheelhandler/WheelHandlerScrollViewTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -6,12 +6,14 @@ import QtQuick 2.15
 import QtQml 2.15
 import QtQuick.Templates 2.15 as T
 import QtQuick.Controls 2.15 as QQC2
-import org.kde.kirigami 2.19 as Kirigami
+
+import org.kde.kirigami 2.20 as Kirigami
 
 QQC2.ApplicationWindow {
     id: root
     width: 200 * Qt.styleHints.wheelScrollLines + scrollView.leftPadding + scrollView.rightPadding
     height: 200 * Qt.styleHints.wheelScrollLines + scrollView.topPadding + scrollView.bottomPadding
+    visible: true
     ScrollView {
         id: scrollView
         anchors.fill: parent
diff -pruN 5.94.0-1/tests/wheelhandler/WheelHandlerScrollViewTextAreaTest.qml 5.96.0-1/tests/wheelhandler/WheelHandlerScrollViewTextAreaTest.qml
--- 5.94.0-1/tests/wheelhandler/WheelHandlerScrollViewTextAreaTest.qml	2022-05-07 21:23:39.000000000 +0000
+++ 5.96.0-1/tests/wheelhandler/WheelHandlerScrollViewTextAreaTest.qml	2022-07-02 15:54:45.000000000 +0000
@@ -6,12 +6,15 @@ import QtQuick 2.15
 import QtQml 2.15
 import QtQuick.Templates 2.15 as T
 import QtQuick.Controls 2.15 as QQC2
-import org.kde.kirigami 2.19 as Kirigami
+
+import org.kde.kirigami 2.20 as Kirigami
 
 QQC2.ApplicationWindow {
     id: root
     width: 600
     height: 600
+    visible: true
+
     ScrollView {
         id: scrollView
         anchors.fill: parent
