On Oct. 11, 2013, 9:51 p.m., Mark Gaiser wrote:
> > We are here making a 'hole' for people to do  'bad things' that wasn't 
> > possible in the past. I'm not sure we want that.
> 
> Mark Gaiser wrote:
>     Interesting.
>     So that mean we simply can't use the new signal/slot syntax because of 
> it? That would seem rather strange to me..
>     
>     If you do a stat call, or listEntry or <any of the others>...
>     Then you are supposed to connect to the result slot. For listEntry you 
> are supposed to connect to the finished signal. Both of those are defined as:
>     signals:
>     private:
>     
>     AKA. Private signals.
>     I really don't see how you can work around this besides perhaps 
> QSignalMapper, but that would be very odd as well. I'm really curious to see 
> how that "bit of magic" is supposed to work. Do you have some links for me 
> there?
> 
> Sune Vuorela wrote:
>     I'm not saying we can't use the new syntax because of it. I'm saying it 
> needs a bit more work, and before a 'stable' version is needed.
>     
>     There is a solution out there. It's applied to QAIM and others.
> 
> Mark Gaiser wrote:
>     Oke, i followed the hints and now know what you mean. The question now 
> becomes: do we want this? Preventing this hole and supporting the new 
> signal/slot syntax is possible.
>     
>     This does change the header and all places where this signal is currently 
> being called. The header would look like (with the signal moved to the public 
> part):
>     void result(KJob *job
>     #if !defined(qdoc)
>     , QPrivateSignal
>     #endif
>     );
>     
>     To source files where this signal is emitted would change to:
>     result(job, QPrivateSignal());
>     
>     Do we want this?

Yes. I quote: "This is a private signal, it can't be emitted directly by 
subclasses of KJob, use emitResult() instead."

So only kjob.cpp will have to be updated.

The #if should be
#if !defined(DOXYGEN_SHOULD_SKIP_THIS)
though.


- David


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/113205/#review41570
-----------------------------------------------------------


On Oct. 12, 2013, 2:08 p.m., Mark Gaiser wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/113205/
> -----------------------------------------------------------
> 
> (Updated Oct. 12, 2013, 2:08 p.m.)
> 
> 
> Review request for KDE Frameworks, kdelibs, David Faure, and Kevin Ottens.
> 
> 
> Repository: kdelibs
> 
> 
> Description
> -------
> 
> The new signal/slot connection:
> connect(job, &KJob::result,...
> 
> does't like result to be private and throws an compile error:
> error: 'void KJob::result(KJob*)' is private
> 
> Making it public resolves the issue and makes this slot usable in the new 
> syntax. In my case i wanted to use the new syntax and directly use a lambda 
> as slot. Which isn't possible on this signal if it isn't public.
> 
> 
> Diffs
> -----
> 
>   tier1/kcoreaddons/src/lib/jobs/kjob.h d663530 
> 
> Diff: http://git.reviewboard.kde.org/r/113205/diff/
> 
> 
> Testing
> -------
> 
> Works just fine.
> 
> 
> Thanks,
> 
> Mark Gaiser
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to