Review Request 129170: Add KArchive::errorString() method to provide more details on KArchive errors

Friedrich W. H. Kossebau kossebau at kde.org
Sat Oct 15 17:13:13 UTC 2016



> On Oct. 15, 2016, 4:05 p.m., David Faure wrote:
> > src/k7zip.cpp, line 2343
> > <https://git.reviewboard.kde.org/r/129170/diff/3/?file=482230#file482230line2343>
> >
> >     QObject::tr() is bad practice in Qt code (the context class name is then "QObject" instead of e.g. K7Zip).
> >     
> >     However I assume that our ts -> po tools don't really care about the context classname (since po doesn't have that), so maybe it doesn't matter. It still shows bad practice for people actually using lupdate.
> >     
> >     (BTW the solution for the fact that this isn't a QObject-derived class is to add Q_DECLARE_TR_FUNCTIONS to the class definition)

The ts -> po tools make extra efforts to indeed care about the context :) Cmp. https://websvn.kde.org/trunk/l10n-kf5/templates/messages/frameworks/kcoreaddons5_qt.pot?view=markup and see the extra tags `#, qt-format` and `msgctxt "KAboutLicense|"`, which lconvert then uses for creating qm files with the context as wanted.

So best no QObject::tr(), but using Q_DECLARE_TR_FUNCTIONS when needed, indeed. Especially for apps linking to lots of libs that use QTranslator-based translations, having different context is important to avoid clashes for common terms.


- Friedrich W. H.


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129170/#review100017
-----------------------------------------------------------


On Oct. 15, 2016, 3:08 a.m., Romário Rios wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/129170/
> -----------------------------------------------------------
> 
> (Updated Oct. 15, 2016, 3:08 a.m.)
> 
> 
> Review request for KDE Frameworks.
> 
> 
> Repository: karchive
> 
> 
> Description
> -------
> 
> This method is similar to `QIODevice::errorString()`. I added a public `errorString()` method and a protected `setErrorString()` method, to allow `KArchive`'s subclasses to implement their own error messages. I also implemented most error messages from most subclasses.
> 
> 
> Diffs
> -----
> 
>   autotests/karchivetest.cpp d0fbf41 
>   src/k7zip.cpp 692b1db 
>   src/kar.cpp 7204fb1 
>   src/karchive.h b528a4a 
>   src/karchive.cpp a1a160a 
>   src/karchive_p.h 256620d 
>   src/krcc.cpp 1947dd6 
>   src/ktar.cpp f70b155 
>   src/kzip.cpp 94d4276 
> 
> Diff: https://git.reviewboard.kde.org/r/129170/diff/
> 
> 
> Testing
> -------
> 
> I added `QVERIFY` calls after all errors in `karchivetests.cpp`. Perhaps we'll need more tests, but I'm not sure how to make an archive to fail in some specific way aside from the very basics ("file not found", etc.).
> 
> 
> Thanks,
> 
> Romário Rios
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20161015/17c00be1/attachment.html>


More information about the Kde-frameworks-devel mailing list