commit
0d429342ef
@ -1,152 +0,0 @@ |
|||||||
/*
|
|
||||||
* 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/ |
|
||||||
|
|
||||||
#include <QtGui> |
|
||||||
#include <QtWebKit> |
|
||||||
|
|
||||||
#include "UBGraphicsWebView.h" |
|
||||||
#include "UBGraphicsScene.h" |
|
||||||
#include "UBGraphicsItemDelegate.h" |
|
||||||
#include "UBGraphicsDelegateFrame.h" |
|
||||||
|
|
||||||
#include "core/memcheck.h" |
|
||||||
|
|
||||||
UBGraphicsWebView::UBGraphicsWebView(QGraphicsItem* parent) |
|
||||||
: QGraphicsWebView(parent) |
|
||||||
{ |
|
||||||
setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); |
|
||||||
|
|
||||||
mDelegate = new UBGraphicsItemDelegate(this, 0, true); |
|
||||||
mDelegate->init(); |
|
||||||
|
|
||||||
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); |
|
||||||
|
|
||||||
QGraphicsWebView::setAcceptHoverEvents(true); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
UBGraphicsWebView::~UBGraphicsWebView() |
|
||||||
{ |
|
||||||
if (mDelegate) |
|
||||||
delete mDelegate; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
QVariant UBGraphicsWebView::itemChange(GraphicsItemChange change, const QVariant &value) |
|
||||||
{ |
|
||||||
if ((change == QGraphicsItem::ItemSelectedHasChanged) && scene()) { |
|
||||||
if (isSelected()) |
|
||||||
scene()->setActiveWindow(this); |
|
||||||
else |
|
||||||
if(scene()->activeWindow() == this) |
|
||||||
scene()->setActiveWindow(0); |
|
||||||
} |
|
||||||
|
|
||||||
QVariant newValue = mDelegate->itemChange(change, value); |
|
||||||
return QGraphicsWebView::itemChange(change, newValue); |
|
||||||
} |
|
||||||
|
|
||||||
void UBGraphicsWebView::setUuid(const QUuid &pUuid) |
|
||||||
{ |
|
||||||
UBItem::setUuid(pUuid); |
|
||||||
setData(UBGraphicsItemData::ItemUuid, QVariant(pUuid)); //store item uuid inside the QGraphicsItem to fast operations with Items on the scene
|
|
||||||
} |
|
||||||
|
|
||||||
void UBGraphicsWebView::mousePressEvent(QGraphicsSceneMouseEvent *event) |
|
||||||
{ |
|
||||||
if (!mDelegate->mousePressEvent(event)) |
|
||||||
setSelected(true); /* forcing selection */ |
|
||||||
|
|
||||||
QGraphicsWebView::mousePressEvent(event); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
void UBGraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent *event) |
|
||||||
{ |
|
||||||
if (!mDelegate->mouseMoveEvent(event)) |
|
||||||
QGraphicsWebView::mouseMoveEvent(event); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
void UBGraphicsWebView::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) |
|
||||||
{ |
|
||||||
mDelegate->mouseReleaseEvent(event); |
|
||||||
QGraphicsWebView::mouseReleaseEvent(event); |
|
||||||
} |
|
||||||
|
|
||||||
void UBGraphicsWebView::wheelEvent(QGraphicsSceneWheelEvent *event) |
|
||||||
{ |
|
||||||
if (mDelegate->weelEvent(event)) |
|
||||||
{ |
|
||||||
QGraphicsWebView::wheelEvent(event); |
|
||||||
event->accept(); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
void UBGraphicsWebView::hoverEnterEvent(QGraphicsSceneHoverEvent *event) |
|
||||||
{ |
|
||||||
Q_UNUSED(event) |
|
||||||
/* NOOP */ |
|
||||||
} |
|
||||||
void UBGraphicsWebView::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) |
|
||||||
{ |
|
||||||
Q_UNUSED(event) |
|
||||||
/* NOOP */ |
|
||||||
} |
|
||||||
|
|
||||||
void UBGraphicsWebView::setDelegate(UBGraphicsItemDelegate* pDelegate) |
|
||||||
{ |
|
||||||
if (mDelegate) |
|
||||||
delete mDelegate; |
|
||||||
|
|
||||||
mDelegate = pDelegate; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
void UBGraphicsWebView::resize(qreal w, qreal h) |
|
||||||
{ |
|
||||||
UBGraphicsWebView::resize(QSizeF(w, h)); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
void UBGraphicsWebView::resize(const QSizeF & pSize) |
|
||||||
{ |
|
||||||
if (pSize != size()) { |
|
||||||
QGraphicsWebView::setMaximumSize(pSize.width(), pSize.height()); |
|
||||||
QGraphicsWebView::resize(pSize.width(), pSize.height()); |
|
||||||
if (mDelegate) |
|
||||||
mDelegate->positionHandles(); |
|
||||||
if (scene()) |
|
||||||
scene()->setModified(true); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
QSizeF UBGraphicsWebView::size() const |
|
||||||
{ |
|
||||||
return QGraphicsWebView::size(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
UBGraphicsScene* UBGraphicsWebView::scene() |
|
||||||
{ |
|
||||||
return static_cast<UBGraphicsScene*>(QGraphicsItem::scene()); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
void UBGraphicsWebView::remove() |
|
||||||
{ |
|
||||||
if (mDelegate) |
|
||||||
mDelegate->remove(true); |
|
||||||
} |
|
@ -1,61 +0,0 @@ |
|||||||
/*
|
|
||||||
* 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, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/ |
|
||||||
|
|
||||||
#ifndef UBGRAPHICSWEBVIEW_H_ |
|
||||||
#define UBGRAPHICSWEBVIEW_H_ |
|
||||||
|
|
||||||
#include <QtGui> |
|
||||||
#include <QtWebKit> |
|
||||||
|
|
||||||
#include "UBItem.h" |
|
||||||
#include "UBResizableGraphicsItem.h" |
|
||||||
|
|
||||||
class UBGraphicsItemDelegate; |
|
||||||
|
|
||||||
class UBGraphicsWebView: public QGraphicsWebView, public UBItem, public UBResizableGraphicsItem, public UBGraphicsItem |
|
||||||
{ |
|
||||||
public: |
|
||||||
UBGraphicsWebView(QGraphicsItem* parent = 0); |
|
||||||
virtual ~UBGraphicsWebView(); |
|
||||||
|
|
||||||
virtual void resize(qreal w, qreal h); |
|
||||||
virtual void resize(const QSizeF & size); |
|
||||||
|
|
||||||
virtual QSizeF size() const; |
|
||||||
|
|
||||||
void setDelegate(UBGraphicsItemDelegate* pDelegate); |
|
||||||
|
|
||||||
virtual UBGraphicsScene* scene(); |
|
||||||
|
|
||||||
virtual void remove(); |
|
||||||
|
|
||||||
virtual UBGraphicsItemDelegate* Delegate() const { return mDelegate;} |
|
||||||
|
|
||||||
virtual void clearSource(){;} |
|
||||||
virtual void setUuid(const QUuid &pUuid); |
|
||||||
|
|
||||||
protected: |
|
||||||
|
|
||||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); |
|
||||||
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); |
|
||||||
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); |
|
||||||
virtual void wheelEvent(QGraphicsSceneWheelEvent *event); |
|
||||||
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event); |
|
||||||
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); |
|
||||||
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); |
|
||||||
|
|
||||||
}; |
|
||||||
|
|
||||||
#endif /* UBGRAPHICSWEBVIEW_H_ */ |
|
Loading…
Reference in new issue