From d1c35b4dde0afd3c81b476e8268766c1841a2294 Mon Sep 17 00:00:00 2001
From: Edric <edric.ladent-milaret@savoirfairelinux.com>
Date: Thu, 19 May 2016 10:04:50 -0400
Subject: [PATCH] make add to contact moveable

Change-Id: Icfc75740ec633137a22abb35ad477a8e98ec07c2
Tuleap: #713
---
 contactpicker.cpp | 20 +++++++++++++++++++-
 contactpicker.h   |  4 ++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/contactpicker.cpp b/contactpicker.cpp
index eda0f3f..ff8b295 100644
--- a/contactpicker.cpp
+++ b/contactpicker.cpp
@@ -19,7 +19,7 @@
 #include "contactpicker.h"
 #include "ui_contactpicker.h"
 
-
+#include <QMouseEvent>
 
 #include "categorizedcontactmodel.h"
 #include "personmodel.h"
@@ -107,3 +107,21 @@ ContactPicker::on_searchBar_textChanged(const QString &arg1)
 {
     contactProxyModel_->setFilterRegExp(QRegExp(arg1, Qt::CaseInsensitive, QRegExp::FixedString));
 }
+
+void
+ContactPicker::mousePressEvent(QMouseEvent *event)
+{
+    mpos_ = event->pos();
+    if (not rect().contains(mpos_))
+        QDialog::reject();
+}
+
+void ContactPicker::mouseMoveEvent(QMouseEvent *event)
+{
+    if (event->buttons() & Qt::LeftButton) {
+        QPoint diff = event->pos() - mpos_;
+        QPoint newpos = this->pos() + diff;
+
+        this->move(newpos);
+    }
+}
diff --git a/contactpicker.h b/contactpicker.h
index 2903e12..0931ba6 100644
--- a/contactpicker.h
+++ b/contactpicker.h
@@ -50,6 +50,9 @@ public:
     explicit ContactPicker(ContactMethod* number, QWidget *parent = 0);
     ~ContactPicker();
 
+protected:
+    void mousePressEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
 protected slots:
      void accept();
 
@@ -66,4 +69,5 @@ private:
     Person *personSelected_;
     ContactMethod* number_;
     OnlyPersonProxyModel* contactProxyModel_;
+    QPoint mpos_;
 };
-- 
GitLab