* Give a chance to volume/disks icons to save their position when changing the
"Show Disks/Volumes Icon" preference. Fixes #1559 * Automatic white space cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32513 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -101,15 +101,15 @@ DesktopPoseView::InitDesktopDirentIterator(BPoseView *nodeMonitoringTarget,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
CachedEntryIteratorList *result = new DesktopEntryListCollection();
|
CachedEntryIteratorList *result = new DesktopEntryListCollection();
|
||||||
|
|
||||||
ASSERT(!sourceModel.IsQuery());
|
ASSERT(!sourceModel.IsQuery());
|
||||||
ASSERT(sourceModel.Node());
|
ASSERT(sourceModel.Node());
|
||||||
BDirectory *sourceDirectory = dynamic_cast<BDirectory *>(sourceModel.Node());
|
BDirectory *sourceDirectory = dynamic_cast<BDirectory *>(sourceModel.Node());
|
||||||
|
|
||||||
dev_t sourceDevice = sourceModel.NodeRef()->device;
|
dev_t sourceDevice = sourceModel.NodeRef()->device;
|
||||||
|
|
||||||
ASSERT(sourceDirectory);
|
ASSERT(sourceDirectory);
|
||||||
|
|
||||||
// build an iterator list, start with boot
|
// build an iterator list, start with boot
|
||||||
EntryListBase *perDesktopIterator = new CachedDirectoryEntryList(
|
EntryListBase *perDesktopIterator = new CachedDirectoryEntryList(
|
||||||
*sourceDirectory);
|
*sourceDirectory);
|
||||||
@@ -153,7 +153,7 @@ DesktopPoseView::InitDesktopDirentIterator(BPoseView *nodeMonitoringTarget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result->Rewind() != B_OK) {
|
if (result->Rewind() != B_OK) {
|
||||||
delete result;
|
delete result;
|
||||||
if (nodeMonitoringTarget)
|
if (nodeMonitoringTarget)
|
||||||
@@ -205,7 +205,7 @@ DesktopPoseView::FSNotification(const BMessage *message)
|
|||||||
&& otherDesktop.GetEntry(&entry) == B_OK) {
|
&& otherDesktop.GetEntry(&entry) == B_OK) {
|
||||||
// place desktop items from the mounted volume onto the desktop
|
// place desktop items from the mounted volume onto the desktop
|
||||||
Model model(&entry);
|
Model model(&entry);
|
||||||
if (model.InitCheck() == B_OK)
|
if (model.InitCheck() == B_OK)
|
||||||
AddPoses(&model);
|
AddPoses(&model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -247,7 +247,7 @@ DesktopPoseView::Represents(const node_ref *ref) const
|
|||||||
deviceDesktop.GetNodeRef(&nref);
|
deviceDesktop.GetNodeRef(&nref);
|
||||||
return nref == *ref;
|
return nref == *ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
return _inherited::Represents(ref);
|
return _inherited::Represents(ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,14 +266,15 @@ void
|
|||||||
DesktopPoseView::ShowVolumes(bool visible, bool showShared)
|
DesktopPoseView::ShowVolumes(bool visible, bool showShared)
|
||||||
{
|
{
|
||||||
if (LockLooper()) {
|
if (LockLooper()) {
|
||||||
|
SavePoseLocations();
|
||||||
if (!visible)
|
if (!visible)
|
||||||
RemoveRootPoses();
|
RemoveRootPoses();
|
||||||
else
|
else
|
||||||
AddRootPoses(true, showShared);
|
AddRootPoses(true, showShared);
|
||||||
UnlockLooper();
|
UnlockLooper();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
DesktopPoseView::RemoveNonBootItems()
|
DesktopPoseView::RemoveNonBootItems()
|
||||||
@@ -294,7 +295,7 @@ DesktopPoseView::AddNonBootItems()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
BVolumeRoster volumeRoster;
|
BVolumeRoster volumeRoster;
|
||||||
|
|
||||||
BVolume boot;
|
BVolume boot;
|
||||||
volumeRoster.GetBootVolume(&boot);
|
volumeRoster.GetBootVolume(&boot);
|
||||||
|
|
||||||
@@ -310,9 +311,9 @@ DesktopPoseView::AddNonBootItems()
|
|||||||
&& otherDesktop.GetEntry(&entry) == B_OK) {
|
&& otherDesktop.GetEntry(&entry) == B_OK) {
|
||||||
// place desktop items from the mounted volume onto the desktop
|
// place desktop items from the mounted volume onto the desktop
|
||||||
Model model(&entry);
|
Model model(&entry);
|
||||||
if (model.InitCheck() == B_OK)
|
if (model.InitCheck() == B_OK)
|
||||||
AddPoses(&model);
|
AddPoses(&model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -359,7 +360,7 @@ DesktopPoseView::AdaptToVolumeChange(BMessage *message)
|
|||||||
if (model.InitCheck() == B_OK) {
|
if (model.InitCheck() == B_OK) {
|
||||||
BMessage entryMessage;
|
BMessage entryMessage;
|
||||||
entryMessage.what = B_NODE_MONITOR;
|
entryMessage.what = B_NODE_MONITOR;
|
||||||
|
|
||||||
if (showDisksIcon)
|
if (showDisksIcon)
|
||||||
entryMessage.AddInt32("opcode", B_ENTRY_CREATED);
|
entryMessage.AddInt32("opcode", B_ENTRY_CREATED);
|
||||||
else {
|
else {
|
||||||
@@ -392,7 +393,7 @@ DesktopPoseView::AdaptToDesktopIntegrationChange(BMessage *message)
|
|||||||
bool mountVolumesOnDesktop = true;
|
bool mountVolumesOnDesktop = true;
|
||||||
bool mountSharedVolumesOntoDesktop = true;
|
bool mountSharedVolumesOntoDesktop = true;
|
||||||
bool integrateNonBootBeOSDesktops = true;
|
bool integrateNonBootBeOSDesktops = true;
|
||||||
|
|
||||||
message->FindBool("MountVolumesOntoDesktop", &mountVolumesOnDesktop);
|
message->FindBool("MountVolumesOntoDesktop", &mountVolumesOnDesktop);
|
||||||
message->FindBool("MountSharedVolumesOntoDesktop", &mountSharedVolumesOntoDesktop);
|
message->FindBool("MountSharedVolumesOntoDesktop", &mountSharedVolumesOntoDesktop);
|
||||||
message->FindBool("IntegrateNonBootBeOSDesktops", &integrateNonBootBeOSDesktops);
|
message->FindBool("IntegrateNonBootBeOSDesktops", &integrateNonBootBeOSDesktops);
|
||||||
@@ -442,7 +443,7 @@ DesktopPoseView::UpdateNonBootDesktopPoses(bool integrateNonBootBeOSDesktops)
|
|||||||
&& volume != bootVolume) {
|
&& volume != bootVolume) {
|
||||||
// place desktop items from the volume onto the desktop
|
// place desktop items from the volume onto the desktop
|
||||||
Model model(&entry);
|
Model model(&entry);
|
||||||
if (model.InitCheck() == B_OK)
|
if (model.InitCheck() == B_OK)
|
||||||
AddPoses(&model);
|
AddPoses(&model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user