Since the time preflet is now layout-aware, scrolling the zone list to

the current time zone must be done after layouting has been done, else 
the view doesn't have a valid size to work with yet. Resolves #7681.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42106 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
anevilyak
2011-06-11 20:51:27 +00:00
parent 14282c1e55
commit 28ca7ae021
3 changed files with 16 additions and 16 deletions
+3 -2
View File
@@ -116,7 +116,7 @@ TTimeWindow::_InitWindow()
tabView->AddTab(fDateTimeView); tabView->AddTab(fDateTimeView);
tabView->AddTab(fTimeZoneView); tabView->AddTab(fTimeZoneView);
tabView->AddTab(fNetworkTimeView); tabView->AddTab(fNetworkTimeView);
fBaseView->AddChild(tabView); fBaseView->AddChild(tabView);
fRevertButton = new BButton("revert", B_TRANSLATE("Revert"), fRevertButton = new BButton("revert", B_TRANSLATE("Revert"),
@@ -125,11 +125,12 @@ TTimeWindow::_InitWindow()
fRevertButton->SetTarget(this); fRevertButton->SetTarget(this);
fRevertButton->SetExplicitAlignment( fRevertButton->SetExplicitAlignment(
BAlignment(B_ALIGN_LEFT, B_ALIGN_MIDDLE)); BAlignment(B_ALIGN_LEFT, B_ALIGN_MIDDLE));
BLayoutBuilder::Group<>(this, B_VERTICAL, 5) BLayoutBuilder::Group<>(this, B_VERTICAL, 5)
.Add(fBaseView) .Add(fBaseView)
.Add(fRevertButton) .Add(fRevertButton)
.SetInsets(5, 5, 5, 5); .SetInsets(5, 5, 5, 5);
} }
+12 -13
View File
@@ -109,25 +109,24 @@ TimeZoneView::AttachedToWindow()
BView::AttachedToWindow(); BView::AttachedToWindow();
if (Parent()) if (Parent())
SetViewColor(Parent()->ViewColor()); SetViewColor(Parent()->ViewColor());
}
void
TimeZoneView::AllAttached()
{
BView::AllAttached();
if (!fInitialized) { if (!fInitialized) {
fInitialized = true; fInitialized = true;
fSetZone->SetTarget(this); fSetZone->SetTarget(this);
fZoneList->SetTarget(this); fZoneList->SetTarget(this);
}
}
// update displays
if (fCurrentZoneItem != NULL) { void
fZoneList->Select(fZoneList->IndexOf(fCurrentZoneItem)); TimeZoneView::DoLayout()
fCurrent->SetText(fCurrentZoneItem->Text()); {
fZoneList->ScrollToSelection(); BView::DoLayout();
} if (fCurrentZoneItem != NULL) {
fZoneList->Select(fZoneList->IndexOf(fCurrentZoneItem));
fCurrent->SetText(fCurrentZoneItem->Text());
fZoneList->ScrollToSelection();
} }
} }
@@ -248,7 +247,7 @@ TimeZoneView::_InitView()
fSetZone->SetEnabled(false); fSetZone->SetEnabled(false);
fSetZone->SetExplicitAlignment( fSetZone->SetExplicitAlignment(
BAlignment(B_ALIGN_RIGHT, B_ALIGN_BOTTOM)); BAlignment(B_ALIGN_RIGHT, B_ALIGN_BOTTOM));
const float kInset = be_control_look->DefaultItemSpacing(); const float kInset = be_control_look->DefaultItemSpacing();
BLayoutBuilder::Group<>(this) BLayoutBuilder::Group<>(this)
.Add(scrollList) .Add(scrollList)
+1 -1
View File
@@ -31,12 +31,12 @@ public:
virtual ~TimeZoneView(); virtual ~TimeZoneView();
virtual void AttachedToWindow(); virtual void AttachedToWindow();
virtual void AllAttached();
virtual void MessageReceived(BMessage* message); virtual void MessageReceived(BMessage* message);
bool CheckCanRevert(); bool CheckCanRevert();
protected: protected:
virtual bool GetToolTipAt(BPoint point, BToolTip** _tip); virtual bool GetToolTipAt(BPoint point, BToolTip** _tip);
virtual void DoLayout();
private: private:
void _UpdateDateTime(BMessage* message); void _UpdateDateTime(BMessage* message);