From 3db4a422485374801ca2f6233ec23b8671a8656d Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <tomaz.canabr...@intel.com>
Date: Sun, 16 Nov 2014 23:22:58 -0200
Subject: [PATCH] fix 727 - position correctly the popup.

When the user entered a tag and that made the message box display
the popup with the possible choices was still in the old position
hidding the line edit.

Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com>
---
 qt-ui/kmessagewidget.cpp | 6 ++++++
 qt-ui/kmessagewidget.h   | 1 +
 qt-ui/maintab.cpp        | 3 +++
 qt-ui/tagwidget.cpp      | 8 ++++++++
 qt-ui/tagwidget.h        | 2 +-
 5 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/qt-ui/kmessagewidget.cpp b/qt-ui/kmessagewidget.cpp
index fc733c0..6059d70 100644
--- a/qt-ui/kmessagewidget.cpp
+++ b/qt-ui/kmessagewidget.cpp
@@ -206,6 +206,12 @@ void KMessageWidget::setText(const QString &text)
 	updateGeometry();
 }
 
+int KMessageWidget::bestContentHeight() const
+{
+	return d->bestContentHeight();
+}
+
+
 KMessageWidget::MessageType KMessageWidget::messageType() const
 {
 	return d->messageType;
diff --git a/qt-ui/kmessagewidget.h b/qt-ui/kmessagewidget.h
index 90492b3..dbc694a 100644
--- a/qt-ui/kmessagewidget.h
+++ b/qt-ui/kmessagewidget.h
@@ -165,6 +165,7 @@ Q_SLOTS:
 	 */
 	void setIcon(const QIcon &icon);
 
+	int bestContentHeight() const;
 Q_SIGNALS:
 	/**
 	 * This signal is emitted when the user clicks a link in the text label.
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index c20eddb..514d956 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -250,6 +250,9 @@ void MainTab::displayMessage(QString str)
 	ui.diveStatisticsMessage->setText(str);
 	ui.diveStatisticsMessage->animatedShow();
 	updateTextLabels();
+	ui.tagWidget->fixPopupPosition(ui.diveNotesMessage->bestContentHeight());
+	ui.buddy->fixPopupPosition(ui.diveNotesMessage->bestContentHeight());
+	ui.divemaster->fixPopupPosition(ui.diveNotesMessage->bestContentHeight());
 }
 
 void MainTab::updateTextLabels(bool showUnits)
diff --git a/qt-ui/tagwidget.cpp b/qt-ui/tagwidget.cpp
index 4045502..54b488a 100644
--- a/qt-ui/tagwidget.cpp
+++ b/qt-ui/tagwidget.cpp
@@ -195,3 +195,11 @@ void TagWidget::wheelEvent(QWheelEvent *event)
 		GroupedLineEdit::wheelEvent(event);
 	}
 }
+
+void TagWidget::fixPopupPosition(int delta)
+{
+	if(m_completer->popup()->isVisible()){
+		QRect toGlobal = m_completer->popup()->geometry();
+		m_completer->popup()->setGeometry(toGlobal.x(), toGlobal.y() + delta +10, toGlobal.width(), toGlobal.height());
+	}
+}
diff --git a/qt-ui/tagwidget.h b/qt-ui/tagwidget.h
index a3f5007..6a16129 100644
--- a/qt-ui/tagwidget.h
+++ b/qt-ui/tagwidget.h
@@ -17,6 +17,7 @@ public:
 	void clear();
 	void setCursorPosition(int position);
 	void wheelEvent(QWheelEvent *event);
+	void fixPopupPosition(int delta);
 public
 slots:
 	void reparse();
@@ -25,7 +26,6 @@ slots:
 
 protected:
 	void keyPressEvent(QKeyEvent *e);
-
 private:
 	QCompleter *m_completer;
 	bool lastFinishedTag;
-- 
2.1.3

_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to