Merge pull request #1337 from etude11/fix-issue-1318

fix: deactivate menu entries when not actionable
This commit is contained in:
Kelson 2025-03-12 08:30:51 +01:00 committed by GitHub
commit b233de6f93
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 3 deletions

View File

@ -180,6 +180,9 @@ QMenu::item:selected {
border: 1px solid #3366CC;
}
QMenu::item:disabled {
color: gray;
}
MainMenu::indicator {
color: #666666;

View File

@ -507,18 +507,37 @@ void KiwixApp::postInit() {
void KiwixApp::handleItemsState(TabType tabType)
{
auto libraryOrSettingsTab = (tabType == TabType::LibraryTab || tabType == TabType::SettingsTab);
auto libraryOrSettingsTab = (tabType == TabType::LibraryTab || tabType == TabType::SettingsTab);
auto notBookmarkableTab = libraryOrSettingsTab || getTabWidget()->currentArticleUrl().isEmpty();
auto hasZimFile = !getTabWidget()->currentZimId().isEmpty();
auto app = KiwixApp::instance();
// Navigation actions
app->getAction(KiwixApp::ToggleTOCAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::OpenHomePageAction)->setDisabled(!hasZimFile);
app->getAction(KiwixApp::RandomArticleAction)->setDisabled(!hasZimFile);
// Reading & bookmarks
app->getAction(KiwixApp::ToggleReadingListAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ToggleAddBookmarkAction)->setDisabled(notBookmarkableTab);
app->getAction(KiwixApp::ReadArticleAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ReadTextAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ReadStopAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ToggleTTSLanguageAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ToggleTTSVoiceAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::IncreaseTTSSpeedAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::DecreaseTTSSpeedAction)->setDisabled(libraryOrSettingsTab);
// Search & zoom
app->getAction(KiwixApp::FindInPageAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ZoomInAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ZoomOutAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::ZoomResetAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::RandomArticleAction)->setDisabled(libraryOrSettingsTab);
app->getAction(KiwixApp::OpenHomePageAction)->setDisabled(libraryOrSettingsTab);
// File operations
app->getAction(KiwixApp::PrintAction)->setDisabled(!hasZimFile);
app->getAction(KiwixApp::SavePageAsAction)->setDisabled(!hasZimFile);
/* Non-Zim tabs are not bookmarkable therefore never in reading list. */
if (notBookmarkableTab)