Revert "remove what can't still be merged"
This reverts commit 21dfef4f330bbee22d5154cadeb6c92fb46e1c51. to resume the plasmacompoents directory that still need to be indipendent
This commit is contained in:
parent
57975567cf
commit
24f673a014
@ -3,3 +3,4 @@ add_subdirectory(graphicslayouts)
|
|||||||
add_subdirectory(graphicswidgets)
|
add_subdirectory(graphicswidgets)
|
||||||
add_subdirectory(qtextracomponents)
|
add_subdirectory(qtextracomponents)
|
||||||
|
|
||||||
|
install(DIRECTORY plasmacomponents/ DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/plasma/components)
|
65
declarativeimports/plasmacomponents/BusyWidget.qml
Normal file
65
declarativeimports/plasmacomponents/BusyWidget.qml
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 by Artur Duque de Souza <asouzakde.org>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
width: 100; height: 100
|
||||||
|
|
||||||
|
property bool running: true
|
||||||
|
property string label: ""
|
||||||
|
|
||||||
|
PlasmaCore.Theme {
|
||||||
|
id: theme
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaCore.SvgItem {
|
||||||
|
id: widget
|
||||||
|
width: root.width
|
||||||
|
height: root.height
|
||||||
|
anchors.horizontalCenter: root.horizontalCenter
|
||||||
|
smooth: true
|
||||||
|
svg: PlasmaCore.Svg { imagePath: ("widgets/busywidget") }
|
||||||
|
|
||||||
|
RotationAnimation on rotation {
|
||||||
|
from: 0
|
||||||
|
to: 360
|
||||||
|
target: widget
|
||||||
|
duration: 1500
|
||||||
|
running: root.running
|
||||||
|
loops: Animation.Infinite
|
||||||
|
}
|
||||||
|
|
||||||
|
// if you need to do anything while repainting
|
||||||
|
// do it inside this slot
|
||||||
|
function update() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: label
|
||||||
|
text: root.label
|
||||||
|
color: theme.textColor
|
||||||
|
anchors.verticalCenter: root.verticalCenter
|
||||||
|
anchors.horizontalCenter: root.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
76
declarativeimports/plasmacomponents/FlashingLabel.qml
Normal file
76
declarativeimports/plasmacomponents/FlashingLabel.qml
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 by Anselmo Lacerda Silveira de Melo <anselmolsm@gmail.com>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
width: 200
|
||||||
|
height: 100
|
||||||
|
|
||||||
|
//API
|
||||||
|
property bool autohide: false
|
||||||
|
//### get font from theme when available
|
||||||
|
//### deal with QFont stuff in a proper way
|
||||||
|
property string font: "Arial"
|
||||||
|
property string color: theme.textColor
|
||||||
|
property int duration: 3000
|
||||||
|
|
||||||
|
/*### actually the FlashingLabel in C++ doesn't have
|
||||||
|
this as part of its API, either text or pixmap is
|
||||||
|
set only when flash is called.*/
|
||||||
|
property string text: ""
|
||||||
|
|
||||||
|
//###
|
||||||
|
PlasmaCore.Theme {
|
||||||
|
id: theme
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: label
|
||||||
|
text: root.text
|
||||||
|
color: root.color
|
||||||
|
font.family: root.font
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
anchors.verticalCenter: root.verticalCenter
|
||||||
|
anchors.horizontalCenter: root.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyAnimation {
|
||||||
|
id: fade
|
||||||
|
target: label;
|
||||||
|
property: "opacity";
|
||||||
|
duration: root.duration;
|
||||||
|
to: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function flash(text, duration, alignment) {
|
||||||
|
if (text)
|
||||||
|
root.text = text
|
||||||
|
if (duration)
|
||||||
|
root.duration = duration
|
||||||
|
if (alignment)
|
||||||
|
label.horizontalAlignment = alignment
|
||||||
|
fade.start()
|
||||||
|
}
|
||||||
|
|
||||||
|
//###TODO: flash pixmap
|
||||||
|
}
|
47
declarativeimports/plasmacomponents/Frame.qml
Normal file
47
declarativeimports/plasmacomponents/Frame.qml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010 Marco Martin <notmart@gmail.com>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id : background
|
||||||
|
imagePath: "widgets/frame"
|
||||||
|
prefix: "plain"
|
||||||
|
|
||||||
|
width: childrenRect.width
|
||||||
|
height: childrenRect.height
|
||||||
|
|
||||||
|
property alias padding: paddingRectangle;
|
||||||
|
signal clicked;
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: paddingRectangle
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: background.margins.left
|
||||||
|
anchors.topMargin: background.margins.top
|
||||||
|
anchors.rightMargin: background.margins.right
|
||||||
|
anchors.bottomMargin: background.margins.bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: itemMouse
|
||||||
|
anchors.fill: background
|
||||||
|
onClicked: background.clicked()
|
||||||
|
}
|
||||||
|
}
|
97
declarativeimports/plasmacomponents/IconWidget.qml
Normal file
97
declarativeimports/plasmacomponents/IconWidget.qml
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 by Artur Duque de Souza <asouzakde.org>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
width: 100; height: 100
|
||||||
|
|
||||||
|
property string text: ""
|
||||||
|
property string infoText: ""
|
||||||
|
|
||||||
|
property string svg: ""
|
||||||
|
property string icon: ""
|
||||||
|
|
||||||
|
property bool drawBackground: true
|
||||||
|
property int numDisplayLines: 1
|
||||||
|
//property QColor textBackgroundColor: ""
|
||||||
|
|
||||||
|
signal pressed(bool down)
|
||||||
|
signal clicked()
|
||||||
|
signal doubleClicked()
|
||||||
|
signal activated()
|
||||||
|
signal changed()
|
||||||
|
|
||||||
|
PlasmaCore.Theme {
|
||||||
|
id: theme
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id: background
|
||||||
|
visible: root.drawBackground
|
||||||
|
anchors.fill: root
|
||||||
|
|
||||||
|
imagePath: "widgets/viewitem"
|
||||||
|
prefix: mainMouseArea.pressed == true ? "selected" : "hover"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PlasmaCore.SvgItem {
|
||||||
|
id: svg
|
||||||
|
visible: root.svg != ""
|
||||||
|
width: root.width - label.height
|
||||||
|
height: root.height - label.height
|
||||||
|
anchors.horizontalCenter: root.horizontalCenter
|
||||||
|
svg: PlasmaCore.Svg { imagePath: root.svg }
|
||||||
|
|
||||||
|
// if you need to do anything while repainting
|
||||||
|
// do it inside this slot
|
||||||
|
function update() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: icon
|
||||||
|
visible: root.icon != ""
|
||||||
|
width: root.width - label.height
|
||||||
|
height: root.height - label.height
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: label
|
||||||
|
text: root.text
|
||||||
|
color: theme.textColor
|
||||||
|
anchors.top: icon.bottom
|
||||||
|
anchors.horizontalCenter: root.horizontalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: mainMouseArea
|
||||||
|
hoverEnabled: true
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
onEntered: {
|
||||||
|
}
|
||||||
|
|
||||||
|
onExited: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
95
declarativeimports/plasmacomponents/PushButton.qml
Normal file
95
declarativeimports/plasmacomponents/PushButton.qml
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 by Marco Martin <mart@kde.org>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
|
||||||
|
Item {
|
||||||
|
width: 50
|
||||||
|
height:20
|
||||||
|
|
||||||
|
property string text
|
||||||
|
signal clicked
|
||||||
|
|
||||||
|
id: button
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id: hover
|
||||||
|
anchors.fill: parent
|
||||||
|
opacity: 0
|
||||||
|
anchors.leftMargin: -margins.left
|
||||||
|
anchors.topMargin: -margins.top
|
||||||
|
anchors.rightMargin: -margins.right
|
||||||
|
anchors.bottomMargin: -margins.bottom
|
||||||
|
imagePath: "widgets/button"
|
||||||
|
prefix: "hover"
|
||||||
|
Behavior on opacity {
|
||||||
|
PropertyAnimation { duration: 250 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id: shadow
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: -margins.left
|
||||||
|
anchors.topMargin: -margins.top
|
||||||
|
anchors.rightMargin: -margins.right
|
||||||
|
anchors.bottomMargin: -margins.bottom
|
||||||
|
imagePath: "widgets/button"
|
||||||
|
prefix: "shadow"
|
||||||
|
Behavior on opacity {
|
||||||
|
PropertyAnimation { duration: 250 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id: surface
|
||||||
|
anchors.fill: parent
|
||||||
|
imagePath: "widgets/button"
|
||||||
|
prefix: "normal"
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: button.text
|
||||||
|
anchors.fill: parent
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
|
||||||
|
onPressed: {
|
||||||
|
surface.prefix = "pressed"
|
||||||
|
}
|
||||||
|
onReleased: {
|
||||||
|
surface.prefix = "normal"
|
||||||
|
button.clicked()
|
||||||
|
}
|
||||||
|
onEntered: {
|
||||||
|
shadow.opacity = 0
|
||||||
|
hover.opacity = 1
|
||||||
|
}
|
||||||
|
onExited: {
|
||||||
|
shadow.opacity = 1
|
||||||
|
hover.opacity = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
107
declarativeimports/plasmacomponents/ScrollBar.qml
Normal file
107
declarativeimports/plasmacomponents/ScrollBar.qml
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 by Marco Martin <mart@kde.org>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
|
||||||
|
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id: scrollBar
|
||||||
|
width: orientation==Qt.Horizontal?200:22
|
||||||
|
height: orientation==Qt.Horizontal?22:200
|
||||||
|
|
||||||
|
property int minimum: 0
|
||||||
|
property int maximum: 100
|
||||||
|
property int value: 0
|
||||||
|
property string orientation: Qt.Horizontal
|
||||||
|
|
||||||
|
onValueChanged: {
|
||||||
|
if (drag.state != "dragging") {
|
||||||
|
if (orientation == Qt.Horizontal) {
|
||||||
|
drag.x = (value/(maximum-minimum))*(scrollBar.width - drag.width)
|
||||||
|
} else {
|
||||||
|
drag.y = (value/(maximum-minimum))*(scrollBar.height - drag.height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
imagePath: "widgets/scrollbar"
|
||||||
|
prefix: orientation==Qt.Horizontal?"background-horizontal":"background-vertical"
|
||||||
|
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id: drag
|
||||||
|
anchors.top: orientation==Qt.Horizontal?parent.top:null
|
||||||
|
anchors.bottom: orientation==Qt.Horizontal?parent.bottom:null
|
||||||
|
anchors.left: orientation==Qt.Horizontal?null:parent.left
|
||||||
|
anchors.right: orientation==Qt.Horizontal?null:parent.right
|
||||||
|
state: "normal"
|
||||||
|
width: (orientation == Qt.Horizontal)?Math.max(12, (parent.width*1/(scrollBar.maximum-scrollBar.minimum))):0
|
||||||
|
height: (orientation != Qt.Horizontal)?Math.max(12, (parent.height*1/(scrollBar.maximum-scrollBar.minimum))):0
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
onXChanged: {
|
||||||
|
if (orientation == Qt.Horizontal && state == "dragging") {
|
||||||
|
value = (maximum - minimum)*(x/(scrollBar.width-width))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onYChanged: {
|
||||||
|
if (orientation != Qt.Horizontal && state == "dragging") {
|
||||||
|
value = (maximum - minimum)*(x/(scrollBar.height-height))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Behavior on x {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Behavior on y {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
imagePath: "widgets/scrollbar"
|
||||||
|
prefix: "slider"
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
|
||||||
|
drag.target: parent;
|
||||||
|
drag.axis: orientation == Qt.Horizontal?"XAxis":"YAxis"
|
||||||
|
drag.minimumX: 0;
|
||||||
|
drag.maximumX: scrollBar.width-drag.width;
|
||||||
|
drag.minimumY: 0;
|
||||||
|
drag.maximumY: scrollBar.height-drag.height;
|
||||||
|
|
||||||
|
onEntered: drag.prefix = "mouseover-slider"
|
||||||
|
onExited: drag.prefix = "slider"
|
||||||
|
onPressed: {
|
||||||
|
drag.prefix = "sunken-slider"
|
||||||
|
drag.state = "dragging"
|
||||||
|
}
|
||||||
|
onReleased: {
|
||||||
|
containsMouse?drag.prefix = "mouseover-slider":drag.prefix = "slider"
|
||||||
|
drag.state = "normal"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
79
declarativeimports/plasmacomponents/ToolButton.qml
Normal file
79
declarativeimports/plasmacomponents/ToolButton.qml
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 by Marco Martin <mart@kde.org>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
|
||||||
|
Item {
|
||||||
|
width: 50
|
||||||
|
height:20
|
||||||
|
|
||||||
|
property string text
|
||||||
|
property bool down: false
|
||||||
|
signal clicked
|
||||||
|
|
||||||
|
id: button
|
||||||
|
|
||||||
|
PlasmaCore.FrameSvgItem {
|
||||||
|
id: surface
|
||||||
|
anchors.fill: parent
|
||||||
|
imagePath: "widgets/button"
|
||||||
|
prefix: down?"pressed":"normal"
|
||||||
|
opacity: down?1:0
|
||||||
|
Behavior on opacity {
|
||||||
|
PropertyAnimation { duration: 250 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: button.text
|
||||||
|
anchors.fill: parent
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
|
||||||
|
onPressed: {
|
||||||
|
if (!down) {
|
||||||
|
surface.prefix = "pressed"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onReleased: {
|
||||||
|
if (!down) {
|
||||||
|
surface.prefix = "normal"
|
||||||
|
}
|
||||||
|
button.clicked()
|
||||||
|
}
|
||||||
|
onEntered: {
|
||||||
|
if (!down) {
|
||||||
|
surface.opacity = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onExited: {
|
||||||
|
if (!down) {
|
||||||
|
surface.opacity = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
7
declarativeimports/plasmacomponents/qmldir
Normal file
7
declarativeimports/plasmacomponents/qmldir
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
BusyWidget 0.1 BusyWidget.qml
|
||||||
|
FlashingLabel 0.1 FlashingLabel.qml
|
||||||
|
Frame 0.1 Frame.qml
|
||||||
|
IconWidget 0.1 IconWidget.qml
|
||||||
|
PushButton 0.1 PushButton.qml
|
||||||
|
ScrollBar 0.1 ScrollBar.qml
|
||||||
|
ToolButton 0.1 ToolButton.qml
|
29
declarativeimports/test/CMakeLists.txt
Normal file
29
declarativeimports/test/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
project(components_test)
|
||||||
|
|
||||||
|
find_package(KDE4 REQUIRED)
|
||||||
|
|
||||||
|
include(KDE4Defaults)
|
||||||
|
|
||||||
|
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
|
||||||
|
|
||||||
|
include_directories(
|
||||||
|
${CMAKE_SOURCE_DIR}
|
||||||
|
${CMAKE_BINARY_DIR}
|
||||||
|
${KDE4_INCLUDES}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
set(components_test_TEST_SRCS
|
||||||
|
test.cpp)
|
||||||
|
|
||||||
|
kde4_add_executable(components_test ${components_test_TEST_SRCS})
|
||||||
|
|
||||||
|
target_link_libraries(components_test kdeclarative ${KDE4_KDECORE_LIBS} ${QT_QTDECLARATIVE_LIBRARY})
|
||||||
|
|
||||||
|
## install
|
||||||
|
|
||||||
|
|
||||||
|
install(TARGETS components_test EXPORT kdelibsLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
|
||||||
|
|
||||||
|
|
||||||
|
install(FILES "gallery.qml" DESTINATION ${CMAKE_BINARY_DIR}/widgets/components)
|
79
declarativeimports/test/gallery.qml
Normal file
79
declarativeimports/test/gallery.qml
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 by Anselmo Lacerda Silveira de Melo <anselmolsm@gmail.com>
|
||||||
|
*
|
||||||
|
* 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 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 Qt 4.7
|
||||||
|
import org.kde.plasma.components 0.1 as PlasmaComponents
|
||||||
|
import org.kde.plasma.core 0.1 as PlasmaCore
|
||||||
|
import org.kde.qtextracomponents 0.1 as QtExtraComponents
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: test
|
||||||
|
width: 400
|
||||||
|
height: 500
|
||||||
|
color: "tomato"
|
||||||
|
|
||||||
|
Column {
|
||||||
|
x: 10
|
||||||
|
anchors.fill: parent
|
||||||
|
spacing: 5
|
||||||
|
|
||||||
|
PlasmaComponents.FlashingLabel {
|
||||||
|
id: label
|
||||||
|
font: "Times"
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: busyRow
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: 8
|
||||||
|
PlasmaComponents.BusyWidget {
|
||||||
|
width: 50
|
||||||
|
height: 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaComponents.PushButton {
|
||||||
|
text: "Ok"
|
||||||
|
onClicked: {print("Clicked!"); scrollBar.value=35}
|
||||||
|
}
|
||||||
|
PlasmaComponents.ScrollBar {
|
||||||
|
id: scrollBar
|
||||||
|
}
|
||||||
|
PlasmaComponents.ScrollBar {
|
||||||
|
id: scrollBarV
|
||||||
|
orientation: Qt.Vertical
|
||||||
|
}
|
||||||
|
QtExtraComponents.QPixmapItem {
|
||||||
|
width:200
|
||||||
|
height:100
|
||||||
|
id: pixmapTest
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaCore.Svg {
|
||||||
|
id: svgTest
|
||||||
|
imagePath: "widgets/clock"
|
||||||
|
}
|
||||||
|
Component.onCompleted: {
|
||||||
|
label.flash("I am a FlashingLabel!!!");
|
||||||
|
pixmapTest.pixmap = svgTest.pixmap();
|
||||||
|
}
|
||||||
|
}
|
55
declarativeimports/test/test.cpp
Normal file
55
declarativeimports/test/test.cpp
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2011 Marco Martin <mart@gmail.com>
|
||||||
|
*
|
||||||
|
* 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 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QDeclarativeView>
|
||||||
|
#include <QDeclarativeContext>
|
||||||
|
#include <QScriptEngine>
|
||||||
|
|
||||||
|
#include <kdeclarative.h>
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
|
QDeclarativeView view;
|
||||||
|
QDeclarativeContext *context = view.rootContext();
|
||||||
|
context->setContextProperty("backgroundColor",
|
||||||
|
QColor(Qt::yellow));
|
||||||
|
|
||||||
|
KDeclarative kdeclarative;
|
||||||
|
kdeclarative.setDeclarativeEngine(view.engine());
|
||||||
|
kdeclarative.initialize();
|
||||||
|
//binds things like kconfig and icons
|
||||||
|
kdeclarative.setupBindings();
|
||||||
|
|
||||||
|
//If all gone well, the QScriptEngine has been extracted
|
||||||
|
QScriptEngine *scriptEngine = kdeclarative.scriptEngine();
|
||||||
|
Q_ASSERT(scriptEngine);
|
||||||
|
|
||||||
|
QScriptValue global = scriptEngine->globalObject();
|
||||||
|
|
||||||
|
view.setSource(QUrl::fromLocalFile("gallery.qml"));
|
||||||
|
view.show();
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "testobject_p.moc"
|
49
declarativeimports/test/testobject_p.h
Normal file
49
declarativeimports/test/testobject_p.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2011 Marco Martin <mart@gmail.com>
|
||||||
|
*
|
||||||
|
* 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 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TESTOBJECT_P_H
|
||||||
|
#define TESTOBJECT_P_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
class TestObject : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(QString prop READ prop WRITE setProp NOTIFY propChanged)
|
||||||
|
|
||||||
|
public:
|
||||||
|
void setProp(const QString &prop)
|
||||||
|
{
|
||||||
|
m_prop = prop;
|
||||||
|
emit propChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString prop() const
|
||||||
|
{
|
||||||
|
return m_prop;
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void propChanged();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString m_prop;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user