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(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