Any comments on this patch? Daniel Juyung Seo (SeoZ)
On Tue, May 3, 2011 at 8:00 PM, Seunggyun Kim <sgyun....@samsung.com> wrote: > Thanks for your review. > > I attached fixed source diff code. > Since I uploaded first diff code, genlist item realize function and item edc > had been changed by cedric. > So I also fixed my code according to the latest genlist code. > This version supports edit mode selection handling. > > Please review about this. > Thanks. > > -----Original Message----- > From: Daniel Juyung Seo [mailto:seojuyu...@gmail.com] > Sent: Thursday, April 21, 2011 5:31 PM > To: Seunggyun Kim > Cc: enlightenment-devel@lists.sourceforge.net > Subject: Re: [E-devel] [Patch] elm_genlist - added new feature : genlist > edit mode > > Dear Seunggyun, > I have some comments. > > 1) Formatting. > There are many wrong formatting: indentation, braces, using one line > after if, alignment of function declaration, trailing whitespaces and etc. > > 2) Exception for selection. > There are some exception handling code for selection. Is there any reason > to do this? > > 3) It will be better to move _edit_mode_item_unrealize() above it->realized > = EINA_FALSE; > Because after unrealizing all instances of that item, we can say the item > is unrealized. > > @@ -1917,6 +1934,7 @@ _item_unrealize(Elm_Genlist_Item *it, Eina_Bool ca > it->states = NULL; > it->realized = EINA_FALSE; > it->want_unrealize = EINA_FALSE; > + if (it->wd->edit_mode) _edit_mode_item_unrealize(it); > } > > 4) Missing braces in if statement. > Unnecessary {, } for one liner. > > + if (it->wd->edit_mode && it->itc->edit_item_style) > + { > + _edit_mode_item_controls(it, it->scrl_x, > it->scrl_y); > + } > > 5) How about 'position' or something else instead of 'controls'? > Just a suggestion, if you mind just leave it :) > >>> _edit_mode_item_controls() > > 6) Why two braces? > And it's not reasonable check wd->edit_mode inside > _edit_mode_item_realize(). > Because it's not possible to go that line if it's not in an edit mode. > >>> if ((it->wd->edit_mode)) > > 7) Just return wd->edit_mode. > >>> if (wd->edit_mode) return EINA_TRUE; >>> else return EINA_FALSE; > > 8) Use !! for Eina_Bool type parameter in EAPIs. > >>> wd->edit_mode = edit_mode; > wd->edit_mode = !!edit_mode; > > This workarounds application programmer's mistake. > > 9) How about using elm_genlist_realized_items_get() API? > >>> EINA_INLIST_FOREACH(wd->blocks, itb) >>> { >>> if (itb->realized) >>> { >>> EINA_LIST_FOREACH(itb->items, l, it) >>> { >>> if (it->flags != ELM_GENLIST_ITEM_GROUP && it->realized) > > > 10) Missing braces. > >>> if (it->flags != ELM_GENLIST_ITEM_GROUP && it->realized) > if ((it->flags != ELM_GENLIST_ITEM_GROUP) && (it->realized)) > > There are more of it. Please check all. > > 11) Use __UNUSED__ for not used parameters. > > 12) Space between if and (. > >>> if(!tit->checked) > > 13) Fix warnings. > If you don't have enough warnings, add "-W -Wall -Wextra" to CFLAGS. > > 14) Seg fault. > It's not working when I go to "Genlist Edit" menu. It's killed. > > Hmm I'm not sure if only I have problems with running genlist edit in > elementary_test. > It has a seg fault. > > Other e-developers, please test this. > > Thank you. > Daniel Juyung Seo (SeoZ) > > On Tue, Apr 19, 2011 at 4:32 PM, Seunggyun Kim <sgyun....@samsung.com> > wrote: > Thanks for your review :) > > I attached fixed source diff code. > > The edit edc is like below table. > ------------------------------------------------------------------------- > | elm.edit.icon.1 | elm.swallow.edit.content | elm.edit.icon,2 > | > ------------------------------------------------------------------------- > > Now it is showing only edit mode set animation. > If this is committed, I'll send another patch about edit mode unset > animation. > > Thanks:) > > > -----Original Message----- > From: Carsten Haitzler (The Rasterman) [mailto:ras...@rasterman.com] > Sent: Monday, April 18, 2011 7:41 PM > To: Seunggyun Kim > Cc: enlightenment-devel@lists.sourceforge.net > Subject: Re: [E-devel] [Patch] elm_genlist - added new feature : genlist > edit mode > > On Sat, 16 Apr 2011 17:30:13 +0900 Seunggyun Kim <sgyun....@samsung.com> > said: > > i'm rather happy that i now get to grumble about much more esoteric things > in > patches :) > > ... why is ediit_mode not Eina_Bool and even better it's together with all > the > other Eina_Bool var:1 fields? this leads to much better struct packing. > saves a > byte :) > double longpress_timeout; > + int edit_mode; > }; > > why are edit_icon_objs and edit_obj not higher up with pointers like > Evas_Object *spacer etc.? better struct packing and alignment. :) > + Eina_List *edit_icon_objs; > + Evas_Object *edit_obj; > > > bonus space at end before ")" :) > + if (it->itc->edit_item_style ) > > > this looks wrong. default case is item/edit_default but other styles are > item/stylename. really shouldnt this be like "item/edit/default" and > "item/edit/stylename".. in fact always item/edit/STYLENAME... ? simpler code > and more consistent and style can provide a simpler stylename not needing > edit_ > in it... :) > + if (it->itc->edit_item_style && strcmp(it->itc->edit_item_style, > "default")) > + { > + strncat(buf, it->itc->edit_item_style, sizeof(buf) - strlen(buf)); > + _elm_theme_object_set(it->base.widget, it->edit_obj, "genlist", > buf, > elm_widget_style_get(it->base.widget)); > + } > + else > + { > + _elm_theme_object_set(it->base.widget, it->edit_obj, "genlist", > "item/edit_default", elm_widget_style_get(it->base.widget)); > + } > > "original_edc" - you should namespace edc partnames "officially" required by > elm. "elm.swallow.edit.content" for example > + edje_object_part_swallow(it->edit_obj, "original_edc", it->base.view); > > decide on a consistent naming of signals here. "elm,state,edit,enabled" and > "elm/state/edit/disabled" for example... BUT.. why emit a signal at the > end.. > just before you go DELETE the edit mode obj? pretty pointless signalling it > then deleting it. if your plan is to allow an animation to "go out of edit > mode" then keep the object around until that animation is done (some signal > tells you tis done from the obj). > + if (effect_on) edje_object_signal_emit(it->edit_obj, > "elm,state,emode_enabled_effect", "elm"); > + else edje_object_signal_emit(it->edit_obj, "elm,state,emode_enabled", > "elm"); > AND > + edje_object_signal_emit(it->edit_obj, "elm,state,edit_end,disable", > "elm"); > AND > + evas_object_del(it->edit_obj); > > base.view is already a sub object of it->base.widget when it was created. > swallowing it into the edit obj didn't change that. it moved down 1 level in > the evas object tree, but not in the elm one. :) no need for this. > + elm_widget_sub_object_add(it->base.widget, it->base.view); > > that's it! :) not much. > >> Hello. All. >> >> I made genlist edit mode. >> >> The edit mode can be used when the application want to change existing > item >> edc into more expanded item edc. >> The application can use this edit mode for genlist item editing. >> For example, if the application want to show check box or plus/minus > button >> at the left or right of item in some case, >> they can use this edit mode. >> >> This edit mode style includes existing item and will be extended according >> to edit_item_style. >> >> edit_item_style "edit_default" EDC layout is like below. each part is >> swallow part. >> the existing item is swllowed to original_edc part. >> -------------------------------------------------------------------------- >> | elm.edit.icon.1 | original_edc | >> elm.edit.icon,2 | >> -------------------------------------------------------------------------- >> >> After applitciaon set edit mode, genlist loads >> Elm_Genlist_Item_Class.edit_item_style if the style is not NULL. >> Then genlist swallows a existing item to "original_edc" swallow part in >> edit_item_style EDC.) >> and the genlist will start to call application icon_get callback function > to >> swallow application objects(checkbox, radio button, plus/minus button. > etc.) >> >> In time, the application returns checkbox or another object in icon_get >> callback. edit mode EDC part name is "elm.edit.icon.1", > "elm.edit.icon.2".. >> >> This API will change all realized items to edit mode style. In caes the > list >> is scrolled, when an item is realized, the item will be also changed to >> edit mode style. >> >> For edit mode, I newly added elm_genlist_edit_mode_set / >> elm_genlist_edit_mode_get api. >> >> I changed below files. >> >> a) elm_genlist.patch.txt >> ----------------------------------- >> elementary/src/lib/Elementary.h.in >> elementary/src/lib/elm_genlist.c >> >> b) test_genlist.patch.txt >> ----------------------------------- >> elementary/src/bin/test.c >> elementary/src/bin/test_genlist.c >> >> c) theme_default.patch.txt >> ----------------------------------- >> elementary/data/themes/default.edc >> >> Please review about this. >> Thanks. > > > -- > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > The Rasterman (Carsten Haitzler) ras...@rasterman.com > > ---------------------------------------------------------------------------- > -- > Benefiting from Server Virtualization: Beyond Initial Workload > Consolidation -- Increasing the use of server virtualization is a top > priority.Virtualization can reduce costs, simplify management, and improve > application availability and disaster protection. Learn more about boosting > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > ------------------------------------------------------------------------------ > WhatsUp Gold - Download Free Network Management Software > The most intuitive, comprehensive, and cost-effective network > management toolset available today. Delivers lowest initial > acquisition cost and overall TCO of any competing solution. > http://p.sf.net/sfu/whatsupgold-sd > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel