[Libreoffice] [PATCH] Making default tab prefix name configurable in Calc

Albert Thuswaldner albert.thuswaldner at gmail.com
Sun Jul 10 12:03:34 PDT 2011


Hi Kohei,
Thanks for your comments.

On Fri, Jul 8, 2011 at 05:02, Kohei Yoshida <kyoshida at novell.com> wrote:
> On Sat, 2011-07-02 at 12:09 +0200, Albert Thuswaldner wrote:
>> Hi
>> Submitting a patch for review. This one enables the user to set the
>> default tab prefix name in calc.
>> The new option is located in Menu -> Tools -> Options -> LibreOffice
>> Calc -> Defaults
>>
>> - I think this Is a useful feature for some at least,  a few LO/OOo
>> users i've talked to seem to agree.
>> - it is unobtrusive to the user, it does not change the default behavior.
>> - also code-wise it does not come with any radical changes.
>>
>> As always please let me know if you want me to improve it.
>
> Hi Albert,
>
> First of all, thanks for your patches.  It's good to see you continue to
> work on hacking Calc.  As you requested, here are my comments on your
> changes followed by the relevant (partial) hunk.
>
> 1)
>
> +    SC_DLLPUBLIC sal_Bool       GetFallBackPrefix(String& aStrPrefix)
> const;
>
> Let's use the real bool here instead of sal_Bool in the new method
> signature.  Also, let's use rtl::OUString instead of String here as
> well.  We are trying very hard to remove sal_Bool and String types, so
> it's best not to use them in new code.

Ok I'll fix that. I actually though that sal_Bool was the preferred
type, now I know better.

> 2)
>
> +    // Test if prefix is valid
> +    sal_Bool bPrefix = ValidTabName( aStrPrefix );
> +    if ( !bPrefix )
> +        {
> +            bPrefix = ValidTabName( aStrPrefix );
> +            aStrPrefix = aStrPrefix2;
> +        }
>
> Our preferred bracket style would be
>
> +    if ( !bPrefix )
> +    {
> +        bPrefix = ValidTabName( aStrPrefix );
> +        aStrPrefix = aStrPrefix2;
> +    }
>

typo, fixing it.

> 3)
>
> +            case SCDEFAULTSOPT_TAB_PREFIX:
> +                OUString aPrefix;
> +                if (pValues[nProp] >>= aPrefix)
> +                    SetInitTabPrefix(aPrefix);
> +                break;
> +
>
> Here, you've declared a local variable inside a case scope.  You need to
> surround the whole case block with { } like so:
>
> case SCDEFAULTSOPT_TAB_PREFIX:
> {
>    ...
> }

Ok, do that.

> 4)
>
> @@ -84,4 +92,6 @@ int ScTpDefaultsOptions::DeactivatePage(SfxItemSet* /*pSet*/)
>     return KEEP_PAGE;
>  }
>
> +//ScGlobal::GetRscString(STR_TABLE_DEF); //"Table"
> +
>  /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
>
> This hunk is unnecessary.

Yea, left over should have been deleted.

> 5) Regarding the options paths, with your change we now have
>
> Calc/Defaults/Other/TabCount
> Calc/Defaults/Other/TabPrefix
>
> option paths.  I would prefer changing them to
>
> Calc/Defaults/Sheet/SheetCount
> Calc/Defaults/Sheet/SheetPrefix
>
> because 1) I don't like to use Other or Misc *unless* there are no other
> options, and 2) these options apply globally to sheet's internal default
> behavior, not just the sheet tab, so I would prefer that being reflected
> in the option names as well.  Here, whether to use Sheet or Table is a
> matter of preference, but I tend to use Sheet in user visible parts.

Ok, makes perfectly sense now that there are two options in this
category. I'll make the change.

> These are minor issues, and I can make these changes if you want me to.

Thanks but I'll do that myself, otherwise I will never learn. ;)

> Now, a slightly bigger issue.  The sheet prefix option input box doesn't
> check for valid sheet name.  It even allows an empty one, which is not
> very good.  So, we should at least apply the same restriction as in
> ScDocument::ValidTabName() method (located in document.cxx#250).  You
> can simply call that method from the option page to validate the name
> since that method is static.
>
> The preferred way to set the restriction is to inspect the new name each
> time the text value in the input box changes.  You can intercept a input
> value change event for the input box to do the inspection and accept or
> reject the new text value.  I believe there are other UI parts that do
> the same thing so hopefully you can find some example code to follow.
> If not, let me know and I'll dig in to find one.
>
> This is all I can think of at the moment.  Let me know if you need more
> clarifications on any of these points.

It makes sense to check it directly at input. I wasn't sure how to
implement that, especially without cluttering up the code.
Thanks for the pointers. i will have a go at it.
/Albert

> Kohei
>
> --
> Kohei Yoshida, LibreOffice hacker, Calc
> <kyoshida at novell.com>
>
>


More information about the LibreOffice mailing list