lolautoaccept/src/runepagelist.cpp

49 lines
1.2 KiB
C++

#include "runepagelist.h"
#include "ui_runepagelist.h"
#include <QDebug>
#include <QDropEvent>
#include <QMimeData>
RunePageList::RunePageList(QWidget* parent) : QListWidget(parent), ui(new Ui::RunePageList) {
ui->setupUi(this);
}
RunePageList::~RunePageList() {
delete this->ui;
}
void RunePageList::loadRunePages(const std::vector<ClientAPI::RunePage>& pages) {
clear();
for(const ClientAPI::RunePage& rp : pages) {
QListWidgetItem* item = new QListWidgetItem(QString::fromStdString(rp.name));
item->setData(RoleId, (uint) rp.id);
item->setData(RolePointer, (qulonglong) new ::RunePage(rp.runepage));
item->setToolTip(QString("id: %0").arg(rp.id));
item->setFlags(item->flags() | Qt::ItemIsEditable);
addItem(item);
if(rp.isCurrent) {
item->setSelected(true);
}
}
}
void RunePageList::dropEvent(QDropEvent* event) {
qDebug() << "drop event";
if(event->source() == nullptr || event->source() != other) {
event->ignore();
return;
}
auto selected = other->selectedItems();
if(selected.size() != 1) {
event->ignore();
return;
}
qDebug() << "data: " << selected.at(0)->data(RoleId);
// compare rune pages for duplicates?
QListWidget::dropEvent(event);
}