added drag&drop support for sorting comics in lists

This commit is contained in:
Luis Ángel San Martín
2015-01-30 16:40:57 +01:00
parent 27d096162d
commit aa1398666e
21 changed files with 429 additions and 49 deletions

View File

@ -75,6 +75,8 @@ YACReaderTableView::YACReaderTableView(QWidget *parent) :
//drag: if the default drag is enabled there is no way for setting a custom image
//TODO report bug/suggestion
//setDragEnabled(true);
//setDragDropMode(QAbstractItemView::DragDrop);
setAcceptDrops(true);
}
void YACReaderTableView::mouseMoveEvent(QMouseEvent *event)
@ -161,6 +163,34 @@ void YACReaderTableView::performDrag()
Qt::DropAction dropAction = drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction);
}
void YACReaderTableView::dragEnterEvent(QDragEnterEvent *event)
{
QTableView::dragEnterEvent(event);
if(model()->canDropMimeData(event->mimeData(),event->proposedAction(),0,0,QModelIndex()))
event->acceptProposedAction();
QLOG_DEBUG() << "drag enter table";
}
void YACReaderTableView::dragMoveEvent(QDragMoveEvent *event)
{
QTableView::dragMoveEvent(event);
if(model()->canDropMimeData(event->mimeData(),event->proposedAction(),0,0,QModelIndex()))
event->acceptProposedAction();
QLOG_DEBUG() << "dragMoveEvent table";
}
void YACReaderTableView::dropEvent(QDropEvent *event)
{
QTableView::dropEvent(event);
if(model()->canDropMimeData(event->mimeData(),event->proposedAction(),0,0,QModelIndex()))
event->acceptProposedAction();
QLOG_DEBUG() << "drop on table";
}
void YACReaderTableView::closeRatingEditor()
{
editing = false;

View File

@ -34,6 +34,10 @@ private:
void mousePressEvent(QMouseEvent * event);
void leaveEvent(QEvent * event);
void performDrag();
void dragEnterEvent(QDragEnterEvent * event);
void dragMoveEvent(QDragMoveEvent * event);
void dropEvent(QDropEvent * event);
bool editing;
QModelIndex currentIndexEditing;