Rodrigo Belem has proposed merging
lp:~rbelem/kdebase-runtime/plasma-mobile-patches into
lp:~kubuntu-members/kdebase-runtime/ubuntu.
Requested reviews:
Kubuntu Members (kubuntu-members)
For more details, see:
https://code.launchpad.net/~rbelem/kdebase-runtime/plasma-mobile-patches/+merge/57032
--
https://code.launchpad.net/~rbelem/kdebase-runtime/plasma-mobile-patches/+merge/57032
Your team Kubuntu Members is requested to review the proposed merge of
lp:~rbelem/kdebase-runtime/plasma-mobile-patches into
lp:~kubuntu-members/kdebase-runtime/ubuntu.
=== added file 'debian/patches/26_plasmacomponents-backport.patch'
--- debian/patches/26_plasmacomponents-backport.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/26_plasmacomponents-backport.patch 2011-04-09 01:21:29 +0000
@@ -0,0 +1,1416 @@
+diff --cc plasma/declarativeimports/plasmacomponents/BusyWidget.qml
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/BusyWidget.qml
+@@ -1,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
++ }
++
++}
+diff --cc plasma/declarativeimports/plasmacomponents/FlashingLabel.qml
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/FlashingLabel.qml
+@@ -1,0 +1,76 @@
++/*
++ * Copyright (C) 2010 by Anselmo Lacerda Silveira de Melo <[email protected]>
++ *
++ * 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
++}
+diff --cc plasma/declarativeimports/plasmacomponents/Frame.qml
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/Frame.qml
+@@ -1,0 +1,47 @@
++/*
++ * Copyright 2010 Marco Martin <[email protected]>
++ *
++ * 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()
++ }
++}
+diff --cc plasma/declarativeimports/plasmacomponents/IconWidget.qml
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/IconWidget.qml
+@@ -1,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: {
++ }
++ }
++}
+diff --cc plasma/declarativeimports/plasmacomponents/PushButton.qml
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/PushButton.qml
+@@ -1,0 +1,95 @@
++/*
++* Copyright (C) 2010 by Marco Martin <[email protected]>
++*
++* 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
++ }
++ }
++
++}
++
+diff --cc plasma/declarativeimports/plasmacomponents/ScrollBar.qml
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/ScrollBar.qml
+@@ -1,0 +1,107 @@
++/*
++* Copyright (C) 2010 by Marco Martin <[email protected]>
++*
++* 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"
++ }
++ }
++ }
++}
++
++
+diff --cc plasma/declarativeimports/plasmacomponents/ToolButton.qml
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/ToolButton.qml
+@@ -1,0 +1,79 @@
++/*
++* Copyright (C) 2010 by Marco Martin <[email protected]>
++*
++* 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
++ }
++ }
++ }
++
++}
++
+diff --cc plasma/declarativeimports/plasmacomponents/qmldir
+--- /dev/null
++++ b/plasma/declarativeimports/plasmacomponents/qmldir
+@@ -1,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
+diff --cc plasma/declarativeimports/qtextracomponents/CMakeLists.txt
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/CMakeLists.txt
+@@ -1,0 +1,26 @@
++project(qtextracomponents)
++
++include(KDE4Defaults)
++
++set(qtextracomponents_SRCS
++ qtextracomponentsplugin.cpp
++ qpixmapitem.cpp
++ qimageitem.cpp
++ qiconitem.cpp
++ )
++
++INCLUDE_DIRECTORIES(
++ ${CMAKE_SOURCE_DIR}
++ ${CMAKE_BINARY_DIR}
++ ${KDE4_INCLUDES}
++)
++
++qt4_automoc(${qtextracomponents_SRCS})
++
++
++add_library(qtextracomponentsplugin SHARED ${qtextracomponents_SRCS})
++target_link_libraries(qtextracomponentsplugin ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY})
++
++install(TARGETS qtextracomponentsplugin DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/qtextracomponents)
++
++install(FILES qmldir DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/qtextracomponents)
+diff --cc plasma/declarativeimports/qtextracomponents/qiconitem.cpp
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qiconitem.cpp
+@@ -1,0 +1,82 @@
++/*
++ * Copyright 2011 Marco Martin <[email protected]>
++ *
++ * 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 "qiconitem.h"
++
++#include <QtGui/QPainter>
++
++
++QIconItem::QIconItem(QDeclarativeItem *parent)
++ : QDeclarativeItem(parent),
++ m_smooth(false)
++{
++ setFlag(QGraphicsItem::ItemHasNoContents, false);
++}
++
++
++QIconItem::~QIconItem()
++{
++}
++
++void QIconItem::setIcon(const QIcon &icon)
++{
++ m_icon = icon;
++ update();
++}
++
++QIcon QIconItem::icon() const
++{
++ return m_icon;
++}
++
++void QIconItem::setSmooth(const bool smooth)
++{
++ if (smooth == m_smooth) {
++ return;
++ }
++ m_smooth = smooth;
++ update();
++}
++
++bool QIconItem::smooth() const
++{
++ return m_smooth;
++}
++
++void QIconItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
++{
++ Q_UNUSED(option);
++ Q_UNUSED(widget);
++
++ if (m_icon.isNull()) {
++ return;
++ }
++ //do without painter save, faster and the support can be compiled out
++ const bool wasAntiAlias = painter->testRenderHint(QPainter::Antialiasing);
++ const bool wasSmoothTransform = painter->testRenderHint(QPainter::SmoothPixmapTransform);
++ painter->setRenderHint(QPainter::Antialiasing, m_smooth);
++ painter->setRenderHint(QPainter::SmoothPixmapTransform, m_smooth);
++
++ m_icon.paint(painter, boundingRect().toRect());
++ painter->setRenderHint(QPainter::Antialiasing, wasAntiAlias);
++ painter->setRenderHint(QPainter::SmoothPixmapTransform, wasSmoothTransform);
++}
++
++
++#include "qiconitem.moc"
+diff --cc plasma/declarativeimports/qtextracomponents/qiconitem.h
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qiconitem.h
+@@ -1,0 +1,49 @@
++/***************************************************************************
++ * Copyright 2011 Marco Martin <[email protected]> *
++ * *
++ * This program is free software; you can redistribute it and/or modify *
++ * it under the terms of the GNU General Public License as published by *
++ * the Free Software Foundation; either version 2 of the License, 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 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 QICONITEM_H
++#define QICONITEM_H
++
++#include <QDeclarativeItem>
++#include <QPixmap>
++
++class QIconItem : public QDeclarativeItem
++{
++ Q_OBJECT
++
++ Q_PROPERTY(QIcon icon READ icon WRITE setIcon)
++ Q_PROPERTY(bool smooth READ smooth WRITE setSmooth)
++
++public:
++ QIconItem(QDeclarativeItem *parent=0);
++ ~QIconItem();
++
++ void setIcon(const QIcon &icon);
++ QIcon icon() const;
++
++ void setSmooth(const bool smooth);
++ bool smooth() const;
++
++ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
++
++private:
++ QIcon m_icon;
++ bool m_smooth;
++};
++
++#endif
+diff --cc plasma/declarativeimports/qtextracomponents/qimageitem.cpp
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qimageitem.cpp
+@@ -1,0 +1,94 @@
++/*
++ * Copyright 2011 Marco Martin <[email protected]>
++ *
++ * 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 "qimageitem.h"
++
++#include <QtGui/QPainter>
++
++
++QImageItem::QImageItem(QDeclarativeItem *parent)
++ : QDeclarativeItem(parent),
++ m_smooth(false)
++{
++ setFlag(QGraphicsItem::ItemHasNoContents, false);
++}
++
++
++QImageItem::~QImageItem()
++{
++}
++
++void QImageItem::setImage(const QImage &image)
++{
++ m_image = image;
++ update();
++ emit nativeWidthChanged();
++ emit nativeHeightChanged();
++}
++
++QImage QImageItem::image() const
++{
++ return m_image;
++}
++
++void QImageItem::setSmooth(const bool smooth)
++{
++ if (smooth == m_smooth) {
++ return;
++ }
++ m_smooth = smooth;
++ update();
++}
++
++bool QImageItem::smooth() const
++{
++ return m_smooth;
++}
++
++int QImageItem::nativeWidth() const
++{
++ return m_image.size().width();
++}
++
++int QImageItem::nativeHeight() const
++{
++ return m_image.size().height();
++}
++
++void QImageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
++{
++ Q_UNUSED(option);
++ Q_UNUSED(widget);
++
++ if (m_image.isNull()) {
++ return;
++ }
++ //do without painter save, faster and the support can be compiled out
++ const bool wasAntiAlias = painter->testRenderHint(QPainter::Antialiasing);
++ const bool wasSmoothTransform = painter->testRenderHint(QPainter::SmoothPixmapTransform);
++ painter->setRenderHint(QPainter::Antialiasing, m_smooth);
++ painter->setRenderHint(QPainter::SmoothPixmapTransform, m_smooth);
++
++ painter->drawImage(boundingRect(), m_image, m_image.rect());
++ painter->setRenderHint(QPainter::Antialiasing, wasAntiAlias);
++ painter->setRenderHint(QPainter::SmoothPixmapTransform, wasSmoothTransform);
++}
++
++
++#include "qimageitem.moc"
+diff --cc plasma/declarativeimports/qtextracomponents/qimageitem.h
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qimageitem.h
+@@ -1,0 +1,58 @@
++/***************************************************************************
++ * Copyright 2011 Marco Martin <[email protected]> *
++ * *
++ * This program is free software; you can redistribute it and/or modify *
++ * it under the terms of the GNU General Public License as published by *
++ * the Free Software Foundation; either version 2 of the License, 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 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 QIMAGEITEM_H
++#define QIMAGEITEM_H
++
++#include <QDeclarativeItem>
++#include <QImage>
++
++class QImageItem : public QDeclarativeItem
++{
++ Q_OBJECT
++
++ Q_PROPERTY(QImage image READ image WRITE setImage)
++ Q_PROPERTY(bool smooth READ smooth WRITE setSmooth)
++ Q_PROPERTY(int nativeWidth READ nativeWidth NOTIFY nativeWidthChanged)
++ Q_PROPERTY(int nativeHeight READ nativeHeight NOTIFY nativeHeightChanged)
++
++public:
++ QImageItem(QDeclarativeItem *parent=0);
++ ~QImageItem();
++
++ void setImage(const QImage &image);
++ QImage image() const;
++
++ void setSmooth(const bool smooth);
++ bool smooth() const;
++
++ int nativeWidth() const;
++ int nativeHeight() const;
++
++ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
++
++Q_SIGNALS:
++ void nativeWidthChanged();
++ void nativeHeightChanged();
++
++private:
++ QImage m_image;
++ bool m_smooth;
++};
++
++#endif
+diff --cc plasma/declarativeimports/qtextracomponents/qmldir
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qmldir
+@@ -1,0 +1,3 @@
++plugin qtextracomponentsplugin
++
++
+diff --cc plasma/declarativeimports/qtextracomponents/qpixmapitem.cpp
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qpixmapitem.cpp
+@@ -1,0 +1,94 @@
++/*
++ * Copyright 2011 Marco Martin <[email protected]>
++ *
++ * 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 "qpixmapitem.h"
++
++#include <QtGui/QPainter>
++
++
++QPixmapItem::QPixmapItem(QDeclarativeItem *parent)
++ : QDeclarativeItem(parent),
++ m_smooth(false)
++{
++ setFlag(QGraphicsItem::ItemHasNoContents, false);
++}
++
++
++QPixmapItem::~QPixmapItem()
++{
++}
++
++void QPixmapItem::setPixmap(const QPixmap &pixmap)
++{
++ m_pixmap = pixmap;
++ update();
++ emit nativeWidthChanged();
++ emit nativeHeightChanged();
++}
++
++QPixmap QPixmapItem::pixmap() const
++{
++ return m_pixmap;
++}
++
++void QPixmapItem::setSmooth(const bool smooth)
++{
++ if (smooth == m_smooth) {
++ return;
++ }
++ m_smooth = smooth;
++ update();
++}
++
++bool QPixmapItem::smooth() const
++{
++ return m_smooth;
++}
++
++int QPixmapItem::nativeWidth() const
++{
++ return m_pixmap.size().width();
++}
++
++int QPixmapItem::nativeHeight() const
++{
++ return m_pixmap.size().height();
++}
++
++void QPixmapItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
++{
++ Q_UNUSED(option);
++ Q_UNUSED(widget);
++
++ if (m_pixmap.isNull()) {
++ return;
++ }
++ //do without painter save, faster and the support can be compiled out
++ const bool wasAntiAlias = painter->testRenderHint(QPainter::Antialiasing);
++ const bool wasSmoothTransform = painter->testRenderHint(QPainter::SmoothPixmapTransform);
++ painter->setRenderHint(QPainter::Antialiasing, m_smooth);
++ painter->setRenderHint(QPainter::SmoothPixmapTransform, m_smooth);
++
++ painter->drawPixmap(boundingRect(), m_pixmap, m_pixmap.rect());
++ painter->setRenderHint(QPainter::Antialiasing, wasAntiAlias);
++ painter->setRenderHint(QPainter::SmoothPixmapTransform, wasSmoothTransform);
++}
++
++
++#include "qpixmapitem.moc"
+diff --cc plasma/declarativeimports/qtextracomponents/qpixmapitem.h
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qpixmapitem.h
+@@ -1,0 +1,58 @@
++/***************************************************************************
++ * Copyright 2011 Marco Martin <[email protected]> *
++ * *
++ * This program is free software; you can redistribute it and/or modify *
++ * it under the terms of the GNU General Public License as published by *
++ * the Free Software Foundation; either version 2 of the License, 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 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 QPIXMAPITEM_H
++#define QPIXMAPITEM_H
++
++#include <QDeclarativeItem>
++#include <QPixmap>
++
++class QPixmapItem : public QDeclarativeItem
++{
++ Q_OBJECT
++
++ Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
++ Q_PROPERTY(bool smooth READ smooth WRITE setSmooth)
++ Q_PROPERTY(int nativeWidth READ nativeWidth NOTIFY nativeWidthChanged)
++ Q_PROPERTY(int nativeHeight READ nativeHeight NOTIFY nativeHeightChanged)
++
++public:
++ QPixmapItem(QDeclarativeItem *parent=0);
++ ~QPixmapItem();
++
++ void setPixmap(const QPixmap &pixmap);
++ QPixmap pixmap() const;
++
++ void setSmooth(const bool smooth);
++ bool smooth() const;
++
++ int nativeWidth() const;
++ int nativeHeight() const;
++
++ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
++
++Q_SIGNALS:
++ void nativeWidthChanged();
++ void nativeHeightChanged();
++
++private:
++ QPixmap m_pixmap;
++ bool m_smooth;
++};
++
++#endif
+diff --cc plasma/declarativeimports/qtextracomponents/qtextracomponentsplugin.cpp
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qtextracomponentsplugin.cpp
+@@ -1,0 +1,41 @@
++/*
++ * Copyright 2009 by Alan Alpert <[email protected]>
++ * Copyright 2010 by Ménard Alexis <[email protected]>
++ * Copyright 2010 by Marco Martin <[email protected]>
++
++ * 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 "qtextracomponentsplugin.h"
++
++#include <QtDeclarative/qdeclarative.h>
++
++#include "qpixmapitem.h"
++#include "qimageitem.h"
++#include "qiconitem.h"
++
++void QtExtraComponentsPlugin::registerTypes(const char *uri)
++{
++ Q_ASSERT(uri == QLatin1String("org.kde.qtextracomponents"));
++
++ qmlRegisterType<QPixmapItem>(uri, 0, 1, "QPixmapItem");
++ qmlRegisterType<QImageItem>(uri, 0, 1, "QImageItem");
++ qmlRegisterType<QIconItem>(uri, 0, 1, "QIconItem");
++}
++
++
++#include "qtextracomponentsplugin.moc"
++
+diff --cc plasma/declarativeimports/qtextracomponents/qtextracomponentsplugin.h
+--- /dev/null
++++ b/plasma/declarativeimports/qtextracomponents/qtextracomponentsplugin.h
+@@ -1,0 +1,38 @@
++/*
++ * Copyright 2009 by Alan Alpert <[email protected]>
++ * Copyright 2010 by Ménard Alexis <[email protected]>
++ * Copyright 2011 by Marco Martin <[email protected]>
++
++ * 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 QTEXTRACOMPONENTSPLUGIN_H
++#define QTEXTRACOMPONENTSPLUGIN_H
++
++#include <QDeclarativeExtensionPlugin>
++
++
++class QtExtraComponentsPlugin : public QDeclarativeExtensionPlugin
++{
++ Q_OBJECT
++
++public:
++ void registerTypes(const char *uri);
++};
++
++Q_EXPORT_PLUGIN2(qtextracomponentsplugin, QtExtraComponentsPlugin);
++
++#endif
+diff --cc plasma/declarativeimports/test/CMakeLists.txt
+--- /dev/null
++++ b/plasma/declarativeimports/test/CMakeLists.txt
+@@ -1,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)
+diff --cc plasma/declarativeimports/test/gallery.qml
+--- /dev/null
++++ b/plasma/declarativeimports/test/gallery.qml
+@@ -1,0 +1,79 @@
++/*
++ * Copyright (C) 2010 by Anselmo Lacerda Silveira de Melo <[email protected]>
++ *
++ * 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();
++ }
++}
+diff --cc plasma/declarativeimports/test/test.cpp
+--- /dev/null
++++ b/plasma/declarativeimports/test/test.cpp
+@@ -1,0 +1,55 @@
++/*
++ * Copyright 2011 Marco Martin <[email protected]>
++ *
++ * 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"
+diff --cc plasma/declarativeimports/test/testobject_p.h
+--- /dev/null
++++ b/plasma/declarativeimports/test/testobject_p.h
+@@ -1,0 +1,49 @@
++/*
++ * Copyright 2011 Marco Martin <[email protected]>
++ *
++ * 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
=== added file 'debian/patches/27_build-everything.patch'
--- debian/patches/27_build-everything.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/27_build-everything.patch 2011-04-09 01:21:29 +0000
@@ -0,0 +1,24 @@
+From 139d025a5048d249b603f9f3927aa06856f8308c Mon Sep 17 00:00:00 2001
+From: Marco Martin <[email protected]>
+Date: Thu, 10 Feb 2011 19:11:29 +0100
+Subject: [PATCH] build everything
+
+---
+ plasma/declarativeimports/CMakeLists.txt | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/plasma/declarativeimports/CMakeLists.txt b/plasma/declarativeimports/CMakeLists.txt
+index c113b60..5e2e20e 100644
+--- a/plasma/declarativeimports/CMakeLists.txt
++++ b/plasma/declarativeimports/CMakeLists.txt
+@@ -1,4 +1,6 @@
+ add_subdirectory(core)
+ add_subdirectory(graphicslayouts)
+ add_subdirectory(graphicswidgets)
++add_subdirectory(qtextracomponents)
+
++install(DIRECTORY plasmacomponents/ DESTINATION ${IMPORTS_INSTALL_DIR}/org/kde/plasma/components)
+\ No newline at end of file
+--
+1.7.4.1
+
=== modified file 'debian/patches/series'
--- debian/patches/series 2011-02-23 12:17:56 +0000
+++ debian/patches/series 2011-04-09 01:21:29 +0000
@@ -6,3 +6,5 @@
kubuntu_07_oxygenify_knetattach_icon.diff
kubuntu_89_strigi_ram_detection.diff
kubuntu_91_phonon_forget_option.diff
+26_plasmacomponents-backport.patch
+27_build-everything.patch
--
kubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel