diff options
author | Igor Nazarov <i.nazarov@samsung.com> | 2017-08-03 20:30:50 +0300 |
---|---|---|
committer | Igor Nazarov <i.nazarov@samsung.com> | 2017-08-04 16:43:53 +0300 |
commit | 6df4329d6a226e9f91288f1b56bc045fb91ae9d2 (patch) | |
tree | a50c2373502358f8d8d8d7c4c803fbdf3f4369bc | |
parent | 31e4a7534bc09071699ed4b8c7f540a7d04e8268 (diff) | |
download | gallery-6df4329d6a226e9f91288f1b56bc045fb91ae9d2.tar.gz gallery-6df4329d6a226e9f91288f1b56bc045fb91ae9d2.tar.bz2 gallery-6df4329d6a226e9f91288f1b56bc045fb91ae9d2.zip |
TizenRefApp-9024 [Gallery] Add support of multi images preview for
OPERATION_VIEW
- Instance updated to support multiple images OPERATION_VIEW;
- CustomMediaAlbum updated;
- helpers updated.
Change-Id: I97e7d270c51e405656e571ab20b9d4419e62b59d
-rw-r--r-- | gallery/helpers.cpp | 112 | ||||
-rw-r--r-- | gallery/helpers.h | 29 | ||||
-rw-r--r-- | gallery/helpers.hpp | 72 | ||||
-rw-r--r-- | gallery/model/CustomMediaAlbum.cpp | 7 | ||||
-rw-r--r-- | gallery/model/CustomMediaAlbum.h | 2 | ||||
-rw-r--r-- | gallery/model/MediaItem.cpp | 2 | ||||
-rw-r--r-- | gallery/model/helpers.cpp | 14 | ||||
-rw-r--r-- | gallery/model/helpers.h | 4 | ||||
-rw-r--r-- | gallery/model/impl/helpers.cpp | 85 | ||||
-rw-r--r-- | gallery/model/impl/helpers.h | 21 | ||||
-rw-r--r-- | gallery/model/impl/helpers.hpp | 22 | ||||
-rw-r--r-- | gallery/presenters/Instance.cpp | 64 | ||||
-rw-r--r-- | gallery/presenters/Instance.h | 3 | ||||
-rw-r--r-- | project_def.prop | 2 |
14 files changed, 279 insertions, 160 deletions
diff --git a/gallery/helpers.cpp b/gallery/helpers.cpp new file mode 100644 index 0000000..9ddcc06 --- /dev/null +++ b/gallery/helpers.cpp @@ -0,0 +1,112 @@ +/* + * Copyright 2017 Samsung Electronics Co., Ltd + * + * Licensed under the Flora License, Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://floralicense.org/license/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "helpers.h" + +#include <Ecore_File.h> + +#include "common.h" + +namespace gallery { namespace { namespace impl { + + constexpr auto UNIQUE_PATH_RESERVE = 10; +}}} + +namespace gallery { namespace util { + + // File path helpers // + + std::string extractFileName(const std::string &path) + { + const auto bsPos = path.rfind('/'); + if (bsPos == (path.size() - 1)) { + return {}; + } + return path.substr(bsPos + 1); + } + + std::string extractFileExtension(const std::string &name) + { + const auto dotPos = name.rfind('.'); + if ((dotPos == std::string::npos) || + (dotPos == 0) || (dotPos == (name.size() - 1))) { + return {}; + } + return name.substr(dotPos + 1); + } + + void splitFilePath(const std::string &path, std::string &directory, + std::string &baseName, std::string &extension) + { + splitFileName(path, baseName, extension); + if (isNotEmpty(baseName)) { + directory = path.substr(0, (path.size() - baseName.size() - + (isNotEmpty(extension) ? (extension.size() - 1) : 0))); + } else { + directory = path; + } + } + + void splitFileName(const std::string &path, + std::string &baseName, std::string &extension) + { + baseName = extractFileName(path); + if (isNotEmpty(baseName)) { + extension = extractFileExtension(baseName); + if (isNotEmpty(extension)) { + baseName.resize(baseName.size() - extension.size() - 1); + } + } else { + extension.clear(); + } + } + + std::string makeUniqueFilePath(const std::string &srcPath, + const std::string &dstDir) + { + std::string baseName; + std::string extension; + splitFileName(srcPath, baseName, extension); + + std::string result; + result.reserve(dstDir.size() + baseName.size() + + extension.size() + impl::UNIQUE_PATH_RESERVE); + + result = dstDir; + if (isNotEmpty(result) && (result.back() != '/')) { + result += '/'; + } + result += baseName; + + const auto baseSize = result.size(); + + for (int counter = 2; ; ++counter) { + if (isNotEmpty(extension)) { + result += '.'; + result += extension; + } + if (!ecore_file_exists(result.c_str())) { + break; + } + result.resize(baseSize); + result += " ("; + result += std::to_string(counter); + result += ')'; + } + + return result; + } +}} diff --git a/gallery/helpers.h b/gallery/helpers.h index fb79812..d8d7c00 100644 --- a/gallery/helpers.h +++ b/gallery/helpers.h @@ -21,6 +21,8 @@ namespace gallery { namespace util { + // Tizen C API helpers // + template <class GETTER, class V, class ...ARGS> ucl::Result get(GETTER &&getter, V &result, ARGS &&...args); @@ -32,6 +34,33 @@ namespace gallery { namespace util { template <class FUNC, class TO_RESULT, class ...ARGS> ucl::Result callEx(FUNC &&func, TO_RESULT &&toResult, ARGS &&...args); + + // Misc helpers // + + template <class COLLECTION, class VALUE> + int indexOf(const COLLECTION &collection, const VALUE &value); + + // File path helpers // + + std::string extractFileName(const std::string &path); + + std::string extractFileExtension(const std::string &name); + + void splitFilePath(const std::string &path, std::string &directory, + std::string &baseName, std::string &extension); + + void splitFileName(const std::string &path, + std::string &baseName, std::string &extension); + + std::string makeUniqueFilePath(const std::string &srcPath, + const std::string &dstDir); + + // String helpers // + + bool beginsWith(const std::string &str, const std::string &prefix, + bool caseSensitive = true); + bool removePrefix(std::string &str, const std::string &prefix, + bool caseSensitive = true); }} #include "helpers.hpp" diff --git a/gallery/helpers.hpp b/gallery/helpers.hpp index 5bca4c7..48d7100 100644 --- a/gallery/helpers.hpp +++ b/gallery/helpers.hpp @@ -14,6 +14,9 @@ * limitations under the License. */ +#include <vector> +#include <algorithm> + #include "ucl/util/helpers.h" #include "ucl/util/logging.h" @@ -40,6 +43,39 @@ namespace gallery { namespace util { namespace himpl { return ucl::RES_OK; } + template <class GETTER, class ...ARGS> + inline ucl::Result get(GETTER &&getter, bool optional, + std::vector<std::string> &result, ARGS &&...args) + { + char **value = nullptr; + int length = 0; + const int ret = getter(std::forward<ARGS>(args)..., &value, &length); + if ((ret != 0) || (length < 0) || !value || + (!optional && (length == 0))) { + UCL_ELOG("get() failed: %d; length: %d; value: %p;", + ret, length, value); + return ucl::RES_FAIL; + } + + if (length > 0) { + std::vector<std::string> tmp; + for (int i = 0; i < length; ++i) { + if (!value[i]) { + UCL_ELOG("value[%d] is NULL!", i); + return ucl::RES_FAIL; + } + tmp.emplace_back(value[i]); + free(value[i]); + } + result = std::move(tmp); + free(value); + } else { + result.clear(); + } + + return ucl::RES_OK; + } + template <class GETTER, class V, class ...ARGS> inline ucl::Result get(GETTER &&getter, bool optional, V &result, ARGS &&...args) @@ -60,6 +96,8 @@ namespace gallery { namespace util { namespace himpl { namespace gallery { namespace util { + // Tizen C API helpers // + template <class GETTER, class V, class ...ARGS> inline ucl::Result get(GETTER &&getter, V &result, ARGS &&...args) { @@ -86,10 +124,42 @@ namespace gallery { namespace util { } template <class FUNC, class TO_RESULT, class ...ARGS> - ucl::Result callEx(FUNC &&func, TO_RESULT &&toResult, ARGS &&...args) + inline ucl::Result callEx(FUNC &&func, TO_RESULT &&toResult, ARGS &&...args) { const int ret = func(std::forward<ARGS>(args)...); UCL_FAIL_RETURN(toResult(ret), "func() failed: %d", ret); return ucl::RES_OK; } + + template <class COLLECTION, class VALUE> + inline int indexOf(const COLLECTION &collection, const VALUE &value) + { + const auto result = std::distance(collection.begin(), std::find( + collection.begin(), collection.end(), value)); + if (static_cast<size_t>(result) >= collection.size()) { + return -1; + } + return result; + } + + // String helpers // + + inline bool beginsWith(const std::string &str, const std::string &prefix, + bool caseSensitive) + { + if (caseSensitive) { + return (str.compare(0, prefix.size(), prefix) == 0); + } + return (strncasecmp(str.c_str(), prefix.c_str(), prefix.size()) == 0); + } + + inline bool removePrefix(std::string &str, const std::string &prefix, + bool caseSensitive) + { + if (beginsWith(str, prefix, caseSensitive)) { + str = str.substr(prefix.size()); + return true; + } + return false; + } }} diff --git a/gallery/model/CustomMediaAlbum.cpp b/gallery/model/CustomMediaAlbum.cpp index 175d91b..9a997a3 100644 --- a/gallery/model/CustomMediaAlbum.cpp +++ b/gallery/model/CustomMediaAlbum.cpp @@ -33,14 +33,17 @@ namespace gallery { m_items.emplace_back(std::move(item)); } + const MediaItems &CustomMediaAlbum::getItems() const + { + return m_items; + } + void CustomMediaAlbum::addChangeHandler(const NotiHandler &handler) { - LOG_RETURN_VOID(RES_NOT_SUPPORTED, "Wrong call."); } void CustomMediaAlbum::delChangeHandler(const NotiHandler &handler) { - LOG_RETURN_VOID(RES_NOT_SUPPORTED, "Wrong call."); } Result CustomMediaAlbum::forEachMedia(const EachCb cb) const diff --git a/gallery/model/CustomMediaAlbum.h b/gallery/model/CustomMediaAlbum.h index f989365..46cb72d 100644 --- a/gallery/model/CustomMediaAlbum.h +++ b/gallery/model/CustomMediaAlbum.h @@ -30,6 +30,8 @@ namespace gallery { void addItem(MediaItemSRef item); + const MediaItems &getItems() const; + // IMediaAlbum // virtual void addChangeHandler( diff --git a/gallery/model/MediaItem.cpp b/gallery/model/MediaItem.cpp index 4e1c034..6b7ba91 100644 --- a/gallery/model/MediaItem.cpp +++ b/gallery/model/MediaItem.cpp @@ -253,7 +253,7 @@ namespace gallery { MediaItemSRef MediaItem::newInstance(std::string filePath) { - util::removePrefix(filePath, impl::URI_PREFIX_FILE); + util::removePrefix(filePath, impl::URI_PREFIX_FILE, false); auto result = makeShared<MediaItem>(FLAGS_SIMPLE_FILE, impl::getFileMediaType(filePath)); diff --git a/gallery/model/helpers.cpp b/gallery/model/helpers.cpp index cf64994..ac08ac2 100644 --- a/gallery/model/helpers.cpp +++ b/gallery/model/helpers.cpp @@ -21,22 +21,16 @@ namespace gallery { namespace util { CustomMediaAlbumSRef makeMediaAlbum( - const char *const filePathArray[], const int count) + const std::vector<std::string> &filePathArray) { - if (!filePathArray) { + if (isEmpty(filePathArray)) { FAIL_RETURN_VALUE(RES_INVALID_ARGUMENTS, {}, - "filePathArray is NULL"); + "filePathArray is Empty"); } auto result = makeShared<CustomMediaAlbum>(); - for (int i = 0; i < count; ++i) { - - const auto filePath = filePathArray[i]; - if (!filePath) { - WLOG("filePath is NULL. Skipping..."); - continue; - } + for (auto &filePath: filePathArray) { auto item = MediaItem::newInstance(filePath); if (!item) { diff --git a/gallery/model/helpers.h b/gallery/model/helpers.h index c578222..9ad2e4a 100644 --- a/gallery/model/helpers.h +++ b/gallery/model/helpers.h @@ -17,12 +17,14 @@ #ifndef __GALLERY_MODEL_HELPERS_H__ #define __GALLERY_MODEL_HELPERS_H__ +#include <vector> + #include "CustomMediaAlbum.h" namespace gallery { namespace util { CustomMediaAlbumSRef makeMediaAlbum( - const char *const filePathArray[], int count); + const std::vector<std::string> &filePathArray); }} #endif // __GALLERY_MODEL_HELPERS_H__ diff --git a/gallery/model/impl/helpers.cpp b/gallery/model/impl/helpers.cpp index 9bf5042..8f44793 100644 --- a/gallery/model/impl/helpers.cpp +++ b/gallery/model/impl/helpers.cpp @@ -16,7 +16,6 @@ #include "helpers.h" -#include <Ecore_File.h> #include <storage.h> #include "common.h" @@ -103,87 +102,3 @@ namespace gallery { --impl::MEDIA_DB_CONNECTION_COUNTER; } } - -namespace gallery { namespace util { - - std::string extractFileName(const std::string &path) - { - const auto bsPos = path.rfind('/'); - if (bsPos == (path.size() - 1)) { - return {}; - } - return path.substr(bsPos + 1); - } - - std::string extractFileExtension(const std::string &name) - { - const auto dotPos = name.rfind('.'); - if ((dotPos == std::string::npos) || - (dotPos == 0) || (dotPos == (name.size() - 1))) { - return {}; - } - return name.substr(dotPos + 1); - } - - void splitFilePath(const std::string &path, std::string &directory, - std::string &baseName, std::string &extension) - { - splitFileName(path, baseName, extension); - if (isNotEmpty(baseName)) { - directory = path.substr(0, (path.size() - baseName.size() - - (isNotEmpty(extension) ? (extension.size() - 1) : 0))); - } else { - directory = path; - } - } - - void splitFileName(const std::string &path, - std::string &baseName, std::string &extension) - { - baseName = extractFileName(path); - if (isNotEmpty(baseName)) { - extension = extractFileExtension(baseName); - if (isNotEmpty(extension)) { - baseName.resize(baseName.size() - extension.size() - 1); - } - } else { - extension.clear(); - } - } - - std::string makeUniqueFilePath(const std::string &srcPath, - const std::string &dstDir) - { - std::string baseName; - std::string extension; - splitFileName(srcPath, baseName, extension); - - std::string result; - result.reserve(dstDir.size() + baseName.size() + - extension.size() + impl::UNIQUE_PATH_RESERVE); - - result = dstDir; - if (isNotEmpty(result) && (result.back() != '/')) { - result += '/'; - } - result += baseName; - - const auto baseSize = result.size(); - - for (int counter = 2; ; ++counter) { - if (isNotEmpty(extension)) { - result += '.'; - result += extension; - } - if (!ecore_file_exists(result.c_str())) { - break; - } - result.resize(baseSize); - result += " ("; - result += std::to_string(counter); - result += ')'; - } - - return result; - } -}} diff --git a/gallery/model/impl/helpers.h b/gallery/model/impl/helpers.h index 5411c42..acb6f24 100644 --- a/gallery/model/impl/helpers.h +++ b/gallery/model/impl/helpers.h @@ -35,27 +35,6 @@ namespace gallery { void releaseMediaDbConnection(); } -namespace gallery { namespace util { - - std::string extractFileName(const std::string &path); - - std::string extractFileExtension(const std::string &name); - - void splitFilePath(const std::string &path, std::string &directory, - std::string &baseName, std::string &extension); - - void splitFileName(const std::string &path, - std::string &baseName, std::string &extension); - - std::string makeUniqueFilePath(const std::string &srcPath, - const std::string &dstDir); - - bool beginsWith(const std::string &str, const std::string &prefix, - bool caseSensitive = true); - bool removePrefix(std::string &str, const std::string &prefix, - bool caseSensitive = true); -}} - #include "helpers.hpp" #endif // __GALLERY_MODEL_IMPL_HELPERS_H__ diff --git a/gallery/model/impl/helpers.hpp b/gallery/model/impl/helpers.hpp index 56efe64..be253bf 100644 --- a/gallery/model/impl/helpers.hpp +++ b/gallery/model/impl/helpers.hpp @@ -29,25 +29,3 @@ namespace gallery { return MediaType::OTHERS; } } - -namespace gallery { namespace util { - - inline bool beginsWith(const std::string &str, const std::string &prefix, - bool caseSensitive) - { - if (caseSensitive) { - return (str.compare(0, prefix.size(), prefix) == 0); - } - return (strncasecmp(str.c_str(), prefix.c_str(), prefix.size()) == 0); - } - - inline bool removePrefix(std::string &str, const std::string &prefix, - bool caseSensitive) - { - if (beginsWith(str, prefix, caseSensitive)) { - str = str.substr(prefix.size()); - return true; - } - return false; - } -}} diff --git a/gallery/presenters/Instance.cpp b/gallery/presenters/Instance.cpp index e9b37b3..eb3365a 100644 --- a/gallery/presenters/Instance.cpp +++ b/gallery/presenters/Instance.cpp @@ -20,9 +20,11 @@ #include "ucl/appfw/helpers.h" +#include "gallery/model/helpers.h" + #include "pages/NoContentPage.h" #include "pages/ThumbnailPage.h" -#include "pages/ViewerPage.h" +#include "pages/PreviewPage.h" #include "pages/VideoPlayerPage.h" #include "gallery/resources.h" @@ -33,6 +35,8 @@ namespace gallery { namespace { namespace impl { // TODO Since feature is temporary using hard-coded path constexpr auto MEDIA_FOLDER = "/opt/usr/home/owner/media"; + + const std::string URI_PREFIX_FILE {"file://"}; }}} namespace gallery { @@ -164,16 +168,16 @@ namespace gallery { { DLOG("APP CONTROL"); + if (!m_win->isVisible()) { + DLOG("Show the window."); + show(*m_win); + } + if (isBad(handleAppControl(appControl))) { DLOG("Terminating the application..."); m_context->exitApp(); return; } - - if (!m_win->isVisible()) { - DLOG("Show the window."); - show(*m_win); - } } Result Instance::handleAppControl(app_control_h appControl) @@ -236,14 +240,42 @@ namespace gallery { FAIL_RETURN(util::getNz(app_control_get_uri, uri, appControl), "app_control_get_uri() failed!"); - const auto media = MediaItem::newInstance(std::move(uri)); - if (!media) { - LOG_RETURN(RES_FAIL, "MediaItem::newInstance() failed!"); + util::removePrefix(uri, impl::URI_PREFIX_FILE, false); + + std::vector<std::string> filePathArray; + int startItemIndex = -1; + bool hasFilePathArray = false; + + FAIL_LOG(util::get(app_control_is_extra_data_array, + hasFilePathArray, appControl, APP_CONTROL_DATA_PATH), + "app_control_is_extra_data_array() failed!"); + + if (hasFilePathArray) { + FAIL_RETURN(util::getNz(app_control_get_extra_data_array, + filePathArray, appControl, APP_CONTROL_DATA_PATH), + "app_control_get_extra_data_array() failed!"); + + startItemIndex = util::indexOf(filePathArray, uri); + if (startItemIndex == -1) { + WLOG("uri not found in filePathArray!"); + } } + if (startItemIndex == -1) { + filePathArray.insert(filePathArray.begin(), std::move(uri)); + startItemIndex = 0; + } + + const auto mediaAlbum = util::makeMediaAlbum(filePathArray); + if (!mediaAlbum) { + LOG_RETURN(RES_FAIL, "util::makeMediaAlbum() failed!"); + } + + const auto media = mediaAlbum->getItems()[startItemIndex]; + switch (media->getType()) { case MediaType::IMAGE: - createViewerPage(media); + createPreviewPage(mediaAlbum, startItemIndex); break; case MediaType::VIDEO: createVideoPlayerPage(media); @@ -299,12 +331,14 @@ namespace gallery { Instance::onPageExitRequest, asWeak(*this))); } - void Instance::createViewerPage(const MediaItemSRef &media) + void Instance::createPreviewPage(const IMediaAlbumSRef &album, + const int startItemIndex) { - DLOG("Creating ViewerPage."); - m_page = ViewerPage::Builder().setNaviframe(m_navi). - setMedia(media). - setExitOnZoomOut(false). + DLOG("Creating PreviewPage."); + m_page = PreviewPage::Builder().setNaviframe(m_navi). + setAlbum(album). + setStartupMode(PreviewPage::Mode::OPERATION_VIEW). + setStartItemIndex(startItemIndex). build(WEAK_DELEGATE( Instance::onPageExitRequest, asWeak(*this))); } diff --git a/gallery/presenters/Instance.h b/gallery/presenters/Instance.h index d1de739..b491e8e 100644 --- a/gallery/presenters/Instance.h +++ b/gallery/presenters/Instance.h @@ -67,7 +67,8 @@ namespace gallery { void createNoContentPage(); void createThumbnailPage(); - void createViewerPage(const MediaItemSRef &media); + void createPreviewPage(const IMediaAlbumSRef &album, + int startItemIndex); void createVideoPlayerPage(const MediaItemSRef &media); void onAlbumChanged(); diff --git a/project_def.prop b/project_def.prop index d0f49b6..2842064 100644 --- a/project_def.prop +++ b/project_def.prop @@ -9,7 +9,7 @@ type = app profile = wearable-4.0
# C/CPP Sources
-USER_SRCS = gallery/presenters/Instance.cpp ucl/source/mvp/GuiPresenter.cpp gallery/model/CustomMediaAlbum.cpp gallery/presenters/pages/ThumbnailPage.cpp ucl/source/appfw/InstanceManagerBase.cpp gallery/presenters/InstanceManager.cpp gallery/presenters/misc/SelectModePresenter.cpp ucl/source/util/logging.cpp gallery/resources.cpp gallery/presenters/pages/ViewerPage.cpp gallery/presenters/misc/MoreOptionsPresenter.cpp gallery/presenters/misc/AtspiHighlightHelper.cpp ucl/source/mvp/ListPresenter.cpp gallery/model/SoundManager.cpp ucl/source/misc/Variant.cpp gallery/presenters/base/Dialog.cpp ucl/source/misc/Timeout.cpp gallery/presenters/misc/ProcessingPresenter.cpp gallery/model/helpers.cpp ucl/source/util/types/Result.cpp gallery/model/impl/GalleryAlbum.cpp gallery/presenters/misc/helpers.cpp ucl/source/gui/Genlist.cpp gallery/presenters/pages/NoContentPage.cpp gallery/view/ImageViewer.cpp gallery/presenters/pages/PreviewPage.cpp gallery/view/PageContent.cpp gallery/view/TouchParser.cpp ucl/source/gui/WidgetItem.cpp gallery/presenters/dialogs/AlertDialog.cpp gallery/model/Gallery.cpp gallery/model/impl/helpers.cpp ucl/source/gui/Naviframe.cpp ucl/source/appfw/UIApp.cpp ucl/source/appfw/SysEventProvider.cpp gallery/presenters/pages/VideoPlayerPage.cpp gallery/main.cpp ucl/source/gui/Layout.cpp gallery/presenters/base/Page.cpp gallery/model/MediaItem.cpp gallery/view/helpers.cpp ucl/source/gui/Window.cpp ucl/source/gui/Widget.cpp gallery/model/impl/BaseJob.cpp ucl/source/mvp/ListItemPresenter.cpp ucl/source/gui/NaviItem.cpp ucl/source/gui/ElmWidget.cpp gallery/view/ImageGrid.cpp ucl/source/appfw/helpers.cpp ucl/source/gui/EdjeWidget.cpp
+USER_SRCS = gallery/presenters/Instance.cpp ucl/source/mvp/GuiPresenter.cpp gallery/model/CustomMediaAlbum.cpp gallery/presenters/pages/ThumbnailPage.cpp ucl/source/appfw/InstanceManagerBase.cpp gallery/presenters/InstanceManager.cpp gallery/presenters/misc/SelectModePresenter.cpp ucl/source/util/logging.cpp gallery/resources.cpp gallery/presenters/pages/ViewerPage.cpp gallery/presenters/misc/MoreOptionsPresenter.cpp gallery/presenters/misc/AtspiHighlightHelper.cpp ucl/source/mvp/ListPresenter.cpp gallery/model/SoundManager.cpp ucl/source/misc/Variant.cpp gallery/presenters/base/Dialog.cpp ucl/source/misc/Timeout.cpp gallery/presenters/misc/ProcessingPresenter.cpp gallery/model/helpers.cpp ucl/source/util/types/Result.cpp gallery/model/impl/GalleryAlbum.cpp gallery/presenters/misc/helpers.cpp ucl/source/gui/Genlist.cpp gallery/presenters/pages/NoContentPage.cpp gallery/view/ImageViewer.cpp gallery/presenters/pages/PreviewPage.cpp gallery/view/PageContent.cpp gallery/helpers.cpp gallery/view/TouchParser.cpp ucl/source/gui/WidgetItem.cpp gallery/presenters/dialogs/AlertDialog.cpp gallery/model/Gallery.cpp gallery/model/impl/helpers.cpp ucl/source/gui/Naviframe.cpp ucl/source/appfw/UIApp.cpp ucl/source/appfw/SysEventProvider.cpp gallery/presenters/pages/VideoPlayerPage.cpp gallery/main.cpp ucl/source/gui/Layout.cpp gallery/presenters/base/Page.cpp gallery/model/MediaItem.cpp gallery/view/helpers.cpp ucl/source/gui/Window.cpp ucl/source/gui/Widget.cpp gallery/model/impl/BaseJob.cpp ucl/source/mvp/ListItemPresenter.cpp ucl/source/gui/NaviItem.cpp ucl/source/gui/ElmWidget.cpp gallery/view/ImageGrid.cpp ucl/source/appfw/helpers.cpp ucl/source/gui/EdjeWidget.cpp
# EDC Sources
USER_EDCS =
|