From c0fb6022f5c8e87241630ac2ef14bc961d2704f0 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 8 May 2025 19:41:34 -0400 Subject: [PATCH] Add tool tip for disabled tabs --- src/mainwindow.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index cd01f485..626ff912 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1038,12 +1038,20 @@ bool MainWindow::setMap(QString map_name) { // When editing in layout-only mode they are disabled. void MainWindow::setLayoutOnlyMode(bool layoutOnly) { bool mapEditingEnabled = !layoutOnly; - this->ui->mainTabBar->setTabEnabled(MainTab::Events, mapEditingEnabled); - this->ui->mainTabBar->setTabEnabled(MainTab::Header, mapEditingEnabled); - this->ui->mainTabBar->setTabEnabled(MainTab::Connections, mapEditingEnabled); - this->ui->mainTabBar->setTabEnabled(MainTab::WildPokemon, mapEditingEnabled && editor->project->wildEncountersLoaded); + ui->mainTabBar->setTabEnabled(MainTab::Events, mapEditingEnabled); + ui->mainTabBar->setTabEnabled(MainTab::Header, mapEditingEnabled); + ui->mainTabBar->setTabEnabled(MainTab::Connections, mapEditingEnabled); + ui->mainTabBar->setTabEnabled(MainTab::WildPokemon, mapEditingEnabled && this->editor->project->wildEncountersLoaded); - this->ui->comboBox_LayoutSelector->setEnabled(mapEditingEnabled); + // Set a tool tip to explain why the tabs are disabled. + static const QString disabledToolTip = Util::toHtmlParagraph("You are in layout-only mode. This tab is only enabled when a map is open."); + QString toolTip = mapEditingEnabled ? QString() : disabledToolTip; + ui->mainTabBar->setTabToolTip(MainTab::Events, toolTip); + ui->mainTabBar->setTabToolTip(MainTab::Header, toolTip); + ui->mainTabBar->setTabToolTip(MainTab::Connections, toolTip); + ui->mainTabBar->setTabToolTip(MainTab::WildPokemon, this->editor->project->wildEncountersLoaded ? toolTip : QString()); + + ui->comboBox_LayoutSelector->setEnabled(mapEditingEnabled); } // setLayout, but with a visible error message in case of failure.