Summary: | не работает drag'n'drop файлов с русскими именами | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Eugene V. Horohorin <genix> |
Component: | libgtk+2 | Assignee: | Alexey Rusakov <ktirf> |
Status: | CLOSED WONTFIX | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | aris, mike, mutabor |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Eugene V. Horohorin
2005-09-12 06:33:39 MSD
по непроверенным агентурным данным, то же самое происходит и с k3b (перетаскивание файлов) Подтверждаю А почему путь в UTF-8 ? Это всё ещё актуально? Да, всё еще актуально! Reassign to real maintainer. Вот некоторые результаты моих исследований и сопровождающие их догадки. Я установил, что независимо от локали пользователя, запустившего (правильное) gtk+-2 приложение, внутри него все строки представлены в utf-8. Соответственно и при процедуре dnd-обмена строка передаётся в utf-8. Я не знаю, как дело обстоит в КДЕ/Qt (т.к. оказалось, что не только я не любли КДЕшные приложения, но и они тоже не любят меня -- у меня сегодня отказались запускаться konqueror и kmail), но чует моё сердце, что в них строки хранятся в текущей локали. Соответственно такое приложение ожидает, что при dnd строка тоже придёт в текущей локали. Выход тут один -- переделать все такие программы на внтуреннее использование юникода на манер gtk-шных. Нет, конечно же уже давно, как GTK-, так и QT-программы внутри используют исключительно UTF-8, собственно поэтому и возникают проблемы при пересечении границы - взаимодействию с со строками в кодировке локали. Возможно это бага вообще в Иксах, пока не известно, нужно уточнить. У меня есть программа, сделанная на основе примера использования dnd в Gtk, с помощью которой удобно изучать тонкости dnd. Я, в частности, с её помощью и установил, что при dnd Gtk->Gtk независимо от локалей, в которых запущены приложения, строки передаются всегда в utf-8. Надо бы собрать нечто подобное для Qt и посмотреть, что там. Это всё ещё актуально? (c) мне не актуально больше. все уже съехало на UTF-8 |