diff --git a/src/declarativeimports/core/plugins.qmltypes b/src/declarativeimports/core/plugins.qmltypes --- a/src/declarativeimports/core/plugins.qmltypes +++ b/src/declarativeimports/core/plugins.qmltypes @@ -882,6 +882,7 @@ Property { name: "devicePixelRatio"; type: "double"; isReadonly: true } Property { name: "longDuration"; type: "int"; isReadonly: true } Property { name: "shortDuration"; type: "int"; isReadonly: true } + Property { name: "veryLongDuration"; type: "int"; isReadonly: true } Signal { name: "spacingChanged" } Signal { name: "durationChanged" } Method { diff --git a/src/declarativeimports/core/units.h b/src/declarativeimports/core/units.h --- a/src/declarativeimports/core/units.h +++ b/src/declarativeimports/core/units.h @@ -132,6 +132,12 @@ */ Q_PROPERTY(int shortDuration READ shortDuration NOTIFY durationChanged) + /** + * units.veryLongDuration should be used for specialty animations that benefit + * from being even longer than longDuration. + */ + Q_PROPERTY(int veryLongDuration READ veryLongDuration NOTIFY durationChanged) + public: /// @cond INTERNAL_DOCS @@ -187,6 +193,12 @@ * @since 5.0 */ int shortDuration() const; + + /** + * @return Duration for very long animations, in milliseconds. + * @since 5.69 + */ + int veryLongDuration() const; /// @endcond /** diff --git a/src/declarativeimports/core/units.cpp b/src/declarativeimports/core/units.cpp --- a/src/declarativeimports/core/units.cpp +++ b/src/declarativeimports/core/units.cpp @@ -33,7 +33,7 @@ #include #include -const int defaultLongDuration = 120; +const int defaultLongDuration = 250; SharedAppFilter::SharedAppFilter(QObject *parent) @@ -272,7 +272,12 @@ int Units::shortDuration() const { - return qMax(1, m_longDuration / 5); + return qMax(1, qRound(m_longDuration * 0.6)); +} + +int Units::veryLongDuration() const +{ + return m_longDuration * 2; } #include "moc_units.cpp" diff --git a/src/declarativeimports/kirigamiplasmadesktopstyle/Units.qml b/src/declarativeimports/kirigamiplasmadesktopstyle/Units.qml --- a/src/declarativeimports/kirigamiplasmadesktopstyle/Units.qml +++ b/src/declarativeimports/kirigamiplasmadesktopstyle/Units.qml @@ -99,6 +99,12 @@ */ property int shortDuration: units.shortDuration + /** + * units.veryLongDuration should be used for specialty animations that benefit + * from being even longer than longDuration. + */ + property int veryLongDuration: units.veryLongDuration + readonly property QtObject __styleItem: QtQuickControlsPrivate.StyleItem {elementType: "frame" } /** diff --git a/src/declarativeimports/kirigamiplasmastyle/Units.qml b/src/declarativeimports/kirigamiplasmastyle/Units.qml --- a/src/declarativeimports/kirigamiplasmastyle/Units.qml +++ b/src/declarativeimports/kirigamiplasmastyle/Units.qml @@ -93,6 +93,12 @@ */ property int shortDuration: units.shortDuration + /** + * units.veryLongDuration should be used for specialty animations that benefit + * from being even longer than longDuration. + */ + property int veryLongDuration: units.veryLongDuration + /** * How much the mouse scroll wheel scrolls, expressed in lines of text. * Note: this is strictly for classical mouse wheels, touchpads 2 figer scrolling won't be affected