bool selectModeStartup);
virtual ~PreviewPage();
- ucl::Result prepare();
+ ucl::Result prepare(int startItemIndex);
void showItem(int itemIndex);
void selectItem(int itemIndex);
int getSafeItemIndex(int itemIndex) const;
template <class SHOW_FUNC>
ucl::Result showItem(int itemIndex, SHOW_FUNC &&showFunc);
+ void forceBoxSizeCalculate();
+
void addUnrealizeLock();
void removeUnrealizeLock();
auto result = makeShared<PreviewPage>(
m_navi, onExitRequest, m_album, m_selectModeStartup);
- FAIL_RETURN_VALUE(result->prepare(), {}, "result->prepare() failed!");
+ FAIL_RETURN_VALUE(result->prepare(m_startItemIndex), {},
+ "result->prepare() failed!");
- if (m_startItemIndex > 0) {
- result->showItem(m_startItemIndex);
- }
if (m_selectModeStartup && m_autoSelectStartItem) {
result->selectItem(m_startItemIndex);
}
return getSafeItemIndex(m_imageGrid->getScrolledToItemIndex());
}
- Result PreviewPage::prepare()
+ Result PreviewPage::prepare(const int startItemIndex)
{
m_content = PageContent::Builder().
setFlags(PageContent::FLAG_BOTTOM_BUTTON |
if (!m_imageGrid) {
LOG_RETURN(RES_FAIL, "ImageGrid::build() failed!");
}
+ ImageGrid::Unrealizer u(*m_imageGrid);
m_content->set(*m_imageGrid);
if (m_selectModeStartup) {
switchToSelectMode();
}
+ if (startItemIndex > 0) {
+ showItem(startItemIndex);
+ }
return RES_OK;
}
if (m_animator) {
LOG_RETURN(RES_ILLEGAL_STATE, "Transition is in progress.");
}
+ forceBoxSizeCalculate();
return showItem(itemIndex, elm_scroller_region_show);
}
});
}
+ void ImageGrid::forceBoxSizeCalculate()
+ {
+ for (int i = 0; i < m_slotCount; ++i) {
+ if (((m_beginSlotIndex + i) & 1) == 0) {
+ m_slots[i]->getLayout().calculate();
+ }
+ }
+ m_box.calculate();
+ }
+
void ImageGrid::activateRotary()
{
m_isRotaryActive = true;
m_grid.setMin(m_gridW, m_gridH);
m_grid.setMax(m_gridW, m_gridH);
- evas_object_smart_calculate(m_layout);
+ m_layout.calculate();
}
void ImageViewer::updateScrollOffset()