mirror of
https://github.com/YACReader/yacreader
synced 2025-07-25 08:25:03 -04:00
added drag support to classic and grid view. by now grid doesn't support multiple drags and pressents some secondary effects (cells are moved inside the grid, and target is not working properly)
This commit is contained in:
@ -4,6 +4,8 @@
|
||||
#include <QResizeEvent>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QPainter>
|
||||
#include <QDrag>
|
||||
#include <QMimeData>
|
||||
|
||||
#include "comic_item.h"
|
||||
|
||||
@ -47,9 +49,9 @@ YACReaderTableView::YACReaderTableView(QWidget *parent) :
|
||||
//comicView->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
|
||||
verticalHeader()->setDefaultSectionSize(24);
|
||||
#if QT_VERSION >= 0x050000
|
||||
verticalHeader()->setSectionsClickable(false); //TODO comportamiento an<EFBFBD>malo
|
||||
verticalHeader()->setSectionsClickable(false); //TODO comportamiento anómalo
|
||||
#else
|
||||
verticalHeader()->setClickable(false); //TODO comportamiento an<EFBFBD>malo
|
||||
verticalHeader()->setClickable(false); //TODO comportamiento anómalo
|
||||
#endif
|
||||
|
||||
setCornerButtonEnabled(false);
|
||||
@ -65,6 +67,9 @@ YACReaderTableView::YACReaderTableView(QWidget *parent) :
|
||||
|
||||
showDeletingProgressAnimation = new QPropertyAnimation(deletingProgress,"pos");
|
||||
showDeletingProgressAnimation->setDuration(150);*/
|
||||
|
||||
//drag
|
||||
setDragEnabled(true);
|
||||
}
|
||||
|
||||
void YACReaderTableView::mouseMoveEvent(QMouseEvent *event)
|
||||
@ -100,25 +105,37 @@ void YACReaderTableView::mouseMoveEvent(QMouseEvent *event)
|
||||
}
|
||||
void YACReaderTableView::mousePressEvent(QMouseEvent * event)
|
||||
{
|
||||
QTableView::mousePressEvent(event);
|
||||
QModelIndex mi = indexAt(event->pos());
|
||||
if(mi.isValid())
|
||||
{
|
||||
QList<QModelIndex> selectedIndexes = this->selectedIndexes();
|
||||
if(selectedIndexes.contains(mi))
|
||||
{
|
||||
if(mi.column() == 11)
|
||||
{
|
||||
if(!editing)
|
||||
{
|
||||
editing = true;
|
||||
currentIndexEditing = mi;
|
||||
edit(mi);
|
||||
myeditor = indexWidget(mi);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
QTableView::mousePressEvent(event);
|
||||
QModelIndex mi = indexAt(event->pos());
|
||||
if(mi.isValid())
|
||||
{
|
||||
QList<QModelIndex> selectedIndexes = this->selectedIndexes();
|
||||
if(selectedIndexes.contains(mi))
|
||||
{
|
||||
if(mi.column() == 11)
|
||||
{
|
||||
if(!editing)
|
||||
{
|
||||
editing = true;
|
||||
currentIndexEditing = mi;
|
||||
edit(mi);
|
||||
myeditor = indexWidget(mi);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QMimeData *mimeData = new QMimeData;
|
||||
|
||||
mimeData->setText("comic"); //TODO set the right mime data
|
||||
|
||||
QDrag *drag = new QDrag(this);
|
||||
drag->setMimeData(mimeData);
|
||||
drag->setPixmap(QPixmap(":/images/openInYACReader.png")); //TODO add better image
|
||||
|
||||
Qt::DropAction dropAction = drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction);
|
||||
|
||||
}
|
||||
void YACReaderTableView::leaveEvent(QEvent * event)
|
||||
{
|
||||
|
Reference in New Issue
Block a user