diff --git a/src/declarativeimports/plasmacomponents3/PageIndicator.qml b/src/declarativeimports/plasmacomponents3/PageIndicator.qml new file mode 100644 index 000000000..48ba7f1bd --- /dev/null +++ b/src/declarativeimports/plasmacomponents3/PageIndicator.qml @@ -0,0 +1,58 @@ +/* + * Copyright 2018 Marco Martin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.6 +import QtQuick.Layouts 1.2 +import QtQuick.Templates @QQC2_VERSION@ as T +import org.kde.plasma.core 2.0 as PlasmaCore + +T.PageIndicator { + id: control + + implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding + implicitHeight: contentItem.implicitHeight + topPadding + bottomPadding + + padding: units.smallSpacing + spacing: units.largeSpacing + + delegate: Rectangle { + implicitWidth: units.gridUnit + implicitHeight: implicitWidth + + radius: width + color: PlasmaCore.ColorScope.textColor + + opacity: index === currentIndex ? 0.9 : pressed ? 0.7 : 0.5 + Behavior on opacity { + OpacityAnimator { + duration: units.longDuration + easing.type: Easing.InOutQuad + } + } + } + + contentItem: Row { + spacing: control.spacing + + Repeater { + model: control.count + delegate: control.delegate + } + } +}