Add "Reset rating" menu item to MediaPlayer and ShowImage

Doesn't remove the rating BFS attribute from the file, just sets it to "0".

ShowImage: Move "Ratings" menu into a new "Attributes" menu, similar to
MediaPlayer.

Change-Id: I831166d88be9d18f1d302a423aa43929b7a1b255
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7092
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
Humdinger
2023-11-06 13:36:20 +00:00
committed by Adrien Destugues
parent dbdb78c31f
commit 15305513ae
4 changed files with 19 additions and 4 deletions
+7
View File
@@ -1836,6 +1836,11 @@ MainWin::_CreateMenu()
setRatingMsg->AddInt32("rating", i); setRatingMsg->AddInt32("rating", i);
fRatingMenu->AddItem(new BMenuItem(label, setRatingMsg)); fRatingMenu->AddItem(new BMenuItem(label, setRatingMsg));
} }
BMessage* message = new BMessage(M_SET_RATING);
message->AddInt32("rating", 0);
fResetRatingItem = new BMenuItem(B_TRANSLATE("Reset rating"), message);
fAttributesMenu->AddItem(fResetRatingItem);
} }
@@ -2821,6 +2826,8 @@ MainWin::_UpdateAttributesMenu(const BNode& node)
for (int32 i = 0; BMenuItem* item = fRatingMenu->ItemAt(i); i++) for (int32 i = 0; BMenuItem* item = fRatingMenu->ItemAt(i); i++)
item->SetMarked(i + 1 == rating); item->SetMarked(i + 1 == rating);
fResetRatingItem->SetEnabled(rating > 0);
} }
+1
View File
@@ -147,6 +147,7 @@ private:
BMenuItem* fNoInterfaceMenuItem; BMenuItem* fNoInterfaceMenuItem;
BMenu* fAttributesMenu; BMenu* fAttributesMenu;
BMenu* fRatingMenu; BMenu* fRatingMenu;
BMenuItem* fResetRatingItem;
bool fHasFile; bool fHasFile;
bool fHasVideo; bool fHasVideo;
+10 -4
View File
@@ -281,7 +281,13 @@ ShowImageWindow::ShowImageWindow(BRect frame, const entry_ref& ref,
_BuildViewMenu(menu, false); _BuildViewMenu(menu, false);
fBar->AddItem(menu); fBar->AddItem(menu);
fBar->AddItem(_BuildRatingMenu()); menu = new BMenu(B_TRANSLATE_CONTEXT("Attributes", "Menus"));
menu->AddItem(_BuildRatingMenu());
BMessage* message = new BMessage(MSG_SET_RATING);
message->AddInt32("rating", 0);
fResetRatingItem = new BMenuItem(B_TRANSLATE("Reset rating"), message);
menu->AddItem(fResetRatingItem);
fBar->AddItem(menu);
SetPulseRate(100000); SetPulseRate(100000);
// every 1/10 second; ShowImageView needs it for marching ants // every 1/10 second; ShowImageView needs it for marching ants
@@ -399,14 +405,13 @@ ShowImageWindow::_BuildRatingMenu()
{ {
fRatingMenu = new BMenu(B_TRANSLATE("Rating")); fRatingMenu = new BMenu(B_TRANSLATE("Rating"));
for (int32 i = 1; i <= 10; i++) { for (int32 i = 1; i <= 10; i++) {
BMessage* message = new BMessage(MSG_SET_RATING);
BString label; BString label;
label << i; label << i;
BMessage* message = new BMessage(MSG_SET_RATING);
message->AddInt32("rating", i); message->AddInt32("rating", i);
fRatingMenu->AddItem(new BMenuItem(label.String(), message)); fRatingMenu->AddItem(new BMenuItem(label.String(), message));
} }
// NOTE: We may want to encapsulate the Rating menu within a more
// general "Attributes" menu.
return fRatingMenu; return fRatingMenu;
} }
@@ -1601,6 +1606,7 @@ ShowImageWindow::_UpdateRatingMenu()
break; break;
item->SetMarked(i == rating); item->SetMarked(i == rating);
} }
fResetRatingItem->SetEnabled(rating > 0);
} }
+1
View File
@@ -126,6 +126,7 @@ private:
BMenu* fSlideShowDelayMenu; BMenu* fSlideShowDelayMenu;
BMenu* fRatingMenu; BMenu* fRatingMenu;
BMenu* fOpenWithMenu; BMenu* fOpenWithMenu;
BMenuItem* fResetRatingItem;
BToolBar* fToolBar; BToolBar* fToolBar;
bool fToolBarVisible; bool fToolBarVisible;
BView* fScrollArea; BView* fScrollArea;