using namespace Tizen::Ui::Controls;
using namespace Tizen::Ui::Scenes;
-static const unsigned int COLOR_HEADER_CONTORL_PANEL = Color32<0, 0, 0, 100>::Value;
+static const unsigned int COLOR_HEADER_CONTROL_LABEL = Color32<0, 0, 0, 0>::Value;
+static const unsigned int COLOR_HEADER_CONTROL_PANEL = Color32<0, 0, 0, 100>::Value;
static const unsigned int COLOR_HEADER_BUTTON1 = Color32<0, 0, 0, 100>::Value;
static const unsigned int COLOR_DELETE_BUTTON_NORMAL = Color32<208, 82, 82>::Value;
static const unsigned int COLOR_DELETE_BUTTON_PRESSED = Color32<194, 71, 71>::Value;
static const int DETAIL_COUNT_MAX = 9;
ImageViewerForm::ImageViewerForm(void)
-: __initializeDisplayModeCurrent(APPCONTROL_MODE_NORMAL)
-, __pLabel(null)
-, __pFooter(null)
-, __pScrollPanel(null)
-, __pDetail_Label(null)
-, __pLabelMessage(null)
-, __pPlayButton(null)
-, __pRenameButton(null)
-, __pDetailFooterItem(null)
-, __pGallery(null)
-, __pTimer(null)
-, __pContextMenuMore(null)
-, __pContextMenuCopy(null)
-, __pContextMenuSetAs(null)
-, __pContextMenuShare(null)
-, __pDeletePopup(null)
-, __visible(true)
-, __detail(true)
-, __startSlide(false)
-, __requestId(0)
-, __pPresentationModel(null)
+ : __shuffelStartIndex(0)
+ , __initializeDisplayModeCurrent(APPCONTROL_MODE_NORMAL)
+ , __pLabel(null)
+ , __pFooter(null)
+ , __pScrollPanel(null)
+ , __pDetail_Label(null)
+ , __pLabelMessage(null)
+ , __pPlayButton(null)
+ , __pRenameButton(null)
+ , __pDetailFooterItem(null)
+ , __pGallery(null)
+ , __pTimer(null)
+ , __pShuffelTimer(null)
+ , __pContextMenuMore(null)
+ , __pContextMenuCopy(null)
+ , __pContextMenuSetAs(null)
+ , __pContextMenuShare(null)
+ , __pDeletePopup(null)
+ , __visible(true)
+ , __detail(true)
+ , __startSlide(false)
+ , __shuffle(false)
+ , __requestId(0)
+ , __pShuffledList(null)
+ , __pPresentationModel(null)
{
AppLogDebug("ENTER");
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
{
return E_FAILURE;
}
- __pLabel->SetBackgroundColor(COLOR_HEADER_CONTORL_PANEL);
+ __pLabel->SetBackgroundColor(COLOR_HEADER_CONTROL_LABEL);
SetControlAlwaysOnTop(*__pLabel,true);
int allCount = __pPresentationModel->GetFileCount();
int index = 1 ;
GetLabelText(__pGallery->GetCurrentItemIndex(), strItemIdxText);
+ __pLabel->SetText(strItemIdxText);
+
if (__visible == true)
{
ImageViewerMediaType mediaType = CommonUtil::GetMediaType(filePath);
case SLIDE_SHOW_TRANSITION_EFFECT_ZOOM:
__pGallery->SetSlideShowAnimation(Controls::GALLERY_ANIMATION_ZOOM);
break;
- case SLIDE_SHOW_TRANSITION_EFFECT_SLIDE:
+ case SLIDE_SHOW_TRANSITION_EFFECT_PAGE:
+ __pGallery->SetSlideShowAnimation(Controls::GALLERY_ANIMATION_PAGE);
break;
}
__pDetail_FileInfo_Value_Label[i]->SetTextConfig(DETAIL_MAIN_FONT_SIZE, LABEL_TEXT_STYLE_BOLD);
}
- __pScrollPanel->SetBackgroundColor(COLOR_HEADER_CONTORL_PANEL);
+ __pScrollPanel->SetBackgroundColor(COLOR_HEADER_CONTROL_PANEL);
__pScrollPanel->SetShowState(false);
__pRenameButton = new (std::nothrow) Button();
Label* pLabel = new (std::nothrow) Label();
pLabel->Construct(Rectangle(0, 0, popupClientBounds.width, H_DELETE_LABEL),
- ResourceManager::GetString(L"IDS_COM_BODY_DELETE") + L"?");
+ ResourceManager::GetString(L"IDS_COM_POP_DELETE_Q"));
Button* pDeleteButton = new (std::nothrow) Button();
pDeleteButton->Construct(
__pContextMenuMore = new (std::nothrow) ContextMenu();
- __pContextMenuMore->Construct(Point(X_MORE, GetClientAreaBounds().y + GetClientAreaBounds().height),
+ __pContextMenuMore->Construct(Point(X_MORE, GetClientAreaBounds().height),
CONTEXT_MENU_STYLE_LIST, CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD);
if (mediaType == IMAGE_VIEWER_MEDIA_TYPE_IMAGE)
ACTION_ID_CONTEXTMENU_HOME);
__pContextMenuSetAs->AddItem(ResourceManager::GetString(L"IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB"),
ACTION_ID_CONTEXTMENU_LOCK);
- __pContextMenuSetAs->AddItem(L"Home and lock screens", ACTION_ID_CONTEXTMENU_HOME_AND_LOCK);
+ __pContextMenuSetAs->AddItem(ResourceManager::GetString(L"IDS_IV_BODY_HOME_AND_LOCK_SCREENS"),
+ ACTION_ID_CONTEXTMENU_HOME_AND_LOCK);
__pContextMenuSetAs->AddItem(ResourceManager::GetString(L"IDS_IV_BODY_CALLER_IMAGE"),
ACTION_ID_CONTEXTMENU_CALLER);
__pContextMenuSetAs->AddActionEventListener(*this);
Rectangle clientRect = GetClientAreaBounds();
__pScrollPanel->SetBounds(0,__pLabel->GetHeight(), clientRect.width, clientRect.height - __pLabel->GetHeight());
-
int currentIndex = __pGallery->GetCurrentItemIndex();
String strFilePath = __pPresentationModel->GetFilePathAt(currentIndex);
for (int i = 0; i < DETAIL_COUNT_MAX; ++i)
{
__pDetail_FileInfo_Value_Label[i]->SetText(strResult[i]);
- __pDetail_FileInfo_Value_Label[i]->RequestRedraw();
+
+ if (i == DETAIL_COUNT_MAX - 1)
+ {
+ __pDetail_FileInfo_Value_Label[i]->SetBounds(
+ Rectangle(X_DETAIL_FILEINFO_LABEL,
+ GAP_H_DETAIL_TEXT * (i + 1) + H_DETAIL_MAIN_TEXT + (H_DETAIL_MAIN_TEXT * i) + H_DETAIL_SUB_TEXT * (i + 1),
+ clientRect.width - GAP_W_END_OF_LABEL, H_DETAIL_FILEINFO_VALUE_LABEL * 3));
+ }
+ else
+ {
+ __pDetail_FileInfo_Value_Label[i]->SetBounds(
+ Rectangle(X_DETAIL_FILEINFO_LABEL,
+ GAP_H_DETAIL_TEXT * (i + 1) + H_DETAIL_MAIN_TEXT + (H_DETAIL_MAIN_TEXT * i) + H_DETAIL_SUB_TEXT * (i + 1),
+ clientRect.width - GAP_W_END_OF_LABEL, H_DETAIL_FILEINFO_VALUE_LABEL));
+ }
+
+ __pDetail_FileInfo_Value_Label[i]->Invalidate(true);
}
if (__initializeDisplayModeCurrent == APPCONTROL_MODE_WEB_LINK)
if (showStatus)
{
SetDetailInfo();
+ __pLabel->SetBackgroundColor(COLOR_HEADER_CONTROL_PANEL);
+ __pLabel->Invalidate(true);
__pScrollPanel->SetShowState(true);
__detail = false;
}
else
{
+ __pLabel->SetBackgroundColor(COLOR_HEADER_CONTROL_LABEL);
+ __pLabel->Invalidate(true);
__pScrollPanel->SetShowState(false);
__detail = true;
}
AppLogDebug("ENTER : index(%d)", index);
GalleryItem* pGallery = new (std::nothrow) GalleryItem();
- String filePath = __pPresentationModel->GetFilePathAt(index);
- ImageInfo* pImageInfo = __pPresentationModel->GetImageCacheAt(index);
+ int curIndex = index;
+
+ if (__shuffle == true && __pShuffledList != null)
+ {
+ curIndex = __pShuffledList[index];
+ }
+
+ String filePath = __pPresentationModel->GetFilePathAt(curIndex);
+ ImageInfo* pImageInfo = __pPresentationModel->GetImageCacheAt(curIndex);
Bitmap* pBitmap = pImageInfo->GetBitmapN();
+
if (pBitmap == null)
{
pBitmap = GetQuickThumbnailN(filePath);
bool
ImageViewerForm::DeleteItem(int index, GalleryItem* pItem)
{
- AppLogDebug("ENTER index(%d)", index);
- ImageInfo* pImageInfo = __pPresentationModel->GetImageCacheAt(index);
+ AppLogDebug("ImageViewerForm::DeleteItem ENTER index(%d)", index);
+ int curIndex = index;
+
+ if(__shuffle == true && __pShuffledList != null)
+ {
+ curIndex = __pShuffledList[index];
+ }
+
+
+ ImageInfo* pImageInfo = __pPresentationModel->GetImageCacheAt(curIndex);
pImageInfo->ClearBitmap();
delete pItem;
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
void
ImageViewerForm::OnGalleryCurrentItemChanged(Gallery& view, int index)
{
- AppLogDebug("ENTER index(%d)", index);
+ AppLogDebug("ImageViewerForm::OnGalleryCurrentItemChanged index(%d)", index);
String filePath = __pPresentationModel->GetFilePathAt(index);
AppLogDebug("ENTER index(%d) filePath(%ls)", index, filePath.GetPointer());
void
ImageViewerForm::OnGallerySlideShowStopped(Gallery& gallery)
{
- AppLogDebug("ENTER");
+ AppLogDebug("ImageViewerForm::OnGallerySlideShowStopped");
+
+ int index;
+
+ if(__shuffle == true)
+ {
+
+ if(__pShuffelTimer == null)
+ {
+ __pShuffelTimer = new (std::nothrow) Timer();
+ __pShuffelTimer->Construct(*this);
+ }
+ __pShuffelTimer->Start(1);
+ }
+ else
+ {
+ index = __pGallery->GetCurrentItemIndex();
+ SlideShowStopped(index);
+ }
+
+
+ AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageViewerForm::SlideShowStopped(int index)
+{
+ AppLog("ImageViewerForm::SlideShowStopped");
PowerManager::KeepScreenOnState(false, true);
- int index = __pGallery->GetCurrentItemIndex();
if (__visible == false)
{
__pGallery->SetBounds(Rectangle(0, -clientRect.y, rect.width, rect.height));
Invalidate(true);
- AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
}
void
__pTimer = null;
}
+ if(__pShuffelTimer)
+ {
+ __pShuffelTimer->Cancel();
+ delete __pShuffelTimer;
+ __pShuffelTimer = null;
+ }
+
__pPresentationModel->ClearImageRequests();
__pPresentationModel->RemoveListener(*this);
__pPresentationModel->RemoveFileUpdateListener(*this);
__pContextMenuMore = null;
}
+ if(__pShuffledList != null)
+ {
+ free(__pShuffledList);
+ __pShuffledList = null;
+ }
+
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
return E_SUCCESS;
case ACTION_ID_FOOTER_BUTTON_CROP:
{
String filePath;
- ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
filePath = __pPresentationModel->GetFilePathAt(__pGallery->GetCurrentItemIndex());
+ ImageBuffer imagebuffer;
+ result r = imagebuffer.Construct(filePath);
+ if (r != E_SUCCESS)
+ {
+ return;
+ }
+ int imageWidth = imagebuffer.GetWidth();
+ int imageHeight = imagebuffer.GetHeight();
+ if (imageWidth <= (CROP_RECTANGLE_HEIGHT * 3) || imageHeight <= (CROP_RECTANGLE_HEIGHT * 3))
+ {
+ MessageBox messageBox;
+ String messageText = ResourceManager::GetString(L"IDS_IMGE_POP_IMAGE_IS_TOO_SMALL");
+ messageBox.Construct(L"", messageText, MSGBOX_STYLE_OK, 3000);
+ int modalResult = 0;
+ messageBox.ShowAndWait(modalResult);
+ return;
+ }
+ String cropMode = L"auto";
+ ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
pList->Add(new (std::nothrow) String(filePath));
+ pList->Add(new (std::nothrow) String(cropMode));
pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_CROP), pList);
}
break;
int currentIndex = __pGallery->GetCurrentItemIndex();
String filePath = __pPresentationModel->GetFilePathAt(currentIndex);
RotateMode rotateMode = ROTATE_MODE_RIGHT;
- __pPresentationModel->SetImageRotateStatus(true);
RotateImage(filePath, rotateMode);
__pPresentationModel->RequestImage(filePath);
- //Invalidate(true);
- ContentManager contentManager;
- contentManager.Construct();
- contentManager.ScanFile(filePath);
+ ContentManager::ScanFile(filePath);
}
break;
case ACTION_ID_FOOTER_BUTTON_ROTATE_LEFT:
int currentIndex = __pGallery->GetCurrentItemIndex();
String filePath = __pPresentationModel->GetFilePathAt(currentIndex);
RotateMode rotateMode = ROTATE_MODE_LEFT;
- __pPresentationModel->SetImageRotateStatus(true);
RotateImage(filePath, rotateMode);
__pPresentationModel->RequestImage(filePath);
- //Invalidate(true);
- ContentManager contentManager;
- contentManager.Construct();
- contentManager.ScanFile(filePath);
+ ContentManager::ScanFile(filePath);
}
break;
case ACTION_ID_FOOTER_BUTTON_DETAILS:
}
case ACTION_ID_CONTEXTMENU_HOME:
{
+ String filePath = __pPresentationModel->GetFilePathAt(__pGallery->GetCurrentItemIndex());
+ String cropMode = "fit-to-screen";
ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
- pList->Add(new (std::nothrow) Integer(__pGallery->GetCurrentItemIndex()));
+ pList->Add(new (std::nothrow) String(filePath));
+ pList->Add(new (std::nothrow) String(cropMode));
pList->Add(new (std::nothrow) Integer(SET_AT_TYPE_HOME_SCREEN_WALLPAPER));
- __pPresentationModel->SetSetterIndex(__pGallery->GetCurrentItemIndex());
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_SETTER), pList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_CROP), pList);
break;
}
case ACTION_ID_CONTEXTMENU_LOCK:
{
+ String filePath = __pPresentationModel->GetFilePathAt(__pGallery->GetCurrentItemIndex());
+ String cropMode = "fit-to-screen";
ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
- pList->Add(new (std::nothrow) Integer(__pGallery->GetCurrentItemIndex()));
+ pList->Add(new (std::nothrow) String(filePath));
+ pList->Add(new (std::nothrow) String(cropMode));
pList->Add(new (std::nothrow) Integer(SET_AT_TYPE_LOCK_SCREEN_WALLPAPER));
- __pPresentationModel->SetSetterIndex(__pGallery->GetCurrentItemIndex());
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_SETTER), pList);
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_CROP), pList);
break;
}
case ACTION_ID_CONTEXTMENU_CALLER:
new (std::nothrow) String(APPCONTROL_DATA_ITEM_ID));
__pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_CONTACTS,
- APPCONTROL_OPERATION_ID_PICK, null, null, pDataList, this);
+ APPCONTROL_OPERATION_ID_SOCIAL_PICK, null, null, pDataList, this);
break;
}
case ACTION_ID_CONTEXTMENU_HOME_AND_LOCK:
{
+ String filePath = __pPresentationModel->GetFilePathAt(__pGallery->GetCurrentItemIndex());
+ String cropMode = "fit-to-screen";
ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
- pList->Add(new (std::nothrow) Integer(__pGallery->GetCurrentItemIndex()));
+ pList->Add(new (std::nothrow) String(filePath));
+ pList->Add(new (std::nothrow) String(cropMode));
pList->Add(new (std::nothrow) Integer(SET_AT_TYPE_HOME_AND_LOCK_SCREEN_WALLPAPER));
- __pPresentationModel->SetSetterIndex(__pGallery->GetCurrentItemIndex());
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_SETTER), pList);
- break;
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_CROP), pList);
break;
}
ImageViewerForm::RotateImage(String& filePath, RotateMode rotateMode)
{
result r = E_SUCCESS;
+ ImageBuffer rotateBuffer;
ImageBuffer* pRotatedBuffer = null;
- ImageBuffer* pRotatedBuffer1 = null;
ImageFormat imageFormat;
- int width = 0;
- int height = 0;
- pRotatedBuffer = new (std::nothrow) ImageBuffer();
- r = pRotatedBuffer->Construct(filePath);
- pRotatedBuffer->GetImageInfo(filePath, imageFormat, width, height);
+ Image img;
+ r = img.Construct();
+
+ if (r == E_SUCCESS)
+ {
+ imageFormat = img.GetImageFormat(filePath);
+ }
+
+ r = rotateBuffer.Construct(filePath);
if (r == E_SUCCESS)
{
if (rotateMode == ROTATE_MODE_RIGHT)
{
- pRotatedBuffer1 = pRotatedBuffer->RotateN(IMAGE_ROTATION_90);
+ pRotatedBuffer = rotateBuffer.RotateN(IMAGE_ROTATION_90);
}
else
{
- pRotatedBuffer1 = pRotatedBuffer->RotateN(IMAGE_ROTATION_270);
+ pRotatedBuffer = rotateBuffer.RotateN(IMAGE_ROTATION_270);
}
}
- TryCatch(pRotatedBuffer1 != null, r = GetLastResult(), "RotateN failed:%s", GetErrorMessage(GetLastResult()));
- pRotatedBuffer1->EncodeToFile(filePath, imageFormat, true, 100);
- delete pRotatedBuffer1;
- delete pRotatedBuffer;
- return;
- CATCH:
- if (pRotatedBuffer != null) //this buffer is no longer used
+ if (pRotatedBuffer != null)
{
+ r = pRotatedBuffer->EncodeToFile(filePath, imageFormat, true, 100);
delete pRotatedBuffer;
}
- if (pRotatedBuffer1 != null) //this buffer is no longer used
- {
- delete pRotatedBuffer1;
- }
return;
}
Invalidate(true);
}
+ if (previousSceneId == IDSCN_IMAGE_CROP && pArgs != null)
+ {
+ String filePath;
+ filePath = *(static_cast<String*>(pArgs->GetAt(0)));
+ delete pArgs;
+ int count = __pPresentationModel->GetFileCount();
+ __pPresentationModel->AddImageCache(filePath);
+ __pGallery->UpdateGallery();
+ __pGallery->SetCurrentItemIndex(count);
+ __pPresentationModel->RequestImage(filePath);
+ }
+
if (__pGallery->GetCurrentItemIndex() < 0)
{
SetFooterItemState(false);
AppLogDebug("ENTER");
if (appId == APPCONTROL_PROVIDER_ID_CONTACTS
- && operationId == APPCONTROL_OPERATION_ID_PICK
+ && operationId == APPCONTROL_OPERATION_ID_SOCIAL_PICK
&& appControlResult == APP_CTRL_RESULT_SUCCEEDED)
{
- const String* pContactId =
- static_cast<const String*>(pExtraData->GetValue(String(APPCONTROL_KEY_SOCIAL_ITEM_ID)));
- SceneManager* pSceneManager = SceneManager::GetInstance();
+ const ArrayList* pResultList =
+ static_cast<const ArrayList*>(pExtraData->GetValue(String(APPCONTROL_KEY_SOCIAL_ITEM_ID)));
+ const String* pContactId = null;
+
+ if (pResultList != null)
+ {
+ pContactId = static_cast<const String*>(pResultList->GetAt(0));
+ }
+
long long lresult = 0;
if (pContactId != null && pContactId->GetLength() > 0)
{
LongLong::Parse(*pContactId, lresult);
+ String filePath = __pPresentationModel->GetFilePathAt(__pGallery->GetCurrentItemIndex());
+ String cropMode = "fit-to-screen";
+ ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ pList->Add(new (std::nothrow) String(filePath));
+ pList->Add(new (std::nothrow) String(cropMode));
+ pList->Add(new (std::nothrow) Integer(SET_AT_TYPE_CALLER_IMAGE));
+ pList->Add(new (std::nothrow) LongLong(lresult));
+ SceneManager* pSceneManager = SceneManager::GetInstance();
+ pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_CROP), pList);
}
- ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
- pList->Add(new (std::nothrow) Integer(__pGallery->GetCurrentItemIndex()));
- pList->Add(new (std::nothrow) Integer(SET_AT_TYPE_CALLER_IMAGE));
- pList->Add(new (std::nothrow) LongLong(lresult));
- __pPresentationModel->SetSetterIndex(__pGallery->GetCurrentItemIndex());
- pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_SETTER), pList);
}
ImageViewerApp* pImageViewerApp = static_cast<ImageViewerApp*>(ImageViewerApp::GetInstance());
void
ImageViewerForm::OnTimerExpired(Timer &timer)
{
- int repeatValue = 0;
- AppLogDebug("ENTER");
+ AppLog("ImageViewerForm::OnTimerExpired");
+
+ if(timer.Equals(*__pShuffelTimer) == true)
+ {
+ AppLog("OnTimerExpired __pShuffelTimer");
+ int curItemIndex = __pGallery->GetCurrentItemIndex();
+ int index = __pShuffledList[curItemIndex];
+
+ __shuffle = false;
+
+ __pGallery->UpdateGallery();
+
+ AppLog("ImageViewerForm::OnGallerySlideShowStopped index = %d, shuffelIndex = %d", curItemIndex, index);
+
+ __pGallery->SetCurrentItemIndex(index);
+ __pGallery->Draw();
+
+ SlideShowStopped(index);
+ return;
+ }
+
+ int repeatValue = 0;
+ int shuffleValue = 0;
+
if (__pPresentationModel->GetFileCount() > 1)
{
__pSettingPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
- ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, repeatValue);
+ ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, repeatValue);
- if (repeatValue == 0)
+ __pSettingPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+ ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, shuffleValue);
+
+ if (shuffleValue != 0)
+ {
+ __shuffelStartIndex = __pGallery->GetCurrentItemIndex();
+ CreateShuffledList(__pPresentationModel->GetFileCount());
+ __shuffle = true;
+ }
+ else
+ {
+ __shuffelStartIndex = 0;
+ __shuffle = false;
+ }
+
+ if ( repeatValue == 0)
{
__pGallery->StartSlideShow(false);
}
}
void
+ImageViewerForm::CreateShuffledList(int count)
+{
+ AppLogDebug("ImageViewerForm::CreateShuffledList ENTER");
+ if(__pShuffledList == null)
+ {
+ __pShuffledList = new (std::nothrow) int[count];
+ for(int i = 0; i < count; i++)
+ {
+ __pShuffledList[i] = i;
+ }
+ }
+ for(int i = count - 1; i > 1; i--)
+ {
+ int randomNum = Math::Rand() % (i+1);
+ int t = __pShuffledList[randomNum];
+ __pShuffledList[randomNum] = __pShuffledList[i];
+ __pShuffledList[i] = t;
+ }
+
+ for(int i = 0; i < count; i++)
+ {
+ AppLogDebug("ShuffeldList i = %d & Val = %d", i, __pShuffledList[i]);
+ }
+
+ AppLogDebug("ImageViewerForm::CreateShuffledList EXIT");
+}
+
+void
ImageViewerForm::OnContentTransferInProgress(RequestId requestId, int totalReceivedSize)
{
AppLogDebug("ENTER");
HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
pDataList->Construct();
- IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
pList->Add(new (std::nothrow) String(filePath));
- pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pList);
+ pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), pList);
__pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL, APPCONTROL_OPERATION_ID_COMPOSE,
new (std::nothrow) String(APPCONTROL_URI_MAIL_TO), null, pDataList, this);
HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
pDataList->Construct();
- IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+ ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
pList->Add(new (std::nothrow) String(filePath));
- pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pList);
+ pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), pList);
+ pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_MESSAGE_TYPE), new (std::nothrow) String(APPCONTROL_DATA_MMS));
- __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_MESSAGES, APPCONTROL_OPERATION_ID_COMPOSE,
- new (std::nothrow) String(APPCONTROL_URI_MMS_TO), null, pDataList, this);
+ __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_MESSAGES, APPCONTROL_OPERATION_ID_COMPOSE, null,
+ null, pDataList, this);
AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
}
{
Canvas mainCanvas;
mainCanvas.Construct(DUMMY_IMAGE_RECTANGLE);
- mainCanvas.FillRectangle(Color::GetColor(COLOR_ID_WHITE), DUMMY_IMAGE_RECTANGLE);
+ mainCanvas.FillRectangle(Color::GetColor(COLOR_ID_BLACK), DUMMY_IMAGE_RECTANGLE);
pBitmap = new (std::nothrow) Bitmap();
pBitmap->Construct(mainCanvas, DUMMY_IMAGE_RECTANGLE);
}
void ImageViewerForm::OnFormFileEventOccuered(const int index, const unsigned long eventId)
{
AppLogDebug(" ENTER");
- bool eventDelete = (eventId & FILE_EVENT_TYPE_DELETE_SELF);
- bool eventMove = (eventId & 0x8000);// (eventId & FILE_EVENT_TYPE_MOVE_SELF);
int currentIndex = __pGallery->GetCurrentItemIndex();
- int countPath = __pPresentationModel->GetFileCount();
+ int fileCount = __pPresentationModel->GetFileCount();
- if (countPath == 0 && eventDelete)
+ if (fileCount == 0 && eventId == IV_FILE_DELETE)
{
UiApp* pApp = UiApp::GetInstance();
pApp->Terminate();
AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
}
- AppLogDebug(" countPath is %d", countPath);
- AppLogDebug(" currentIndex is %d", currentIndex);
- if (countPath == currentIndex && eventDelete)
+ if (fileCount <= currentIndex && eventId == IV_FILE_DELETE)
{
- __pGallery->SetCurrentItemIndex(--currentIndex);
+ currentIndex = fileCount - 1;
}
- else if (eventMove)
+ else if (eventId == IV_FILE_CREATE)
{
currentIndex = index;
- __pGallery->SetCurrentItemIndex(currentIndex);
}
- String strItemIdxText(EMPTY_SPACE);
+ String strItemIdxText(EMPTY_SPACE);
+ __pGallery->SetCurrentItemIndex(currentIndex);
__pGallery->UpdateGallery();
- AppLogDebug(" UpdateGallery is %d", currentIndex);
String filePath = __pPresentationModel->GetFilePathAt(currentIndex);
__pPresentationModel->RequestImage(filePath);
if (index == 0) // start slide show
{
- int repeatValue = 0;
+ int repeatValue = 0;
+ int interval = 0 ;
+ int transitioneffect = 0;
if (__pPresentationModel->GetFileCount() > 1)
{
+ int shuffleValue;
+ __pSettingPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+ ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, interval);
+
+ interval = interval * 1000;
+ AppLogDebug("The slide interval is %d", interval);
+ __pGallery->SetSlideShowViewDuration(interval);
+
+
__pGallery->UpdateGallery();
if (__detail == false)
__pSettingPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, repeatValue);
+ __pSettingPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+ ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, shuffleValue);
+
+ __pSettingPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+ ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, transitioneffect);
+
+ if (transitioneffect == 1)
+ {
+ __pGallery->SetSlideShowAnimation(GALLERY_ANIMATION_DISSOLVE);
+ }
+ else if (transitioneffect == 2)
+ {
+ __pGallery->SetSlideShowAnimation(GALLERY_ANIMATION_ZOOM);
+ }
+ else
+ {
+ __pGallery->SetSlideShowAnimation(GALLERY_ANIMATION_PAGE);
+ }
+
+ if (shuffleValue != 0)
+ {
+ __shuffelStartIndex = __pGallery->GetCurrentItemIndex();
+ CreateShuffledList(__pPresentationModel->GetFileCount());
+ __shuffle = true;
+ }
+ else
+ {
+ __shuffelStartIndex = 0;
+ __shuffle = false;
+ }
+
if (repeatValue == 0)
{
__pGallery->StartSlideShow(false);