lolautoaccept/src/runemanager.cpp

69 lines
1.6 KiB
C++

#include "runemanager.h"
#include "ui_runemanager.h"
#include <QDebug>
#include <QListWidgetItem>
#include "clientapi.h"
RuneManager::RuneManager(QWidget* parent) : QWidget(parent), ui(new Ui::RuneManager) {
ui->setupUi(this);
ui->listClientRunes->setClient(true);
ui->listaaRunes->setClient(false);
ui->listClientRunes->setOther(ui->listaaRunes);
ui->listaaRunes->setOther(ui->listClientRunes);
loadRunes();
}
RuneManager::~RuneManager() {
delete this->ui;
}
void RuneManager::loadRunes() {
if(!client) {
auto ca = ClientAccess::find();
if(ca) {
client = std::make_shared<ClientAPI>(*ca.get());
}
}
if(client) {
// load runepages
const std::vector<ClientAPI::RunePage> runePages = client->getAllRunePages();
ui->listClientRunes->loadRunePages(runePages);
}
setRunesEnabled(!!client); // cast to bool
}
void RuneManager::setRunesEnabled(bool enabled) {
this->ui->lblClientRunes->setEnabled(enabled);
this->ui->lblaaRunes->setEnabled(enabled);
this->ui->listClientRunes->setEnabled(enabled);
this->ui->listaaRunes->setEnabled(enabled);
this->ui->btnDelete->setEnabled(enabled);
this->ui->btnRetry->setEnabled(!enabled);
}
void RuneManager::clientRunePageRenamed(QListWidgetItem* item) {
uint32_t pageId = item->data(RunePageList::RoleId).toUInt();
const ::RunePage* page = (::RunePage*) item->data(RunePageList::RolePointer).toULongLong();
qDebug() << "edit page: " << pageId << "setname:" << item->text();
if(client) {
ClientAPI::RunePage newPage;
newPage.id = pageId;
newPage.name = item->text().toStdString();
newPage.runepage = *page;
if(!client->editRunePage(newPage)) {
// TODO: some error occured
}
}
}