mirror of
https://github.com/YACReader/yacreader
synced 2025-07-22 15:04:40 -04:00
added custom drag to comic table view, drops are accepted in lists view
This commit is contained in:
@ -186,6 +186,17 @@ QModelIndex ReadingListModel::parent(const QModelIndex &index) const
|
||||
return QModelIndex();
|
||||
}
|
||||
|
||||
bool ReadingListModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
|
||||
{
|
||||
return data->formats().contains("application/yacreaderlibrary-comics-ids");
|
||||
}
|
||||
|
||||
bool ReadingListModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
|
||||
{
|
||||
QLOG_DEBUG() << "drop mimedata into row = " << row << "column column = " << column << "parent" << parent;
|
||||
return true;
|
||||
}
|
||||
|
||||
void ReadingListModel::setupReadingListsData(QString path)
|
||||
{
|
||||
beginResetModel();
|
||||
|
@ -38,6 +38,8 @@ public:
|
||||
QModelIndex index(int row, int column,
|
||||
const QModelIndex &parent = QModelIndex()) const;
|
||||
QModelIndex parent(const QModelIndex &index) const;
|
||||
bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const;
|
||||
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
|
||||
|
||||
//Convenience methods
|
||||
void setupReadingListsData(QString path);
|
||||
|
@ -10,6 +10,14 @@ YACReaderReadingListsView::YACReaderReadingListsView(QWidget *parent)
|
||||
setUniformRowHeights(false);
|
||||
}
|
||||
|
||||
void YACReaderReadingListsView::dragEnterEvent(QDragEnterEvent *event)
|
||||
{
|
||||
YACReaderTreeView::dragEnterEvent(event);
|
||||
|
||||
QModelIndex destinationIndex = indexAt(event->pos());
|
||||
if(model()->canDropMimeData(event->mimeData(), event->proposedAction(), destinationIndex.row(), destinationIndex.column(), destinationIndex.parent()))
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
@ -28,19 +36,6 @@ void YACReaderReadingListsViewItemDeletegate::paint(QPainter *painter, const QSt
|
||||
return;
|
||||
}
|
||||
|
||||
/*if(!item->data(FolderModel::Completed).toBool())
|
||||
{
|
||||
painter->save();
|
||||
#ifdef Q_OS_MAC
|
||||
painter->setBrush(QBrush(QColor(85,95,127)));
|
||||
#else
|
||||
painter->setBrush(QBrush(QColor(237,197,24)));
|
||||
#endif
|
||||
painter->setPen(QPen(QBrush(),0));
|
||||
painter->drawRect(0,option.rect.y(),2,option.rect.height());
|
||||
painter->restore();
|
||||
}*/
|
||||
|
||||
QStyledItemDelegate::paint(painter, option, index);
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,10 @@ class YACReaderReadingListsView : public YACReaderTreeView
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit YACReaderReadingListsView(QWidget * parent = 0);
|
||||
|
||||
protected:
|
||||
//Drop to import
|
||||
void dragEnterEvent(QDragEnterEvent *event);
|
||||
};
|
||||
|
||||
class YACReaderReadingListsViewItemDeletegate: public QStyledItemDelegate
|
||||
|
Reference in New Issue
Block a user