Add ability to move result widget with middle button
This commit is contained in:
parent
013370e51e
commit
bbe7d0a729
@ -150,19 +150,35 @@ void ResultWidget::updateSettings()
|
||||
|
||||
bool ResultWidget::eventFilter(QObject *watched, QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::MouseButtonPress) {
|
||||
const auto button = static_cast<QMouseEvent *>(event)->button();
|
||||
if (button == Qt::RightButton) {
|
||||
contextMenu_->exec(QCursor::pos());
|
||||
} else {
|
||||
hide();
|
||||
}
|
||||
} else if (event->type() == QEvent::WindowDeactivate) {
|
||||
if (event->type() == QEvent::WindowDeactivate)
|
||||
hide();
|
||||
}
|
||||
return QWidget::eventFilter(watched, event);
|
||||
}
|
||||
|
||||
void ResultWidget::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
const auto button = event->button();
|
||||
if (button == Qt::RightButton) {
|
||||
contextMenu_->exec(QCursor::pos());
|
||||
return;
|
||||
}
|
||||
|
||||
if (button == Qt::MiddleButton) {
|
||||
lastPos_ = event->pos();
|
||||
return;
|
||||
}
|
||||
|
||||
hide();
|
||||
}
|
||||
|
||||
void ResultWidget::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
if (!(event->buttons() & Qt::MiddleButton))
|
||||
return;
|
||||
|
||||
move(pos() + event->pos() - lastPos_);
|
||||
}
|
||||
|
||||
void ResultWidget::edit()
|
||||
{
|
||||
representer_.edit(task_);
|
||||
|
@ -21,6 +21,10 @@ public:
|
||||
|
||||
bool eventFilter(QObject* watched, QEvent* event) override;
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent* event) override;
|
||||
void mouseMoveEvent(QMouseEvent* event) override;
|
||||
|
||||
private:
|
||||
void edit();
|
||||
void copyImage();
|
||||
@ -34,4 +38,5 @@ private:
|
||||
QLabel* separator_;
|
||||
QLabel* translated_;
|
||||
QMenu* contextMenu_;
|
||||
QPoint lastPos_;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user