78 :
public ::std::set<PreviewCreationRequest,PreviewCreationRequest::Compare>
87 const std::weak_ptr<ContainerAdapter>& rpContainer)
95 std::weak_ptr<ContainerAdapter> pContainer)
96 : mpWeakContainer(
std::move(pContainer)),
98 maDelayedPreviewCreationTimer(
"sd MasterPageContainerQueue maDelayedPreviewCreationTimer"),
99 mnRequestsServedCount(0)
120 bool bSuccess (
false);
122 && rpDescriptor->maLargePreview.GetSizePixel().Width() == 0)
127 RequestQueue::iterator iRequest (::std::find_if(
134 if (iRequest->mnPriority < nPriority)
158 if (rpDescriptor->mpPreviewProvider !=
nullptr)
160 nCost = rpDescriptor->mpPreviewProvider->GetCostIndex();
161 if (rpDescriptor->mpPreviewProvider->NeedsPageObject())
162 if (rpDescriptor->mpPageObjectProvider !=
nullptr)
163 nCost += rpDescriptor->mpPageObjectProvider->GetCostIndex();
172 nPriority -= rpDescriptor->maToken / 3;
183 bool bIsShowingFullScreenShow (
false);
184 bool bWaitForMoreRequests (
false);
188 if (mpRequestQueue->empty())
196 bIsShowingFullScreenShow =
true;
200 PreviewCreationRequest aRequest (*mpRequestQueue->begin());
206 if (aRequest.mnPriority < snWaitForMoreRequestsPriorityThreshold
207 && (mnRequestsServedCount+mpRequestQueue->size() < snWaitForMoreRequestsCount))
213 bWaitForMoreRequests =
true;
217 mpRequestQueue->erase(mpRequestQueue->begin());
219 if (aRequest.mpDescriptor)
221 mnRequestsServedCount += 1;
222 if ( ! mpWeakContainer.expired())
224 std::shared_ptr<ContainerAdapter> pContainer (mpWeakContainer);
225 if (pContainer !=
nullptr)
226 pContainer->UpdateDescriptor(aRequest.mpDescriptor,
false,
true,
true);
232 if (!mpRequestQueue->empty() && ! bWaitForMoreRequests)
234 int nTimeout (snDelayedCreationTimeout);
235 if (bIsShowingFullScreenShow)
236 nTimeout = snDelayedCreationTimeoutWhenNotIdle;
237 maDelayedPreviewCreationTimer.SetTimeout(nTimeout);
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual void Start(bool bStartTimer=true) override
#define LINK(Instance, Class, Member)