forked from MrBesen/lolautoaccept
109 lines
3.2 KiB
C++
109 lines
3.2 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
|
|
#include <Log.h>
|
|
|
|
static void applySetting(const Config::StageConfig& sc, StageSettings* ss) {
|
|
ss->setState(sc.enabled);
|
|
ss->setChampions(sc.champs);
|
|
}
|
|
|
|
MainWindow::MainWindow(LolAutoAccept& lolaa, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), lolaa(lolaa), dd(QLocale().name().toStdString()) {
|
|
ui->setupUi(this);
|
|
|
|
conf.load();
|
|
|
|
ui->prepickstage->setDataDragon(&dd);
|
|
ui->banstage->setDataDragon(&dd);
|
|
ui->pickstage->setDataDragon(&dd);
|
|
|
|
const Config::RootConfig& rc = conf.getConfig();
|
|
ui->enableAll->setChecked(rc.enabledAutoAccept);
|
|
lolaa.setEnabled(rc.enabledAutoAccept, LolAutoAccept::State::LOBBY);
|
|
applySetting(rc.prepick, ui->prepickstage);
|
|
applySetting(rc.ban, ui->banstage);
|
|
applySetting(rc.pick, ui->pickstage);
|
|
}
|
|
|
|
MainWindow::~MainWindow() {
|
|
lolaa.stop();
|
|
conf.save();
|
|
|
|
delete ui;
|
|
}
|
|
|
|
void MainWindow::closeEvent([[maybe_unused]] QCloseEvent* event) {
|
|
conf.save();
|
|
}
|
|
|
|
void MainWindow::toggleMainswitch(bool state) {
|
|
Log::info << "mainswitch toggled: " << state;
|
|
if(state) {
|
|
if(!lolaa.init()) {
|
|
Log::error << "League Client not found!";
|
|
ui->statusbar->showMessage(tr("League of Legends Client not found!"));
|
|
ui->mainswitch->setCheckState(Qt::CheckState::Unchecked);
|
|
return;
|
|
}
|
|
|
|
lolaa.run();
|
|
ui->statusbar->showMessage(tr("Auto-Acceptor started!"));
|
|
} else {
|
|
lolaa.stop();
|
|
ui->statusbar->showMessage(tr("Auto-Acceptor stoped!"));
|
|
}
|
|
}
|
|
|
|
void MainWindow::aatoggled(bool state) {
|
|
Log::info << "enableAll checkbox toggled " << state;
|
|
|
|
lolaa.setEnabled(state, LolAutoAccept::State::LOBBY);
|
|
conf.getConfig().enabledAutoAccept = state;
|
|
}
|
|
|
|
static std::vector<std::string> toChampionNameList(const std::vector<StageSettings::SelectedChamp>& scs) {
|
|
std::vector<std::string> out;
|
|
|
|
for(const StageSettings::SelectedChamp& sc : scs) {
|
|
out.push_back(sc.name);
|
|
}
|
|
|
|
return out;
|
|
}
|
|
|
|
void MainWindow::pptoggled(bool state) {
|
|
Log::info << "enablePrePick checkbox toggled " << state;
|
|
lolaa.setEnabled(state, LolAutoAccept::State::PREPICK);
|
|
conf.getConfig().prepick.enabled = state;
|
|
}
|
|
|
|
void MainWindow::ppedited(const QString& b) {
|
|
Log::info << "prepick edited: " << b.toStdString();
|
|
//lolaa.setChamps(dd.getBestMatchingChamp(b.toStdString()).key, LolAutoAccept::State::PREPICK);
|
|
conf.getConfig().prepick.champs = toChampionNameList(ui->prepickstage->getChampions());
|
|
}
|
|
|
|
void MainWindow::bantoggled(bool state) {
|
|
Log::info << "enableBan checkbox toggled " << state;
|
|
lolaa.setEnabled(state, LolAutoAccept::State::BAN);
|
|
conf.getConfig().ban.enabled = state;
|
|
}
|
|
|
|
void MainWindow::banedited(const QString& b) {
|
|
Log::info << "ban edited: " << b.toStdString();
|
|
//lolaa.setChamp(dd.getBestMatchingChamp(b.toStdString()).key, LolAutoAccept::State::BAN);
|
|
conf.getConfig().ban.champs = toChampionNameList(ui->banstage->getChampions());
|
|
}
|
|
|
|
void MainWindow::picktoggled(bool state) {
|
|
Log::info << "enablePick checkbox toggled " << state;
|
|
lolaa.setEnabled(state, LolAutoAccept::State::PICK);
|
|
conf.getConfig().pick.enabled = state;
|
|
}
|
|
|
|
void MainWindow::pickedited(const QString& b) {
|
|
Log::info << "pick edited: " << b.toStdString();
|
|
//lolaa.setChamp(dd.getBestMatchingChamp(b.toStdString()).key, LolAutoAccept::State::PICK);
|
|
conf.getConfig().pick.champs = toChampionNameList(ui->pickstage->getChampions());
|
|
}
|