Страница 1 из 1

Кодировка сообщений при соединении с PostGIS

Добавлено: 30 ноя 2009, 02:23
yellow-sky
Сходно с этим багом. Но есть маленький нюанс.

TestCase:
1) Начинаем добавлениея PostGis слоя
2) В появившейся форме добавления слоя жмем кнопку New для ввода нового соединения
3) Вводим название соединения (любое) и адрес несуществующего хоста (например: unreal.site)
4) Жмем кнопку Test Connect. Получаем следующую ошибку:
TestConnection.png
TestConnection.png (32.68 КБ) 10677 просмотров
Гоблинская надпись гласит о страшнейшей ошибке.
5) Жмем ОК на MessageBox, и сохраняем соединение (с ошибочным адресом) нажатием кнопки OK на форме.
6) Выбираем в списке соединений, только что введеное.
7) Жмем кнопку Connect. Получаем следующую ошибку:
TryConnect.png
TryConnect.png (35.23 КБ) 10676 просмотров
Получаем ошибку на родном языке. Что более приятно.

Результат:
Да, функционал этих кнопок (Test Connect и Connect) разный, что подтверждают и MessageBox (в первом случае тип - information, во втором - warning). Собщение об ошибке тоже сформировано разное. Но текст об ошибке один и тот же (можно догадаться по "unreal.site"). Только в первом случае он не читаем, а во втором - имеет очень даже приличный вид.

Linux, r12291

!!! Возможно баг платформозависимый. Завтра проверю на WinXP.

Re: Кодировка сообщений при соединения с PostGIS

Добавлено: 30 ноя 2009, 08:22
Максим Дубинин
у меня в WinXP и r12280 и первое сообщение без кракозябров
тут надо кого-то со сборочной средой, иначе, боюсь, не починят

Re: Кодировка сообщений при соединения с PostGIS

Добавлено: 30 ноя 2009, 16:32
yellow-sky
Проверил на WinXP. Крякозябр нет потому, что текст ошибки выдается на англицком языке. Сообщения об ошибках драйвера не локализованы. В линуксе подобные ошибки локализованы.
Прошу подтверждения этого.

Re: Кодировка сообщений при соединения с PostGIS

Добавлено: 30 ноя 2009, 17:10
yellow-sky
Ревью кода показал, что ошибка действительно есть:

Код в методе теста соединения при создании (форма с крякозябрами):
/trunk/qgis/src/app/qgsnewconnection.cpp строка 120

Код: Выделить всё

QMessageBox::information( this, tr( "Test connection" ), tr( "Connection failed - Check settings and try again.\n\nExtended error information:\n%1" ).arg( PQerrorMessage( pd ) ) );
Код в методе выполнения соединения (нормальная форма):
/trunk/qgis/src/app/qgspgsourceselect.cpp строка 474

Код: Выделить всё

QMessageBox::warning( this, tr( "Connection failed" ),
                          tr( "Connection to %1 on %2 failed. Either the database is down or your settings are incorrect.\n\n"
                              "Check your username and password and try again.\n\n"
                              "The database said:\n%3" )
                          .arg( settings.value( key + "/database" ).toString() )
                          .arg( settings.value( key + "/host" ).toString() )
                          .arg( QString::fromUtf8( PQerrorMessage( pd ) ) ) );
Как видно в первом случае не хватает преобразования UTF8 -> Qstring.
После добавления оного, все работает нормально:
снимок1.png
снимок1.png (32.99 КБ) 10628 просмотров
Если есть у кого возможность добавьте в трэкер - я час буду нормально оформлять баг (

Re: Кодировка сообщений при соединения с PostGIS

Добавлено: 30 ноя 2009, 19:59
Voltron
yellow_sky писал(а):Если есть у кого возможность добавьте в трэкер - я час буду нормально оформлять баг (
Добавлять скорее всего будут после багханта. Ждем. Но если sim не будет против - добавлю.

Re: Кодировка сообщений при соединения с PostGIS

Добавлено: 30 ноя 2009, 20:43
yellow-sky
Ну если решили все разом, то ждем )

Re: Кодировка сообщений при соединения с PostGIS

Добавлено: 01 дек 2009, 01:18
Максим Дубинин
господа, я рад что разборка идет, но давайте все-таки подождем до после багханта и сфокусируемся на ошибках, а на багхате еще раз обсудим наши действия по обработке ошибок.

yellow_sky, посмотри, пожалуйста, ту же ошибку таймыра, на которую ты ссылался, там та же проблема?

Re: Кодировка сообщений при соединении с PostGIS

Добавлено: 07 дек 2009, 09:18
Voltron
Патч, сделанный по мотивам расследования yellow_sky
qgsnewconnection.cpp_fix_locale.zip
патч для устранения кракозябр
(456 байт) 498 скачиваний

Re: Кодировка сообщений при соединении с PostGIS

Добавлено: 09 дек 2009, 14:52
Voltron
Ошибку и патч закинул в трекер. Ticket #2223

UPD: Applied in r12383