On 12 April 2018 at 18:15, Sven Van Caekenberghe <s...@stfx.eu> wrote:

> Ben,
>
> You disappoint me, as I would expect you to trace senders/users of
> #signalProgress: ;-)
>

:P
Yeah I knew I was being slack.  I couldn't really follow its operation and
was a bit tired.
Actually maybe part of my confusion is that #signalProgress feels more like
a command than a status.
I've a slight feeling it would be better as #signallingProgress.



> ZnClient only signals certain Notifications which a UI around it should
> deal with.
>
> For example,
>
> [ :bar |
>   bar title: 'Downloading Sources...'.
>   [
>     ZnClient new
>       url: 'http://files.pharo.org/sources/PharoV30.sources';
>       signalProgress: true;
>       downloadTo: FileLocator temp ]
>     on: HTTPProgress
>     do: [ :progress |
>       progress isEmpty ifFalse: [ bar current: progress percentage ].
>       progress resume ] ] asJob run.
>

Thanks, that worked, but its a bit convoluted for my goldfish memory to
remember each time.
I'd expect having that as a convenience method would be useful to many.

ZnClient
showProgress: 'Downloading sources...'
during: [ :znClient |
znClient url: 'http://files.pharo.org/sources/PharoV30.sources'.
znClient downloadTo: FileLocator imageDirectory ].

ZnClient class >> showProgress: title during: clientBlock
|client|
client := ZnClient new.
client signallingProgress: true.
[ :bar |
  bar title: title.
  [clientBlock value: client]
      on: HTTPProgress
    do: [ :progress |
      progress isEmpty ifFalse: [ bar current: progress percentage ].
      progress resume ] ] asJob run.

Easily discoverable as the only class-side method of ZnClient,
and this would also make a useful howto reference.



> But there are other UI approaches as well.


> Sven
>

Thanks for you prompt response.
cheers -ben



> > On 12 Apr 2018, at 11:25, Ben Coman <b...@openinworld.com> wrote:
> >
> > I see ZnClient >> downloadTo:
> > calls  ZnClient >> downloadEntityTo:
> > which uses #withProgressDo:
> > which indicates a progress bar might appear.
> >
> > But...
> >     ZnClient new
> >         url: ' https://download.libsodium.org/libsodium/releases/
> libsodium-1.0.16-msvc.zip' ;
> >         downloadTo: FileLocator imageDirectory.
> > doesn't show a progress bar.  What is the recommended way to display one?
> >
> > cheers -ben
>
>
>

Reply via email to