diff options
Diffstat (limited to 'src/mainwindow.cpp')
| -rw-r--r-- | src/mainwindow.cpp | 40 |
1 files changed, 36 insertions, 4 deletions
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<QToolButton*>(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<QToolButton*>(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<int> &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 {
|
