##// END OF EJS Templates
Merge branch 'feature/DragDropImprovements' into develop
Merge branch 'feature/DragDropImprovements' into develop

File last commit:

r844:90e991aec5fa
r940:247d5dbe4c6a merge
Show More
VisualizationDragWidget.cpp
53 lines | 1.3 KiB | text/x-c | CppLexer
/ gui / src / Visualization / VisualizationDragWidget.cpp
New visualization classes for the drag&drop
r838 #include "Visualization/VisualizationDragWidget.h"
#include "Visualization/VisualizationDragDropContainer.h"
#include <QApplication>
Format changes
r844 #include <QMouseEvent>
New visualization classes for the drag&drop
r838
struct VisualizationDragWidget::VisualizationDragWidgetPrivate {
Format changes
r844 QPoint m_DragStartPosition;
bool m_DragStartPositionValid = false;
New visualization classes for the drag&drop
r838
Format changes
r844 explicit VisualizationDragWidgetPrivate() {}
New visualization classes for the drag&drop
r838 };
Format changes
r844 VisualizationDragWidget::VisualizationDragWidget(QWidget *parent)
: QWidget{parent}, impl{spimpl::make_unique_impl<VisualizationDragWidgetPrivate>()}
New visualization classes for the drag&drop
r838 {
}
void VisualizationDragWidget::mousePressEvent(QMouseEvent *event)
{
Format changes
r844 if (event->button() == Qt::LeftButton) {
impl->m_DragStartPosition = event->pos();
}
New visualization classes for the drag&drop
r838
Format changes
r844 impl->m_DragStartPositionValid = isDragAllowed();
New visualization classes for the drag&drop
r838
QWidget::mousePressEvent(event);
}
void VisualizationDragWidget::mouseMoveEvent(QMouseEvent *event)
{
Format changes
r844 if (!impl->m_DragStartPositionValid || !isDragAllowed()) {
New visualization classes for the drag&drop
r838 return;
Format changes
r844 }
New visualization classes for the drag&drop
r838
Format changes
r844 if (!(event->buttons() & Qt::LeftButton)) {
New visualization classes for the drag&drop
r838 return;
Format changes
r844 }
New visualization classes for the drag&drop
r838
Format changes
r844 if (!event->modifiers().testFlag(Qt::AltModifier)) {
New visualization classes for the drag&drop
r838 return;
Format changes
r844 }
New visualization classes for the drag&drop
r838
Format changes
r844 if ((event->pos() - impl->m_DragStartPosition).manhattanLength()
< QApplication::startDragDistance()) {
New visualization classes for the drag&drop
r838 return;
Format changes
r844 }
New visualization classes for the drag&drop
r838
Format changes
r844 emit dragDetected(this, impl->m_DragStartPosition);
New visualization classes for the drag&drop
r838
QWidget::mouseMoveEvent(event);
}