##// END OF EJS Templates
Parser refactoring (4)...
Parser refactoring (4) Implements results reading and data series creation Implementation takes some of the basic parser, which will be deleted at the end

File last commit:

r847:90e991aec5fa
r936:c24241b06d43
Show More
VisualizationDragWidget.cpp
53 lines | 1.3 KiB | text/x-c | CppLexer
/ gui / src / Visualization / VisualizationDragWidget.cpp
#include "Visualization/VisualizationDragWidget.h"
#include "Visualization/VisualizationDragDropContainer.h"
#include <QApplication>
#include <QMouseEvent>
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 (!event->modifiers().testFlag(Qt::AltModifier)) {
return;
}
if ((event->pos() - impl->m_DragStartPosition).manhattanLength()
< QApplication::startDragDistance()) {
return;
}
emit dragDetected(this, impl->m_DragStartPosition);
QWidget::mouseMoveEvent(event);
}