Generally, clean up new archiving constant names & strings to be consistent in all classes. Modify archiving constants to be const char* const (thanks Ingo). Also modify archiving in many classes to use less fields by storing more data in arrays and structs. The common min, max, and preferred sizes, for example are always stored in an array now. In BTwoDimensionalLayout and BSplitLayout, the insets are archived in a BRect. Also fixed a typo in BGridLayout which caused column info to be incorrect during archival.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37777 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+15
-16
@@ -318,10 +318,10 @@ ViewState::UpdateFrom(BPrivate::PortLink &link)
|
||||
|
||||
// archiving constants
|
||||
namespace {
|
||||
const char* kMinSizeField = "ViewLayoutData:minsize";
|
||||
const char* kMaxSizeField = "ViewLayoutData:maxsize";
|
||||
const char* kPreferredSizeField = "ViewLayoutData:prefsize";
|
||||
const char* kAlignmentField = "ViewLayoutData:alignment";
|
||||
const char* const kSizesField = "BView:sizes";
|
||||
// kSizesField = {min, max, pref}
|
||||
const char* const kAlignmentField = "BView:alignment";
|
||||
const char* const kLayoutField = "BView:layout";
|
||||
}
|
||||
|
||||
|
||||
@@ -345,15 +345,15 @@ struct BView::LayoutData {
|
||||
status_t
|
||||
AddDataToArchive(BMessage* archive)
|
||||
{
|
||||
status_t err = archive->AddSize(kMinSizeField, fMinSize);
|
||||
status_t err = archive->AddSize(kSizesField, fMinSize);
|
||||
|
||||
if (err == B_OK)
|
||||
err = archive->AddSize(kMaxSizeField, fMaxSize);
|
||||
err = archive->AddSize(kSizesField, fMaxSize);
|
||||
|
||||
if (err == B_OK)
|
||||
err = archive->AddSize(kSizesField, fPreferredSize);
|
||||
|
||||
if (err == B_OK)
|
||||
err = archive->AddSize(kPreferredSizeField, fPreferredSize);
|
||||
|
||||
if (err == B_OK)
|
||||
err = archive->AddAlignment(kAlignmentField, fAlignment);
|
||||
|
||||
return err;
|
||||
@@ -362,9 +362,9 @@ struct BView::LayoutData {
|
||||
void
|
||||
PopulateFromArchive(BMessage* archive)
|
||||
{
|
||||
archive->FindSize(kMinSizeField, &fMinSize);
|
||||
archive->FindSize(kMaxSizeField, &fMaxSize);
|
||||
archive->FindSize(kPreferredSizeField, &fPreferredSize);
|
||||
archive->FindSize(kSizesField, 0, &fMinSize);
|
||||
archive->FindSize(kSizesField, 1, &fMaxSize);
|
||||
archive->FindSize(kSizesField, 2, &fPreferredSize);
|
||||
archive->FindAlignment(kAlignmentField, &fAlignment);
|
||||
}
|
||||
|
||||
@@ -497,7 +497,7 @@ BView::BView(BMessage* archive)
|
||||
int32 i = 0;
|
||||
while (unarchiver.EnsureUnarchived("_views", i++) == B_OK)
|
||||
;
|
||||
unarchiver.EnsureUnarchived("_layout");
|
||||
unarchiver.EnsureUnarchived(kLayoutField);
|
||||
|
||||
} else {
|
||||
BMessage msg;
|
||||
@@ -618,7 +618,7 @@ BView::Archive(BMessage* data, bool deep) const
|
||||
ret = archiver.AddArchivable("_views", child, deep);
|
||||
|
||||
if (ret == B_OK)
|
||||
ret = archiver.AddArchivable("_layout", GetLayout(), deep);
|
||||
ret = archiver.AddArchivable(kLayoutField, GetLayout(), deep);
|
||||
}
|
||||
|
||||
return archiver.Finish(ret);
|
||||
@@ -643,12 +643,11 @@ BView::AllUnarchived(const BMessage* from)
|
||||
|
||||
if (err == B_OK) {
|
||||
BLayout*& layout = fLayoutData->fLayout;
|
||||
err = unarchiver.FindObject("_layout", layout);
|
||||
err = unarchiver.FindObject(kLayoutField, layout);
|
||||
if (err == B_OK && layout) {
|
||||
fFlags |= B_SUPPORTS_LAYOUT;
|
||||
fLayoutData->fLayout->BLayout::SetView(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return err;
|
||||
|
||||
Reference in New Issue
Block a user