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



kdecore/services/kservice.h
<http://git.reviewboard.kde.org/r/111272/#comment25945>

    How about a setExec() method rather than a special constructor? This seems 
a lot clearer to me (and e.g. easier to grep for in order to find usages, etc.).
    
    
    But anyway, I have my doubts that this really works: returning a KService 
that isn't exactly like the one in ksycoca seems fragile to me.
    E.g. when krun uses that service, it will call KToolInvocation with the 
entry path to the service - i.e. just the path to the desktop file. The 
modified Exec field (in memory) won't be used in that case.
    
    What KRun can do, though, is work with a "temp" kservice, created like this:
    
        KService::Ptr service(new KService(_name, _exec, _icon));
    
    This is detected as "not in ksycoca" and therefore not given to 
KToolInvocation (but to runTempService).
    
    I think this would recreate the issue you saw though, since indeed nowadays 
it's not enough to have %U in the exec line, one must also have Categories or 
X-KDE-Protocols indicating that KIO protocols are supported. But this could be 
copied from the orig file, using a new setter in KService. Hmm.
    
    Maybe it would be simpler to just clear entryPath() in the 
KService::setExec() I'm suggesting initially. i.e.: if we're modifying the 
KService then the path to the file that has been cached in ksycoca, no longer 
applies.
    And then KRun will go to runTempService, when running it.
    



kio/kfile/kopenwithdialog.cpp
<http://git.reviewboard.kde.org/r/111272/#comment25944>

    this comment should move with the code that it affected


- David Faure


On July 2, 2013, 2:41 a.m., Dawit Alemayehu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111272/
> -----------------------------------------------------------
> 
> (Updated July 2, 2013, 2:41 a.m.)
> 
> 
> Review request for kdelibs and David Faure.
> 
> 
> Description
> -------
> 
> The attached patch addresses a bug where a user enters the name of a KDE 
> application in OpenWith dialog to open a remote file and the file is opened 
> as if the user requested to open it with a non KDE application. That is a 
> local copy of the file is created first. Currently this problem can be 
> reproduced with kate because the "Exec=" line in its desktop file contains an 
> additional option, "-b".
> 
> Note that this patch only addresses the specific condition where the user 
> only typed in the KDE executable name. Other scenarios, like the user typing 
> in not only the name of the KDE app but also additional command line options, 
> will still produce this same issue.
> 
> 
> This addresses bug 222519.
>     http://bugs.kde.org/show_bug.cgi?id=222519
> 
> 
> Diffs
> -----
> 
>   kdecore/services/kservice.h 3843bad 
>   kdecore/services/kservice.cpp e2cc86f 
>   kio/kfile/kopenwithdialog.cpp 84465cd 
> 
> Diff: http://git.reviewboard.kde.org/r/111272/diff/
> 
> 
> Testing
> -------
> 
> Try to open a remote text or source file by typing "kate" in the open with 
> dialog.
> 
> 
> Thanks,
> 
> Dawit Alemayehu
> 
>

Reply via email to