Merge branch 'master' into pm-flat

Conflicts:
	build/jam/HaikuImage
	build/jam/OptionalBuildFeatures
	build/jam/OptionalPackages
	build/jam/UserBuildConfig.sample
	data/bin/installoptionalpackage
	src/apps/deskbar/DeskbarMenu.cpp
	src/servers/debug/DebugServer.cpp
	src/system/kernel/fs/vfs.cpp
This commit is contained in:
Ingo Weinhold
2011-11-05 17:00:01 +01:00
1559 changed files with 98536 additions and 42861 deletions
+77 -8
View File
@@ -567,6 +567,7 @@ BContainerWindow::BContainerWindow(LockingList<BWindow> *list,
fAttrMenu(NULL),
fWindowMenu(NULL),
fFileMenu(NULL),
fArrangeByMenu(NULL),
fSelectionWindow(NULL),
fTaskLoop(NULL),
fIsTrash(false),
@@ -886,6 +887,8 @@ BContainerWindow::RepopulateMenus()
if (PoseView()->ViewMode() == kListMode)
ShowAttributeMenu();
PopulateArrangeByMenu(fArrangeByMenu);
int32 selectCount = PoseView()->SelectionList()->CountItems();
SetupOpenWithMenu(fFileMenu);
@@ -1748,25 +1751,30 @@ BContainerWindow::SetPasteItem(BMenu *menu)
void
BContainerWindow::SetCleanUpItem(BMenu *menu)
BContainerWindow::SetArrangeMenu(BMenu *menu)
{
BMenuItem *item;
if ((item = menu->FindItem(kCleanup)) == NULL
&& (item = menu->FindItem(kCleanupAll)) == NULL)
return;
item->SetEnabled(PoseView()->CountItems() > 0
item->Menu()->SetEnabled(PoseView()->CountItems() > 0
&& (PoseView()->ViewMode() != kListMode));
BMenu* arrangeMenu;
if (modifiers() & B_SHIFT_KEY) {
item->SetLabel(B_TRANSLATE("Clean up all"));
item->SetShortcut('K', B_COMMAND_KEY | B_SHIFT_KEY);
item->SetMessage(new BMessage(kCleanupAll));
arrangeMenu = item->Menu();
} else {
item->SetLabel(B_TRANSLATE("Clean up"));
item->SetShortcut('K', B_COMMAND_KEY);
item->SetMessage(new BMessage(kCleanup));
arrangeMenu = item->Menu();
}
MarkArrangeByMenu(arrangeMenu);
}
@@ -1818,6 +1826,7 @@ BContainerWindow::AddMenus()
// just create the attribute, decide to add it later
fAttrMenu = new BMenu(B_TRANSLATE("Attributes"));
NewAttributeMenu(fAttrMenu);
PopulateArrangeByMenu(fArrangeByMenu);
}
@@ -1977,9 +1986,8 @@ BContainerWindow::AddWindowMenu(BMenu *menu)
item->SetTarget(this);
menu->AddItem(item);
item = new BMenuItem(B_TRANSLATE("Clean up"), new BMessage(kCleanup), 'K');
item->SetTarget(PoseView());
menu->AddItem(item);
fArrangeByMenu = new BMenu(B_TRANSLATE("Arrange by"));
menu->AddItem(fArrangeByMenu);
item = new BMenuItem(B_TRANSLATE("Select"B_UTF8_ELLIPSIS),
new BMessage(kShowSelectionWindow), 'A', B_SHIFT_KEY);
@@ -2744,8 +2752,11 @@ BContainerWindow::AddWindowContextMenus(BMenu *menu)
menu->AddItem(pasteItem);
menu->AddSeparatorItem();
#endif
menu->AddItem(new BMenuItem(B_TRANSLATE("Clean up"),
new BMessage(kCleanup), 'K'));
BMenu* arrangeBy = new BMenu(B_TRANSLATE("Arrange by"));
PopulateArrangeByMenu(arrangeBy);
menu->AddItem(arrangeBy);
menu->AddItem(new BMenuItem(B_TRANSLATE("Select"B_UTF8_ELLIPSIS),
new BMessage(kShowSelectionWindow), 'A', B_SHIFT_KEY));
menu->AddItem(new BMenuItem(B_TRANSLATE("Select all"),
@@ -3062,7 +3073,7 @@ BContainerWindow::UpdateMenu(BMenu *menu, UpdateMenuContext context)
MarkNamedMenuItem(menu, kMiniIconMode, viewMode == kMiniIconMode);
SetCloseItem(menu);
SetCleanUpItem(menu);
SetArrangeMenu(menu);
SetPasteItem(menu);
EnableNamedMenuItem(menu, kOpenParentDir, !TargetModel()->IsRoot());
@@ -3264,6 +3275,26 @@ BContainerWindow::MarkAttributeMenu(BMenu *menu)
}
void
BContainerWindow::MarkArrangeByMenu(BMenu* menu)
{
if (!menu)
return;
int32 count = menu->CountItems();
for (int32 index = 0; index < count; index++) {
BMenuItem* item = menu->ItemAt(index);
if (item->Message()) {
uint32 attrHash;
if (item->Message()->FindInt32("attr_hash", (int32*)&attrHash) == B_OK)
item->SetMarked(PoseView()->PrimarySort() == attrHash);
else if (item->Command() == kArrangeReverseOrder)
item->SetMarked(PoseView()->ReverseSort());
}
}
}
void
BContainerWindow::AddMimeTypesToMenu()
{
@@ -3998,6 +4029,44 @@ BContainerWindow::PulseTaskLoop()
}
void
BContainerWindow::PopulateArrangeByMenu(BMenu* menu)
{
if (!fAttrMenu || !menu)
return;
// empty fArrangeByMenu...
BMenuItem* item;
while ((item = menu->RemoveItem((int32)0)) != NULL)
delete item;
int32 itemCount = fAttrMenu->CountItems();
for (int32 i = 0; i < itemCount; i++) {
item = fAttrMenu->ItemAt(i);
if (item->Command() == kAttributeItem) {
BMessage* message = new BMessage(*(item->Message()));
message->what = kArrangeBy;
BMenuItem* newItem = new BMenuItem(item->Label(), message);
newItem->SetTarget(PoseView());
menu->AddItem(newItem);
}
}
menu->AddSeparatorItem();
item = new BMenuItem(B_TRANSLATE("Reverse order"),
new BMessage(kArrangeReverseOrder));
item->SetTarget(PoseView());
menu->AddItem(item);
menu->AddSeparatorItem();
item = new BMenuItem(B_TRANSLATE("Clean up"), new BMessage(kCleanup), 'K');
item->SetTarget(PoseView());
menu->AddItem(item);
}
// #pragma mark -