DriveSetup: Refactor gui layout as per ML thread
* Move disk partitioning systems under Disk menu * Found and created bug #8827 (this wasn't introduced by my changes and was pre-existing) * My testing resulted in no regressions, however please test though!
This commit is contained in:
@@ -194,6 +194,10 @@ MainWindow::MainWindow(BRect frame)
|
|||||||
// Disk menu
|
// Disk menu
|
||||||
fDiskMenu = new BMenu(B_TRANSLATE("Disk"));
|
fDiskMenu = new BMenu(B_TRANSLATE("Disk"));
|
||||||
fDiskMenu->AddItem(fFormatMI);
|
fDiskMenu->AddItem(fFormatMI);
|
||||||
|
|
||||||
|
fDiskInitMenu = new BMenu(B_TRANSLATE("Initialize"));
|
||||||
|
fDiskMenu->AddItem(fDiskInitMenu);
|
||||||
|
|
||||||
fDiskMenu->AddItem(fEjectMI);
|
fDiskMenu->AddItem(fEjectMI);
|
||||||
fDiskMenu->AddItem(fSurfaceTestMI);
|
fDiskMenu->AddItem(fSurfaceTestMI);
|
||||||
|
|
||||||
@@ -206,8 +210,8 @@ MainWindow::MainWindow(BRect frame)
|
|||||||
fPartitionMenu = new BMenu(B_TRANSLATE("Partition"));
|
fPartitionMenu = new BMenu(B_TRANSLATE("Partition"));
|
||||||
fPartitionMenu->AddItem(fCreateMI);
|
fPartitionMenu->AddItem(fCreateMI);
|
||||||
|
|
||||||
fInitMenu = new BMenu(B_TRANSLATE("Initialize"));
|
fFormatMenu = new BMenu(B_TRANSLATE("Format"));
|
||||||
fPartitionMenu->AddItem(fInitMenu);
|
fPartitionMenu->AddItem(fFormatMenu);
|
||||||
|
|
||||||
fPartitionMenu->AddItem(fDeleteMI);
|
fPartitionMenu->AddItem(fDeleteMI);
|
||||||
|
|
||||||
@@ -514,12 +518,15 @@ void
|
|||||||
MainWindow::_UpdateMenus(BDiskDevice* disk,
|
MainWindow::_UpdateMenus(BDiskDevice* disk,
|
||||||
partition_id selectedPartition, partition_id parentID)
|
partition_id selectedPartition, partition_id parentID)
|
||||||
{
|
{
|
||||||
while (BMenuItem* item = fInitMenu->RemoveItem(0L))
|
while (BMenuItem* item = fFormatMenu->RemoveItem(0L))
|
||||||
|
delete item;
|
||||||
|
while (BMenuItem* item = fDiskInitMenu->RemoveItem(0L))
|
||||||
delete item;
|
delete item;
|
||||||
|
|
||||||
fCreateMI->SetEnabled(false);
|
fCreateMI->SetEnabled(false);
|
||||||
fUnmountMI->SetEnabled(false);
|
fUnmountMI->SetEnabled(false);
|
||||||
fInitMenu->SetEnabled(false);
|
fDiskInitMenu->SetEnabled(false);
|
||||||
|
fFormatMenu->SetEnabled(false);
|
||||||
|
|
||||||
if (!disk) {
|
if (!disk) {
|
||||||
fFormatMI->SetEnabled(false);
|
fFormatMI->SetEnabled(false);
|
||||||
@@ -543,7 +550,7 @@ MainWindow::_UpdateMenus(BDiskDevice* disk,
|
|||||||
fCreateMI->SetEnabled(true);
|
fCreateMI->SetEnabled(true);
|
||||||
|
|
||||||
bool prepared = disk->PrepareModifications() == B_OK;
|
bool prepared = disk->PrepareModifications() == B_OK;
|
||||||
fInitMenu->SetEnabled(prepared);
|
fFormatMenu->SetEnabled(prepared);
|
||||||
fDeleteMI->SetEnabled(prepared);
|
fDeleteMI->SetEnabled(prepared);
|
||||||
|
|
||||||
BPartition* partition = disk->FindDescendant(selectedPartition);
|
BPartition* partition = disk->FindDescendant(selectedPartition);
|
||||||
@@ -554,12 +561,6 @@ MainWindow::_UpdateMenus(BDiskDevice* disk,
|
|||||||
if (!diskSystem.SupportsInitializing())
|
if (!diskSystem.SupportsInitializing())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (disk->ID() != selectedPartition
|
|
||||||
&& disk->ContainsPartitioningSystem()
|
|
||||||
&& !diskSystem.IsFileSystem()) {
|
|
||||||
// Do not confuse the user with nested partition maps?
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
BMessage* message = new BMessage(MSG_INITIALIZE);
|
BMessage* message = new BMessage(MSG_INITIALIZE);
|
||||||
message->AddInt32("parent id", parentID);
|
message->AddInt32("parent id", parentID);
|
||||||
message->AddString("disk system", diskSystem.PrettyName());
|
message->AddString("disk system", diskSystem.PrettyName());
|
||||||
@@ -568,18 +569,32 @@ MainWindow::_UpdateMenus(BDiskDevice* disk,
|
|||||||
label << B_UTF8_ELLIPSIS;
|
label << B_UTF8_ELLIPSIS;
|
||||||
BMenuItem* item = new BMenuItem(label.String(), message);
|
BMenuItem* item = new BMenuItem(label.String(), message);
|
||||||
|
|
||||||
// TODO: Very unintuitive that we have to use the pretty name here!
|
// TODO: Very unintuitive that we have to use PrettyName (vs Name)
|
||||||
item->SetEnabled(partition != NULL
|
item->SetEnabled(partition != NULL
|
||||||
// && partition->CanInitialize(diskSystem.Name()));
|
|
||||||
&& partition->CanInitialize(diskSystem.PrettyName()));
|
&& partition->CanInitialize(diskSystem.PrettyName()));
|
||||||
fInitMenu->AddItem(item);
|
|
||||||
|
if (disk->ID() == selectedPartition
|
||||||
|
&& !diskSystem.IsFileSystem()) {
|
||||||
|
// Disk is selected, and DiskSystem is a partition map
|
||||||
|
fDiskInitMenu->AddItem(item);
|
||||||
|
} else if (diskSystem.IsFileSystem()) {
|
||||||
|
// Otherwise a filesystem
|
||||||
|
fFormatMenu->AddItem(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mount items
|
// Mount items
|
||||||
if (partition) {
|
if (partition) {
|
||||||
fInitMenu->SetEnabled(!partition->IsMounted()
|
fFormatMenu->SetEnabled(!partition->IsMounted()
|
||||||
&& !partition->IsReadOnly()
|
&& !partition->IsReadOnly()
|
||||||
&& partition->Device()->HasMedia());
|
&& partition->Device()->HasMedia()
|
||||||
|
&& fFormatMenu->CountItems() > 0);
|
||||||
|
|
||||||
|
fDiskInitMenu->SetEnabled(!partition->IsMounted()
|
||||||
|
&& !partition->IsReadOnly()
|
||||||
|
&& partition->Device()->HasMedia()
|
||||||
|
&& partition->IsDevice()
|
||||||
|
&& fDiskInitMenu->CountItems() > 0);
|
||||||
|
|
||||||
fDeleteMI->SetEnabled(!partition->IsMounted()
|
fDeleteMI->SetEnabled(!partition->IsMounted()
|
||||||
&& !partition->IsDevice());
|
&& !partition->IsDevice());
|
||||||
@@ -601,7 +616,8 @@ MainWindow::_UpdateMenus(BDiskDevice* disk,
|
|||||||
} else {
|
} else {
|
||||||
fDeleteMI->SetEnabled(false);
|
fDeleteMI->SetEnabled(false);
|
||||||
fMountMI->SetEnabled(false);
|
fMountMI->SetEnabled(false);
|
||||||
fInitMenu->SetEnabled(false);
|
fFormatMenu->SetEnabled(false);
|
||||||
|
fDiskInitMenu->SetEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prepared)
|
if (prepared)
|
||||||
|
|||||||
@@ -83,8 +83,10 @@ private:
|
|||||||
SpaceIDMap fSpaceIDMap;
|
SpaceIDMap fSpaceIDMap;
|
||||||
|
|
||||||
BMenu* fDiskMenu;
|
BMenu* fDiskMenu;
|
||||||
|
BMenu* fDiskInitMenu;
|
||||||
|
|
||||||
BMenu* fPartitionMenu;
|
BMenu* fPartitionMenu;
|
||||||
BMenu* fInitMenu;
|
BMenu* fFormatMenu;
|
||||||
|
|
||||||
BMenuItem* fFormatMI;
|
BMenuItem* fFormatMI;
|
||||||
BMenuItem* fEjectMI;
|
BMenuItem* fEjectMI;
|
||||||
|
|||||||
Reference in New Issue
Block a user