mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
Implement support all the new mouse modes
This commit is contained in:
parent
d291569e5f
commit
77e3f6ffb1
@ -34,13 +34,6 @@ void YACReader::MouseHandler::mousePressEvent(QMouseEvent *event)
|
|||||||
|
|
||||||
void YACReader::MouseHandler::mouseReleaseEvent(QMouseEvent *event)
|
void YACReader::MouseHandler::mouseReleaseEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (event->button() == Qt::LeftButton) {
|
|
||||||
viewer->drag = false;
|
|
||||||
viewer->setCursor(Qt::OpenHandCursor);
|
|
||||||
event->accept();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event->button() == Qt::ForwardButton) {
|
if (event->button() == Qt::ForwardButton) {
|
||||||
viewer->right();
|
viewer->right();
|
||||||
event->accept();
|
event->accept();
|
||||||
@ -52,6 +45,55 @@ void YACReader::MouseHandler::mouseReleaseEvent(QMouseEvent *event)
|
|||||||
event->accept();
|
event->accept();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto wasDragging = viewer->drag;
|
||||||
|
|
||||||
|
if (event->button() == Qt::LeftButton) {
|
||||||
|
viewer->drag = false;
|
||||||
|
viewer->setCursor(Qt::OpenHandCursor);
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto position = event->position();
|
||||||
|
auto dragDistance = QLineF(position, dragOrigin).length();
|
||||||
|
|
||||||
|
auto mouseMode = Configuration::getConfiguration().getMouseMode();
|
||||||
|
switch (mouseMode) {
|
||||||
|
case Normal:
|
||||||
|
return;
|
||||||
|
case LeftRightNavigation:
|
||||||
|
if (wasDragging && (dragDistance > 25)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event->button() == Qt::LeftButton) {
|
||||||
|
viewer->left();
|
||||||
|
event->accept();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event->button() == Qt::RightButton) {
|
||||||
|
viewer->right();
|
||||||
|
event->accept();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case HotAreas:
|
||||||
|
if (wasDragging && (dragDistance > 25)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event->button() == Qt::LeftButton) {
|
||||||
|
if (position.x() < viewer->width() / 2) {
|
||||||
|
viewer->left();
|
||||||
|
} else {
|
||||||
|
viewer->right();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
void YACReader::MouseHandler::mouseMoveEvent(QMouseEvent *event)
|
void YACReader::MouseHandler::mouseMoveEvent(QMouseEvent *event)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user