From 2d42fb1a9a5b5123075cc162ca7e9b2c20b86115 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Sat, 23 Sep 2023 16:34:31 -0400 Subject: [PATCH] Tracker: Adjust open button status when B_DIRECTORY_NODE is set. In hrev51155, it was changed to be always enabled no matter what, so that the current directory (without anything selected) could be opened. But this means it would also be enabled for files, which is misleading. Instead, remove the function, and adjust the logic detecting whether to enable the button or not to take B_DIRECTORY_NODE into account. --- src/kits/tracker/FilePanelPriv.cpp | 15 ++++++--------- src/kits/tracker/FilePanelPriv.h | 1 - 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/kits/tracker/FilePanelPriv.cpp b/src/kits/tracker/FilePanelPriv.cpp index 8e9955cf1c..9eb1f7465c 100644 --- a/src/kits/tracker/FilePanelPriv.cpp +++ b/src/kits/tracker/FilePanelPriv.cpp @@ -581,13 +581,6 @@ TFilePanel::SetClientObject(BFilePanel* panel) } -bool -TFilePanel::IsOpenButtonAlwaysEnabled() const -{ - return !fIsSavePanel && (fNodeFlavors & B_DIRECTORY_NODE) != 0; -} - - void TFilePanel::AdjustButton() { @@ -645,11 +638,14 @@ TFilePanel::AdjustButton() break; } } + } else if ((fNodeFlavors & B_DIRECTORY_NODE) != 0) { + // No selection, but the current directory could be opened. + enabled = true; } } button->SetLabel(buttonText.String()); - button->SetEnabled(IsOpenButtonAlwaysEnabled() || enabled); + button->SetEnabled(enabled); } @@ -1725,7 +1721,8 @@ TFilePanel::HandleOpenButton() } OpenSelectionCommon(&message); - } else if (IsOpenButtonAlwaysEnabled()) { + } else if ((fNodeFlavors & B_DIRECTORY_NODE) != 0) { + // Open the current directory. BMessage message(*fMessage); message.AddRef("refs", TargetModel()->EntryRef()); OpenSelectionCommon(&message); diff --git a/src/kits/tracker/FilePanelPriv.h b/src/kits/tracker/FilePanelPriv.h index b7695de81e..cec840a0c2 100644 --- a/src/kits/tracker/FilePanelPriv.h +++ b/src/kits/tracker/FilePanelPriv.h @@ -140,7 +140,6 @@ private: void AdjustButton(); bool SelectChildInParent(const entry_ref* parent, const node_ref* child); void OpenSelectionCommon(BMessage*); - bool IsOpenButtonAlwaysEnabled() const; bool fIsSavePanel; uint32 fNodeFlavors;