--- a/GUI/playlist/view/PlaylistView.cpp
+++ b/GUI/playlist/view/PlaylistView.cpp
@@ -38,7 +38,6 @@
setMouseTracking(true);
- _drag_allowed = true;
_inner_drag_drop = false;
_parent = parent;
_qDrag = 0;
@@ -76,44 +75,31 @@
{
m_usertimer->start(user_activity_timeout_ms);
- QPoint pos_org = event->pos();
- QPoint pos = QWidget::mapToGlobal(pos_org);
-
switch (event->button()) {
case Qt::LeftButton:
- if (!_drag_allowed) {
- break;
- }
-
- QListView::mousePressEvent(event);
-
- if ((this->model()->rowCount()) * 33 > event->pos().y()) {
+ {
+ QModelIndex index = this->indexAt(event->pos());
+ if (index.isValid()) {
_drag_pos = event->pos();
} else {
- _drag_pos.setY(-10);
_drag = false;
}
-
- break;
+ }
+ break;
case Qt::RightButton:
_drag = false;
-
- QListView::mousePressEvent(event);
- pos.setY(pos.y());
- pos.setX(pos.x() + 10);
-
if (_rc_menu) {
- _rc_menu->exec(pos);
- }
-
+ _rc_menu->exec(QWidget::mapToGlobal(event->pos()));
+ }
break;
default:
_drag = false;
break;
}
+ QListView::mousePressEvent(event);
}
@@ -122,20 +108,19 @@
m_usertimer->start(user_activity_timeout_ms);
QPoint pos = event->pos();
- int distance = abs(pos.x() - _drag_pos.x()) + abs(pos.y() - _drag_pos.y());
-
- if (_drag && _qDrag && (distance > 10) && _drag_allowed) {
- _qDrag->exec(Qt::CopyAction);
- }
-}
-
+ if (_drag && _qDrag) {
+ int distance = abs(pos.x() - _drag_pos.x()) + abs(pos.y() - _drag_pos.y());
+ if (distance > 10) {
+ _qDrag->exec(Qt::CopyAction);
+ }
+ }
+}
void PlaylistView::mouseReleaseEvent(QMouseEvent* event)
{
m_usertimer->start(user_activity_timeout_ms);
switch (event->button()) {
-
case Qt::LeftButton:
if (_qDrag) {
@@ -143,22 +128,19 @@
_qDrag = NULL;
}
- QListView::mouseReleaseEvent(event);
- event->accept();
-
_drag = false;
break;
default:
break;
}
+ QListView::mouseReleaseEvent(event);
}
// get the min index of selected rows
int PlaylistView::get_min_selected()
{
-
QModelIndexList lst = this->selectedIndexes();
int min_row = 5000000;
@@ -314,10 +296,6 @@
void PlaylistView::set_mimedata(MetaDataList& v_md, QString text)
{
-
- if (!_drag_allowed) {
- return;
- }
if (_qDrag) {
delete _qDrag;
}
@@ -347,12 +325,6 @@
{
_qDrag = NULL;
}
-
-void PlaylistView::set_drag_enabled(bool b)
-{
- _drag_allowed = b;
-}
-
int PlaylistView::get_num_rows()
{
@@ -451,7 +423,6 @@
void PlaylistView::row_pressed(const QModelIndex&)
{
-
QList<int> selected_rows = calc_selections();
_inner_drag_drop = true;