From 22f40072cf7782e6f3484a58347381310b40c6cc Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Mon, 24 Dec 2018 22:37:32 -0600 Subject: Allow user to "won't endorse" MO itself --- src/mainwindow.cpp | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 10b91c7c..3e8323e5 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -245,8 +245,6 @@ MainWindow::MainWindow(QSettings &initSettings statusBar()->clearMessage(); statusBar()->hide(); - ui->actionEndorseMO->setVisible(false); - updateProblemsButton(); // Setup toolbar @@ -262,6 +260,10 @@ MainWindow::MainWindow(QSettings &initSettings actionToToolButton(ui->actionHelp); createHelpWidget(); + actionToToolButton(ui->actionEndorseMO); + createEndorseWidget(); + ui->actionEndorseMO->setVisible(false); + for (QAction *action : ui->toolBar->actions()) { if (action->isSeparator()) { // insert spacers @@ -707,6 +709,25 @@ void MainWindow::about() } +void MainWindow::createEndorseWidget() +{ + QToolButton *toolBtn = qobject_cast(ui->toolBar->widgetForAction(ui->actionEndorseMO)); + QMenu *buttonMenu = toolBtn->menu(); + if (buttonMenu == nullptr) { + return; + } + buttonMenu->clear(); + + QAction *endorseAction = new QAction(tr("Endorse"), buttonMenu); + connect(endorseAction, SIGNAL(triggered()), this, SLOT(on_actionEndorseMO_triggered())); + buttonMenu->addAction(endorseAction); + + QAction *wontEndorseAction = new QAction(tr("Won't Endorse"), buttonMenu); + connect(wontEndorseAction, SIGNAL(triggered()), this, SLOT(on_actionWontEndorseMO_triggered())); + buttonMenu->addAction(wontEndorseAction); +} + + void MainWindow::createHelpWidget() { QToolButton *toolBtn = qobject_cast(ui->toolBar->widgetForAction(ui->actionHelp)); @@ -5012,7 +5033,9 @@ void MainWindow::motdReceived(const QString &motd) void MainWindow::notEndorsedYet() { - ui->actionEndorseMO->setVisible(true); + if (!Settings::instance().directInterface().value("wont_endorse_MO", false).toBool()) { + ui->actionEndorseMO->setVisible(true); + } } @@ -5077,6 +5100,13 @@ void MainWindow::on_actionEndorseMO_triggered() } +void MainWindow::on_actionWontEndorseMO_triggered() +{ + Settings::instance().directInterface().setValue("wont_endorse_MO", true); + ui->actionEndorseMO->setVisible(false); +} + + void MainWindow::updateDownloadListDelegate() { if (m_OrganizerCore.settings().compactDownloads()) { @@ -5143,7 +5173,9 @@ void MainWindow::nxmUpdatesAvailable(const std::vector &modIDs, QVariant us if (game && result["id"].toInt() == game->nexusModOrganizerID() && result["game_id"].toInt() == game->nexusGameID()) { - if (!result["voted_by_user"].toBool() && Settings::instance().endorsementIntegration()) { + if (!result["voted_by_user"].toBool() && + Settings::instance().endorsementIntegration() && + !Settings::instance().directInterface().value("wont_endorse_MO", false).toBool()) { ui->actionEndorseMO->setVisible(true); } } else { -- cgit v1.3.1