diff --git a/headers/private/storage/Partition.h b/headers/private/storage/Partition.h index 8f49a0ccc9..70a32bf97e 100644 --- a/headers/private/storage/Partition.h +++ b/headers/private/storage/Partition.h @@ -54,6 +54,7 @@ public: const char* Name() const; BString ContentName() const; + const char* RawContentName() const; const char* Type() const; // See DiskDeviceTypes.h const char* ContentType() const; // See DiskDeviceTypes.h partition_id ID() const; diff --git a/src/add-ons/disk_systems/bfs/InitializeParameterEditor.cpp b/src/add-ons/disk_systems/bfs/InitializeParameterEditor.cpp index 7eacc25103..2f75e1474b 100644 --- a/src/add-ons/disk_systems/bfs/InitializeParameterEditor.cpp +++ b/src/add-ons/disk_systems/bfs/InitializeParameterEditor.cpp @@ -56,7 +56,7 @@ InitializeBFSEditor::SetTo(BPartition* partition) { BString name = partition->Name(); if (name.IsEmpty()) - name = partition->ContentName(); + name = partition->RawContentName(); if (!name.IsEmpty()) fNameControl->SetText(name.String()); off_t size = partition->Size(); diff --git a/src/add-ons/disk_systems/btrfs/InitializeParameterEditor.cpp b/src/add-ons/disk_systems/btrfs/InitializeParameterEditor.cpp index 046be793c2..4f5abf3efb 100644 --- a/src/add-ons/disk_systems/btrfs/InitializeParameterEditor.cpp +++ b/src/add-ons/disk_systems/btrfs/InitializeParameterEditor.cpp @@ -54,7 +54,7 @@ InitializeBTRFSEditor::SetTo(BPartition* partition) { BString name = partition->Name(); if (name.IsEmpty()) - name = partition->ContentName(); + name = partition->RawContentName(); if (!name.IsEmpty()) fNameControl->SetText(name.String()); } diff --git a/src/add-ons/disk_systems/fat/InitializeParameterEditor.cpp b/src/add-ons/disk_systems/fat/InitializeParameterEditor.cpp index 95148eff2e..7fe1cf14e8 100644 --- a/src/add-ons/disk_systems/fat/InitializeParameterEditor.cpp +++ b/src/add-ons/disk_systems/fat/InitializeParameterEditor.cpp @@ -55,7 +55,7 @@ InitializeFATEditor::SetTo(BPartition* partition) { BString name = partition->Name(); if (name.IsEmpty()) - name = partition->ContentName(); + name = partition->RawContentName(); if (!name.IsEmpty()) fNameControl->SetText(name.String()); } diff --git a/src/add-ons/disk_systems/ntfs/InitializeParameterEditor.cpp b/src/add-ons/disk_systems/ntfs/InitializeParameterEditor.cpp index cf5a62f032..28909fa687 100644 --- a/src/add-ons/disk_systems/ntfs/InitializeParameterEditor.cpp +++ b/src/add-ons/disk_systems/ntfs/InitializeParameterEditor.cpp @@ -50,7 +50,7 @@ InitializeNTFSEditor::SetTo(BPartition* partition) { BString name = partition->Name(); if (name.IsEmpty()) - name = partition->ContentName(); + name = partition->RawContentName(); if (!name.IsEmpty()) fNameControl->SetText(name.String()); } diff --git a/src/apps/drivesetup/Support.cpp b/src/apps/drivesetup/Support.cpp index 1db3f47f0d..0ca097bcb4 100644 --- a/src/apps/drivesetup/Support.cpp +++ b/src/apps/drivesetup/Support.cpp @@ -52,7 +52,7 @@ dump_partition_info(const BPartition* partition) printf("\tIsBusy(): %s\n\n", partition->IsBusy() ? "true" : "false"); printf("\tFlags(): %" B_PRIx32 "\n\n", partition->Flags()); printf("\tName(): %s\n", partition->Name()); - printf("\tContentName(): %s\n", partition->ContentName().String()); + printf("\tContentName(): %s\n", partition->RawContentName()); printf("\tType(): %s\n", partition->Type()); printf("\tContentType(): %s\n", partition->ContentType()); printf("\tID(): %" B_PRIx32 "\n\n", partition->ID()); diff --git a/src/kits/storage/disk_device/DiskDeviceJobGenerator.cpp b/src/kits/storage/disk_device/DiskDeviceJobGenerator.cpp index e49b4c0d86..c7f984e845 100644 --- a/src/kits/storage/disk_device/DiskDeviceJobGenerator.cpp +++ b/src/kits/storage/disk_device/DiskDeviceJobGenerator.cpp @@ -434,7 +434,7 @@ DiskDeviceJobGenerator::_GenerateRemainingJobs(BPartition* parent, // content name if ((changeFlags & B_PARTITION_CHANGED_NAME) - || compare_string(partition->ContentName(), + || compare_string(partition->RawContentName(), partitionData->content_name)) { status_t error = _GenerateSetContentNameJob(partition); if (error != B_OK) @@ -506,7 +506,7 @@ DiskDeviceJobGenerator::_GenerateInitializeJob(BPartition* partition) return B_NO_MEMORY; error = job->Init(partition->ContentType(), - partition->ContentName(), partition->ContentParameters()); + partition->RawContentName(), partition->ContentParameters()); if (error != B_OK) { delete job; return error; @@ -550,7 +550,7 @@ DiskDeviceJobGenerator::_GenerateSetContentNameJob(BPartition* partition) if (!job) return B_NO_MEMORY; - error = job->Init(partition->ContentName(), + error = job->Init(partition->RawContentName(), B_DISK_DEVICE_JOB_SET_CONTENT_NAME); if (error != B_OK) { delete job; diff --git a/src/kits/storage/disk_device/MutablePartition.cpp b/src/kits/storage/disk_device/MutablePartition.cpp index 75d96f17d6..a04ac123ab 100644 --- a/src/kits/storage/disk_device/MutablePartition.cpp +++ b/src/kits/storage/disk_device/MutablePartition.cpp @@ -218,25 +218,6 @@ BMutablePartition::SetName(const char* name) BString BMutablePartition::ContentName() const { - if (fData->content_name == NULL) { - // Give a default name to unnamed volumes - off_t divisor = 1ULL << 40; - off_t diskSize = fData->content_size; - char unit = 'T'; - if (diskSize < divisor) { - divisor = 1UL << 30; - unit = 'G'; - if (diskSize < divisor) { - divisor = 1UL << 20; - unit = 'M'; - } - } - double size = double((10 * diskSize + divisor - 1) / divisor); - BString name; - name.SetToFormat("%g %ciB %s volume", size / 10, unit, fData->content_type); - return name; - } - return fData->content_name; } diff --git a/src/kits/storage/disk_device/Partition.cpp b/src/kits/storage/disk_device/Partition.cpp index c31be1c77d..b237f9693d 100644 --- a/src/kits/storage/disk_device/Partition.cpp +++ b/src/kits/storage/disk_device/Partition.cpp @@ -261,7 +261,8 @@ BPartition::Name() const BString BPartition::ContentName() const { - if (_PartitionData()->content_name == NULL) { + if ((_PartitionData()->content_name == NULL || strlen(_PartitionData()->content_name) == 0) + && ContainsFileSystem()) { // Give a default name to unnamed volumes off_t divisor = 1ULL << 40; off_t diskSize = _PartitionData()->content_size; @@ -284,6 +285,13 @@ BPartition::ContentName() const } +const char* +BPartition::RawContentName() const +{ + return _PartitionData()->content_name; +} + + /*! \brief Returns a human readable string for the type of the partition. \return A human readable string for the type of the partition. */