Opened 12 years ago

Closed 7 years ago

#156 closed task (fixed)

new attribute in Option struct to allow conditional options requirement

Reported by: martinl Owned by: grass-dev@…
Priority: major Milestone: 7.0.0
Component: Default Version: svn-trunk
Keywords: parser, required, conditional Cc:
CPU: Unspecified Platform: Unspecified

Description

In some cases "naturally" required parameter cannot be mark as "required" because there are flags/parameters which don't require that parameter at all. E.g. r.in.gdal doesn't require for 'f' flag (list supported formats) any other parameter. Otherwise 'input' is required. To mark 'input' as required for GRASS parser is counter-productive, user would be forced to type

 r.in.gdal -f in=dummy

instead of

 r.in.gdal -f

On the other hand for GUI dialogs is more reasonable to mark visually 'input' as required (for most users can be confusing to see 'input' as optional when importing data into GRASS). Currently there is not so nice workaround for that.

 opt->guisection="Required";

which puts given parameter to 'Required' tab in GUI dialog.

This can be solved with a new attribute in Option struct which tells the parser not to worry about testing all required options=. E.g.

 ...
 input_opt->required=YES;
 ...

 ...
 f_flag->suppress_required=YES;
 ...

Martin

Change History (3)

comment:1 Changed 12 years ago by hamish

Martin:

This can be solved with a new attribute in Option struct which tells the parser not to worry about testing all required options=

..

f_flag->suppress_required=YES;

i.e. a new attribute in the Flag struct.

other (shorter) ideas what to call it.....

flag->runandexit
flag->reqnotreq
flag->skip_req
flag->ignore_req
...

Hamish

comment:2 in reply to:  1 Changed 12 years ago by glynn

Replying to hamish:

f_flag->suppress_required=YES;

other (shorter) ideas what to call it.....

f_flag->modal

I.e. the flag indicates an alternate mode of execution, where the normal rules about required options don't apply.

comment:3 Changed 7 years ago by martinl

CPU: Unspecified
Platform: Unspecified
Resolution: fixed
Status: newclosed

Solved, closing.

Note: See TracTickets for help on using tickets.