##// END OF EJS Templates
Changes the name of the mokc plugin nodes to facilitate their access in the merged tree
Changes the name of the mokc plugin nodes to facilitate their access in the merged tree

File last commit:

r958:ebb8b3d01eee
r1043:a94048bf05e3
Show More
VisualizationDragWidget.cpp
55 lines | 1.5 KiB | text/x-c | CppLexer
/ gui / src / Visualization / VisualizationDragWidget.cpp
#include "Visualization/VisualizationDragWidget.h"
#include "Visualization/VisualizationDragDropContainer.h"
#include <QApplication>
#include <QMouseEvent>
#include <SqpApplication.h>
struct VisualizationDragWidget::VisualizationDragWidgetPrivate {
QPoint m_DragStartPosition;
bool m_DragStartPositionValid = false;
explicit VisualizationDragWidgetPrivate() {}
};
VisualizationDragWidget::VisualizationDragWidget(QWidget *parent)
: QWidget{parent}, impl{spimpl::make_unique_impl<VisualizationDragWidgetPrivate>()}
{
}
void VisualizationDragWidget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
impl->m_DragStartPosition = event->pos();
}
impl->m_DragStartPositionValid = isDragAllowed();
QWidget::mousePressEvent(event);
}
void VisualizationDragWidget::mouseMoveEvent(QMouseEvent *event)
{
if (!impl->m_DragStartPositionValid || !isDragAllowed()) {
return;
}
if (!(event->buttons() & Qt::LeftButton)) {
return;
}
if (sqpApp->plotsInteractionMode() == SqpApplication::PlotsInteractionMode::DragAndDrop
|| event->modifiers().testFlag(Qt::AltModifier)) {
if ((event->pos() - impl->m_DragStartPosition).manhattanLength()
< QApplication::startDragDistance()) {
return;
}
emit dragDetected(this, impl->m_DragStartPosition);
}
QWidget::mouseMoveEvent(event);
}