intel: enable the active checkbox, if it's the first primary partition
* also set the active checkbox on edit * part of #7930 Change-Id: Ia91e5f7295e7868647cf940aa1f281bd8dab1918 Reviewed-on: https://review.haiku-os.org/c/haiku/+/8323 Haiku-Format: Haiku-format Bot <[email protected]> Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
committed by
waddlesplash
parent
afa8cd9c31
commit
c936122410
@@ -340,7 +340,7 @@ PartitionMapHandle::GetParameterEditor(B_PARAMETER_EDITOR_TYPE type,
|
|||||||
if (type == B_CREATE_PARAMETER_EDITOR
|
if (type == B_CREATE_PARAMETER_EDITOR
|
||||||
|| type == B_PROPERTIES_PARAMETER_EDITOR) {
|
|| type == B_PROPERTIES_PARAMETER_EDITOR) {
|
||||||
try {
|
try {
|
||||||
*editor = new PrimaryPartitionEditor();
|
*editor = new PrimaryPartitionEditor(type == B_CREATE_PARAMETER_EDITOR);
|
||||||
} catch (std::bad_alloc&) {
|
} catch (std::bad_alloc&) {
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,16 +10,20 @@
|
|||||||
#include <Catalog.h>
|
#include <Catalog.h>
|
||||||
#include <DiskDeviceTypes.h>
|
#include <DiskDeviceTypes.h>
|
||||||
#include <GroupView.h>
|
#include <GroupView.h>
|
||||||
|
#include <Partition.h>
|
||||||
#include <PartitionParameterEditor.h>
|
#include <PartitionParameterEditor.h>
|
||||||
#include <Variant.h>
|
#include <Variant.h>
|
||||||
#include <View.h>
|
#include <View.h>
|
||||||
|
#include <driver_settings.h>
|
||||||
|
|
||||||
|
|
||||||
#undef B_TRANSLATION_CONTEXT
|
#undef B_TRANSLATION_CONTEXT
|
||||||
#define B_TRANSLATION_CONTEXT "PrimaryPartitionEditor"
|
#define B_TRANSLATION_CONTEXT "PrimaryPartitionEditor"
|
||||||
|
|
||||||
|
|
||||||
PrimaryPartitionEditor::PrimaryPartitionEditor()
|
PrimaryPartitionEditor::PrimaryPartitionEditor(bool create)
|
||||||
|
:
|
||||||
|
fCreate(create)
|
||||||
{
|
{
|
||||||
fActiveCheckBox = new BCheckBox("active", B_TRANSLATE("Active partition"),
|
fActiveCheckBox = new BCheckBox("active", B_TRANSLATE("Active partition"),
|
||||||
NULL);
|
NULL);
|
||||||
@@ -33,6 +37,21 @@ PrimaryPartitionEditor::~PrimaryPartitionEditor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
PrimaryPartitionEditor::SetTo(BPartition* partition)
|
||||||
|
{
|
||||||
|
bool active = false;
|
||||||
|
if (fCreate) {
|
||||||
|
active = partition->CountChildren() == 0;
|
||||||
|
} else {
|
||||||
|
void* handle = parse_driver_settings_string(partition->Parameters());
|
||||||
|
active = get_driver_boolean_parameter(handle, "active", false, true);
|
||||||
|
unload_driver_settings(handle);
|
||||||
|
}
|
||||||
|
fActiveCheckBox->SetValue(active ? B_CONTROL_ON : B_CONTROL_OFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BView*
|
BView*
|
||||||
PrimaryPartitionEditor::View()
|
PrimaryPartitionEditor::View()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,9 +16,11 @@
|
|||||||
|
|
||||||
class PrimaryPartitionEditor : public BPartitionParameterEditor {
|
class PrimaryPartitionEditor : public BPartitionParameterEditor {
|
||||||
public:
|
public:
|
||||||
PrimaryPartitionEditor();
|
PrimaryPartitionEditor(bool create);
|
||||||
virtual ~PrimaryPartitionEditor();
|
virtual ~PrimaryPartitionEditor();
|
||||||
|
|
||||||
|
virtual void SetTo(BPartition* partition);
|
||||||
|
|
||||||
virtual BView* View();
|
virtual BView* View();
|
||||||
|
|
||||||
virtual status_t ParameterChanged(const char* name,
|
virtual status_t ParameterChanged(const char* name,
|
||||||
@@ -27,6 +29,7 @@ public:
|
|||||||
virtual status_t GetParameters(BString& parameters);
|
virtual status_t GetParameters(BString& parameters);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool fCreate;
|
||||||
BView* fView;
|
BView* fView;
|
||||||
BCheckBox* fActiveCheckBox;
|
BCheckBox* fActiveCheckBox;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user