diff --git a/contactpicker.cpp b/contactpicker.cpp index eda0f3fea26f04d6e5403e6d1b8c664592b0b54e..ff8b295abc91e9f07b24db1697d17f8c6f7fd530 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 2903e122f18b0604c6ebc3590de941df95942740..0931ba6253b4fdfb5a9a70d5c3599ea5a8098c48 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_; };