void mf_callback_move_here_cb(void *data, Evas_Object *obj, void *event_info);
void mf_callback_paste_here_cb(void *data, Evas_Object *obj, void *event_info);
void mfCopyCB(void *data, Evas_Object *obj, void *event_info);
+void __mf_compress_pipe_cb(void *data, void *buffer, unsigned int nbyte);
+void __mf_decompress_pipe_cb(void *data, void *buffer, unsigned int nbyte);
Eina_Bool mf_callback_thumb_timer_cb(void *data);
/*Callbacks defined for external usage*/
int mf_do_list(unzFile uf);
-int mf_do_extract_currentfile(unzFile uf, const int* popt_extract_without_path, int* popt_overwrite, const char* password,void *data);
+int mf_do_extract_currentfile(unzFile uf, const int* popt_extract_without_path, int* popt_overwrite, const char* password,void *data, int count);
int mf_do_extract(unzFile uf, int opt_extract_without_path, int opt_overwrite, const char* password, void *data);
#include <zip.h>
+#include "mf-search.h"
+
#define WRITEBUFFERSIZE (16384)
#define MAXFILENAME (256)
+typedef struct _mf_compress_pipe_msg mf_compress_pipe_msg;
+struct _mf_compress_pipe_msg {
+ mf_search_pipe_msg_type mf_sp_msg_type;
+ char *filename;
+ int finished_count;
+ int total_count;
+};
+
int mf_check_exist_file(const char* filename);
/* calculate the CRC32 of a file,
because to encrypt a file, we need known the CRC32 of the file before */
int mf_get_file_crc(const char* filenameinzip,void*buf,unsigned long size_buf,unsigned long* result_crc);
-int mf_file_do_zip(int argc, char **argv, char *cwd);
+int mf_file_do_zip(void *data, int argc, char **argv, char *cwd);
#endif /* MF_MINIZIP_H_ */
Evas_Object *mf_popup_create_popup(void *data, ePopMode popupMode, char *title, const char *context, const char *first_btn_text, const char *second_btn_text,
const char *third_btn_text, Evas_Smart_Cb func, void *param);
Evas_Object *mf_popup_create_pb_popup(void *data, char *title, char *context, int file_count, void *func, void *param);
+Evas_Object *mf_popup_create_progress_pb_popup(void *data, char *title, char *context, int file_count, void *func, void *param);
void mf_popup_indicator_popup(void *data, const char *text);
Evas_Object *mf_popup_center_processing(void *data,
const char *context,
*
*/
+
+#include <glib.h>
+
#ifndef _MF_SEARCH_H_
#define _MF_SEARCH_H_
gchar *current_path;
};
+
/**
* mf_Search_Cb:
* @result: the handle of result, use util APIs to get detail result with this handle.
#include "myfile-expand-title.edc"
#include "myfile-toolbar.edc"
/* for genlist multi_item style*/
+
+
+ #define PROGRESSBAR_DEFAULT_HEIGHT_INC 4
+#define PROGRESSBAR_DEFAULT_TEXT_HEIGHT_INC 21
+#define PROGRESSBAR_PADDING_HEIGHT_INC 4
+
+group { name: "elm/progressbar/horizontal/myfile/default";
+ data.item: "vector_ux" "default";
+ parts {
+ part { name: "access";
+ type: RECT;
+ description { state: "default" 0.0;
+ fixed: 1 1;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "elm.swallow.bar";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ visible: 0;
+ }
+ }
+ part { name: "base";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 PROGRESSBAR_DEFAULT_HEIGHT_INC;
+ }
+ }
+ part { name: "elm.text.top.right";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 0.0;
+ rel1.to: "base";
+ rel2.to: "top_padding";
+ text {
+ min: 0 0;
+ align: 0.0 1.0;
+ font: "Tizen:style=Regular"; size: "12";
+ text_class: "tizen";
+ }
+ align: 0.0 1.0;
+ color: 102 102 102 255;
+ visible: 0;
+ }
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ min: 0 PROGRESSBAR_DEFAULT_TEXT_HEIGHT_INC;
+ text.min: 1 1;
+ visible: 1;
+ }
+ }
+ part { name: "top_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 PROGRESSBAR_PADDING_HEIGHT_INC;
+ max: -1 PROGRESSBAR_PADDING_HEIGHT_INC;
+ fixed: 0 1;
+ rel1.to: "background";
+ rel2.to: "background";
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 0.0;
+ align: 0.5 1.0;
+ }
+ }
+ part { name: "background";
+ type: RECT;
+ mouse_events: 0;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 PROGRESSBAR_DEFAULT_HEIGHT_INC;
+ max: -1 PROGRESSBAR_DEFAULT_HEIGHT_INC;
+ fixed: 0 1;
+ color: 145 145 145 179;
+ }
+ }
+ part { name: "tizen_vg_shape1";
+ type: SWALLOW;
+ mouse_events: 0;
+ scale: 1;
+ clip_to: "background";
+ description { state: "default" 0.0;
+ rel1.to: "background";
+ rel2.to: "background";
+ }
+ }
+ part { name: "drag.background";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 {
+ to_x: "background";
+ to_y: "background";
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ to_x: "background";
+ to_y: "background";
+ relative: 1.0 1.0;
+ }
+ }
+ }
+ part { name: "tizen_vg_shape2";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "tizen_vg_shape2_clipper";
+ description { state: "default" 0.0;
+ rel1.to: "elm.progress.progressbar";
+ rel2.to: "elm.progress.progressbar";
+ }
+ }
+ part { name: "tizen_vg_shape2_clipper";
+ type: RECT;
+ description { state: "default" 0.0;
+ color:61 184 204 77;
+ }
+ }
+ part { name: "tizen_vg_shape3";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "elm.progress.progressbar";
+ description { state: "default" 0.0;
+ rel1.to: "elm.progress.progressbar";
+ rel2.to: "elm.progress.progressbar";
+ }
+ }
+ part { name: "elm.progress.progressbar";
+ type: RECT;
+ description { state: "default" 0.0;
+ min: 0 0;
+ fixed: 1 1;
+ rel1 {
+ to: "background";
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ to_y: "background";
+ to_x: "elm.cur.progressbar";
+ offset: -1 -1;
+ }
+ color:61 184 204 255;
+ }
+ description { state: "invert" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ to_y: "background";
+ to_x: "elm.cur.progressbar";
+ }
+ rel2 {
+ to: "background";
+ relative: 1.0 1.0;
+ }
+ }
+ description { state: "state_begin" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ to: "background";
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ to: "background";
+ relative: 0.1 1.0;
+ }
+ }
+ description { state: "state_end" 0.0;
+ inherit: "default" 0.0;
+ rel1 {
+ to: "background";
+ relative: 0.9 0.0;
+ }
+ rel2 {
+ to: "background";
+ relative: 1.0 1.0;
+ }
+ }
+ }
+ part { name: "elm.cur.progressbar";
+ mouse_events: 0;
+ scale: 1;
+ dragable {
+ confine: "drag.background";
+ x: 1 1 1;
+ y: 0 0 0;
+ }
+ description { state: "default" 0.0;
+ min: 0 28;
+ fixed: 1 1;
+ visible: 0;
+ rel1.to: "drag.background";
+ rel2.to: "drag.background";
+ }
+ }
+ part { name: "bottom_padding";
+ type: SPACER;
+ scale: 1;
+ description { state: "default" 0.0;
+ min: 0 PROGRESSBAR_PADDING_HEIGHT_INC;
+ max: -1 PROGRESSBAR_PADDING_HEIGHT_INC;
+ fixed: 0 1;
+ rel1.to: "background";
+ rel2.to: "background";
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 1.0;
+ align: 0.5 0.0;
+ }
+ }
+ part { name: "elm.text.bottom.left";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "bottom_padding";
+ rel2.to: "base";
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 1.0;
+ text {
+ min: 0 0;
+ align: 0.0 0.0;
+ font: "Tizen:style=Regular"; size: "12";
+ text_class: "tizen";
+ }
+ align: 0.0 0.0;
+ color: 102 102 102 255;
+ visible: 0;
+ }
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ text.min: 1 1;
+ visible: 1;
+ min: 0 PROGRESSBAR_DEFAULT_TEXT_HEIGHT_INC;
+ }
+ }
+ part { name: "elm.text.status";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "bottom_padding";
+ rel2.to: "base";
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 1.0;
+ text {
+ min: 0 0;
+ align: 1.0 0.0;
+ font: "Tizen:style=Regular"; size: "12";
+ text_class: "tizen";
+ }
+ align: 1.0 0.0;
+ color: 102 102 102 255;
+ visible: 0;
+ }
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ text.min: 1 1;
+ min: 0 PROGRESSBAR_DEFAULT_TEXT_HEIGHT_INC;
+ visible: 1;
+ }
+ }
+ part { name: "elm.text.bottom.right";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1.to: "bottom_padding";
+ rel2.to: "base";
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 1.0;
+ text {
+ min: 0 0;
+ align: 1.0 0.0;
+ font: "Tizen:style=Regular"; size: "12";
+ text_class: "tizen";
+ }
+ align: 1.0 0.0;
+ color: 102 102 102 255;
+ visible: 0;
+ }
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ text.min: 1 1;
+ visible: 1;
+ min: 0 PROGRESSBAR_DEFAULT_TEXT_HEIGHT_INC;
+ }
+ }
+ }
+ programs {
+ program { name: "text_top_right_show";
+ signal: "elm,state,top.right,visible";
+ source: "elm";
+ action: STATE_SET "show" 0.0;
+ target: "elm.text.top.right";
+ }
+ program { name: "text_top_right_text_hide";
+ signal: "elm,state,top.right,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.top.right";
+ }
+ program { name: "text_bottom_left_show";
+ signal: "elm,state,bottom.left,visible";
+ source: "elm";
+ action: STATE_SET "show" 0.0;
+ target: "elm.text.bottom.left";
+ }
+ program { name: "text_bottom_left_text_hide";
+ signal: "elm,state,bottom.left,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.bottom.left";
+ }
+ program { name: "text_bottom_right_show";
+ signal: "elm,state,bottom.right,visible";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.status", "default", 0.0);
+ set_state(PART:"elm.text.bottom.right", "show", 0.0);
+ }
+ }
+ program { name: "text_status_show";
+ signal: "elm,state,units,visible";
+ source: "elm";
+ script {
+ set_state(PART:"elm.text.bottom.right", "default", 0.0);
+ set_state(PART:"elm.text.status", "show", 0.0);
+ }
+ }
+ program { name: "text_status_text_hide";
+ signal: "elm,state,units,hidden";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.status";
+ }
+ program { name: "slide_to_end";
+ action: STATE_SET "state_end" 0.0;
+ transition: LINEAR 0.5;
+ target: "elm.progress.progressbar";
+ after: "slide_to_begin";
+ }
+ program { name: "slide_to_begin";
+ signal: "elm,state,slide,begin";
+ action: STATE_SET "state_begin" 0.0;
+ target: "elm.progress.progressbar";
+ transition: LINEAR 0.5;
+ after: "slide_to_end";
+ }
+ program { name: "start_pulse";
+ signal: "elm,state,pulse,start";
+ source: "elm";
+ }
+ program { name: "stop_pulse";
+ signal: "elm,state,pulse,stop";
+ source: "elm";
+ action: ACTION_STOP;
+ target: "slide_to_begin";
+ target: "slide_to_end";
+ target: "start_pulse";
+ }
+ program { name: "state_pulse";
+ signal: "elm,state,pulse";
+ source: "elm";
+ action: STATE_SET "state_begin" 0.0;
+ target: "elm.progress.progressbar";
+ action: STATE_SET "default" 0.0;
+ target: "elm.text.status";
+ }
+ program { name: "state_fraction";
+ signal: "elm,state,fraction";
+ source: "elm";
+ action: ACTION_STOP;
+ target: "slide_to_begin";
+ target: "slide_to_end";
+ target: "start_pulse";
+ action: STATE_SET "default" 0.0;
+ target: "elm.progress.progressbar";
+ target: "elm.text.status";
+ }
+ program { name: "set_invert_on";
+ signal: "elm,state,inverted,on";
+ source: "elm";
+ action: STATE_SET "invert" 0.0;
+ target: "elm.progress.progressbar";
+ }
+ program { name: "set_invert_off";
+ signal: "elm,state,inverted,off";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "elm.progress.progressbar";
+ }
+ program { name: "finished_animation";
+ signal: "elm,action,animation,finished";
+ source: "elm";
+ action: SIGNAL_EMIT "animation,finished" "";
+ }
+ }
+ }
+
+ group { name: "popup_copy_move";
+ parts {
+ part {
+ name : "bg";
+ type : RECT;
+ description {
+ min : 200 0;
+ max : -1 200;
+ rel1 {
+ relative : 1.0 0.0;
+ to : "pad_l";
+ }
+ rel2 {
+ relative : 0.0 1.0;
+ to : "pad_r";
+ }
+ color : 0 0 0 0;
+ }
+ }
+ part {
+ name : "swallow";
+ type : SWALLOW;
+ description {
+ min : 0 0;
+ max : -1 -1;
+ rel1 {
+ relative : 1.0 0.0;
+ to : "pad_l";
+ }
+ rel2 {
+ relative : 0.0 1.0;
+ to : "pad_r";
+ }
+ }
+ }
+ part {
+ name : "pad_l";
+ type : SPACER;
+ description {
+ min : 50 50;
+ max : 50 50;
+ rel1.relative : 0.0 0.0;
+ rel2.relative : 0.0 0.0;
+ align : 0.0 0.0;
+ }
+ }
+ part {
+ name : "pad_r";
+ type : SPACER;
+ description {
+ min : 50 50;
+ max : 50 50;
+ rel1.relative : 1.0 1.0;
+ rel2.relative : 1.0 1.0;
+ align : 1 1;
+ }
+ }
+ }
+}
group
/************** progressbar popup****************/
group { name: "popup_center_progressview";
-#define DEMO_POPUP_PROGRESSVIEW_CONTENT_MIN 200 5
-#define DEMO_POPUP_PROGRESSVIEW_PROGRESSBAR_MIN 200 6
+#define DEMO_POPUP_PROGRESSVIEW_CONTENT_MIN 200 40
+#define DEMO_POPUP_PROGRESSVIEW_PROGRESSBAR_MIN 200 10
#define DEMO_POPUP_PROGRESSVIEW_TITLE_MIN 200 28
#define DEMO_POPUP_PROGRESSVIEW_TEXT_LEFT_RIGHT_MAX 142 28
parts {
scale: 1;
description { state: "default" 0.0;
align: 0.5 0.0;
- min: 0 40;
+ min: 0 20;
fixed: 0 1;
rel1 {
relative: 1.0 0.0;to_x: "pad_l";
type: SPACER;
scale: 1;
description { state: "default" 0.0;
- min: 29 0;
- max: 29 0;
+ min: 20 0;
+ max: 20 0;
fixed: 1 0;
rel1 {
relative: 0.0 0.0;
type: SPACER;
scale: 1;
description { state: "default" 0.0;
- min: 29 0;
- max: 29 0;
+ min: 20 0;
+ max: 20 0;
fixed: 1 0;
rel1 {
relative: 1.0 0.0;
min: 0 0;
align: 0.0 0.0;
text_class: "T058";
- size : 15;
+ size : 12;
}
color: 0 0 0 255;
align: 0.5 0.0;
rel1 {
- relative: 0.5 0.4;
+ relative: 0.0 0.1;
to: "pad_t";
}
rel2 {
- relative: 1.0 0.6;
+ relative: 1.0 1.0;
to: "pad_t";
}
}
type: SWALLOW;
scale: 1;
description { state: "default" 0.0;
- max: DEMO_POPUP_PROGRESSVIEW_PROGRESSBAR_MIN;
+ min: DEMO_POPUP_PROGRESSVIEW_PROGRESSBAR_MIN;
align: 0.0 0.5;
rel1 {
- relative: 0.0 0.4;
- to_x: "pad_l";
- to_y: "pad_t";
+ relative: 0.0 0.0;
+ to: "elm.swallow.content";
}
rel2 {
- relative: 0.1 0.8;
- to: "pad_t";
+ relative: 1.0 1.0;
+ to: "elm.swallow.content";
}
}
}
*/
#include"mf-miniunzip.h"
+#include "mf-minizip.h"
#include"mf-dlog.h"
#include "mf-main.h"
#include <eina_list.h>
}
-int mf_do_extract_currentfile(unzFile uf, const int* popt_extract_without_path, int* popt_overwrite, const char* password,void *data)
+int mf_do_extract_currentfile(unzFile uf, const int* popt_extract_without_path, int* popt_overwrite, const char* password,void *data, int count)
{
char filename_inzip[256];
char* filename_withoutpath;
if (file_found == 1) {
mf_debug("shubham file found");
+ mf_compress_pipe_msg msg1;
+ memset(&msg1, 0, sizeof(mf_compress_pipe_msg));
+ msg1.finished_count = count;
+ msg1.filename = strdup(filename_inzip);
+ msg1.mf_sp_msg_type = MF_SEARCH_PIPE_MSG_DOING;
+ msg1.total_count = eina_list_count(ap->edit_file_list);
+ ecore_pipe_write(ap->mf_FileOperation.sync_pipe, &msg1, sizeof(msg1));
if (err!=UNZ_OK) {
mf_debug("error %d with zipfile in unzGetCurrentFileInfo\n",err);
return err;
}
}
+ mf_compress_pipe_msg msg;
+ memset(&msg, 0, sizeof(mf_compress_pipe_msg));
+ msg.finished_count = count;
+ msg.filename = strdup(filename_inzip);
+ msg.mf_sp_msg_type = MF_SEARCH_PIPE_MSG_RESULT_REPORT;
+ msg.total_count = eina_list_count(ap->edit_file_list);
+ ecore_pipe_write(ap->mf_FileOperation.sync_pipe, &msg, sizeof(msg));
+ sleep(1);
+
if (err==UNZ_OK) {
err = unzCloseCurrentFile (uf);
if (err!=UNZ_OK) {
{
int ret = mf_do_extract_currentfile(uf,&opt_extract_without_path,
- &opt_overwrite, password,ap);
+ &opt_overwrite, password,ap,i+1);
if (ret != 10 && ret != UNZ_OK) {
break;
}
if (mf_do_extract_currentfile(uf,&opt_extract_without_path,
&opt_overwrite,
- password,ap) == UNZ_OK) {
+ password,ap,1) == UNZ_OK) {
return 0;
}
else {
*/
#include "mf-minizip.h"
+#include "mf-search.h"
#include "mf-dlog.h"
+#include "mf-main.h"
+
+#include <Elementary.h>
uLong mf_get_filetime(char *f, tm_zip *tmzip, uLong *dt)
{
return err;
}
-int mf_file_do_zip(int argc, char **argv, char *cwd)
+int mf_file_do_zip(void *data, int argc, char **argv, char *cwd)
{
chdir(cwd);
getcwd(cwd, sizeof(cwd));
mf_debug("Current Directory : %s", cwd);
+ struct appdata *ap = (struct appdata *)data;
int i;
int opt_overwrite=0;
int opt_compress_level=Z_DEFAULT_COMPRESSION;
mf_debug("creating %s",filename_try);
}
+ mf_compress_pipe_msg msg2;
+ memset(&msg2, 0, sizeof(mf_compress_pipe_msg));
+ msg2.finished_count = 0;
+ msg2.filename = strdup("");
+ msg2.mf_sp_msg_type = MF_SEARCH_PIPE_MSG_RESULT_REPORT;
+ msg2.total_count = argc - 2;
+ ecore_pipe_write(ap->mf_FileOperation.sync_pipe, &msg2, sizeof(msg2));
+
+
for (i=zipfilenamearg+1;(i<argc) && (err==ZIP_OK);i++)
{
if (!((((*(argv[i]))=='-') || ((*(argv[i]))=='/')) &&
zip_fileinfo zi;
unsigned long crcFile=0;
+ mf_compress_pipe_msg msg;
+ memset(&msg, 0, sizeof(mf_compress_pipe_msg));
+ msg.finished_count = i;
+ msg.filename = strdup(filenameinzip);
+ msg.mf_sp_msg_type = MF_SEARCH_PIPE_MSG_DOING;
+ msg.total_count = argc - 2;
+ ecore_pipe_write(ap->mf_FileOperation.sync_pipe, &msg, sizeof(msg));
+
zi.tmz_date.tm_sec = zi.tmz_date.tm_min = zi.tmz_date.tm_hour =
zi.tmz_date.tm_mday = zi.tmz_date.tm_mon = zi.tmz_date.tm_year = 0;
zi.dosDate = 0;
} while ((err == ZIP_OK) && (size_read>0));
}
+ mf_compress_pipe_msg msg1;
+ memset(&msg1, 0, sizeof(mf_compress_pipe_msg));
+ msg1.finished_count = i;
+ msg1.filename = strdup(filenameinzip);
+ msg1.mf_sp_msg_type = MF_SEARCH_PIPE_MSG_RESULT_REPORT;
+ msg1.total_count = argc - 2;
+ ecore_pipe_write(ap->mf_FileOperation.sync_pipe, &msg1, sizeof(msg1));
+
if (fin) {
fclose(fin);
}
mf_storage_remove_flag = flag;
}
+void __mf_compress_pipe_cb(void *data, void *buffer, unsigned int nbyte)
+{
+ struct appdata *ap = (struct appdata *)data;
+ char count[1024];
+ char per[1024];
+
+ mf_compress_pipe_msg *pSearchMsg = (mf_compress_pipe_msg *) buffer;
+ if (pSearchMsg == NULL) {
+ mf_debug("received message is NULL");
+ return;
+ }
+
+ if (pSearchMsg->mf_sp_msg_type == MF_SEARCH_PIPE_MSG_DOING) {
+ if (pSearchMsg->filename) {
+ mf_debug("file name exits");
+ mf_object_text_set(ap->mf_MainWindow.pProgressLayout, pSearchMsg->filename, "elm.title.filename");
+ free(pSearchMsg->filename);
+ }
+ }
+
+ else if (pSearchMsg->mf_sp_msg_type == MF_SEARCH_PIPE_MSG_RESULT_REPORT) {
+ int percentage = (((pSearchMsg->finished_count-1) * 100 )/pSearchMsg->total_count);
+ snprintf(count, sizeof(count), "%d/%d", pSearchMsg->finished_count-1, pSearchMsg->total_count);
+ snprintf(per, sizeof(per), "%d %%", percentage);
+ elm_progressbar_value_set(ap->mf_FileOperation.progress_bar, (double)((double)percentage/100));
+ elm_object_part_text_set(ap->mf_MainWindow.pProgressLayout, "elm.text.left", per);
+ elm_object_part_text_set(ap->mf_MainWindow.pProgressLayout, "elm.text.right", count);
+
+ } else {
+ SAFE_FREE_OBJ(ap->mf_MainWindow.pProgressPopup);
+ mf_callback_cancel_cb(ap,NULL,NULL);
+ ecore_pipe_del(ap->mf_FileOperation.sync_pipe);
+ }
+
+
+}
+
+void __mf_decompress_pipe_cb(void *data, void *buffer, unsigned int nbyte)
+{
+ struct appdata *ap = (struct appdata *)data;
+ char count[1024];
+ char per[1024];
+
+ mf_compress_pipe_msg *pSearchMsg = (mf_compress_pipe_msg *) buffer;
+ if (pSearchMsg == NULL) {
+ mf_debug("received message is NULL");
+ return;
+ }
+
+ if (pSearchMsg->mf_sp_msg_type == MF_SEARCH_PIPE_MSG_DOING) {
+ if (pSearchMsg->filename) {
+ mf_object_text_set(ap->mf_MainWindow.pProgressLayout, pSearchMsg->filename, "elm.title.filename");
+ free(pSearchMsg->filename);
+ }
+ } else if (pSearchMsg->mf_sp_msg_type == MF_SEARCH_PIPE_MSG_RESULT_REPORT) {
+ int percentage = (((pSearchMsg->finished_count) * 100 )/pSearchMsg->total_count);
+ snprintf(count, sizeof(count), "%d/%d", pSearchMsg->finished_count, pSearchMsg->total_count);
+ snprintf(per, sizeof(per), "%d %%", percentage);
+
+ double v = elm_progressbar_value_get(ap->mf_FileOperation.progress_bar);
+
+ elm_progressbar_value_set(ap->mf_FileOperation.progress_bar, (double)((double)percentage/100));
+
+ double v1 = elm_progressbar_value_get(ap->mf_FileOperation.progress_bar);
+
+ elm_object_part_text_set(ap->mf_MainWindow.pProgressLayout, "elm.text.left", per);
+ elm_object_part_text_set(ap->mf_MainWindow.pProgressLayout, "elm.text.right", count);
+ } else {
+ mf_debug("popup deleted");
+ SAFE_FREE_OBJ(ap->mf_MainWindow.pProgressPopup);
+ mf_callback_cancel_cb(ap,NULL,NULL);
+ ecore_pipe_del(ap->mf_FileOperation.sync_pipe);
+ }
+}
+
Eina_Bool mf_callback_monitor_internal_update_flag_get()
{
return monitor_internal_update_flag;
i++;
}
- mf_file_do_zip(argc, argv, ap->mf_FileOperation.source->str);
+ mf_file_do_zip(ap, argc, argv, ap->mf_FileOperation.source->str);
ap->mf_Status.view_type = mf_view_normal;
mf_debug("thread function done");
// ap->new_file = NULL;
MF_TRACE_END;
+ mf_compress_pipe_msg msg;
+ memset(&msg, 0, sizeof(mf_compress_pipe_msg));
+ msg.mf_sp_msg_type = MF_SEARCH_PIPE_MSG_FINISHED;
+ ecore_pipe_write(ap->mf_FileOperation.sync_pipe, &msg, sizeof(msg));
pthread_exit(0);
+
return NULL;
}
mf_error("\nMORE : %d. EXTRA : %d", ap->mf_Status.more, ap->mf_Status.extra);
- if (ap->mf_Status.extra == MORE_SEARCH) {
- ap->mf_Status.more = MORE_SEARCH;
- mf_search_view_create(ap);
- } else {
- ap->mf_Status.more = MORE_DEFAULT;
- SAFE_FREE_CHAR(ap->mf_Status.entry_path);
- ap->mf_Status.entry_more = MORE_DEFAULT;
- if (ap->mf_Status.view_type != mf_view_root_category && ap->mf_Status.more != MORE_SEARCH) {
- mf_navi_bar_recover_info_box(ap);
- }
- mf_naviframe_title_button_delete(ap->mf_MainWindow.pNaviItem);
- }
-
-
ap->mf_Status.view_type = mf_view_normal;
+ mf_compress_pipe_msg msg;
+ memset(&msg, 0, sizeof(mf_compress_pipe_msg));
+ msg.mf_sp_msg_type = MF_SEARCH_PIPE_MSG_FINISHED;
+ ecore_pipe_write(ap->mf_FileOperation.sync_pipe, &msg, sizeof(msg));
+
+ pthread_exit(0);
MF_TRACE_END;
}
if (ret == 0) {
ap->mf_FileOperation.iOperationSuccessFlag = TRUE;
mf_fs_monitor_remove_dir_watch();
- ap->mf_MainWindow.pProgressPopup = mf_popup_create_pb_popup(ap, LABEL_COPY, MF_MSG_COPYING, count, mf_callback_progress_bar_cancel_cb, ap);
+ ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, LABEL_COPY, MF_MSG_COPYING, count, mf_callback_progress_bar_cancel_cb, ap);
} else if (ret == MF_FO_ERR_ARGUMENT) {
mf_popup_indicator_popup(ap, mf_util_get_text(MF_LABEL_FILE_NOT_EXIST));
mf_callback_cancel_cb(ap, NULL, NULL);
if (mf_move_move_items(pSourceList, pDestPath, ap->mf_FileOperation.pCancel, TRUE, ap) == 0) {
ap->mf_FileOperation.iOperationSuccessFlag = TRUE;
mf_fs_monitor_remove_dir_watch();
- ap->mf_MainWindow.pProgressPopup = mf_popup_create_pb_popup(ap, LABEL_MOVE, MF_MSG_MOVING, count, mf_callback_progress_bar_cancel_cb, ap);
+ ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, LABEL_MOVE, MF_MSG_MOVING, count, mf_callback_progress_bar_cancel_cb, ap);
} else {
mf_callback_cancel_cb(ap, NULL, NULL);
}
void mf_file_decompression_start(void *data)
{
struct appdata *ap = (struct appdata *)data;
- Evas_Object *popup;
- popup = elm_popup_add(ap->mf_MainWindow.pMainLayout);
- elm_object_signal_emit(popup, "elm,action,center_popup,entry", "");
+ ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_DECOMPRESS, MF_LABEL_DECOMPRESSING, 10, mf_callback_cancel_cb, ap);;
- Evas_Object *layout = mf_popup_entry_layout_create(popup);
- elm_object_content_set(popup, layout);
- Evas_Object *progressbar;
+ evas_object_show(ap->mf_MainWindow.pProgressPopup);
+ if (ap->mf_FileOperation.sync_pipe != NULL) {
+ ecore_pipe_del(ap->mf_FileOperation.sync_pipe);
+ ap->mf_FileOperation.sync_pipe = NULL;
+ }
- progressbar = elm_progressbar_add(layout);
- elm_object_style_set(progressbar, "wheel");
- evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_progressbar_pulse(progressbar, EINA_TRUE);
- evas_object_show(progressbar);
+ ap->mf_FileOperation.sync_pipe = ecore_pipe_add(__mf_decompress_pipe_cb, ap);
pthread_t thread;
pthread_attr_init(&attr);
int ret;
- ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+ ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_create(&thread, &attr,(void *)& mf_callback_decompress_cb, (void *) ap);
+ pthread_detach(thread);
- pthread_join(thread, NULL);
- SAFE_FREE_OBJ(progressbar);
}
void mf_file_compression_start(void *data)
{
struct appdata *ap = (struct appdata *)data;
- Evas_Object *popup;
- popup = elm_popup_add(ap->mf_MainWindow.pMainLayout);
- elm_object_signal_emit(popup, "elm,action,center_popup,entry", "");
- Evas_Object *layout = mf_popup_entry_layout_create(popup);
- elm_object_content_set(popup, layout);
+ ap->mf_MainWindow.pProgressPopup = mf_popup_create_progress_pb_popup(ap, MF_LABEL_COMPRESS, MF_LABEL_COMPRESSING, 10, mf_callback_cancel_cb, ap);;
+
+
+ evas_object_show(ap->mf_MainWindow.pProgressPopup);
+
+ if (ap->mf_FileOperation.sync_pipe != NULL) {
+ ecore_pipe_del(ap->mf_FileOperation.sync_pipe);
+ ap->mf_FileOperation.sync_pipe = NULL;
+ }
- Evas_Object *progressbar = NULL;
+ ap->mf_FileOperation.sync_pipe = ecore_pipe_add(__mf_compress_pipe_cb, ap);
- progressbar = elm_progressbar_add(layout);
- elm_object_style_set(progressbar, "wheel");
- evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_progressbar_pulse(progressbar, EINA_TRUE);
- evas_object_show(progressbar);
pthread_t thread;
pthread_attr_t attr;
pthread_attr_init(&attr);
int ret;
- ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
+ ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
pthread_create(&thread, NULL,(void *)& mf_callback_compress_cb, (void *) ap);
- pthread_join(thread, NULL);
-// mf_view_update(ap);
- SAFE_FREE_OBJ(progressbar);
- mf_callback_cancel_cb(ap,NULL,NULL);
+ pthread_detach(thread);
}
/******************************
elm_object_focus_set(popup, EINA_FALSE);
- /*if (title) {
- mf_object_text_set(popup, title, "title,text");
- }*/
char edj_path[1024] = {0};
char *path = app_get_resource_path();
snprintf(edj_path, 1024, "%s%s/%s", path, "edje", EDJ_NAME);
elm_object_focus_set(progressbar, EINA_FALSE);
ap->mf_FileOperation.progress_bar = progressbar;
elm_object_style_set(progressbar, "wheel");
+ evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(progressbar);
+
+ elm_object_part_content_set(layout, "elm.swallow.progressbar", progressbar);
+ mf_object_text_set(layout, context, "elm.title");
+ elm_object_content_set(popup, layout);
+ evas_object_show(popup);
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __mf_popup_pb_popup_del_cb, ap);
+ if (func) {
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, func, param);
+ } else {
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, NULL);
+ }
+
+ return popup;
+}
+
+/******************************
+** Prototype : mf_popup_create_progress_pb_popup
+** Description :
+** Input : void *data
+** char *context
+** int file_count
+** void*func
+** void* param
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2016/13/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+
+Evas_Object *mf_popup_create_progress_pb_popup(void *data, char *title, char *context, int file_count, void *func, void *param)
+{
+
+ struct appdata *ap;
+
+ ap = (struct appdata *)data;
+ assert(ap);
+
+ char count[256] = {0,};
+ Evas_Object *popup = NULL;
+ Evas_Object *progressbar = NULL;
+ Evas_Object *layout = NULL;
+
+ snprintf(count, sizeof(count), "%s0/%d", count, file_count);
+ popup = elm_popup_add(ap->mf_MainWindow.pMainLayout);
+
+ elm_object_focus_set(popup, EINA_FALSE);
+
+ if (title) {
+ mf_object_text_set(popup, title, "title,text");
+ }
+ char edj_path[1024] = {0};
+ char *path = app_get_resource_path();
+ snprintf(edj_path, 1024, "%s%s/%s", path, "edje", EDJ_NAME);
+ free(path);
+
+ layout = elm_layout_add(popup);
+ elm_object_focus_set(layout, EINA_FALSE);
+ elm_layout_file_set(layout, edj_path, "popup_center_progressview");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ ap->mf_MainWindow.pProgressLayout = layout;
+
+ progressbar = elm_progressbar_add(popup);
+ elm_object_focus_set(progressbar, EINA_FALSE);
+ ap->mf_FileOperation.progress_bar = progressbar;
+ elm_object_style_set(progressbar, "list_progress");
elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- //elm_progressbar_value_set(progressbar, 0.0);
+ elm_progressbar_value_set(progressbar, 0.0);
+ elm_progressbar_unit_format_set(progressbar, NULL);
elm_progressbar_pulse(progressbar, EINA_TRUE);
evas_object_show(progressbar);
elm_object_part_content_set(layout, "elm.swallow.progressbar", progressbar);
mf_object_text_set(layout, context, "elm.title");
- /*{//Fixing the P140801-06774
+ {//Fixing the P140801-06774
char *fileName = NULL;
char *name = NULL;
if (ap->mf_FileOperation.pSourceList != NULL) {
free(name);
}
}
- elm_object_part_text_set(layout, "elm.text.left", "0%");
- elm_object_part_text_set(layout, "elm.text.right", count);*/
elm_object_content_set(popup, layout);
- /*Evas_Object *btn1 = mf_object_create_button(popup,
- NULL, //"popup_button/default",
+ Evas_Object *btn1 = mf_object_create_button(popup,
+ NULL,
LABEL_CANCEL,
NULL,
func,
param,
EINA_FALSE);
- elm_object_part_content_set(popup, "button1", btn1);*/
+ elm_object_part_content_set(popup, "button1", btn1);
evas_object_show(popup);
evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __mf_popup_pb_popup_del_cb, ap);