ucl::Widget &widget, Elm_Atspi_Relation_Type flowRelation)>;
public:
- static AtspiHighlightHelperSRef newInstance(ucl::ElmWidget &rootWidget);
+ static AtspiHighlightHelperSRef newInstance(Presenter &parent,
+ ucl::ElmWidget &rootWidget);
void setEventHandler(EventHandler handler);
void registerWidget(ucl::ElmWidget &widget);
AtspiHighlightHelper(ucl::IRefCountObj &rc);
virtual ~AtspiHighlightHelper();
- ucl::Result prepare(ucl::ElmWidget &rootWidget);
+ ucl::Result prepare(Presenter &parent, ucl::ElmWidget &rootWidget);
private:
void onAtspiGesture(ucl::Widget &widget, void *eventInfo);
inline ucl::Result Dialog::prepare(ucl::ElmWidget &parent,
const PopupType popupType, ON_PREPARE &&onPrepare)
{
- UCL_FAIL_RETURN(Presenter::prepare(parent),
+ UCL_FAIL_RETURN(Presenter::prepare(parent, PF_DEACTIVATOR),
"Presenter::prepare() failed!");
UCL_FAIL_RETURN(createPopup(parent, popupType),
bool isEmpty() const;
Builder &clear();
Builder &addOption(Option option);
- MoreOptionsPresenterSRef build(ucl::ElmWidget &parent) const;
+ Builder &setParentWidget(const ucl::ElmWidgetSRef &parentWidget);
+ MoreOptionsPresenterSRef build(Presenter &parent) const;
private:
ucl::SharedRef<MoreOptions> m_options;
+ ucl::ElmWidgetSRef m_parentWidget;
};
class IListener : public ucl::Polymorphic {
const MoreOptionsCSRef &options);
virtual ~MoreOptionsPresenter();
- ucl::Result prepare(ucl::ElmWidget &parent);
+ ucl::Result prepare(Presenter &parent, ucl::ElmWidget &parentWidget);
ucl::Result addItem(const Option &option);
bool resetTimer(double timeout);
const ExitRequestHandler &onExitRequest);
virtual ~NoContentPage();
- ucl::Result prepare();
+ ucl::Result doPrepare(ucl::NaviItem &item);
};
}
const ExitRequestHandler &onExitRequest);
virtual ~Page();
- template <class ITEM_FACTORY>
- ucl::Result prepare(ITEM_FACTORY &&makeItem);
+ template <class ON_PREPARE>
+ ucl::Result prepare(ON_PREPARE &&onPrepare);
ucl::NaviItem getItem();
namespace gallery {
- template <class ITEM_FACTORY>
- inline ucl::Result Page::prepare(ITEM_FACTORY &&makeItem)
+ template <class ON_PREPARE>
+ inline ucl::Result Page::prepare(ON_PREPARE &&onPrepare)
{
- m_item = makeItem();
- if (!m_item) {
- UCL_LOG_RETURN(ucl::RES_FAIL, "m_item is NULL");
- }
+ UCL_FAIL_RETURN(Presenter::prepare(*m_navi),
+ "Presenter::prepare() failed!");
+
+ UCL_FAIL_RETURN(onPrepare(m_item), "onPrepare() failed!");
+
return preparePart2();
}
PF_PASSIVE = 0,
PF_DEACTIVATOR = (PF_ADD_DEACTIVATOR_SOURCES | PF_ADD_SELF_EXCEPT),
- PF_DEFAULT = PF_DEACTIVATOR
+ PF_DEFAULT = PF_ADD_DEACTIVATOR_SOURCES
};
protected:
const IMediaAlbumSRef &album, bool selectModeStartup);
virtual ~PreviewPage();
- ucl::Result prepare(int startItemIndex);
+ ucl::Result doPrepare(int startItemIndex, ucl::NaviItem &item);
void showItem(int itemIndex);
void selectItem(int itemIndex);
int getSafeItemIndex(int itemIndex) const;
public:
Builder();
Builder &setFlags(int flags);
- SelectModePresenterSRef build(PageContent &content) const;
+ Builder &setPageContent(const PageContentSRef &content);
+ SelectModePresenterSRef build(Presenter &parent) const;
private:
+ PageContentSRef m_content;
int m_flags;
};
private:
friend class ucl::ReffedObj<SelectModePresenter>;
SelectModePresenter(ucl::IRefCountObj &rc,
- PageContent &content, int flags);
+ const PageContentSRef &content, int flags);
virtual ~SelectModePresenter();
- ucl::Result prepare();
+ ucl::Result prepare(Presenter &parent);
void doUpdate();
const IMediaAlbumSRef &album);
virtual ~ThumbnailPage();
- ucl::Result prepare();
+ ucl::Result doPrepare(ucl::NaviItem &item);
void reload();
const MediaItemSRef &media);
virtual ~VideoPlayerPage();
- ucl::Result prepare();
+ ucl::Result doPrepare(ucl::NaviItem &item);
ucl::Result prepareSoundManager();
const MediaItemSRef &media, bool exitOnZoomOut);
virtual ~ViewerPage();
- ucl::Result prepare(int imageLoadSize, bool isImageLoadSizeFull);
+ ucl::Result doPrepare(int imageLoadSize, bool isImageLoadSizeFull,
+ ucl::NaviItem &item);
void zoomIn(int originX, int originY);
void onJobComplete();
- // Presenter //
-
- virtual void onActivateBy(const DeactivatorInfo &info) final override;
- virtual void onDeactivateBy(const DeactivatorInfo &info) final override;
-
// Page //
virtual void onBackKey() final override;
using ucl::ATSPI_ON_GESTURE;
AtspiHighlightHelperSRef AtspiHighlightHelper::newInstance(
- ElmWidget &rootWidget)
+ Presenter &parent, ElmWidget &rootWidget)
{
auto result = makeShared<AtspiHighlightHelper>();
- FAIL_RETURN_VALUE(result->prepare(rootWidget), {},
+ FAIL_RETURN_VALUE(result->prepare(parent, rootWidget), {},
"result->prepare() failed!");
return result;
{
}
- Result AtspiHighlightHelper::prepare(ElmWidget &rootWidget)
+ Result AtspiHighlightHelper::prepare(Presenter &parent,
+ ElmWidget &rootWidget)
{
- FAIL_RETURN(Presenter::prepare(rootWidget),
+ FAIL_RETURN(Presenter::prepare(parent),
"Presenter::prepare() failed!");
registerWidget(rootWidget);
return *this;
}
+ MoreOptionsPresenter::Builder &MoreOptionsPresenter::Builder::
+ setParentWidget(const ElmWidgetSRef &parentWidget)
+ {
+ m_parentWidget = parentWidget;
+ return *this;
+ }
+
MoreOptionsPresenterSRef MoreOptionsPresenter::Builder::build(
- ElmWidget &parent) const
+ Presenter &parent) const
{
if (isEmpty()) {
LOG_RETURN_VALUE(RES_INVALID_ARGUMENTS, {}, "Builder is empty!");
}
+ if (!m_parentWidget) {
+ LOG_RETURN_VALUE(RES_INVALID_ARGUMENTS, {},
+ "m_parentWidget is NULL!");
+ }
auto result = makeShared<MoreOptionsPresenter>(m_options);
- FAIL_RETURN_VALUE(result->prepare(parent), {},
+ FAIL_RETURN_VALUE(result->prepare(parent, *m_parentWidget), {},
"result->prepare() failed!");
return result;
}
}
- Result MoreOptionsPresenter::prepare(ElmWidget &parent)
+ Result MoreOptionsPresenter::prepare(Presenter &parent,
+ ElmWidget &parentWidget)
{
- FAIL_RETURN(Presenter::prepare(parent), "Presenter::prepare() failed!");
+ FAIL_RETURN(Presenter::prepare(parent, PF_DEACTIVATOR),
+ "Presenter::prepare() failed!");
- Evas_Object *const more = eext_more_option_add(parent);
+ Evas_Object *const more = eext_more_option_add(parentWidget);
if (!more) {
LOG_RETURN(RES_FAIL, "eext_more_option_add() failed!");
}
deactivateBy(m_widget.get());
+ parent.addDeactivatorSource(*m_widget);
+
return RES_OK;
}
namespace gallery {
- using ucl::Layout;
+ using ucl::NaviItem;
using ucl::NaviframeSRef;
+ using ucl::Layout;
using ucl::LAYOUT_NO_CONTENTS;
using ucl::PART_TITLE;
auto result = makeShared<NoContentPage>(m_navi, onExitRequest);
- FAIL_RETURN_VALUE(result->prepare(), {}, "result->prepare() failed!");
+ FAIL_RETURN_VALUE(result->prepare([&result](NaviItem &item)
+ {
+ return result->doPrepare(item);
+ }),
+ {}, "result->prepare() failed!");
return result;
}
{
}
- Result NoContentPage::prepare()
+ Result NoContentPage::doPrepare(NaviItem &item)
{
const auto layout = Layout::Builder().
setIsOwner(true).
layout->setText(STR_APP_NAME, PART_TITLE);
layout->setText(STR_NO_PHOTOS);
- FAIL_RETURN(Page::prepare(
- [this, &layout]()
- {
- return getNaviframe().push(*layout, NAVIFRAME_NO_CLIP);
- }),
- "Page::prepare() failed!");
+ item = getNaviframe().push(*layout, NAVIFRAME_NO_CLIP);
+ if (!item) {
+ LOG_RETURN(RES_FAIL, "Naviframe::push() failed!");
+ }
layout->setIsOwner(false);
Result Page::preparePart2()
{
- FAIL_RETURN(Presenter::prepare(*m_navi),
- "Presenter::prepare() failed!");
+ if (!m_item) {
+ UCL_LOG_RETURN(ucl::RES_FAIL, "m_item is NULL");
+ }
Evas_Object *content = m_item.getContent();
if (!content) {
namespace gallery {
+ using ucl::NaviItem;
using ucl::NaviframeSRef;
using ucl::RefCountAware;
auto result = makeShared<PreviewPage>(
m_navi, onExitRequest, m_album, m_selectModeStartup);
- FAIL_RETURN_VALUE(result->prepare(m_startItemIndex), {},
- "result->prepare() failed!");
+ FAIL_RETURN_VALUE(result->prepare([this, &result](NaviItem &item)
+ {
+ return result->doPrepare(m_startItemIndex, item);
+ }),
+ {}, "result->prepare() failed!");
if (m_selectModeStartup && m_autoSelectStartItem) {
result->selectItem(m_startItemIndex);
}
m_isSelected = selected;
- if (m_imageGrid.isInSelectMode()) {
+ if (m_imageGrid.isInSelectMode() && !m_imageGrid.isInTransition()) {
ImageGrid::ItemParams params = {};
addFlags(params);
m_imageGrid.updateItem(m_index, params);
return getSafeItemIndex(m_imageGrid->getScrolledToItemIndex());
}
- Result PreviewPage::prepare(const int startItemIndex)
+ Result PreviewPage::doPrepare(const int startItemIndex, NaviItem &item)
{
m_content = PageContent::Builder().
setFlags(PageContent::FLAG_BOTTOM_BUTTON |
if (!m_content) {
LOG_RETURN(RES_FAIL, "PageContent::build() failed!");
}
+ setDeactivatorSink(m_content);
m_imageGrid = ImageGrid::Builder().
setListener(asWeakThis<ImageGrid::IListener>(this)).
if (!m_imageGrid) {
LOG_RETURN(RES_FAIL, "ImageGrid::build() failed!");
}
- ImageGrid::Unrealizer u(*m_imageGrid);
-
m_content->set(*m_imageGrid);
+ ImageGrid::Unrealizer u(*m_imageGrid);
m_more = MoreOptionsPresenter::Builder().
+ setParentWidget(m_content).
addOption({impl::MORE_OPTION_ID_DELETE,
STR_DELETE, nullptr,
getImageTheme(ICON_MORE_OPT_DELETE)}).
- build(*m_content);
+ build(*this);
if (!m_more) {
LOG_RETURN(RES_FAIL, "MoreOptionsPresenter::build() failed!");
}
-
m_content->set(m_more->getWidget(), PageContent::Part::MORE_OPTIONS);
- addDeactivatorSource(m_more->getWidget());
m_smp = SelectModePresenter::Builder().
+ setPageContent(m_content).
setFlags(SelectModePresenter::FLAG_NO_MORE_OPTIONS).
- build(*m_content);
+ build(*this);
if (!m_smp) {
LOG_RETURN(RES_FAIL, "SelectModePresenter::build() failed!");
}
+ m_atspiHelper = AtspiHighlightHelper::newInstance(*this, getWindow());
+ if (!m_atspiHelper) {
+ LOG_RETURN(RES_FAIL, "AtspiHighlightHelper::newInstance() failed!");
+ }
+
FAIL_RETURN(m_album->forEachMedia(
DELEGATE(PreviewPage::onEachMedia, this)),
"m_album->forEachMedia() failed!");
- FAIL_RETURN(Page::prepare(
- [this]()
- {
- return getNaviframe().push(*m_content, NAVIFRAME_NO_CLIP);
- }),
- "Page::prepare() failed!");
+ m_imageGrid->setItemCount(m_items.size());
- m_atspiHelper = AtspiHighlightHelper::newInstance(getWindow());
- if (!m_atspiHelper) {
- LOG_RETURN(RES_FAIL, "AtspiHighlightHelper::newInstance() failed!");
+ item = getNaviframe().push(*m_content, NAVIFRAME_NO_CLIP);
+ if (!item) {
+ LOG_RETURN(RES_FAIL, "Naviframe::push() failed!");
}
- m_imageGrid->setItemCount(m_items.size());
-
m_album->addChangeHandler(WEAK_DELEGATE(
PreviewPage::onAlbumChanged, asWeak(*this)));
impl::BRING_IN_SCROLL_FRICTION);
}
- if (!info.isBroadcast) {
- m_more->activateBy(info.deactivator);
- if (m_atspiHelper) {
- m_atspiHelper->activateBy(info.deactivator);
- }
- }
-
- m_smp->activateBy(info.deactivator);
-
if (isActive() || m_smp->isActive()) {
m_imageGrid->activateRotary();
}
void PreviewPage::onDeactivateBy(const DeactivatorInfo &info)
{
- if (!info.isBroadcast) {
- m_more->deactivateBy(info.deactivator);
- m_atspiHelper->deactivateBy(info.deactivator);
- }
-
- m_smp->deactivateBy(info.deactivator);
-
if (!m_smp->isActive()) {
m_imageGrid->deactivateRotary();
}
item->setSelected(false);
}
+ m_imageGrid->setSelectModeEnabled(true);
+ if (m_imageGrid->isInTransition()) {
+ deactivateBy(m_imageGrid.get());
+ }
+
m_content->setMoreOptionsVisible(false);
m_smp->setBottomButtonText(STR_DELETE_CAPS);
m_smp->update(m_selectCount, m_items.size());
m_smp->setVisible(true);
-
- m_imageGrid->setSelectModeEnabled(true);
- if (m_imageGrid->isInTransition()) {
- deactivateBy(m_imageGrid.get());
- }
}
void PreviewPage::switchToNormalMode()
}
m_isInSelectMode = false;
- m_content->setMoreOptionsVisible(true);
-
- m_smp->setVisible(false);
-
m_imageGrid->setSelectModeEnabled(false);
if (m_imageGrid->isInTransition()) {
deactivateBy(m_imageGrid.get());
}
+
+ m_content->setMoreOptionsVisible(true);
+
+ m_smp->setVisible(false);
}
void PreviewPage::toggleItemSelected(const int itemIndex)
const TString &processingText,
const bool forceProgress)
{
- FAIL_RETURN(Presenter::prepare(parent),
+ FAIL_RETURN(Presenter::prepare(parent, PF_PASSIVE),
"Presenter::prepare() failed!");
FAIL_RETURN(createWidget(parent, processingText),
return *this;
}
+ SelectModePresenter::Builder &SelectModePresenter::Builder::
+ setPageContent(const PageContentSRef &content)
+ {
+ m_content = content;
+ return *this;
+ }
+
SelectModePresenterSRef SelectModePresenter::Builder::build(
- PageContent &content) const
+ Presenter &parent) const
{
- auto result = makeShared<SelectModePresenter>(content, m_flags);
+ if (!m_content) {
+ LOG_RETURN_VALUE(RES_INVALID_ARGUMENTS, {}, "m_content is NULL!");
+ }
- FAIL_RETURN_VALUE(result->prepare(), {},
+ auto result = makeShared<SelectModePresenter>(m_content, m_flags);
+
+ FAIL_RETURN_VALUE(result->prepare(parent), {},
"result->prepare() failed!");
return result;
// SelectModePresenter //
SelectModePresenter::SelectModePresenter(IRefCountObj &rc,
- PageContent &content, const int flags) :
+ const PageContentSRef &content, const int flags) :
Presenter(rc),
- m_content(asShared(content)),
+ m_content(content),
m_flags(flags),
m_totalCount(0),
m_selectCount(0),
deletePopup();
}
- Result SelectModePresenter::prepare()
+ Result SelectModePresenter::prepare(Presenter &parent)
{
- FAIL_RETURN(Presenter::prepare(*m_content),
+ FAIL_RETURN(Presenter::prepare(parent, PF_DEACTIVATOR),
"Presenter::prepare() failed!");
m_selectButton = makeShared<StyledWidget>(
elm_button_add(*m_content), true);
m_selectButton->setStyle(impl::SELECT_BTN_STYLE);
m_content->set(*m_selectButton, PageContent::Part::SELECT_BUTTON);
+ m_content->setSelectButtonVisible(false);
show(*m_selectButton);
m_selectButton->addEventHandler(BTN_CLICKED, WEAK_DELEGATE(
SelectModePresenter::onRotary), this);
}
+ deactivateBy(m_selectButton.get());
+
return RES_OK;
}
namespace gallery {
+ using ucl::NaviItem;
using ucl::NaviframeSRef;
using ucl::RefCountAware;
auto result = makeShared<ThumbnailPage>(
m_navi, onExitRequest, m_album);
- FAIL_RETURN_VALUE(result->prepare(), {}, "result->prepare() failed!");
+ FAIL_RETURN_VALUE(result->prepare([&result](NaviItem &item)
+ {
+ return result->doPrepare(item);
+ }),
+ {}, "result->prepare() failed!");
return result;
}
m_imageGrid->setItemCount(m_mediaItems.size());
}
- Result ThumbnailPage::prepare()
+ Result ThumbnailPage::doPrepare(NaviItem &item)
{
m_content = PageContent::Builder().
setFlags(PageContent::FLAG_MORE_OPTIONS).
if (!m_content) {
LOG_RETURN(RES_FAIL, "PageContent::build() failed!");
}
+ setDeactivatorSink(m_content);
m_imageGrid = ImageGrid::Builder().
setListener(asWeakThis<ImageGrid::IListener>(this)).
if (!m_imageGrid) {
LOG_RETURN(RES_FAIL, "ImageGrid::build() failed!");
}
-
m_content->set(*m_imageGrid);
m_more = MoreOptionsPresenter::Builder().
+ setParentWidget(m_content).
addOption({impl::MORE_OPTION_ID_DELETE,
STR_DELETE, nullptr,
getImageTheme(ICON_MORE_OPT_DELETE)}).
- build(*m_content);
+ build(*this);
if (!m_more) {
LOG_RETURN(RES_FAIL, "MoreOptionsPresenter::build() failed!");
}
-
m_content->set(m_more->getWidget(), PageContent::Part::MORE_OPTIONS);
- addDeactivatorSource(m_more->getWidget());
+
+ m_atspiHelper = AtspiHighlightHelper::newInstance(*this, getWindow());
+ if (!m_atspiHelper) {
+ LOG_RETURN(RES_FAIL, "AtspiHighlightHelper::newInstance() failed!");
+ }
FAIL_RETURN(m_album->forEachMedia(
DELEGATE(ThumbnailPage::onEachMedia, this)),
"m_album->forEachMedia() failed!");
- FAIL_RETURN(Page::prepare(
- [this]()
- {
- return getNaviframe().push(*m_content, NAVIFRAME_NO_CLIP);
- }),
- "Page::prepare() failed!");
+ m_imageGrid->setItemCount(m_mediaItems.size());
- m_atspiHelper = AtspiHighlightHelper::newInstance(getWindow());
- if (!m_atspiHelper) {
- LOG_RETURN(RES_FAIL, "AtspiHighlightHelper::newInstance() failed!");
+ item = getNaviframe().push(*m_content, NAVIFRAME_NO_CLIP);
+ if (!item) {
+ LOG_RETURN(RES_FAIL, "Naviframe::push() failed!");
}
- m_imageGrid->setItemCount(m_mediaItems.size());
-
m_album->addChangeHandler(WEAK_DELEGATE(
ThumbnailPage::onAlbumChanged, asWeak(*this)));
impl::BRING_IN_SCROLL_FRICTION);
}
- if (!info.isBroadcast) {
- m_more->activateBy(info.deactivator);
- if (m_atspiHelper) {
- m_atspiHelper->activateBy(info.deactivator);
- }
- }
-
if (isActive()) {
m_imageGrid->activateRotary();
}
void ThumbnailPage::onDeactivateBy(const DeactivatorInfo &info)
{
- if (!info.isBroadcast) {
- m_more->deactivateBy(info.deactivator);
- m_atspiHelper->deactivateBy(info.deactivator);
- }
-
m_imageGrid->deactivateRotary();
}
using ucl::AutoAppCtrl;
- using ucl::Layout;
+ using ucl::NaviItem;
using ucl::NaviframeSRef;
+ using ucl::Layout;
using ucl::StyledWidgetSRef;
using ucl::WidgetEventHandler;
auto result = makeShared<VideoPlayerPage>(
m_navi, onExitRequest, m_media);
- FAIL_RETURN_VALUE(result->prepare(), {}, "result->prepare() failed!");
+ FAIL_RETURN_VALUE(result->prepare([&result](NaviItem &item)
+ {
+ return result->doPrepare(item);
+ }),
+ {}, "result->prepare() failed!");
return result;
}
}
}
- Result VideoPlayerPage::prepare()
+ Result VideoPlayerPage::doPrepare(NaviItem &item)
{
m_content = Layout::Builder().
setTheme(impl::LAYOUT_VIDEO_PLAYER).
LOG_RETURN(RES_FAIL, "m_content is NULL");
}
- FAIL_RETURN(Page::prepare(
- [this]()
- {
- return getNaviframe().push(*m_content, NAVIFRAME_NO_CLIP);
- }),
- "Page::prepare() failed!");
+ item = getNaviframe().push(*m_content, NAVIFRAME_NO_CLIP);
+ if (!item) {
+ LOG_RETURN(RES_FAIL, "Naviframe::push() failed!");
+ }
createImage();
namespace gallery {
+ using ucl::NaviItem;
using ucl::NaviframeSRef;
// ViewerPage::Builder //
auto result = makeShared<ViewerPage>(
m_navi, onExitRequest, m_media, m_exitOnZoomOut);
- FAIL_RETURN_VALUE(result->prepare(m_imageLoadSize,
- m_isImageLoadSizeFull), {}, "result->prepare() failed!");
+ FAIL_RETURN_VALUE(result->prepare([this, &result](NaviItem &item)
+ {
+ return result->doPrepare(m_imageLoadSize,
+ m_isImageLoadSizeFull, item);
+ }),
+ {}, "result->prepare() failed!");
if ((m_zoomInX >= 0) && (m_zoomInY >= 0)) {
result->zoomIn(m_zoomInX, m_zoomInY);
}
}
- Result ViewerPage::prepare(const int imageLoadSize,
- const bool isImageLoadSizeFull)
+ Result ViewerPage::doPrepare(const int imageLoadSize,
+ const bool isImageLoadSizeFull, NaviItem &item)
{
const int mediaFlags = m_media->getFlags();
const bool canSave = (mediaFlags & MediaItem::FLAG_SAVE);
if (!m_content) {
LOG_RETURN(RES_FAIL, "PageContent::build() failed!");
}
+ setDeactivatorSink(m_content);
rootWidget = m_content.get();
m_content->set(*m_imageViewer);
m_more = MoreOptionsPresenter::Builder().
+ setParentWidget(m_content).
addOption({impl::MORE_OPTION_ID_SAVE,
STR_SAVE_TO_GEAR, nullptr,
getImageTheme(ICON_MORE_OPT_SAVE)}).
- build(*m_content);
+ build(*this);
if (!m_more) {
LOG_RETURN(RES_FAIL, "MoreOptionsPresenter::build() failed!");
}
m_content->set(m_more->getWidget(),
PageContent::Part::MORE_OPTIONS);
- addDeactivatorSource(m_more->getWidget());
m_more->setListener(asWeakThis<
MoreOptionsPresenter::IListener>(this));
m_imageViewer->addEventHandler(IMAGE_VIEWER_ZOOM_END,
WEAK_DELEGATE(ViewerPage::onZoomEnd, asWeak(*this)));
- FAIL_RETURN(Page::prepare(
- [this, rootWidget]()
- {
- const auto topItem = getNaviframe().getTopItem();
- if (topItem) {
- return getNaviframe().insertAfter(topItem,
- *rootWidget, NAVIFRAME_NO_CLIP);
- }
- return getNaviframe().push(*rootWidget, NAVIFRAME_NO_CLIP);
- }),
- "Page::prepare() failed!");
+ const auto topItem = getNaviframe().getTopItem();
+ if (topItem) {
+ item = getNaviframe().insertAfter(topItem,
+ *rootWidget, NAVIFRAME_NO_CLIP);
+ } else {
+ item = getNaviframe().push(*rootWidget, NAVIFRAME_NO_CLIP);
+ }
+ if (!item) {
+ LOG_RETURN(RES_FAIL, "Naviframe::push() failed!");
+ }
m_touchParser = makeShared<TouchParser>(*m_imageViewer);
m_touchParser->setDoubleTapHandler(WEAK_DELEGATE(
}
}
- void ViewerPage::onActivateBy(const DeactivatorInfo &info)
- {
- if (m_more && (info.deactivator == &getNaviframe())) {
- m_more->activateBy(info.deactivator);
- }
- }
-
- void ViewerPage::onDeactivateBy(const DeactivatorInfo &info)
- {
- if (m_more && (info.deactivator == &getNaviframe())) {
- m_more->deactivateBy(info.deactivator);
- }
- }
-
void ViewerPage::onBackKey()
{
if (m_imageViewer->isZoomedOut()) {