Finishing a paint action.
Patrick Julien
freak at codepimps.org
Thu Oct 9 07:32:42 CEST 2003
> And the device->anchor()?
Anchor is for actually freezing the coordinates of the device. I.e. freezing
a layer on the display.
>
> > You get the right behavior and you don't leak that memory either. Look
> > at the documentation for boost::shared_ptr, boost::scoped_ptr and
> > KSharedPtr. I work on a massive application, bigger than all of koffice,
> > for my day job and we use smart pointers everywhere, guess what? We
> > don't use delete, yet tools like purify can't find leaks in our code
> > proper and the performance difference is benign.
>
> I've taken a look at it already, but I am truly very much just beginning
> with C++. The last time I had anything to do with a language with explicit
> memory management was fifteen years ago, with Turbo Pascal. And all that
> means that I'm not even sure what problem these shared and scoped pointers
> are solving. But I don't doubt that I'll get it in the fullness of time.
Automatic memory management.
>
> > Actually, there is more than that, you need to be able to support
> > undo/redo too, right? So you need to start and end a transaction to get
> > back a KCommand that you can enqueue.
>
> I had rather pushed that issue back for solving when I had solved how to
> use and extend the painter. But would it be something like:
>
> gc.beginTransaction(QString("test"));
gc.beginTransaction("test");
> gc.fill|Rect(...);
> m_doc.addCommand(gc.endTransaction());
That would be the gist of it, unfortunately it won't work if you're using raw
pixel copies like you're doing right now tho.
>
> Does the painter provide all undo/redo information? If so, what's the
> KnamedCommand subclass for that's present in every tool?
Hmm, I don't actually remember, but the KCommand's returned from KisPainter
are only for tile modifications. There are commands for other, different
types of actions, for example renaming a layer.
Also, the old tools we're doing all their commands and their undo support
individually.
>
> > This is actually a remote KImageIO issue isn't it? If you run krita on a
> > remote display even on a X86, you need an up too date KImageIO otherwise
> > the display is broken.
>
> Ah, that means I don't have to worry about that. I'm working against 3.1.4.
Yep, the fix was applied to kde post 3.1, not sure anymore, look in kdebugs
for KImageIO, I know it's fixed tho.
More information about the kimageshop
mailing list