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:
Alex Wilson
2010-07-27 20:17:13 +00:00
parent c3bcd1ce7c
commit 4a254e4ddb
9 changed files with 138 additions and 160 deletions
+15 -16
View File
@@ -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;