Add ability to move result widget with middle button

This commit is contained in:
Gres 2020-04-04 15:03:39 +03:00
parent 013370e51e
commit bbe7d0a729
2 changed files with 30 additions and 9 deletions

View File

@ -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_);

View File

@ -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_;
};