Separate the DeclarativeItemContainer so it can be used by others
We are going to need the declarative container for the tooltips, so it makes sense to put this guy in it's own files. Signed-off-by: Artur Duque de Souza <asouza@kde.org>
This commit is contained in:
parent
0aaa04c2dc
commit
436fd7e762
@ -1,6 +1,7 @@
|
||||
project(corebindings)
|
||||
|
||||
set(corebindings_SRCS
|
||||
declarativeitemcontainer.cpp
|
||||
corebindingsplugin.cpp
|
||||
dataengineconsumer.cpp
|
||||
theme.cpp
|
||||
|
66
declarativeimports/core/declarativeitemcontainer.cpp
Normal file
66
declarativeimports/core/declarativeitemcontainer.cpp
Normal file
@ -0,0 +1,66 @@
|
||||
/***************************************************************************
|
||||
* Copyright 2011 Marco Martin <mart@kde.org> *
|
||||
* *
|
||||
* 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 . *
|
||||
***************************************************************************/
|
||||
|
||||
#include "declarativeitemcontainer_p.h"
|
||||
|
||||
DeclarativeItemContainer::DeclarativeItemContainer(QGraphicsItem *parent)
|
||||
: QGraphicsWidget(parent)
|
||||
{
|
||||
}
|
||||
|
||||
DeclarativeItemContainer::~DeclarativeItemContainer()
|
||||
{
|
||||
}
|
||||
|
||||
void DeclarativeItemContainer::setDeclarativeItem(QDeclarativeItem *item, bool reparent)
|
||||
{
|
||||
if (m_declarativeItem) {
|
||||
m_declarativeItem.data()->removeSceneEventFilter(this);
|
||||
}
|
||||
m_declarativeItem = item;
|
||||
if (reparent) {
|
||||
static_cast<QGraphicsItem *>(item)->setParentItem(this);
|
||||
}
|
||||
setMinimumWidth(item->implicitWidth());
|
||||
setMinimumHeight(item->implicitHeight());
|
||||
resize(item->width(), item->height());
|
||||
item->installSceneEventFilter(this);
|
||||
}
|
||||
|
||||
QDeclarativeItem *DeclarativeItemContainer::declarativeItem() const
|
||||
{
|
||||
return m_declarativeItem.data();
|
||||
}
|
||||
|
||||
void DeclarativeItemContainer::resizeEvent(QGraphicsSceneResizeEvent *event)
|
||||
{
|
||||
if (m_declarativeItem) {
|
||||
m_declarativeItem.data()->setProperty("width", event->newSize().width());
|
||||
m_declarativeItem.data()->setProperty("height", event->newSize().height());
|
||||
}
|
||||
}
|
||||
|
||||
bool DeclarativeItemContainer::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::GraphicsSceneResize) {
|
||||
resize(watched->boundingRect().size());
|
||||
}
|
||||
|
||||
return QGraphicsWidget::sceneEventFilter(watched, event);
|
||||
}
|
46
declarativeimports/core/declarativeitemcontainer_p.h
Normal file
46
declarativeimports/core/declarativeitemcontainer_p.h
Normal file
@ -0,0 +1,46 @@
|
||||
/***************************************************************************
|
||||
* Copyright 2011 Marco Martin <mart@kde.org> *
|
||||
* *
|
||||
* 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 DECLARATIVEITEMCONTAINER_P
|
||||
#define DECLARATIVEITEMCONTAINER_P
|
||||
|
||||
#include <QDeclarativeItem>
|
||||
#include <QGraphicsObject>
|
||||
#include <QGraphicsWidget>
|
||||
#include <QGraphicsSceneResizeEvent>
|
||||
|
||||
|
||||
class DeclarativeItemContainer : public QGraphicsWidget
|
||||
{
|
||||
public:
|
||||
DeclarativeItemContainer(QGraphicsItem *parent = 0);
|
||||
~DeclarativeItemContainer();
|
||||
|
||||
void setDeclarativeItem(QDeclarativeItem *item, bool reparent = true);
|
||||
QDeclarativeItem *declarativeItem() const;
|
||||
|
||||
protected:
|
||||
void resizeEvent(QGraphicsSceneResizeEvent *event);
|
||||
bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
|
||||
|
||||
private:
|
||||
QWeakPointer<QDeclarativeItem> m_declarativeItem;
|
||||
};
|
||||
|
||||
#endif
|
@ -18,6 +18,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "dialog.h"
|
||||
#include "declarativeitemcontainer_p.h"
|
||||
|
||||
#include <QDeclarativeItem>
|
||||
#include <QGraphicsObject>
|
||||
@ -27,55 +28,6 @@
|
||||
#include <Plasma/Corona>
|
||||
#include <Plasma/Dialog>
|
||||
|
||||
class DeclarativeItemContainer : public QGraphicsWidget
|
||||
{
|
||||
public:
|
||||
DeclarativeItemContainer(QGraphicsItem *parent = 0)
|
||||
: QGraphicsWidget(parent)
|
||||
{}
|
||||
|
||||
~DeclarativeItemContainer()
|
||||
{}
|
||||
|
||||
void setDeclarativeItem(QDeclarativeItem *item)
|
||||
{
|
||||
if (m_declarativeItem) {
|
||||
m_declarativeItem.data()->removeSceneEventFilter(this);
|
||||
}
|
||||
m_declarativeItem = item;
|
||||
static_cast<QGraphicsItem *>(item)->setParentItem(this);
|
||||
setMinimumWidth(item->implicitWidth());
|
||||
setMinimumHeight(item->implicitHeight());
|
||||
resize(item->width(), item->height());
|
||||
item->installSceneEventFilter(this);
|
||||
}
|
||||
|
||||
QDeclarativeItem *declarativeItem() const
|
||||
{
|
||||
return m_declarativeItem.data();
|
||||
}
|
||||
|
||||
protected:
|
||||
void resizeEvent(QGraphicsSceneResizeEvent *event)
|
||||
{
|
||||
if (m_declarativeItem) {
|
||||
m_declarativeItem.data()->setProperty("width", event->newSize().width());
|
||||
m_declarativeItem.data()->setProperty("height", event->newSize().height());
|
||||
}
|
||||
}
|
||||
|
||||
bool sceneEventFilter(QGraphicsItem *watched, QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::GraphicsSceneResize) {
|
||||
resize(watched->boundingRect().size());
|
||||
}
|
||||
|
||||
return QGraphicsWidget::sceneEventFilter(watched, event);
|
||||
}
|
||||
|
||||
private:
|
||||
QWeakPointer<QDeclarativeItem> m_declarativeItem;
|
||||
};
|
||||
|
||||
DialogProxy::DialogProxy(QObject *parent)
|
||||
: QObject(parent)
|
||||
|
Loading…
x
Reference in New Issue
Block a user