#include "mainwindow.h" #include "ui_mainwindow.h" #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), dd(QLocale().name().toStdString()), lolaa(conf.getConfig(), dd, std::bind(&MainWindow::onFail, this), std::bind(&MainWindow::onPosChange, this, std::placeholders::_1)) { ui->setupUi(this); lolaa.setOnRuneChangeFunc(std::bind(&RuneDisplay::setRunes, ui->runedisplay, std::placeholders::_1)); conf.load(); // for all tabs - set their config and datadragon Config::RootConfig& rc = conf.getConfig(); for(int32_t tabnr = 0; tabnr < ui->tabWidget->count(); ++tabnr) { SettingsTab* tab = (SettingsTab*) ui->tabWidget->widget(tabnr); tab->setup(*rc.getPositionConfig(tab->getPosition()), &dd); QObject::connect(tab, SIGNAL( changed(Position, LolAutoAccept::State) ), this, SLOT( tabchanged(Position, LolAutoAccept::State) )); QObject::connect(tab, SIGNAL( toggled(Position, LolAutoAccept::State, bool) ), this, SLOT( tabtoggled(Position, LolAutoAccept::State, bool) )); } ui->enableAll->setChecked(rc.enabledAutoAccept); lolaa.setEnabled(rc.enabledAutoAccept, LolAutoAccept::State::LOBBY); ui->enableSmiteWarning->setChecked(rc.enabledSmiteWarn); lolaa.setSmiteWarn(rc.enabledSmiteWarn); resizeEvent(nullptr); } MainWindow::~MainWindow() { lolaa.stop(); conf.save(); delete ui; } void MainWindow::closeEvent([[maybe_unused]] QCloseEvent* event) { conf.save(); } void MainWindow::resizeEvent([[maybe_unused]] QResizeEvent *event) { ui->verticalLayoutWidget->setMinimumSize(ui->centralwidget->size()); ui->verticalLayoutWidget->setMaximumSize(ui->centralwidget->size()); ui->verticalLayoutWidget->setMinimumSize(ui->centralwidget->size()); } 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; } ui->runedisplay->setRuneMeta(lolaa.getRuneAspekts()); ui->runedisplay->setStyles(lolaa.getRuneStyles()); 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; } void MainWindow::smitewarntoggled(bool state) { Log::info << "smitewarn checkbox toggled " << state; lolaa.setSmiteWarn(state); conf.getConfig().enabledSmiteWarn = state; } void MainWindow::tabtoggled(Position p, LolAutoAccept::State s, bool state) { Log::info << "checkbox toggled " << state << " position: " << p << " state: " << (int) s; if(s == LolAutoAccept::State::LOBBY) { lolaa.setEnabled(state, s); } lolaa.reload(); } void MainWindow::tabchanged(Position p, LolAutoAccept::State s) { Log::info << "edited position: " << p << " state: " << (int) s; lolaa.reload(); } void MainWindow::applyRunes() { Log::info << "applyRunes pressed"; lolaa.applyRunes(); } void MainWindow::onPosChange(Position newpos) { assert(newpos <= Position::UTILITY); emit requestTabChange((int) newpos); } void MainWindow::onFail() { ui->mainswitch->setChecked(false); ui->statusbar->showMessage(tr("Auto-Acceptor failed!")); }