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