void BFilePanelPoseView::AdaptToDesktopIntegrationChange(BMessage* message) { bool mountVolumesOnDesktop = true; bool mountSharedVolumesOntoDesktop = true; message->FindBool("MountVolumesOntoDesktop", &mountVolumesOnDesktop); message->FindBool("MountSharedVolumesOntoDesktop", &mountSharedVolumesOntoDesktop); ShowVolumes(false, mountSharedVolumesOntoDesktop); ShowVolumes(mountVolumesOnDesktop, mountSharedVolumesOntoDesktop); }
void BFilePanelPoseView::AdaptToVolumeChange(BMessage* message) { bool showDisksIcon; bool mountVolumesOnDesktop; bool mountSharedVolumesOntoDesktop; message->FindBool("ShowDisksIcon", &showDisksIcon); message->FindBool("MountVolumesOntoDesktop", &mountVolumesOnDesktop); message->FindBool("MountSharedVolumesOntoDesktop", &mountSharedVolumesOntoDesktop); BEntry entry("/"); Model model(&entry); if (model.InitCheck() == B_OK) { BMessage monitorMsg; monitorMsg.what = B_NODE_MONITOR; if (showDisksIcon) monitorMsg.AddInt32("opcode", B_ENTRY_CREATED); else monitorMsg.AddInt32("opcode", B_ENTRY_REMOVED); monitorMsg.AddInt32("device", model.NodeRef()->device); monitorMsg.AddInt64("node", model.NodeRef()->node); monitorMsg.AddInt64("directory", model.EntryRef()->directory); monitorMsg.AddString("name", model.EntryRef()->name); TrackerSettings().SetShowDisksIcon(showDisksIcon); if (Window()) Window()->PostMessage(&monitorMsg, this); } ShowVolumes(mountVolumesOnDesktop, mountSharedVolumesOntoDesktop); }
void DesktopPoseView::AdaptToVolumeChange(BMessage* message) { TTracker* tracker = dynamic_cast<TTracker*>(be_app); if (!tracker) return; bool showDisksIcon = false; bool mountVolumesOnDesktop = true; bool mountSharedVolumesOntoDesktop = false; message->FindBool("ShowDisksIcon", &showDisksIcon); message->FindBool("MountVolumesOntoDesktop", &mountVolumesOnDesktop); message->FindBool("MountSharedVolumesOntoDesktop", &mountSharedVolumesOntoDesktop); BEntry entry("/"); Model model(&entry); if (model.InitCheck() == B_OK) { BMessage entryMessage; entryMessage.what = B_NODE_MONITOR; if (showDisksIcon) entryMessage.AddInt32("opcode", B_ENTRY_CREATED); else { entryMessage.AddInt32("opcode", B_ENTRY_REMOVED); entry_ref ref; if (entry.GetRef(&ref) == B_OK) { BContainerWindow* disksWindow = tracker->FindContainerWindow(&ref); if (disksWindow) { disksWindow->Lock(); disksWindow->Close(); } } } entryMessage.AddInt32("device", model.NodeRef()->device); entryMessage.AddInt64("node", model.NodeRef()->node); entryMessage.AddInt64("directory", model.EntryRef()->directory); entryMessage.AddString("name", model.EntryRef()->name); BContainerWindow* deskWindow = dynamic_cast<BContainerWindow*>(Window()); if (deskWindow) deskWindow->PostMessage(&entryMessage, deskWindow->PoseView()); } ShowVolumes(mountVolumesOnDesktop, mountSharedVolumesOntoDesktop); }