From 959ab5b5a0ee5b57f1c7c1d0af1e2111da7715c9 Mon Sep 17 00:00:00 2001 From: etude11 Date: Sat, 8 Feb 2025 12:28:28 +0000 Subject: [PATCH] fix: deactivate menu entries when not actionable --- resources/css/style.css | 3 +++ src/kiwixapp.cpp | 25 ++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/resources/css/style.css b/resources/css/style.css index fc1a182..a0749ca 100644 --- a/resources/css/style.css +++ b/resources/css/style.css @@ -180,6 +180,9 @@ QMenu::item:selected { border: 1px solid #3366CC; } +QMenu::item:disabled { + color: gray; +} MainMenu::indicator { color: #666666; diff --git a/src/kiwixapp.cpp b/src/kiwixapp.cpp index 81814b1..b3d6339 100644 --- a/src/kiwixapp.cpp +++ b/src/kiwixapp.cpp @@ -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)