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