Deal in terms of LastPositions instead of the individual position
Just a refactoring to add more encapsulation
This commit is contained in:
@@ -382,7 +382,8 @@ QString DockWidgetBase::affinityName() const
|
||||
|
||||
void DockWidgetBase::show()
|
||||
{
|
||||
if (isWindow() && (lastPosition()->m_wasFloating || !lastPosition()->isValid())) {
|
||||
LastPositions lastPositions = this->lastPositions();
|
||||
if (isWindow() && (lastPositions.wasFloating() || !lastPositions.isValid())) {
|
||||
// Create the FloatingWindow already, instead of waiting for the show event.
|
||||
// This reduces flickering on some platforms
|
||||
morphIntoFloatingWindow();
|
||||
@@ -428,7 +429,7 @@ FloatingWindow *DockWidgetBase::morphIntoFloatingWindow()
|
||||
return fw; // Nothing to do
|
||||
|
||||
if (isWindow()) {
|
||||
QRect geo = lastPosition()->lastFloatingGeometry();
|
||||
QRect geo = lastPositions().lastFloatingGeometry();
|
||||
if (geo.isNull()) {
|
||||
geo = geometry();
|
||||
const QPoint center = d->defaultCenterPosForFloating();
|
||||
@@ -477,9 +478,9 @@ void DockWidgetBase::addPlaceholderItem(Layouting::Item *item)
|
||||
d->m_lastPositions.addPosition(item);
|
||||
}
|
||||
|
||||
Position::Ptr DockWidgetBase::lastPosition() const
|
||||
LastPositions DockWidgetBase::lastPositions() const
|
||||
{
|
||||
return d->m_lastPositions.lastPosition;
|
||||
return d->m_lastPositions;
|
||||
}
|
||||
|
||||
QPoint DockWidgetBase::Private::defaultCenterPosForFloating()
|
||||
|
||||
Reference in New Issue
Block a user