On Wed, Oct 11, 2006 at 04:04:45PM +0200, Jean-Marc Lasgouttes wrote: > >>>>> "Abdelrazak" == Abdelrazak Younes <[EMAIL PROTECTED]> writes: > > Abdelrazak> Or course this also means that the "disabled toolbars" bug > Abdelrazak> comes back. JMarc, I remember you proposed another > Abdelrazak> solution for that, could you post it again? > > Split FuncRequest::UI into FuncRequest::MENU and FuncRequest::TOOLBAR > and use these values wisely.
Other approach: Instead of for (all actions) if (getStatus(action)) do_something_with_action() Foo::getStatus(action) { switch() { case ACT1: case ACT1: case ACT1: } or Bar::getStatus(action)... perhaps toolbar stuff } use vector<ActionData> data (indexed by action) Foo::getStatus(data); Bar::getStatus(data); for (all actions) updatAction(act, data[act]) Foo::getStatus(vector<ActionData> & data) { data[ACT1].setEnabled(true); data[ACT2].setEnabled(sometimes).setVisible(perhaps) data[TOOLBAR1].setEnabled(...); } This gives pretty compact code, fewer function cals and stuff that influences several LFUNS at once can computed only once. Andre'