summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Nazarov <i.nazarov@samsung.com>2017-08-03 20:30:50 +0300
committerIgor Nazarov <i.nazarov@samsung.com>2017-08-04 16:43:53 +0300
commit6df4329d6a226e9f91288f1b56bc045fb91ae9d2 (patch)
treea50c2373502358f8d8d8d7c4c803fbdf3f4369bc
parent31e4a7534bc09071699ed4b8c7f540a7d04e8268 (diff)
downloadgallery-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.cpp112
-rw-r--r--gallery/helpers.h29
-rw-r--r--gallery/helpers.hpp72
-rw-r--r--gallery/model/CustomMediaAlbum.cpp7
-rw-r--r--gallery/model/CustomMediaAlbum.h2
-rw-r--r--gallery/model/MediaItem.cpp2
-rw-r--r--gallery/model/helpers.cpp14
-rw-r--r--gallery/model/helpers.h4
-rw-r--r--gallery/model/impl/helpers.cpp85
-rw-r--r--gallery/model/impl/helpers.h21
-rw-r--r--gallery/model/impl/helpers.hpp22
-rw-r--r--gallery/presenters/Instance.cpp64
-rw-r--r--gallery/presenters/Instance.h3
-rw-r--r--project_def.prop2
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 =