On 25/10/14 02:58, Anna Petrášová wrote:
Hi,

On Tue, Oct 14, 2014 at 11:56 AM, Anna Petrášová <[email protected]
<mailto:[email protected]>> wrote:

    Hi,

    On Tue, Oct 14, 2014 at 8:58 AM, Vaclav Petras <[email protected]
    <mailto:[email protected]>> wrote:



        On Tue, Oct 14, 2014 at 5:28 AM, Moritz Lennert
        <[email protected]
        <mailto:[email protected]>> wrote:

            On 14/10/14 10:38, Paulo van Breugel wrote:



                On Tue, Oct 14, 2014 at 10:06 AM, Moritz Lennert
                <[email protected]
                <mailto:[email protected]>
                <mailto:mlennert@club.__worldonline.be
                <mailto:[email protected]>>> wrote:

                     On 14/10/14 09:14, Paulo van Breugel wrote:

                         Putting the 'ignore' option in  separate tab
                with patterns is fine I
                         think. Also, for g.remove to have the 'type'
                and 'name' together
                         in one
                         tab is also a good idea imho.

                         I am not sure I understand the last question;
                you mean to add the
                         possibility to make an option required but
                still have the option
                         to put
                         it in another section? I think that would be a
                good idea, not
                         only in
                         this case, but more in general, it would make
                it easier to create an
                         consistent interface for modules that require
                more than a few
                         inputs.
                         It might be a good idea to flag options as
                required, e.g., by adding
                         '(required)' after the option name?


                     I'm not sure I agree with this as this would leave
                the door open for
                     required flags to be disseminated across several
                sections. I like
                     the fact that the use immediately sees what is
                required to run the
                     module.


                I guess it is a matter of preference. There are some
                grey area or cases
                where this separate 'required' tab does not really work
                i.m.h.o.

                The '-f' flag in g.remove is one example. You can run
                the module without
                (so it shouldn't go in the 'required' tab), but you
                can't do what the
                module is basically meant to do without it, which is
                removing layers (so
                in that sense it should be a required choice).

                Perhaps a better example is r.random. One of the
                required options is the
                output layer. That can be a raster layer, a vector layer
                or both.
                Because of this construct, the required output name
                cannot be marked as
                required. Solution is to use a separate tab 'optional'
                where the user
                can provide the output name of the vector, raster or
                both layers. So the
                user has to fill in required information in a 'required
                tab' and an
                'optional' tab. I don't think it is really problematic
                as failing to
                give the output name results in a clear error message,
                but it isn't
                exactly consistent.


            The new options to declare parameters as mutually exclusive
            or as "at least one is requried of the group" might be a
            solution to that, but no idea how to implement this in the GUI.

        Put this to GUI is certainly needed but challenging and I it
        will not be included in 7.0. Perhaps we should put this to the
        manual in some way. But modules are not using it anyway.

        Anyway, these "at least one required" are causing Required
        section to be less and less used, so that's another reason why
        it makes sense to leave it out sometimes.


    I think it makes thanks to 'override' the required property with the
    guisection. If we do it for a module, we should make sure there is
    no Required tab at all. I think having required parameters in custom
    tabs and eliminate Required tab is totally fine. Having Required tab
    and at the same time have required parameters in other sections
    would not work well.


    Also we could mark the required options in the gui somehow, for
    example add a red star? In the code I see attempts to render the
    labels as bold, it is not used eventually, but I don't think bold is
    the best way anyway.


I attached screenshots with using the red star for required options (and
in this case I was also testing when the guisection is preferred to
required). In my opinion, it gives you good idea what is required or
not. There are some problems coming from the wxPython limitations, for
example the one which you see on the second screenshot: when the label
is part of the border, I can't set the asterisk red, the color can be
changed only for the entire label. But for majority options, it works.

Regarding the required vs. guisection, I really think we should try to
organize the options logically, not based on required/optional. Some
distinction of the required options is then needed and the red asterisk
seems to be a good solution. But we can discuss some other options too,
of course.

If you really want to go down that path (it would get a 0 from me), then please remove the required tab completely. It will be very confusing to have a required section, but not with all required parameters in it.

I personally like the way the required tab focuses attention on the most important parameters, even though I do understand that there are ambiguities that this system creates. I'm not sure, though, that getting rid of the required tab is the solution. But if you go in that direction it should be all the way.

Moritz

Moritz
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to