[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-devel
Subject:    Re: Improving generic KPart support in KDevelop (by example of Okteta)
From:       "Friedrich W. H. Kossebau" <kossebau () kde ! org>
Date:       2009-08-05 15:55:56
Message-ID: 200908051755.57333.kossebau () kde ! org
[Download RAW message or body]

Mercredi. le 5 août 2009, à 14:42, Friedrich W. H. Kossebau a écrit:
> Mardi, le 4 août 2009, à 14:54, Andreas Pakulat a écrit:
> > On 04.08.09 14:35:20, Friedrich W. H. Kossebau wrote:
> > > Bug: Save/Revert for ReadWriteParts
> > > -----------------------------------
> > > Are there any reasons save/revert actions are not offered out of the
> > > box for ReadWriteParts in KDevelop?
> > > A KPart::ReadWritePart implements both a "save()" and a "saveAs(const
> > > KUrl&)" method. So I would have expected that KDevelop itself sets up
> > > these actions. But it doesn't. And it also doesn't include them in the
> > > actions "Save All" and "Revert All". Not what is expected :)
> >
> > We don't support read/write parts currently, thats all. PartDocument
> > would need to be extended to support both read/write as well as read-only
> > parts.
>
> I will see what can be done. Looks like the basic infrastructure is all in
> place, just needs some wiring up. But then I haven't yet looked under all
> stones.

And the next stone I lifted showed me what stops ReadWriteParts in KDevelop:

While a PartDocument collects all KParts for the same url, there is no 
guarantee that these KParts share the same data object, so a change in one 
KPart would be synchronized with the others -> so on a save it is unclear 
from what KPart to take the data to save back to the url.

In fact, most non-Kate KParts have their own data copy per view, as there is 
no MVC in the KParts design (one of the reasons why I started the Kasten 
framework BTW).

Solutions:
a) make all but the first one readonly if it is a ReadWritePart
b) allow only one ReadWritePart loaded per URL
c) just skip any support for ReadWrite modus of KParts

I would go for option c), keeping the status-quo. It would just need a fix to 
set any ReadWrite part to readonly, which isn't done currently. This would be 
done by passing "KParts/ReadOnlyPart" to the factory as classname from 
PartDocument. Should I try to prepare a patch which adds the classname as 
optional argument to PartController::createPart( const KUrl& url ) ?

Cheers
Friedrich
-- 
Okteta - KDE 4 Hex Editor - http://utils.kde.org/projects/okteta

_______________________________________________
KDevelop-devel mailing list
KDevelop-devel@kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic