Qt 5.15.16, untested. Try #2.
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtdeclarative?expand=0&rev=36
This commit is contained in:
commit
e4f46ec826
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
239
0001-QtQml-Re-use-memory-cached-compilation-units-across-.patch
Normal file
239
0001-QtQml-Re-use-memory-cached-compilation-units-across-.patch
Normal file
@ -0,0 +1,239 @@
|
||||
From 5b5f6d7b4b00e8e64280b7d66bcc1f63b40edf1c Mon Sep 17 00:00:00 2001
|
||||
From: Ulf Hermann <ulf.hermann@qt.io>
|
||||
Date: Mon, 9 Sep 2024 16:58:24 +0200
|
||||
Subject: [PATCH] QtQml: Re-use memory-cached compilation units across engines
|
||||
|
||||
Since we've eliminated all engine-specific data from these compilation
|
||||
units, we can now do so without fearing crosstalk between the engines.
|
||||
By not re-compiling the CUs we also do not create duplicate property
|
||||
caches which can otherwise show up in inconvenient places and make
|
||||
otherwise equal types mismatch.
|
||||
|
||||
Fixes: QTBUG-128789
|
||||
Change-Id: Ia8a6fefb9a1455f6139265aa3708036adea902f6
|
||||
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
||||
(cherry picked from commit 27c2c989a3d10557da15de3d45bb5bd7b96d14e8)
|
||||
---
|
||||
src/qml/qml/qqmltypedata.cpp | 22 ++++++++++--
|
||||
src/qml/qml/qqmltypedata_p.h | 1 +
|
||||
tests/auto/qml/qqmllanguage/CMakeLists.txt | 22 +++++-------
|
||||
.../qml/qqmllanguage/data/InnerObject.qml | 5 +++
|
||||
.../qqmllanguage/data/ObjectWithProperty.qml | 5 +++
|
||||
.../qml/qqmllanguage/data/outerObject.qml | 15 ++++++++
|
||||
.../qml/qqmllanguage/tst_qqmllanguage.cpp | 36 +++++++++++++++++++
|
||||
7 files changed, 90 insertions(+), 16 deletions(-)
|
||||
create mode 100644 tests/auto/qml/qqmllanguage/data/InnerObject.qml
|
||||
create mode 100644 tests/auto/qml/qqmllanguage/data/ObjectWithProperty.qml
|
||||
create mode 100644 tests/auto/qml/qqmllanguage/data/outerObject.qml
|
||||
|
||||
diff --git a/src/qml/qml/qqmltypedata.cpp b/src/qml/qml/qqmltypedata.cpp
|
||||
index 2b189cd2644d..d0e054c5f8d2 100644
|
||||
--- a/src/qml/qml/qqmltypedata.cpp
|
||||
+++ b/src/qml/qml/qqmltypedata.cpp
|
||||
@@ -95,7 +95,12 @@ bool QQmlTypeData::tryLoadFromDiskCache()
|
||||
return true;
|
||||
}
|
||||
|
||||
- m_compiledData = std::move(unit);
|
||||
+ return loadFromDiskCache(unit);
|
||||
+}
|
||||
+
|
||||
+bool QQmlTypeData::loadFromDiskCache(const QQmlRefPointer<QV4::CompiledData::CompilationUnit> &unit)
|
||||
+{
|
||||
+ m_compiledData = unit;
|
||||
|
||||
QVector<QV4::CompiledData::InlineComponent> ics;
|
||||
for (int i = 0, count = m_compiledData->objectCount(); i < count; ++i) {
|
||||
@@ -450,7 +455,12 @@ void QQmlTypeData::done()
|
||||
|
||||
QV4::CompiledData::ResolvedTypeReferenceMap resolvedTypeCache;
|
||||
QQmlRefPointer<QQmlTypeNameCache> typeNameCache;
|
||||
- {
|
||||
+
|
||||
+ // If we've pulled the CU from the memory cache, we don't need to do any verification.
|
||||
+ const bool verifyCaches = !m_compiledData
|
||||
+ || (m_compiledData->resolvedTypes.isEmpty() && !m_compiledData->typeNameCache);
|
||||
+
|
||||
+ if (verifyCaches) {
|
||||
QQmlError error = buildTypeResolutionCaches(&typeNameCache, &resolvedTypeCache);
|
||||
if (error.isValid()) {
|
||||
setError(error);
|
||||
@@ -469,7 +479,7 @@ void QQmlTypeData::done()
|
||||
};
|
||||
|
||||
// verify if any dependencies changed if we're using a cache
|
||||
- if (m_document.isNull()) {
|
||||
+ if (m_document.isNull() && verifyCaches) {
|
||||
const QQmlError error = createTypeAndPropertyCaches(typeNameCache, resolvedTypeCache);
|
||||
if (!error.isValid() && m_compiledData->verifyChecksum(dependencyHasher)) {
|
||||
setCompileUnit(m_compiledData);
|
||||
@@ -512,6 +522,7 @@ void QQmlTypeData::done()
|
||||
}
|
||||
|
||||
if (!m_document.isNull()) {
|
||||
+ Q_ASSERT(verifyCaches);
|
||||
// Compile component
|
||||
compile(typeNameCache, &resolvedTypeCache, dependencyHasher);
|
||||
if (isError())
|
||||
@@ -656,6 +667,11 @@ void QQmlTypeData::dataReceived(const SourceCodeData &data)
|
||||
|
||||
void QQmlTypeData::initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit *unit)
|
||||
{
|
||||
+ if (auto cu = QQmlMetaType::obtainCompilationUnit(finalUrl())) {
|
||||
+ if (loadFromDiskCache(cu))
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
m_document.reset(new QmlIR::Document(isDebugging()));
|
||||
QQmlIRLoader loader(unit->qmlData, m_document.data());
|
||||
loader.load();
|
||||
diff --git a/src/qml/qml/qqmltypedata_p.h b/src/qml/qml/qqmltypedata_p.h
|
||||
index 97419b916bc8..8ca1c4e96104 100644
|
||||
--- a/src/qml/qml/qqmltypedata_p.h
|
||||
+++ b/src/qml/qml/qqmltypedata_p.h
|
||||
@@ -84,6 +84,7 @@ private:
|
||||
using InlineComponentData = QV4::CompiledData::InlineComponentData;
|
||||
|
||||
bool tryLoadFromDiskCache();
|
||||
+ bool loadFromDiskCache(const QQmlRefPointer<QV4::CompiledData::CompilationUnit> &unit);
|
||||
bool loadFromSource();
|
||||
void restoreIR(const QQmlRefPointer<QV4::CompiledData::CompilationUnit> &unit);
|
||||
void continueLoadFromIR();
|
||||
diff --git a/tests/auto/qml/qqmllanguage/CMakeLists.txt b/tests/auto/qml/qqmllanguage/CMakeLists.txt
|
||||
index 9fff8f211872..bf5166a66505 100644
|
||||
--- a/tests/auto/qml/qqmllanguage/CMakeLists.txt
|
||||
+++ b/tests/auto/qml/qqmllanguage/CMakeLists.txt
|
||||
@@ -35,14 +35,6 @@ qt_internal_add_test(tst_qqmllanguage
|
||||
|
||||
add_subdirectory(testhelper)
|
||||
|
||||
-#### Keys ignored in scope 1:.:.:qqmllanguage.pro:<TRUE>:
|
||||
-# OTHER_FILES = "data/readonlyObjectProperty.qml"
|
||||
-# QML_IMPORT_NAME = "StaticTest"
|
||||
-# QML_IMPORT_VERSION = "1.0"
|
||||
-
|
||||
-## Scopes:
|
||||
-#####################################################################
|
||||
-
|
||||
if(ANDROID)
|
||||
# Resources:
|
||||
set_source_files_properties("data/I18nType30.qml"
|
||||
@@ -70,9 +62,13 @@ qt_internal_extend_target(tst_qqmllanguage CONDITION NOT ANDROID AND NOT IOS
|
||||
QT_QMLTEST_DATADIR="${CMAKE_CURRENT_SOURCE_DIR}/data"
|
||||
)
|
||||
|
||||
-set_target_properties(tst_qqmllanguage PROPERTIES
|
||||
- QT_QML_MODULE_VERSION 1.0
|
||||
- QT_QML_MODULE_URI StaticTest
|
||||
+qt6_add_qml_module(tst_qqmllanguage
|
||||
+ URI StaticTest
|
||||
+ VERSION 1.0
|
||||
+ QML_FILES
|
||||
+ data/InnerObject.qml
|
||||
+ data/ObjectWithProperty.qml
|
||||
+ data/outerObject.qml
|
||||
+ RESOURCE_PREFIX "/"
|
||||
+ NO_GENERATE_EXTRA_QMLDIRS
|
||||
)
|
||||
-
|
||||
-_qt_internal_qml_type_registration(tst_qqmllanguage)
|
||||
diff --git a/tests/auto/qml/qqmllanguage/data/InnerObject.qml b/tests/auto/qml/qqmllanguage/data/InnerObject.qml
|
||||
new file mode 100644
|
||||
index 000000000000..8598b5b8d243
|
||||
--- /dev/null
|
||||
+++ b/tests/auto/qml/qqmllanguage/data/InnerObject.qml
|
||||
@@ -0,0 +1,5 @@
|
||||
+import QtQml
|
||||
+
|
||||
+QtObject {
|
||||
+ required property ObjectWithProperty objectWithProperty
|
||||
+}
|
||||
diff --git a/tests/auto/qml/qqmllanguage/data/ObjectWithProperty.qml b/tests/auto/qml/qqmllanguage/data/ObjectWithProperty.qml
|
||||
new file mode 100644
|
||||
index 000000000000..31089f7dbd05
|
||||
--- /dev/null
|
||||
+++ b/tests/auto/qml/qqmllanguage/data/ObjectWithProperty.qml
|
||||
@@ -0,0 +1,5 @@
|
||||
+import QtQml
|
||||
+
|
||||
+QtObject {
|
||||
+ property int a: 5
|
||||
+}
|
||||
diff --git a/tests/auto/qml/qqmllanguage/data/outerObject.qml b/tests/auto/qml/qqmllanguage/data/outerObject.qml
|
||||
new file mode 100644
|
||||
index 000000000000..ff074fd50988
|
||||
--- /dev/null
|
||||
+++ b/tests/auto/qml/qqmllanguage/data/outerObject.qml
|
||||
@@ -0,0 +1,15 @@
|
||||
+import QtQml
|
||||
+
|
||||
+QtObject {
|
||||
+ id: self
|
||||
+
|
||||
+ property Component delegate
|
||||
+
|
||||
+ property ObjectWithProperty objectWithProperty: ObjectWithProperty {}
|
||||
+
|
||||
+ property InnerObject innerObject: null
|
||||
+
|
||||
+ function doInstantiate() {
|
||||
+ innerObject = delegate.createObject(self, {objectWithProperty: objectWithProperty})
|
||||
+ }
|
||||
+}
|
||||
diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
|
||||
index ed205447ddb1..4fabc4f64d9a 100644
|
||||
--- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
|
||||
+++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
|
||||
@@ -466,6 +466,8 @@ private slots:
|
||||
|
||||
void overrideInnerBinding();
|
||||
|
||||
+ void engineTypeCrossTalk();
|
||||
+
|
||||
private:
|
||||
QQmlEngine engine;
|
||||
QStringList defaultImportPathList;
|
||||
@@ -8994,6 +8996,40 @@ void tst_qqmllanguage::overrideInnerBinding()
|
||||
QCOMPARE(o->property("innerWidth").toReal(), 20.0);
|
||||
}
|
||||
|
||||
+class EngineAndObject
|
||||
+{
|
||||
+public:
|
||||
+ EngineAndObject(const QUrl &outer)
|
||||
+ {
|
||||
+ QQmlComponent component(&engine, outer);
|
||||
+ QVERIFY2(component.isReady(), qPrintable(component.errorString()));
|
||||
+ object.reset(component.create());
|
||||
+ QVERIFY(object);
|
||||
+ }
|
||||
+
|
||||
+ void wreck(const QUrl &inner) {
|
||||
+ QQmlComponent component(&engine, inner);
|
||||
+ QVERIFY2(component.isReady(), qPrintable(component.errorString()));
|
||||
+ object->setProperty("delegate", QVariant::fromValue(&component));
|
||||
+ QMetaObject::invokeMethod(object.get(), "doInstantiate");
|
||||
+ QVERIFY(object->property("innerObject").value<QObject *>() != nullptr);
|
||||
+ }
|
||||
+
|
||||
+ QQmlEngine engine;
|
||||
+ std::unique_ptr<QObject> object;
|
||||
+};
|
||||
+
|
||||
+void tst_qqmllanguage::engineTypeCrossTalk()
|
||||
+{
|
||||
+ const QUrl outer("qrc:/StaticTest/data/outerObject.qml");
|
||||
+ EngineAndObject first(outer);
|
||||
+ EngineAndObject second(outer);
|
||||
+
|
||||
+ const QUrl inner("qrc:/StaticTest/data/InnerObject.qml");
|
||||
+ first.wreck(inner);
|
||||
+ second.wreck(inner);
|
||||
+}
|
||||
+
|
||||
QTEST_MAIN(tst_qqmllanguage)
|
||||
|
||||
#include "tst_qqmllanguage.moc"
|
||||
--
|
||||
2.47.0
|
||||
|
8
_constraints
Normal file
8
_constraints
Normal file
@ -0,0 +1,8 @@
|
||||
<constraints>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">6</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</constraints>
|
||||
|
18
_service
Normal file
18
_service
Normal file
@ -0,0 +1,18 @@
|
||||
<services>
|
||||
<service name="obs_scm" mode="disabled">
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="versionformat">5.15.16+kde@TAG_OFFSET@</param>
|
||||
<param name="url">https://invent.kde.org/qt/qt/qtdeclarative.git</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="filename">qtdeclarative-everywhere-src</param>
|
||||
<param name="revision">kde/5.15</param>
|
||||
<param name="parent-tag">v5.15.16-lts-lgpl</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
</service>
|
||||
<service name="set_version" mode="disabled"/>
|
||||
<service name="tar" mode="buildtime"/>
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">xz</param>
|
||||
</service>
|
||||
</services>
|
4
_servicedata
Normal file
4
_servicedata
Normal file
@ -0,0 +1,4 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://invent.kde.org/qt/qt/qtdeclarative.git</param>
|
||||
<param name="changesrevision">e2b38659cb79104f157e1d0099c01e545d04d0db</param></service></servicedata>
|
3
baselibs.conf
Normal file
3
baselibs.conf
Normal file
@ -0,0 +1,3 @@
|
||||
libQtQuick5
|
||||
libqt5-qtdeclarative-devel
|
||||
requires "libQtQuick5-<targettype> = <version>"
|
1619
libqt5-qtdeclarative.changes
Normal file
1619
libqt5-qtdeclarative.changes
Normal file
File diff suppressed because it is too large
Load Diff
229
libqt5-qtdeclarative.spec
Normal file
229
libqt5-qtdeclarative.spec
Normal file
@ -0,0 +1,229 @@
|
||||
#
|
||||
# spec file for package libqt5-qtdeclarative
|
||||
#
|
||||
# Copyright (c) 2020 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define qt5_snapshot 1
|
||||
%define libname libQtQuick5
|
||||
%define base_name libqt5
|
||||
%define real_version 5.15.16
|
||||
%define so_version 5.15.16
|
||||
%define tar_version qtdeclarative-everywhere-src-%{version}
|
||||
Name: libqt5-qtdeclarative
|
||||
Version: 5.15.16+kde22
|
||||
Release: 0
|
||||
Summary: Qt 5 Declarative Library
|
||||
License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)
|
||||
Group: Development/Libraries/X11
|
||||
URL: https://www.qt.io
|
||||
Source: %{tar_version}.tar.xz
|
||||
Source1: baselibs.conf
|
||||
# https://invent.kde.org/qt/qt/qtdeclarative/-/merge_requests/32
|
||||
Patch103: qtdeclarative-5.15.0-FixMaxXMaxYExtent.patch
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: libQt5Core-private-headers-devel >= %{real_version}
|
||||
BuildRequires: libQt5Gui-private-headers-devel >= %{real_version}
|
||||
BuildRequires: libQt5Test-private-headers-devel >= %{real_version}
|
||||
BuildRequires: libQt5Widgets-private-headers-devel >= %{real_version}
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: xz
|
||||
BuildRequires: pkgconfig(Qt5Core) >= %{real_version}
|
||||
BuildRequires: pkgconfig(Qt5Gui) >= %{real_version}
|
||||
BuildRequires: pkgconfig(Qt5Network) >= %{real_version}
|
||||
BuildRequires: pkgconfig(Qt5Sql) >= %{real_version}
|
||||
BuildRequires: pkgconfig(Qt5Widgets) >= %{real_version}
|
||||
%if %{qt5_snapshot}
|
||||
#to create the forwarding headers
|
||||
BuildRequires: perl
|
||||
%endif
|
||||
|
||||
# NOTE recheck this once/if this package gets further splitted
|
||||
%requires_ge libQt5Core5
|
||||
%requires_ge libQt5Gui5
|
||||
%requires_ge libQt5Network5
|
||||
%requires_ge libQt5Sql5
|
||||
%requires_ge libQt5Test5
|
||||
%requires_ge libQt5Widgets5
|
||||
|
||||
%description
|
||||
Qt is a set of libraries for developing applications.
|
||||
|
||||
This package contains base tools, like string, xml, and network
|
||||
handling.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n qtdeclarative-everywhere-src-%{version}
|
||||
|
||||
%package -n %{libname}
|
||||
Summary: Qt 5 Declarative Library
|
||||
Group: Development/Libraries/X11
|
||||
# Used by QtQuick.LocalStorage
|
||||
Requires: libQt5Sql5-sqlite
|
||||
Requires: (qml-autoreqprov if rpm-build)
|
||||
|
||||
%description -n %{libname}
|
||||
Qt is a set of libraries for developing applications.
|
||||
|
||||
This package contains base tools, like string, xml, and network
|
||||
handling.
|
||||
|
||||
%package devel
|
||||
Summary: Qt Development Kit
|
||||
Group: Development/Libraries/X11
|
||||
Requires: %{libname} = %{version}
|
||||
Requires: %{name}-tools = %{version}
|
||||
Provides: libQt5Quick-devel = %{version}
|
||||
Obsoletes: libQt5Quick-devel < %{version}
|
||||
|
||||
%description devel
|
||||
You need this package, if you want to compile programs with qtdeclarative.
|
||||
|
||||
%package tools
|
||||
Summary: Qt 5 Declarative Tools
|
||||
Group: Development/Tools/Debuggers
|
||||
License: GPL-3.0-only
|
||||
|
||||
%description tools
|
||||
Qt is a set of libraries for developing applications.
|
||||
|
||||
This package contains aditional tools for inspecting, testing, viewing, etc, QML imports and files.
|
||||
|
||||
%package private-headers-devel
|
||||
Summary: Non-ABI stable experimental API
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{name}-devel = %{version}
|
||||
Requires: libQt5Core-private-headers-devel >= %{real_version}
|
||||
Requires: libQt5Gui-private-headers-devel >= %{real_version}
|
||||
Requires: libQt5Test-private-headers-devel >= %{real_version}
|
||||
Requires: libQt5Widgets-private-headers-devel >= %{real_version}
|
||||
Provides: libQt5Quick-private-headers-devel = %{version}
|
||||
Obsoletes: libQt5Quick-private-headers-devel < %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description private-headers-devel
|
||||
This package provides private headers of libqt5-qtdeclarative that are normally
|
||||
not used by application development and that do not have any ABI or
|
||||
API guarantees. The packages that build against these have to require
|
||||
the exact Qt version.
|
||||
|
||||
%package examples
|
||||
Summary: Qt5 quick/qml examples
|
||||
Group: Development/Libraries/X11
|
||||
License: BSD-3-Clause
|
||||
Recommends: %{name}-devel
|
||||
Recommends: %{name}-tools
|
||||
|
||||
%description examples
|
||||
Examples for libqt5-qtdeclarative (quick/qml) modules.
|
||||
|
||||
%post -n %{libname} -p /sbin/ldconfig
|
||||
%postun -n %{libname} -p /sbin/ldconfig
|
||||
|
||||
%build
|
||||
%if %{qt5_snapshot}
|
||||
#force the configure script to generate the forwarding headers (it checks whether .git directory exists)
|
||||
mkdir .git
|
||||
%endif
|
||||
|
||||
mkdir -p %{_target_platform}
|
||||
pushd %{_target_platform}
|
||||
qmake-qt5 ..
|
||||
popd
|
||||
|
||||
make %{?_smp_mflags} VERBOSE=1 -C %{_target_platform}
|
||||
|
||||
%install
|
||||
pushd %{_target_platform}
|
||||
%qmake5_install
|
||||
popd
|
||||
|
||||
find %{buildroot}/%{_libdir} -type f -name '*la' -print -exec perl -pi -e 's, -L%{_builddir}/\S+,,g' {} \;
|
||||
find %{buildroot}/%{_libdir}/pkgconfig -type f -name '*pc' -print -exec perl -pi -e 's, -L%{_builddir}/\S+,,g' {} \;
|
||||
# kill .la files
|
||||
rm -f %{buildroot}%{_libqt5_libdir}/lib*.la
|
||||
|
||||
# Link all the binaries with -qt5 suffix to %{_bindir}
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
pushd %{buildroot}%{_libqt5_bindir}
|
||||
for i in * ; do
|
||||
case "${i}" in
|
||||
qmlplugindump|qmlprofiler)
|
||||
ln -s %{_libqt5_bindir}/$i %{buildroot}%{_bindir}/${i}-qt5
|
||||
;;
|
||||
*)
|
||||
# No conflict with Qt4, so keep the original name for compatibility
|
||||
ln -s %{_libqt5_bindir}/$i %{buildroot}%{_bindir}/${i}
|
||||
ln -s %{_libqt5_bindir}/$i %{buildroot}%{_bindir}/${i}-qt5
|
||||
;;
|
||||
esac
|
||||
done
|
||||
popd
|
||||
|
||||
%fdupes -s %{buildroot}%{_libqt5_includedir}
|
||||
%fdupes -s %{buildroot}%{_libqt5_examplesdir}
|
||||
|
||||
%files -n %{libname}
|
||||
%license LICENSE.*
|
||||
%{_libqt5_libdir}/libQt5Q*.so.*
|
||||
%dir %{_libqt5_archdatadir}/qml
|
||||
%dir %{_libqt5_archdatadir}/qml/Qt
|
||||
%{_libqt5_archdatadir}/qml/QtQuick
|
||||
%{_libqt5_archdatadir}/qml/QtQuick.2
|
||||
%{_libqt5_archdatadir}/qml/QtQml
|
||||
%{_libqt5_archdatadir}/qml/builtins.qmltypes
|
||||
%dir %{_libqt5_archdatadir}/qml/Qt/labs
|
||||
%{_libqt5_archdatadir}/qml/Qt/labs/animation/
|
||||
%{_libqt5_archdatadir}/qml/Qt/labs/folderlistmodel/
|
||||
%{_libqt5_archdatadir}/qml/Qt/labs/settings/
|
||||
%{_libqt5_archdatadir}/qml/Qt/labs/sharedimage/
|
||||
%{_libqt5_archdatadir}/qml/Qt/labs/qmlmodels/
|
||||
%{_libqt5_archdatadir}/qml/Qt/labs/wavefrontmesh/
|
||||
%dir %{_libqt5_archdatadir}/qml/Qt/test
|
||||
%{_libqt5_archdatadir}/qml/Qt/test/qtestroot/
|
||||
%{_libqt5_plugindir}/qmltooling
|
||||
|
||||
%files private-headers-devel
|
||||
%license LICENSE.*
|
||||
%{_libqt5_includedir}/Qt*/%{so_version}
|
||||
|
||||
%files tools
|
||||
%license LICENSE.*
|
||||
%{_bindir}/*
|
||||
%{_libqt5_bindir}/*
|
||||
|
||||
%files devel
|
||||
%license LICENSE.*
|
||||
%exclude %{_libqt5_includedir}/Qt*/%{so_version}
|
||||
%{_libqt5_includedir}/Qt*
|
||||
%{_libqt5_libdir}/cmake/Qt5*
|
||||
%{_libqt5_libdir}/libQt5*.prl
|
||||
%{_libqt5_libdir}/libQt5Q*.so
|
||||
%{_libqt5_libdir}/libQt5*.a
|
||||
%{_libqt5_libdir}/pkgconfig/Qt5Q*.pc
|
||||
%{_libqt5_libdir}/metatypes/qt5quick*_metatypes.json
|
||||
%{_libqt5_libdir}/metatypes/qt5qml*_metatypes.json
|
||||
%{_libqt5_archdatadir}/mkspecs/modules/*.pri
|
||||
%{_libqt5_archdatadir}/mkspecs/features/qmlcache.prf
|
||||
%{_libqt5_archdatadir}/mkspecs/features/qmltypes.prf
|
||||
%{_libqt5_archdatadir}/mkspecs/features/qtquickcompiler.prf
|
||||
%{_libqt5_archdatadir}/qml/QtTest
|
||||
|
||||
%files examples
|
||||
%license LICENSE.*
|
||||
%{_libqt5_examplesdir}/
|
||||
|
||||
%changelog
|
343
qtdeclarative-5.15.0-FixMaxXMaxYExtent.patch
Normal file
343
qtdeclarative-5.15.0-FixMaxXMaxYExtent.patch
Normal file
@ -0,0 +1,343 @@
|
||||
From 97e530bbc0066cf9f60891b99a5a974e4c3ced85 Mon Sep 17 00:00:00 2001
|
||||
From: David Redondo <kde@david-redondo.de>
|
||||
Date: Wed, 13 May 2020 11:04:23 +0200
|
||||
Subject: [PATCH] QQuickItemView: Fix max(X/Y)Extent()
|
||||
|
||||
QQuickFlickable maxXExtent() and maxYExtent() return the amount of space
|
||||
that is not shown when inside a ScrollView. QQuickItemView however just
|
||||
returned width() if vertical and height() if horizontal. In these cases
|
||||
just defer to the QQuickFlickable base implementation like minXExtent()
|
||||
and minYExtent() already do.
|
||||
|
||||
Fixes: QTBUG-83890
|
||||
Pick-to: 6.2 6.4
|
||||
Change-Id: I7f4060c2f46ae07611bedceca0d322c5f7f6affb
|
||||
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
||||
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
||||
(cherry picked from commit 99047ae219ff6689da38cc988a25030fece655da)
|
||||
---
|
||||
src/quick/items/qquickitemview.cpp | 4 +-
|
||||
.../qquickgridview/tst_qquickgridview.cpp | 29 +++---
|
||||
.../qquicklistview/tst_qquicklistview.cpp | 14 ++-
|
||||
.../quick/qquicklistview2/data/maxXExtent.qml | 29 ++++++
|
||||
.../quick/qquicklistview2/data/maxYExtent.qml | 30 ++++++
|
||||
.../qquicklistview2/tst_qquicklistview2.cpp | 94 +++++++++++++++++++
|
||||
tests/auto/quick/quick.pro | 1 +
|
||||
7 files changed, 174 insertions(+), 27 deletions(-)
|
||||
create mode 100644 tests/auto/quick/qquicklistview2/data/maxXExtent.qml
|
||||
create mode 100644 tests/auto/quick/qquicklistview2/data/maxYExtent.qml
|
||||
create mode 100644 tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp
|
||||
|
||||
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
|
||||
index f8ad168a17..a797bec4ef 100644
|
||||
--- a/src/quick/items/qquickitemview.cpp
|
||||
+++ b/src/quick/items/qquickitemview.cpp
|
||||
@@ -1393,7 +1393,7 @@ qreal QQuickItemView::maxYExtent() const
|
||||
{
|
||||
Q_D(const QQuickItemView);
|
||||
if (d->layoutOrientation() == Qt::Horizontal)
|
||||
- return height();
|
||||
+ return QQuickFlickable::maxYExtent();
|
||||
|
||||
if (d->vData.maxExtentDirty) {
|
||||
d->maxExtent = d->maxExtentForAxis(d->vData, false);
|
||||
@@ -1421,7 +1421,7 @@ qreal QQuickItemView::maxXExtent() const
|
||||
{
|
||||
Q_D(const QQuickItemView);
|
||||
if (d->layoutOrientation() == Qt::Vertical)
|
||||
- return width();
|
||||
+ return QQuickFlickable::maxXExtent();
|
||||
|
||||
if (d->hData.maxExtentDirty) {
|
||||
d->maxExtent = d->maxExtentForAxis(d->hData, true);
|
||||
diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
|
||||
index 46e3457d6e..7f79968440 100644
|
||||
--- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
|
||||
+++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp
|
||||
@@ -3543,51 +3543,46 @@ void tst_QQuickGridView::extents_data()
|
||||
|
||||
QTest::newRow("LeftToRight, LtR, TtB")
|
||||
<< QQuickGridView::FlowLeftToRight << Qt::LeftToRight << QQuickItemView::TopToBottom
|
||||
- << QPointF(0, -20) << QPointF(0, 0)
|
||||
- << QPointF(0, 20) << QPointF(240, 20)
|
||||
+ << QPointF(0, -20) << QPointF(0, 0) << QPointF(0, 20) << QPointF(0, 20)
|
||||
<< QPointF(0, -20) << QPointF(0, -20);
|
||||
|
||||
QTest::newRow("LeftToRight, RtL, TtB")
|
||||
<< QQuickGridView::FlowLeftToRight << Qt::RightToLeft << QQuickItemView::TopToBottom
|
||||
- << QPointF(0, -20) << QPointF(0, 0)
|
||||
- << QPointF(0, 20) << QPointF(240, 20)
|
||||
+ << QPointF(0, -20) << QPointF(0, 0) << QPointF(0, 20) << QPointF(0, 20)
|
||||
<< QPointF(0, -20) << QPointF(0, -20);
|
||||
|
||||
QTest::newRow("LeftToRight, LtR, BtT")
|
||||
<< QQuickGridView::FlowLeftToRight << Qt::LeftToRight << QQuickItemView::BottomToTop
|
||||
- << QPointF(0, 0) << QPointF(0, -30)
|
||||
- << QPointF(0, 320 - 20) << QPointF(240, 320 - 20) // content flow is reversed
|
||||
+ << QPointF(0, 0) << QPointF(0, -30) << QPointF(0, 320 - 20)
|
||||
+ << QPointF(0, 320 - 20) // content flow is reversed
|
||||
<< QPointF(0, -30) << QPointF(0, (-60.0 * 10) - 30);
|
||||
|
||||
QTest::newRow("LeftToRight, RtL, BtT")
|
||||
<< QQuickGridView::FlowLeftToRight << Qt::RightToLeft << QQuickItemView::BottomToTop
|
||||
- << QPointF(0, 0) << QPointF(0, -30)
|
||||
- << QPointF(0, 320 - 20) << QPointF(240, 320 - 20) // content flow is reversed
|
||||
+ << QPointF(0, 0) << QPointF(0, -30) << QPointF(0, 320 - 20)
|
||||
+ << QPointF(0, 320 - 20) // content flow is reversed
|
||||
<< QPointF(0, -30) << QPointF(0, (-60.0 * 10) - 30);
|
||||
|
||||
-
|
||||
QTest::newRow("TopToBottom, LtR, TtB")
|
||||
<< QQuickGridView::FlowTopToBottom << Qt::LeftToRight << QQuickItemView::TopToBottom
|
||||
- << QPointF(-20, 0) << QPointF(0, 0)
|
||||
- << QPointF(20, 0) << QPointF(20, 320)
|
||||
+ << QPointF(-20, 0) << QPointF(0, 0) << QPointF(20, 0) << QPointF(20, 0)
|
||||
<< QPointF(-20, 0) << QPointF(-20, 0);
|
||||
|
||||
QTest::newRow("TopToBottom, RtL, TtB")
|
||||
<< QQuickGridView::FlowTopToBottom << Qt::RightToLeft << QQuickItemView::TopToBottom
|
||||
- << QPointF(0, 0) << QPointF(-30, 0)
|
||||
- << QPointF(240 - 20, 0) << QPointF(240 - 20, 320) // content flow is reversed
|
||||
+ << QPointF(0, 0) << QPointF(-30, 0) << QPointF(240 - 20, 0)
|
||||
+ << QPointF(240 - 20, 0) // content flow is reversed
|
||||
<< QPointF(-30, 0) << QPointF((-80.0 * 6) - 30, 0);
|
||||
|
||||
QTest::newRow("TopToBottom, LtR, BtT")
|
||||
<< QQuickGridView::FlowTopToBottom << Qt::LeftToRight << QQuickItemView::BottomToTop
|
||||
- << QPointF(-20, -320) << QPointF(0, -320)
|
||||
- << QPointF(20, 0) << QPointF(20, 320)
|
||||
+ << QPointF(-20, -320) << QPointF(0, -320) << QPointF(20, 0) << QPointF(20, 0)
|
||||
<< QPointF(-20, 0) << QPointF(-20, 0);
|
||||
|
||||
QTest::newRow("TopToBottom, RtL, BtT")
|
||||
<< QQuickGridView::FlowTopToBottom << Qt::RightToLeft << QQuickItemView::BottomToTop
|
||||
- << QPointF(0, -320) << QPointF(-30, -320)
|
||||
- << QPointF(240 - 20, 0) << QPointF(240 - 20, 320) // content flow is reversed
|
||||
+ << QPointF(0, -320) << QPointF(-30, -320) << QPointF(240 - 20, 0)
|
||||
+ << QPointF(240 - 20, 0) // content flow is reversed
|
||||
<< QPointF(-30, 0) << QPointF((-80.0 * 6) - 30, 0);
|
||||
}
|
||||
|
||||
diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
|
||||
index d3deb513d0..2de6f5435c 100644
|
||||
--- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
|
||||
+++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp
|
||||
@@ -4278,26 +4278,24 @@ void tst_QQuickListView::extents_data()
|
||||
|
||||
QTest::newRow("Vertical, TopToBottom")
|
||||
<< QQuickListView::Vertical << Qt::LeftToRight << QQuickItemView::TopToBottom
|
||||
- << QPointF(0, -20) << QPointF(0, 0)
|
||||
- << QPointF(0, 20) << QPointF(240, 20)
|
||||
+ << QPointF(0, -20) << QPointF(0, 0) << QPointF(0, 20) << QPointF(0, 20)
|
||||
<< QPointF(0, -20) << QPointF(0, -20) << QPointF(0, -20);
|
||||
|
||||
QTest::newRow("Vertical, BottomToTop")
|
||||
<< QQuickListView::Vertical << Qt::LeftToRight << QQuickItemView::BottomToTop
|
||||
- << QPointF(0, 0) << QPointF(0, -30)
|
||||
- << QPointF(0, 320 - 20) << QPointF(240, 320 - 20) // content flow is reversed
|
||||
+ << QPointF(0, 0) << QPointF(0, -30) << QPointF(0, 320 - 20)
|
||||
+ << QPointF(0, 320 - 20) // content flow is reversed
|
||||
<< QPointF(0, -30) << QPointF(0, (-30.0 * 3) - 30) << QPointF(0, (-30.0 * 30) - 30);
|
||||
|
||||
QTest::newRow("Horizontal, LeftToRight")
|
||||
<< QQuickListView::Horizontal << Qt::LeftToRight << QQuickItemView::TopToBottom
|
||||
- << QPointF(-20, 0) << QPointF(0, 0)
|
||||
- << QPointF(20, 0) << QPointF(20, 320)
|
||||
+ << QPointF(-20, 0) << QPointF(0, 0) << QPointF(20, 0) << QPointF(20, 0)
|
||||
<< QPointF(-20, 0) << QPointF(-20, 0) << QPointF(-20, 0);
|
||||
|
||||
QTest::newRow("Horizontal, RightToLeft")
|
||||
<< QQuickListView::Horizontal << Qt::RightToLeft << QQuickItemView::TopToBottom
|
||||
- << QPointF(0, 0) << QPointF(-30, 0)
|
||||
- << QPointF(240 - 20, 0) << QPointF(240 - 20, 320) // content flow is reversed
|
||||
+ << QPointF(0, 0) << QPointF(-30, 0) << QPointF(240 - 20, 0)
|
||||
+ << QPointF(240 - 20, 0) // content flow is reversed
|
||||
<< QPointF(-30, 0) << QPointF((-240.0 * 3) - 30, 0) << QPointF((-240.0 * 30) - 30, 0);
|
||||
}
|
||||
|
||||
diff --git a/tests/auto/quick/qquicklistview2/data/maxXExtent.qml b/tests/auto/quick/qquicklistview2/data/maxXExtent.qml
|
||||
new file mode 100644
|
||||
index 0000000000..b9e88cfc9e
|
||||
--- /dev/null
|
||||
+++ b/tests/auto/quick/qquicklistview2/data/maxXExtent.qml
|
||||
@@ -0,0 +1,29 @@
|
||||
+// Copyright (C) 2022 The Qt Company Ltd.
|
||||
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
+
|
||||
+import QtQuick
|
||||
+
|
||||
+Item {
|
||||
+ property alias view: view
|
||||
+
|
||||
+ ListView {
|
||||
+ id: view
|
||||
+ model: 10
|
||||
+ width: 200
|
||||
+ height: 200
|
||||
+
|
||||
+ Rectangle {
|
||||
+ anchors.fill: parent
|
||||
+ color: "transparent"
|
||||
+ border.color: "darkorange"
|
||||
+ }
|
||||
+
|
||||
+ delegate: Rectangle {
|
||||
+ width: 100
|
||||
+ height: 100
|
||||
+ Text {
|
||||
+ text: modelData
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/tests/auto/quick/qquicklistview2/data/maxYExtent.qml b/tests/auto/quick/qquicklistview2/data/maxYExtent.qml
|
||||
new file mode 100644
|
||||
index 0000000000..3be8948691
|
||||
--- /dev/null
|
||||
+++ b/tests/auto/quick/qquicklistview2/data/maxYExtent.qml
|
||||
@@ -0,0 +1,30 @@
|
||||
+// Copyright (C) 2022 The Qt Company Ltd.
|
||||
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
+
|
||||
+import QtQuick
|
||||
+
|
||||
+Item {
|
||||
+ property alias view: view
|
||||
+
|
||||
+ ListView {
|
||||
+ id: view
|
||||
+ model: 10
|
||||
+ width: 200
|
||||
+ height: 200
|
||||
+ orientation: ListView.Horizontal
|
||||
+
|
||||
+ Rectangle {
|
||||
+ anchors.fill: parent
|
||||
+ color: "transparent"
|
||||
+ border.color: "darkorange"
|
||||
+ }
|
||||
+
|
||||
+ delegate: Rectangle {
|
||||
+ width: 100
|
||||
+ height: 100
|
||||
+ Text {
|
||||
+ text: modelData
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp b/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp
|
||||
new file mode 100644
|
||||
index 0000000000..40b440d9cd
|
||||
--- /dev/null
|
||||
+++ b/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp
|
||||
@@ -0,0 +1,94 @@
|
||||
+// Copyright (C) 2021 The Qt Company Ltd.
|
||||
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
+
|
||||
+#include <QtTest/QtTest>
|
||||
+#include <QtQuick/qquickview.h>
|
||||
+#include <QtQuick/private/qquickitemview_p_p.h>
|
||||
+#include <QtQuick/private/qquicklistview_p.h>
|
||||
+#include <QtQuickTest/QtQuickTest>
|
||||
+#include <QStringListModel>
|
||||
+#include <QQmlApplicationEngine>
|
||||
+
|
||||
+#include <QtQuickTestUtils/private/viewtestutils_p.h>
|
||||
+#include <QtQuickTestUtils/private/visualtestutils_p.h>
|
||||
+#include <QtQuickTestUtils/private/qmlutils_p.h>
|
||||
+
|
||||
+Q_LOGGING_CATEGORY(lcTests, "qt.quick.tests")
|
||||
+
|
||||
+using namespace QQuickViewTestUtils;
|
||||
+using namespace QQuickVisualTestUtils;
|
||||
+
|
||||
+class tst_QQuickListView2 : public QQmlDataTest
|
||||
+{
|
||||
+ Q_OBJECT
|
||||
+public:
|
||||
+ tst_QQuickListView2();
|
||||
+
|
||||
+private slots:
|
||||
+ void maxExtent_data();
|
||||
+ void maxExtent();
|
||||
+};
|
||||
+
|
||||
+tst_QQuickListView2::tst_QQuickListView2()
|
||||
+ : QQmlDataTest(QT_QMLTEST_DATADIR)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+class FriendlyItemView : public QQuickItemView
|
||||
+{
|
||||
+ friend class ItemViewAccessor;
|
||||
+};
|
||||
+
|
||||
+class ItemViewAccessor
|
||||
+{
|
||||
+public:
|
||||
+ ItemViewAccessor(QQuickItemView *itemView) :
|
||||
+ mItemView(reinterpret_cast<FriendlyItemView*>(itemView))
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ qreal maxXExtent() const
|
||||
+ {
|
||||
+ return mItemView->maxXExtent();
|
||||
+ }
|
||||
+
|
||||
+ qreal maxYExtent() const
|
||||
+ {
|
||||
+ return mItemView->maxYExtent();
|
||||
+ }
|
||||
+
|
||||
+private:
|
||||
+ FriendlyItemView *mItemView = nullptr;
|
||||
+};
|
||||
+
|
||||
+void tst_QQuickListView2::maxExtent_data()
|
||||
+{
|
||||
+ QTest::addColumn<QString>("qmlFilePath");
|
||||
+ QTest::addRow("maxXExtent") << "maxXExtent.qml";
|
||||
+ QTest::addRow("maxYExtent") << "maxYExtent.qml";
|
||||
+}
|
||||
+
|
||||
+void tst_QQuickListView2::maxExtent()
|
||||
+{
|
||||
+ QFETCH(QString, qmlFilePath);
|
||||
+
|
||||
+ QScopedPointer<QQuickView> window(createView());
|
||||
+ QVERIFY(window);
|
||||
+ window->setSource(testFileUrl(qmlFilePath));
|
||||
+ QVERIFY2(window->status() == QQuickView::Ready, qPrintable(QDebug::toString(window->errors())));
|
||||
+ window->resize(640, 480);
|
||||
+ window->show();
|
||||
+ QVERIFY(QTest::qWaitForWindowExposed(window.data()));
|
||||
+
|
||||
+ QQuickListView *view = window->rootObject()->property("view").value<QQuickListView*>();
|
||||
+ QVERIFY(view);
|
||||
+ ItemViewAccessor viewAccessor(view);
|
||||
+ if (view->orientation() == QQuickListView::Vertical)
|
||||
+ QCOMPARE(viewAccessor.maxXExtent(), 0);
|
||||
+ else if (view->orientation() == QQuickListView::Horizontal)
|
||||
+ QCOMPARE(viewAccessor.maxYExtent(), 0);
|
||||
+}
|
||||
+
|
||||
+QTEST_MAIN(tst_QQuickListView2)
|
||||
+
|
||||
+#include "tst_qquicklistview2.moc"
|
||||
diff --git a/tests/auto/quick/quick.pro b/tests/auto/quick/quick.pro
|
||||
index 45bcf8a9ce..00f7d64d1e 100644
|
||||
--- a/tests/auto/quick/quick.pro
|
||||
+++ b/tests/auto/quick/quick.pro
|
||||
@@ -67,6 +67,7 @@ QUICKTESTS += \
|
||||
qquickitem2 \
|
||||
qquickitemlayer \
|
||||
qquicklistview \
|
||||
+ qquicklistview2 \
|
||||
qquicktableview \
|
||||
qquickloader \
|
||||
qquickmousearea \
|
||||
--
|
||||
GitLab
|
||||
|
BIN
qtdeclarative-everywhere-src-5.15.14+kde28.obscpio
(Stored with Git LFS)
Normal file
BIN
qtdeclarative-everywhere-src-5.15.14+kde28.obscpio
(Stored with Git LFS)
Normal file
Binary file not shown.
3
qtdeclarative-everywhere-src-5.15.15+kde25.obscpio
Normal file
3
qtdeclarative-everywhere-src-5.15.15+kde25.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8ff8e6fc5e3164f6b5cb458bffd3281f2697c287587bba34461a713e7769fc99
|
||||
size 143564814
|
3
qtdeclarative-everywhere-src-5.15.16+kde22.obscpio
Normal file
3
qtdeclarative-everywhere-src-5.15.16+kde22.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fd29b5ff0ed934e01c441014403382134a247eeec662bb063859c694651e2377
|
||||
size 143571470
|
4
qtdeclarative-everywhere-src.obsinfo
Normal file
4
qtdeclarative-everywhere-src.obsinfo
Normal file
@ -0,0 +1,4 @@
|
||||
name: qtdeclarative-everywhere-src
|
||||
version: 5.15.16+kde22
|
||||
mtime: 1731936114
|
||||
commit: e2b38659cb79104f157e1d0099c01e545d04d0db
|
Loading…
Reference in New Issue
Block a user