Kaydet (Commit) ac2b58cd authored tarafından Katarina Behrens's avatar Katarina Behrens

Implement drag'n'drop-related qt5 events, no-op so far

Change-Id: I67b8cecdc85ad77d7ab48d229459a79bc168072d
Reviewed-on: https://gerrit.libreoffice.org/61721
Tested-by: Jenkins
Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
üst 0585043a
......@@ -46,6 +46,9 @@ class Qt5Widget : public QWidget
virtual void mouseMoveEvent(QMouseEvent*) override;
virtual void mousePressEvent(QMouseEvent*) override;
virtual void mouseReleaseEvent(QMouseEvent*) override;
virtual void dragEnterEvent(QDragEnterEvent*) override;
virtual void dragMoveEvent(QDragMoveEvent*) override;
virtual void dropEvent(QDropEvent*) override;
virtual void moveEvent(QMoveEvent*) override;
virtual void paintEvent(QPaintEvent*) override;
virtual void resizeEvent(QResizeEvent*) override;
......@@ -56,6 +59,7 @@ class Qt5Widget : public QWidget
public:
Qt5Widget(Qt5Frame& rFrame, Qt::WindowFlags f = Qt::WindowFlags());
Qt5Frame* m_pFrame;
void startDrag();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -124,10 +124,12 @@ void Qt5Widget::mouseReleaseEvent(QMouseEvent* pEvent) { handleMouseButtonEvent(
void Qt5Widget::mouseMoveEvent(QMouseEvent* pEvent)
{
QPoint point = pEvent->pos();
SalMouseEvent aEvent;
aEvent.mnTime = pEvent->timestamp();
aEvent.mnX = pEvent->pos().x();
aEvent.mnY = pEvent->pos().y();
aEvent.mnX = point.x();
aEvent.mnY = point.y();
aEvent.mnCode = GetKeyModCode(pEvent->modifiers()) | GetMouseModCode(pEvent->buttons());
aEvent.mnButton = 0;
......@@ -163,6 +165,35 @@ void Qt5Widget::wheelEvent(QWheelEvent* pEvent)
pEvent->accept();
}
void Qt5Widget::startDrag()
{
QMimeData* mimeData = new QMimeData;
mimeData->setData("application/x-libreoffice-dnditem", nullptr);
QDrag* drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::MoveAction);
}
void Qt5Widget::dragEnterEvent(QDragEnterEvent* event)
{
SAL_WARN("vcl.qt5", "dragenterevent");
if (event->source() == this)
event->accept();
}
void Qt5Widget::dragMoveEvent(QDragMoveEvent* event)
{
SAL_WARN("vcl.qt5", "dragmoveevent");
QWidget::dragMoveEvent(event);
}
void Qt5Widget::dropEvent(QDropEvent* event)
{
SAL_WARN("vcl.qt5", "dropevent");
QWidget::dropEvent(event);
}
void Qt5Widget::moveEvent(QMoveEvent*) { m_pFrame->CallCallback(SalEvent::Move, nullptr); }
void Qt5Widget::showEvent(QShowEvent*)
......@@ -359,6 +390,7 @@ Qt5Widget::Qt5Widget(Qt5Frame& rFrame, Qt::WindowFlags f)
{
create();
setMouseTracking(true);
setAcceptDrops(true);
setFocusPolicy(Qt::StrongFocus);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment