From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B38CF15800F for ; Sun, 29 Jan 2023 00:12:24 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BC39FE092F; Sun, 29 Jan 2023 00:12:23 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 970F7E092E for ; Sun, 29 Jan 2023 00:12:23 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 84997340E9B for ; Sun, 29 Jan 2023 00:12:22 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 23CFF893 for ; Sun, 29 Jan 2023 00:12:21 +0000 (UTC) From: "Andreas Sturmlechner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andreas Sturmlechner" Message-ID: <1674951134.dd0a11a066ff688e97175771791b0f8924f2eadf.asturm@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: kde-frameworks/kirigami/files/, kde-frameworks/kirigami/ X-VCS-Repository: repo/gentoo X-VCS-Files: kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-1.patch kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-2.patch kde-frameworks/kirigami/kirigami-5.102.0-r1.ebuild X-VCS-Directories: kde-frameworks/kirigami/files/ kde-frameworks/kirigami/ X-VCS-Committer: asturm X-VCS-Committer-Name: Andreas Sturmlechner X-VCS-Revision: dd0a11a066ff688e97175771791b0f8924f2eadf X-VCS-Branch: master Date: Sun, 29 Jan 2023 00:12:21 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 577d53b4-c439-48d1-98e2-318fe8270124 X-Archives-Hash: 32f65fbfad267da5974b6b45aa0ba4cd commit: dd0a11a066ff688e97175771791b0f8924f2eadf Author: Andreas Sturmlechner gentoo org> AuthorDate: Sun Jan 29 00:08:17 2023 +0000 Commit: Andreas Sturmlechner gentoo org> CommitDate: Sun Jan 29 00:12:14 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd0a11a0 kde-frameworks/kirigami: Page: Fix title delegate elision glitch Upstream commits: f69ff1b0fec56486fd96fd1154160593c1ccedeb eacfc6961158cc4f493a5d7e3c47619157f54291 See also: https://invent.kde.org/frameworks/kirigami/-/merge_requests/900 Signed-off-by: Andreas Sturmlechner gentoo.org> ...102.0-fix-title-delegate-elision-glitch-1.patch | 59 +++++++++++ ...102.0-fix-title-delegate-elision-glitch-2.patch | 114 +++++++++++++++++++++ kde-frameworks/kirigami/kirigami-5.102.0-r1.ebuild | 55 ++++++++++ 3 files changed, 228 insertions(+) diff --git a/kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-1.patch b/kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-1.patch new file mode 100644 index 000000000000..31d38f3313b2 --- /dev/null +++ b/kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-1.patch @@ -0,0 +1,59 @@ +From f69ff1b0fec56486fd96fd1154160593c1ccedeb Mon Sep 17 00:00:00 2001 +From: ivan tkachenko +Date: Wed, 11 Jan 2023 02:50:10 +0300 +Subject: [PATCH] Page: Fix title delegate elision glitch + +Implicitly sized items like QtQuick/Text don't play nicely with Loader, +and generally with kinda-recursive bindings on Layout.* properties. + +This combination of two fixes does the trick: + +1. Use extra TextMetrics for reliable width/height values. +2. Round up text's advance width, so that container loader or layout +won't ever round it down (which it did with implicitWidth before). + +(cherry picked from commit bc03a15b52c7512a1757da77963be5e1e48d5df1) +--- + src/controls/Page.qml | 24 ++++++++++++++++++------ + 1 file changed, 18 insertions(+), 6 deletions(-) + +diff --git a/src/controls/Page.qml b/src/controls/Page.qml +index fccb96ebb..8c9aa04ab 100644 +--- a/src/controls/Page.qml ++++ b/src/controls/Page.qml +@@ -248,14 +248,26 @@ QQC2.Page { + */ + property Component titleDelegate: Component { + id: defaultTitleDelegate +- Kirigami.Heading { ++ Item { + Layout.fillWidth: true +- Layout.maximumWidth: implicitWidth + 1 // The +1 is to make sure we do not trigger eliding at max width + Layout.minimumWidth: 0 +- maximumLineCount: 1 +- elide: Text.ElideRight +- text: root.title +- textFormat: Text.PlainText ++ Layout.maximumWidth: implicitWidth ++ implicitWidth: Math.ceil(metrics.advanceWidth) ++ implicitHeight: metrics.height ++ ++ Kirigami.Heading { ++ id: heading ++ anchors.fill: parent ++ maximumLineCount: 1 ++ elide: Text.ElideRight ++ text: root.title ++ textFormat: Text.PlainText ++ } ++ TextMetrics { ++ id: metrics ++ font: heading.font ++ text: heading.text ++ } + } + } + +-- +GitLab + diff --git a/kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-2.patch b/kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-2.patch new file mode 100644 index 000000000000..4da10130a1b7 --- /dev/null +++ b/kde-frameworks/kirigami/files/kirigami-5.102.0-fix-title-delegate-elision-glitch-2.patch @@ -0,0 +1,114 @@ +From eacfc6961158cc4f493a5d7e3c47619157f54291 Mon Sep 17 00:00:00 2001 +From: ivan tkachenko +Date: Wed, 11 Jan 2023 23:00:03 +0300 +Subject: [PATCH] Page: Split default page title delegate into separate + component + +There's no need to clutter Page component with potentially unused Items +and IDs, and an extra self-contained component wouldn't hurt. + +(cherry picked from commit e9f19ecd20a881a6bfeaf0676fc8d6f570fe387f) +--- + src/CMakeLists.txt | 1 + + src/controls/Page.qml | 22 +--------- + .../private/DefaultPageTitleDelegate.qml | 43 +++++++++++++++++++ + 3 files changed, 46 insertions(+), 20 deletions(-) + create mode 100644 src/controls/private/DefaultPageTitleDelegate.qml + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 28c17c137..e3e7b3569 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -216,6 +216,7 @@ ecm_target_qml_sources(KirigamiPlugin PRIVATE PATH private SOURCES + controls/private/DefaultCardBackground.qml + controls/private/DefaultChipBackground.qml + controls/private/DefaultListItemBackground.qml ++ controls/private/DefaultPageTitleDelegate.qml + controls/private/EdgeShadow.qml + controls/private/GlobalDrawerActionItem.qml + controls/private/PageActionPropertyGroup.qml +diff --git a/src/controls/Page.qml b/src/controls/Page.qml +index 8c9aa04ab..2641b96cf 100644 +--- a/src/controls/Page.qml ++++ b/src/controls/Page.qml +@@ -248,26 +248,8 @@ QQC2.Page { + */ + property Component titleDelegate: Component { + id: defaultTitleDelegate +- Item { +- Layout.fillWidth: true +- Layout.minimumWidth: 0 +- Layout.maximumWidth: implicitWidth +- implicitWidth: Math.ceil(metrics.advanceWidth) +- implicitHeight: metrics.height +- +- Kirigami.Heading { +- id: heading +- anchors.fill: parent +- maximumLineCount: 1 +- elide: Text.ElideRight +- text: root.title +- textFormat: Text.PlainText +- } +- TextMetrics { +- id: metrics +- font: heading.font +- text: heading.text +- } ++ P.DefaultPageTitleDelegate { ++ text: root.title + } + } + +diff --git a/src/controls/private/DefaultPageTitleDelegate.qml b/src/controls/private/DefaultPageTitleDelegate.qml +new file mode 100644 +index 000000000..8c84d1b5c +--- /dev/null ++++ b/src/controls/private/DefaultPageTitleDelegate.qml +@@ -0,0 +1,43 @@ ++/* ++ * SPDX-FileCopyrightText: 2023 ivan tkachenko ++ * ++ * SPDX-License-Identifier: LGPL-2.0-or-later ++ */ ++ ++import QtQuick 2.15 ++import QtQuick.Layouts 1.15 ++import org.kde.kirigami 2.20 as Kirigami ++ ++/** ++ * This component is used as a default representation for a page title within ++ * page's header/toolbar. It is just a Heading item with shrinking + eliding ++ * behavior. ++ * ++ * \private ++ */ ++Item { ++ property alias text: heading.text ++ ++ Layout.fillWidth: true ++ Layout.minimumWidth: 0 ++ Layout.maximumWidth: implicitWidth ++ ++ implicitWidth: Math.ceil(metrics.advanceWidth) ++ implicitHeight: metrics.height ++ ++ Kirigami.Heading { ++ id: heading ++ ++ anchors.fill: parent ++ maximumLineCount: 1 ++ elide: Text.ElideRight ++ textFormat: Text.PlainText ++ } ++ ++ TextMetrics { ++ id: metrics ++ ++ font: heading.font ++ text: heading.text ++ } ++} +-- +GitLab + diff --git a/kde-frameworks/kirigami/kirigami-5.102.0-r1.ebuild b/kde-frameworks/kirigami/kirigami-5.102.0-r1.ebuild new file mode 100644 index 000000000000..246e902cfecb --- /dev/null +++ b/kde-frameworks/kirigami/kirigami-5.102.0-r1.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_EXAMPLES="true" +ECM_QTHELP="false" +ECM_TEST="true" +KDE_ORG_NAME="${PN}2" +QTMIN=5.15.5 +inherit ecm frameworks.kde.org toolchain-funcs + +DESCRIPTION="Lightweight user interface framework for mobile and convergent applications" +HOMEPAGE="https://techbase.kde.org/Kirigami" +EGIT_REPO_URI="${EGIT_REPO_URI/${PN}2/${PN}}" + +LICENSE="LGPL-2+" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="+openmp" + +# requires package to already be installed +RESTRICT="test" + +DEPEND=" + >=dev-qt/qtconcurrent-${QTMIN}:5 + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtdeclarative-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtnetwork-${QTMIN}:5 + >=dev-qt/qtquickcontrols2-${QTMIN}:5 + >=dev-qt/qtsvg-${QTMIN}:5 +" +RDEPEND="${DEPEND} + >=dev-qt/qtgraphicaleffects-${QTMIN}:5 +" +BDEPEND=">=dev-qt/linguist-tools-${QTMIN}:5" + +PATCHES=( "${FILESDIR}"/${P}-fix-title-delegate-elision-glitch-{1,2}.patch ) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_configure() { + local mycmakeargs=( + -DBUILD_EXAMPLES=$(usex examples) + $(cmake_use_find_package openmp OpenMP) + ) + + ecm_src_configure +}