[Qt-users:524] Re: 全角文字環境固有のQt Creatorのバグ

Hiroshi Ota hi_ohta @ lasertec.co.jp
2016年 3月 27日 (日) 10:48:21 JST


村田さん

大田です。
パッチを当ててビルドしてみましたが,結果は残念ながら思わしくありませんでした。
ソースファイルに正しくパッチがあたっていることもWinMergeで確認してからビルドして,
qtcreatorのbinフォルダを丸ごと入れ替えてテストしています(元のフォルダはbinbakに
リネーム)。

テストしたプロジェクトファイルは以下のものです。

=======================================================================
#-------------------------------------------------
#
# Project created by QtCreator 2016-03-27T10:27:33
#
#-------------------------------------------------
#テスト
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = CorruptionTest
TEMPLATE = app


SOURCES += main.cpp\
         MainWindow.cpp

HEADERS  += MainWindow.h

FORMS    += MainWindow.ui
=======================================================================


これにQt Creatorのメニューから新しいダイアログクラスを追加したところ,以下のようになってしまいました。
パッチを当てる前後で化け方も変わっていません。


=======================================================================
#-------------------------------------------------

#

#ProjectcreatedbyQtCreator2016-03-27T10:27:33

#

#-------------------------------------------------

#ヂ���QT+=coregui

greaterThan(QT_MAJOR_VERSION,4):QT+=widgets

TARGET=CorruptionTest

TEMPLATE=app

SOURCES+=main.cpp\

MainWindow.cpp\

Dialog.cpp

HEADERS+=MainWindow.h\

Dialog.h

FORMS+=MainWindow.ui\

Dialog.ui

=======================================================================

Qt Creatorはいくつかインストールしてあるので,.proがパッチを当てたものとは別の.exeに関連付けされて
居るんじゃないかと思ってチェックしましたが,そうではありませんでした。
自分が何か間違っているかもしれません。

取り急ぎご報告まで。.



On 2016/03/25 8:08, MURATA Yasuhisa wrote:
> 生理学研究所の村田です。
>
> Qt Creator 3.6.1 のソース中の
> src/plugins/qmakeprojectmanager/qmakenodes.cpp
> を下記のように変更してビルドしてみたところ、
> 文字化けしなくなりました。
>
> ご参考まで。
>
> ==============================================================================
> *** qmakenodes.cpp_orig 2016-03-08 20:30:19.000000000 +0900
> --- qmakenodes.cpp      2016-03-24 17:57:49.000000000 +0900
> ***************
> *** 1232,1238 ****
>                    QmakeProject::proFileParseError(reader.errorString());
>                    return qMakePair(includeFile, lines);
>                }
> !             contents = QString::fromLocal8Bit(reader.data());
>                lines = contents.split(QLatin1Char('\n'));
>            }
>
> --- 1232,1238 ----
>                    QmakeProject::proFileParseError(reader.errorString());
>                    return qMakePair(includeFile, lines);
>                }
> !             contents = QString::fromUtf8(reader.data());
>                lines = contents.split(QLatin1Char('\n'));
>            }
>
> ***************
> *** 1347,1353 ****
>    {
>        Core::DocumentManager::expectFileChange(m_projectFilePath.toString());
>        FileSaver saver(m_projectFilePath.toString(), QIODevice::Text);
> !     saver.write(lines.join(QLatin1Char('\n')).toLocal8Bit());
>        saver.finalize(Core::ICore::mainWindow());
>
>        m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
> --- 1347,1353 ----
>    {
>        Core::DocumentManager::expectFileChange(m_projectFilePath.toString());
>        FileSaver saver(m_projectFilePath.toString(), QIODevice::Text);
> !     saver.write(lines.join(QLatin1Char('\n')).toUtf8());
>        saver.finalize(Core::ICore::mainWindow());
>
>        m_project->qmakeProjectManager()->notifyChanged(m_projectFilePath);
> ==============================================================================
>

-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://qt-users.jp/pipermail/qt-users/attachments/20160327/d132c71a/attachment-0001.html>


Qt-users メーリングリストの案内