[Etoys] Saving to Journal
Bert Freudenberg
bert at freudenbergs.de
Sun Jan 18 10:00:30 EST 2009
On 18.01.2009, at 01:59, Karl Ramberg wrote:
> I figured out the issue with preview, the file I was testing had a
> wrong format preview.
>
> Anyway, I'm stuck at creating entries in the Journal. Do anybody know
> how to do this. I found some methods in SugarDataStore but can not get
> them to work, they time out on DBus.
Are you sure they time out? Don't you get a "DBusError: Traceback"?
Every D-Bus message is sent with a timeout, that does not mean it
failed because of a timeout.
In the debugger that opens on #sendDBusMessage:timeout:, to see the
full error message click the "reply" variable in the lower right hand
corner. Unfortunately Python's tracebacks are much too large to fit
into Squeak's error message window title I do not have a good idea how
to display the full error message to avoid this confusion.
> I want to be able to save pictures and maybe other stuff.
> It would be neat to be able to for example make a etoys drawing
> program and save the drawings...
Hmm, I thought I pointed you at all the necessary documentation
already. Somehow I'm not doing this well apparently. Could you explain
what kept you from discovering this:
| img file id |
img := Form fromUser.
file := Project squeakletDirectory fullNameFor: 'tmp.png'.
PNGReadWriter putForm: img onFileNamed: file.
id := SugarDataStore new create: {'title'->'Some Image'. 'mime_type'-
>'image/png'} with: file with: true.
id
The only "trick" here is to use the squeaklet directory for the
temporary file. When running under Rainbow this is mapped to the
activity's "instance" director, the Datastore can move the file from
there without copying. Other directories are not writable by the
Datastore, if you place the file there you must pass "false" to the
create method and delete the file yourself afterwards.
- Bert -
More information about the Etoys
mailing list