From 9fcdf0e92c0881017effddc8c6dafa0ca6d02fbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sat, 8 Jul 2006 12:56:18 +0000 Subject: [PATCH] MenuItem::Archive uses BArchivable::Archive inverted the enable state when initing the BMenu git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18071 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/Menu.cpp | 4 +++- src/kits/interface/MenuItem.cpp | 9 ++------- src/kits/interface/SeparatorItem.cpp | 5 ----- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index 7ae8f90ff4..e63ab35b6e 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -1161,7 +1161,9 @@ BMenu::InitData(BMessage *data) if (data != NULL) { data->FindInt32("_layout", (int32 *)&fLayout); data->FindBool("_rsize_to_fit", &fResizeToFit); - data->FindBool("_disable", &fEnabled); + bool disabled; + if (data->FindBool("_disable", &disabled) == B_OK) + fEnabled = !disabled; data->FindBool("_radio", &fRadioMode); bool disableTrigger = false; diff --git a/src/kits/interface/MenuItem.cpp b/src/kits/interface/MenuItem.cpp index 5f79d61e68..c9224fa0b3 100644 --- a/src/kits/interface/MenuItem.cpp +++ b/src/kits/interface/MenuItem.cpp @@ -179,16 +179,11 @@ BMenuItem::Instantiate(BMessage *data) } -extern const char* B_CLASS_FIELD; - - status_t BMenuItem::Archive(BMessage *data, bool deep) const { - status_t ret = B_OK; - if (!data->HasString(B_CLASS_FIELD)) - ret = data->AddString(B_CLASS_FIELD, "BMenuItem"); - + status_t ret = BArchivable::Archive(data, deep); + if (ret == B_OK && fLabel) ret = data->AddString("_label", Label()); diff --git a/src/kits/interface/SeparatorItem.cpp b/src/kits/interface/SeparatorItem.cpp index 8339fe1d68..318bcf6667 100644 --- a/src/kits/interface/SeparatorItem.cpp +++ b/src/kits/interface/SeparatorItem.cpp @@ -33,14 +33,9 @@ BSeparatorItem::~BSeparatorItem() } -extern const char* B_CLASS_FIELD; - status_t BSeparatorItem::Archive(BMessage* archive, bool deep) const { - if (!archive->HasString(B_CLASS_FIELD)) - archive->AddString(B_CLASS_FIELD, "BMenuItem"); - return BMenuItem::Archive(archive, deep); }