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)
 | 
					bool ResultWidget::eventFilter(QObject *watched, QEvent *event)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (event->type() == QEvent::MouseButtonPress) {
 | 
					  if (event->type() == QEvent::WindowDeactivate)
 | 
				
			||||||
    const auto button = static_cast<QMouseEvent *>(event)->button();
 | 
					 | 
				
			||||||
    if (button == Qt::RightButton) {
 | 
					 | 
				
			||||||
      contextMenu_->exec(QCursor::pos());
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      hide();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  } else if (event->type() == QEvent::WindowDeactivate) {
 | 
					 | 
				
			||||||
    hide();
 | 
					    hide();
 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  return QWidget::eventFilter(watched, event);
 | 
					  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()
 | 
					void ResultWidget::edit()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  representer_.edit(task_);
 | 
					  representer_.edit(task_);
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,10 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  bool eventFilter(QObject* watched, QEvent* event) override;
 | 
					  bool eventFilter(QObject* watched, QEvent* event) override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					  void mousePressEvent(QMouseEvent* event) override;
 | 
				
			||||||
 | 
					  void mouseMoveEvent(QMouseEvent* event) override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  void edit();
 | 
					  void edit();
 | 
				
			||||||
  void copyImage();
 | 
					  void copyImage();
 | 
				
			||||||
@ -34,4 +38,5 @@ private:
 | 
				
			|||||||
  QLabel* separator_;
 | 
					  QLabel* separator_;
 | 
				
			||||||
  QLabel* translated_;
 | 
					  QLabel* translated_;
 | 
				
			||||||
  QMenu* contextMenu_;
 | 
					  QMenu* contextMenu_;
 | 
				
			||||||
 | 
					  QPoint lastPos_;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user