--------------Boundary-00=_MH9AM3JCS0BKSAIAQX20 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Subject: Hi, I would like to add the attached patches for KAboutData and for KAboutApplication. It brings the ability to show the translator(s) of the application in the aboutDialog. I think this will give some motivation to the translators ;-) You can see, how the about dialogs looks like in this screenshot: http://www.uni-karlsruhe.de/~Matthias.Kiefer/abouttranslator.png The message about the translation teams is intended to get replaced about information about the translation team of the current language. Please review and say if it is ok to commit. To enable showing the translators, one have to call KAboutData::setTranslator(const char *names, const char *emails) with some dummy text marked for translation, e.g. aboutData.setTranslator(I18N_NOOP("NAMES OF THE TRANSLATORS"),I18N_NOOP("EMAIL OF THE TRANSLATORS")); Then the translators can replace this text with a comma separated list of names and email addresses. If there is no translation or the default language is used, then the texts are ignored and no translator page is shown in the about dialog. I have added an additional class KAboutTranslator , because KAboutPerson uses internaly const char *, so there would be a memory leak when using it or one would have to keep a reference to the string in the object. Maybe someone has a idea how to solve this? Additionaly I changed KAboutPerson to use QString::fromUtf8() instead of QString::fromLatin1(), so it is now possible to use non-latin1 characters in names of developers and others. Please also have a look at binary compatibility, because I had to add two private members to KAboutData and therefore had to create the private d pointer. Comments are welcome. kind regards, Matthias -- Matthias Kiefer E-Mail: matthias.kiefer@gmx.de --------------Boundary-00=_MH9AM3JCS0BKSAIAQX20 Content-Type: text/plain; charset="iso-8859-1"; name="kaboutapplication.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kaboutapplication.patch" SW5kZXg6IGthYm91dGFwcGxpY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9r ZGUva2RlbGlicy9rZGV1aS9rYWJvdXRhcHBsaWNhdGlvbi5jcHAsdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuNgpkaWZmIC11IC1yMS42IGthYm91dGFwcGxpY2F0aW9uLmNwcAotLS0ga2Fib3V0YXBw bGljYXRpb24uY3BwCTIwMDAvMTEvMjkgMTQ6MDQ6MTEJMS42CisrKyBrYWJvdXRhcHBsaWNhdGlv bi5jcHAJMjAwMC8xMi8yNiAxNDo0NDozNQpAQCAtMTEyLDYgKzExMiwyNSBAQAogICAgIH0KICAg fQogCisgIGNvbnN0IFFWYWx1ZUxpc3Q8S0Fib3V0VHJhbnNsYXRvcj4gdHJhbnNsYXRvckxpc3Qg PSBhYm91dERhdGEtPnRyYW5zbGF0b3JzKCk7CisKKyAgaWYodHJhbnNsYXRvckxpc3QuY291bnQo KSA+IDApCisgIHsKKyAgICAgIEtBYm91dENvbnRhaW5lciAqdHJhbnNsYXRvclBhZ2UgPQorICAg ICAgICAgIGFkZFNjcm9sbGVkQ29udGFpbmVyUGFnZSggaTE4bigiVCZyYW5zbGF0aW9uIikgKTsK KworICAgICAgUVZhbHVlTGlzdDxLQWJvdXRUcmFuc2xhdG9yPjo6Q29uc3RJdGVyYXRvciBpdDsK KyAgICAgIGZvcihpdCA9IHRyYW5zbGF0b3JMaXN0LmJlZ2luKCk7IGl0ICE9IHRyYW5zbGF0b3JM aXN0LmVuZCgpOyArK2l0KQorICAgICAgeworICAgICAgICAgIHRyYW5zbGF0b3JQYWdlLT5hZGRQ ZXJzb24oKCppdCkubmFtZSgpLCAoKml0KS5lbWFpbEFkZHJlc3MoKSwKKyAgICAgICAgICAgICAg ICAgIDAsMCk7CisgICAgICB9CisKKyAgICAgIFFMYWJlbCAqbGFiZWwgPSBuZXcgUUxhYmVsKEtB Ym91dERhdGE6OmFib3V0VHJhbnNsYXRpb25UZWFtKCkKKyAgICAgICAgICAgICAgLHRyYW5zbGF0 b3JQYWdlKTsKKyAgICAgIHRyYW5zbGF0b3JQYWdlLT5hZGRXaWRnZXQobGFiZWwpOworICB9CisK ICAgaWYgKCFhYm91dERhdGEtPmxpY2Vuc2UoKS5pc0VtcHR5KCkgKQogICB7CiAgICAgYWRkTGlj ZW5zZVBhZ2UoIGkxOG4oIiZMaWNlbnNlIGFncmVlbWVudCIpLCBhYm91dERhdGEtPmxpY2Vuc2Uo KSApOwo= --------------Boundary-00=_MH9AM3JCS0BKSAIAQX20 Content-Type: text/plain; charset="iso-8859-1"; name="kaboutdata.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kaboutdata.patch" SW5kZXg6IGthYm91dGRhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVs aWJzL2tkZWNvcmUva2Fib3V0ZGF0YS5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAKZGlm ZiAtdSAtcjEuMTAga2Fib3V0ZGF0YS5jcHAKLS0tIGthYm91dGRhdGEuY3BwCTIwMDAvMDgvMDUg MDU6MzA6MTYJMS4xMAorKysga2Fib3V0ZGF0YS5jcHAJMjAwMC8xMi8yNiAxNDo0NDo1MwpAQCAt MjksNyArMjksNyBAQAogUVN0cmluZwogS0Fib3V0UGVyc29uOjpuYW1lKCkgY29uc3QKIHsKLSAg IHJldHVybiBRU3RyaW5nOjpmcm9tTGF0aW4xKG1OYW1lKTsKKyAgIHJldHVybiBRU3RyaW5nOjpm cm9tVXRmOChtTmFtZSk7CiB9CiAKIFFTdHJpbmcKQEAgLTQ0LDE2ICs0NCw0NyBAQAogUVN0cmlu ZwogS0Fib3V0UGVyc29uOjplbWFpbEFkZHJlc3MoKSBjb25zdAogewotICAgcmV0dXJuIFFTdHJp bmc6OmZyb21MYXRpbjEobUVtYWlsQWRkcmVzcyk7CisgICByZXR1cm4gUVN0cmluZzo6ZnJvbVV0 ZjgobUVtYWlsQWRkcmVzcyk7CiB9CiAKIAogUVN0cmluZwogS0Fib3V0UGVyc29uOjp3ZWJBZGRy ZXNzKCkgY29uc3QKIHsKLSAgIHJldHVybiBRU3RyaW5nOjpmcm9tTGF0aW4xKG1XZWJBZGRyZXNz KTsKKyAgIHJldHVybiBRU3RyaW5nOjpmcm9tVXRmOChtV2ViQWRkcmVzcyk7CiB9CiAKKworS0Fi b3V0VHJhbnNsYXRvcjo6S0Fib3V0VHJhbnNsYXRvcihjb25zdCBRU3RyaW5nIG5hbWUKKyAgICAg ICAgICAgICAgICAsIGNvbnN0IFFTdHJpbmcgZW1haWxBZGRyZXNzKQoreworICAgIG1OYW1lPW5h bWU7CisgICAgbUVtYWlsPWVtYWlsQWRkcmVzczsKK30KKworUVN0cmluZyBLQWJvdXRUcmFuc2xh dG9yOjpLQWJvdXRUcmFuc2xhdG9yOjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbU5hbWU7 Cit9CisKK1FTdHJpbmcgS0Fib3V0VHJhbnNsYXRvcjo6S0Fib3V0VHJhbnNsYXRvcjo6ZW1haWxB ZGRyZXNzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbUVtYWlsOworfQorCitjbGFzcyBLQWJvdXRE YXRhUHJpdmF0ZQoreworcHVibGljOgorICAgIEtBYm91dERhdGFQcml2YXRlKCkKKyAgICAgICAg OiB0cmFuc2xhdG9yTmFtZSgwKQorICAgICAgICAsIHRyYW5zbGF0b3JFbWFpbCgwKSAKKyAgICAg ICAge307CisgICAgY29uc3QgY2hhciAqdHJhbnNsYXRvck5hbWU7CisgICAgY29uc3QgY2hhciAq dHJhbnNsYXRvckVtYWlsOworfTsKKworCisKIEtBYm91dERhdGE6OktBYm91dERhdGEoIGNvbnN0 IGNoYXIgKmFwcE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwcm9n cmFtTmFtZSwKIAkJCWNvbnN0IGNoYXIgKnZlcnNpb24sCkBAIC03Myw2ICsxMDQsOCBAQAogICBt SG9tZXBhZ2VBZGRyZXNzKCBob21lUGFnZUFkZHJlc3MgKSwKICAgbUJ1Z0VtYWlsQWRkcmVzcygg YnVnc0VtYWlsQWRkcmVzcyApCiB7CisgICBkID0gbmV3IEtBYm91dERhdGFQcml2YXRlOworICAg CiAgICBpZiggYXBwTmFtZSApIHsKICAgICAgY29uc3QgY2hhciAqcCA9IHN0cnJjaHIoYXBwTmFt ZSwgJy8nKTsKICAgICAgaWYoIHAgKQpAQCAtODMsNiArMTE2LDExIEBACiAgICAgIG1BcHBOYW1l ID0gMDsKIH0KIAorS0Fib3V0RGF0YTo6fktBYm91dERhdGEoKQoreworICAgIGRlbGV0ZSBkOwor fQorCiB2b2lkCiBLQWJvdXREYXRhOjphZGRBdXRob3IoIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKnRhc2ssCiAJCSAgICBjb25zdCBjaGFyICplbWFpbEFkZHJlc3MsIGNvbnN0IGNoYXIg KndlYkFkZHJlc3MgKQpAQCAtOTcsNiArMTM1LDEzIEBACiAgIG1DcmVkaXRMaXN0LmFwcGVuZChL QWJvdXRQZXJzb24obmFtZSx0YXNrLGVtYWlsQWRkcmVzcyx3ZWJBZGRyZXNzKSk7CiB9CiAKK3Zv aWQgCitLQWJvdXREYXRhOjpzZXRUcmFuc2xhdG9yKCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBj aGFyICplbWFpbEFkZHJlc3MpCit7CisgIGQtPnRyYW5zbGF0b3JOYW1lPW5hbWU7CisgIGQtPnRy YW5zbGF0b3JFbWFpbD1lbWFpbEFkZHJlc3M7Cit9CisKIHZvaWQKIEtBYm91dERhdGE6OnNldExp Y2Vuc2VUZXh0KCBjb25zdCBjaGFyICpsaWNlbnNlVGV4dCApCiB7CkBAIC0xNjQsNiArMjA5LDY1 IEBACiBLQWJvdXREYXRhOjpjcmVkaXRzKCkgY29uc3QKIHsKICAgIHJldHVybiBtQ3JlZGl0TGlz dDsKK30KKworY29uc3QgUVZhbHVlTGlzdDxLQWJvdXRUcmFuc2xhdG9yPiAKK0tBYm91dERhdGE6 OnRyYW5zbGF0b3JzKCkgY29uc3QKK3sgICAgCisgICAgUVZhbHVlTGlzdDxLQWJvdXRUcmFuc2xh dG9yPiBwZXJzb25MaXN0OworICAgICAgICAKKyAgICBpZihkLT50cmFuc2xhdG9yTmFtZSA9PSAw KQorICAgICAgICByZXR1cm4gcGVyc29uTGlzdDsKKworICAgIFFTdHJpbmdMaXN0IG5hbWVMaXN0 OworICAgIFFTdHJpbmdMaXN0IGVtYWlsTGlzdDsKKworICAgIFFTdHJpbmcgbmFtZXMgPSBpMThu KGQtPnRyYW5zbGF0b3JOYW1lKTsKKyAgICBpZihuYW1lcyAhPSBRU3RyaW5nOjpmcm9tVXRmOChk LT50cmFuc2xhdG9yTmFtZSkpCisgICAgeworICAgICAgICBuYW1lTGlzdCA9IFFTdHJpbmdMaXN0 OjpzcGxpdCgnLCcsbmFtZXMpOworICAgIH0KKworICAgIAorICAgIFFTdHJpbmcgZW1haWxzOwor ICAgIGlmKGQtPnRyYW5zbGF0b3JFbWFpbCkKKyAgICB7CisgICAgICAgIGVtYWlscyA9IGkxOG4o ZC0+dHJhbnNsYXRvckVtYWlsKTsKKyAgICAgICAgCisgICAgICAgIGlmKGVtYWlscyAhPSBRU3Ry aW5nOjpmcm9tVXRmOChkLT50cmFuc2xhdG9yRW1haWwpKQorICAgICAgICB7CisgICAgICAgICAg ICBlbWFpbExpc3QgPSBRU3RyaW5nTGlzdDo6c3BsaXQoJywnLGVtYWlscyx0cnVlKTsKKyAgICAg ICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICBRU3RyaW5nTGlzdDo6SXRlcmF0b3Igbml0Owor ICAgIFFTdHJpbmdMaXN0OjpJdGVyYXRvciBlaXQ9ZW1haWxMaXN0LmJlZ2luKCk7CisKKyAgICBm b3Iobml0ID0gbmFtZUxpc3QuYmVnaW4oKTsgbml0ICE9IG5hbWVMaXN0LmVuZCgpOyArK25pdCkK KyAgICB7CisgICAgICAgIFFTdHJpbmcgZW1haWw7CisgICAgICAgIGlmKGVpdCAhPSBlbWFpbExp c3QuZW5kKCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVtYWlsPSplaXQ7CisgICAgICAgICAg ICArK2VpdDsKKyAgICAgICAgfQorCisgICAgICAgIFFTdHJpbmcgbmFtZT0qbml0OworICAgICAg ICAKKyAgICAgICAgcGVyc29uTGlzdC5hcHBlbmQoS0Fib3V0VHJhbnNsYXRvciggbmFtZSwgZW1h aWwpKTsKKyAgICB9CisgICAgICAgIAorICAgIHJldHVybiBwZXJzb25MaXN0OworfQorCitRU3Ry aW5nCitLQWJvdXREYXRhOjphYm91dFRyYW5zbGF0aW9uVGVhbSgpCit7CisgICAgcmV0dXJuIGkx OG4oInJlcGxhY2UgdGhpcyB3aXRoIGluZm9ybWF0aW9uIGFib3V0IHlvdXIgdHJhbnNsYXRpb24g dGVhbSIsCisgICAgICAgICAgICAiPHA+S0RFIGlzIHRyYW5zbGF0ZWQgaW4gbWFueSBsYW5ndWFn ZXMgdGhhbmtzIHRvIHRoZSB3b3JrICIKKyAgICAgICAgICAgICJvZiB0aGUgdHJhbnNsYXRpb24g dGVhbXMgYWxsIG92ZXIgdGhlIHdvcmxkLjwvcD4iCisgICAgICAgICAgICAiPHA+Rm9yIG1vcmUg aW5mb3JtYXRpb24gdmlzaXQgaHR0cDovL2kxOG4ua2RlLm9yZzwvcD4iKTsKIH0KIAogUVN0cmlu ZwpJbmRleDoga2Fib3V0ZGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVs aWJzL2tkZWNvcmUva2Fib3V0ZGF0YS5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE0CmRpZmYg LXUgLXIxLjE0IGthYm91dGRhdGEuaAotLS0ga2Fib3V0ZGF0YS5oCTIwMDAvMTIvMDEgMTk6NDU6 NTYJMS4xNAorKysga2Fib3V0ZGF0YS5oCTIwMDAvMTIvMjYgMTQ6NDQ6NTMKQEAgLTkzLDYgKzkz LDIyIEBACiAgICAgS0Fib3V0UGVyc29uUHJpdmF0ZSAqZDsKIH07CiAKKworY2xhc3MgS0Fib3V0 VHJhbnNsYXRvcgoreworcHVibGljOgorICAgIEtBYm91dFRyYW5zbGF0b3IoUVN0cmluZyBuYW1l PVFTdHJpbmc6Om51bGwKKyAgICAgICAgICAgICwgUVN0cmluZyBlbWFpbEFkZHJlc3M9UVN0cmlu Zzo6bnVsbCk7CisKKyAgICBRU3RyaW5nIG5hbWUoKSBjb25zdDsKKyAgICBRU3RyaW5nIGVtYWls QWRkcmVzcygpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBRU3RyaW5nIG1OYW1lOworICAg IFFTdHJpbmcgbUVtYWlsOworfTsKKworCiAvKioKICAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBz dG9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIHByb2dyYW0uIEl0IGNhbiBzdG9yZQogICogc3VjaCB2 YWx1ZXMgYSB2ZXJzaW9uIG51bWJlciwgcHJvZ3JhbSBuYW1lLCBob21lcGFnZSwgZW1haWwgYWRk cmVzcwpAQCAtMTcxLDYgKzE4Nyw4IEBACiAJCWNvbnN0IGNoYXIgKmJ1Z3NFbWFpbEFkZHJlc3Mg PSAic3VibWl0QGJ1Z3Mua2RlLm9yZyIKIAkJKTsKIAorICAgICB+S0Fib3V0RGF0YSgpOworCiAg ICAgLyoqCiAgICAgICogRGVmaW5lcyBhbiBhdXRob3IuIFlvdSBjYW4gY2FsbCB0aGlzIGZ1bmN0 aW9uIGFzIG1hbnkgdGltZXMgeW91CiAgICAgICogbmVlZC4gRWFjaCBlbnRyeSBpcyBhcHBlbmRl ZCB0byBhIGxpc3QuIFRoZSBwZXJzb24gaW4gdGhlIGZpcnN0IGVudHJ5CkBAIC0yMTcsNiArMjM1 LDIyIEBACiAJCSAgICBjb25zdCBjaGFyICp3ZWJBZGRyZXNzPTAgKTsKIAogICAgIC8qKgorICAg ICAqIFNldHMgdGhlIG5hbWUgb2YgdGhlIHRyYW5zbGF0b3Igb2YgdGhlIGd1aS4gU2luY2UgdGhp cyBkZXBlbmRzCisgICAgICogb24gdGhlIGxhbmd1YWdlLCBqdXN0IHVzZSBhIGR1bW15IHRleHQg bWFya2VkIGZvciB0cmFuc2xhdGlvbi4KKyAgICAgKiBGb3IgZXhhbXBsZToKKyAgICAgKiBzZXRU cmFuc2xhdG9yKEkxOE5fTk9PUCgiTkFNRSBPRiBUSEUgVFJBTlNMQVRPUlMiKQorICAgICAqICxJ MThOX05PT1AoIkVNQUlMIE9GIFRIRSBUUkFOU0xBVE9SUyIpKTsKKyAgICAgKgorICAgICAqIFRo ZSB0cmFuc2xhdG9yIGNhbiB0aGVuIHRyYW5zbGF0ZSB0aGlzIGR1bW15IHRleHQgd2l0aCBoaXMg bmFtZQorICAgICAqIG9yIHdpdGggYSBsaXN0IG9mIG5hbWVzIHNlcGFyYXRlZCB3aXRoICIsIi4K KyAgICAgKiBJZiB0aGVyZSBpcyBubyB0cmFuc2xhdGlvbiBvciB0aGUgYXBwbGljYXRpb24gaXMg dXNlZCB3aXRoIHRoZQorICAgICAqIGRlZmF1bHQgbGFuZ3VhZ2UsIHRoaXMgZnVuY3Rpb24gY2Fs bCBpcyBpZ25vcmVkLgorICAgICAqCisgICAgICogQHNlZSBLQWJvdXRUcmFuc2xhdG9yCisgICAg ICovCisgICAgdm9pZCBzZXRUcmFuc2xhdG9yKGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIq IGVtYWlsQWRkcmVzcyk7CisgICAgCisgICAgLyoqCiAgICAgICogRGVmaW5lcyBhIGxpY2VuY2Ug dGV4dC4KICAgICAgKgogICAgICAqIEBwYXJhbSBsaWNlbnNlIFRoZSBsaWNlbnNlIHRleHQgaW4g dXRmOCBlbmNvZGluZy4KQEAgLTI3OSw2ICszMTMsMTcgQEAKICAgICBjb25zdCBRVmFsdWVMaXN0 PEtBYm91dFBlcnNvbj4gY3JlZGl0cygpIGNvbnN0OwogCiAgICAgLyoqCisgICAgICogQHJldHVy biB0cmFuc2xhdG9ycyBpbmZvcm1hdGlvbiAKKyAgICAgKi8KKyAgICBjb25zdCBRVmFsdWVMaXN0 PEtBYm91dFRyYW5zbGF0b3I+IHRyYW5zbGF0b3JzKCkgY29uc3Q7CisKKyAgICAvKiogCisgICAg ICogQHJldHVybiBhIG1lc3NhZ2UgYWJvdXQgdGhlIHRyYW5zbGF0aW9uIHRlYW0gCisgICAgICov CisgICAgc3RhdGljIFFTdHJpbmcgYWJvdXRUcmFuc2xhdGlvblRlYW0oKTsKKworCisgICAgLyoq CiAgICAgICogQHJldHVybiB0aGUgZnJlZSBmb3JtIHRleHQgKHRyYW5zbGF0ZWQpLiAKICAgICAg Ki8KICAgICBRU3RyaW5nIG90aGVyVGV4dCgpIGNvbnN0OwpAQCAtMjk3LDYgKzM0Miw3IEBACiAg ICAgICovCiAgICAgUVN0cmluZyBjb3B5cmlnaHRTdGF0ZW1lbnQoKSBjb25zdCB7IHJldHVybigg UVN0cmluZzo6ZnJvbUxhdGluMShtQ29weXJpZ2h0U3RhdGVtZW50ICkpOyB9CiAKKwogICBwcml2 YXRlOgogICAgIGNvbnN0IGNoYXIgKm1BcHBOYW1lOwogICAgIGNvbnN0IGNoYXIgKm1Qcm9ncmFt TmFtZTsKQEAgLTMxMyw3ICszNTksNiBAQAogCiAgICAgS0Fib3V0RGF0YVByaXZhdGUgKmQ7CiB9 OwotCiAKICNlbmRpZgogCg== --------------Boundary-00=_MH9AM3JCS0BKSAIAQX20--