[Qt-creator] "Editing not possible" solution

Pawel pawelfaron87 at wp.pl
Sat Jan 24 19:36:06 CET 2015


Hello,

Thanks for all advices. Now I agree that it isn't worth of sacrificing  
performance for some exotic encodings.
After your advices I'm able to cope with my projects ;)

best regards
Pawel

On Fri, 23 Jan 2015 15:27:05 +0100, Ziller Eike  
<Eike.Ziller at theqtcompany.com> wrote:

>
>> On Jan 21, 2015, at 4:07 PM, Frédéric Marchal  
>> <frederic.marchal at wowtechnology.com> wrote:
>>
>> 2015-01-21 9:49 GMT+01:00 Ziller Eike <Eike.Ziller at theqtcompany.com>:
>>>
>>>> On Jan 20, 2015, at 11:48 PM, Pawel <pawelfaron87 at wp.pl> wrote:
>>>>
>>>> Hello,
>>>>
>>>> In my company we work in multinational teams. Many people uses  
>>>> strange file encodings and they don't plan to change it...
>>>> In QtCreator I quite often see the "Editing not possible" error. I  
>>>> know that file decoding is a difficult subject, but I'm sure we can  
>>>> do better than this.
>>>>
>>>> I've implemented simple code to help a bit. It is located in  
>>>> textdocument.cpp, and differs from current solution with:
>>>>
>>>> - [Current solution] In functions read() when decoding with default  
>>>> codec fails we return error.
>>>> - [My Solution] In functions read() when decoding with default codec  
>>>> fails I try all available codecs (QTextCodec::availableCodecs()), and  
>>>> if any one success I return success.
>>>>
>>>> What do you think about this?
>>>>
>>>> Full code can be reviewed here:
>>>> https://codereview.qt-project.org/#/c/104124/
>>>
>>> There is this bigger patch proposal  
>>> https://codereview.qt-project.org/83259 which makes Qt Creator use the  
>>> Mozilla universalchardet library for a better heuristic in choosing  
>>> the right encoding...
>>> Unfortunatly that adds 10k lines of code.
>>> I’d very much prefer something in between your suggestion and that  
>>> patch.
>>
>> From the document distributed along with the source code
>> (http://mxr.mozilla.org/seamonkey/source/extensions/universalchardet/doc/UniversalCharsetDetection.doc):
>>
>> "Input text is composed of words/sentences readable to readers of a
>> particular language.  (= The data is not gibberish.)"
>>
>> I wonder how stable it is when fed with a source code mostly
>> containing what people call gibberish.
>>
>> In particular, the second algorithm to detect the encoding is based on
>> character distribution. The proposed patch seems to analyze the whole
>> source code instead of just comments and/or literal strings. If my
>> assumption is correct, the character distribution would be wrong and
>> the detection would be unreliable.
>>
>> Note that simply running 'file *.cpp" on a project directory under
>> Linux does report files encoded in UTF-8 and iso-8859-1. Maybe its
>> algorithm might be the intermediate solution?
>
> Actually when I run ‘file’ on a text file that contains chinese  
> characters in GB2312 (Simplified Chinese), then it reports
> /tmp/ch.txt: ISO-8859 text
>
> That is not very helpful either ;)
>
> - Anything can be opened with ISO Latin 1 without decoding errors (just  
> that the result is “gibberish”)
> - Even the other way round, e.g. “©Ötzi” (which doesn’t successfully  
> decode with UTF-8, so our warning pops up) successfully decodes in  
> GB2312 Simplified Chinese (just that the result is (probably)  
> “gibberish”)
>
> So, just trying any combination of text codecs to find one that succeeds  
> will most probably result in the wrong encoding.
> On the other hand I do not want 10000 lines of code for a fancy  
> guessing-algorithm in Qt Creator, where success is even also doubtful  
> since we cannot assume that sensible code does not contain what that  
> algorithm considers “gibberish”.
>
> What I can imagine to reduce the pain in Qt Creator, is to let it  
> remember the used encoding for a file (if it is different from the  
> default) and use it when reopening the file.
>
> Maybe also a “fallback” encoding setting that is put into a quick access  
> button directly into the “cannot open with encoding” info bar (so there  
> would be a button “select encoding” and “use XYZ”), for people that  
> regularly have to handle one additional “funny” encoding. (default: ISO  
> Latin 1 ?) Would that be considered helpful?
>
> Br, Eike
>
>> Frederic
>> _______________________________________________
>> Qt-creator mailing list
>> Qt-creator at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/qt-creator
>


-- 
Using Opera's mail client: http://www.opera.com/mail/

---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com




More information about the Qt-creator mailing list