Russian Qt Forum

Qt => Общие вопросы => Тема начата: spectre71 от Август 29, 2009, 13:32



Название: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 29, 2009, 13:32
Заданы режимы QFileDialog::AnyFile и QFileDialog::AcceptOpen. В данном случае позволяется выбор существующего файла, а также ввод имени файла.
Корректно работает под Windows и Linux.
Однако, под Mac, поле ввода для имени файла не появляется!
Баг?

Код
C++ (Qt)
 QFileDialog dialog(this);
 dialog.setFileMode  (QFileDialog::AnyFile);
 dialog.setWindowTitle("Set File");
 dialog.setAcceptMode(QFileDialog::AcceptOpen);
 dialog.setViewMode  (QFileDialog::List);
 dialog.exec();

В режиме QFileDialog::AcceptSave; работает правильно.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: Igors от Август 29, 2009, 14:18
Просто в нативном Mac файл диалоге нет строки ввода  :)
Если она все же нужна, используйте не-нативный

dialog.setOption(QFileDialog::DontUseNativeDialog, true);


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 29, 2009, 14:35
Просто в нативном Mac файл диалоге нет строки ввода  :)
Если она все же нужна, используйте не-нативный

dialog.setOption(QFileDialog::DontUseNativeDialog, true);

Во-первых Есть!
Во-вторых в доке по QFileDialog, нет упоминаний на ограничения для Mac!
В-третьих в режиме QFileDialog::AcceptSave, строка появляется, но дерево навигиции не раскрыто(как при QFileDialog::AcceptOpen), приходиться раскрывать ручками.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: Igors от Август 29, 2009, 14:59
Во-первых Есть!
Запускаем что-нибудь ходовое, например TextEdit. Нажимаем Command-O
(см. attachment). Не вижу строки ввода а только строку search  :)
Во-вторых в доке по QFileDialog, нет упоминаний на ограничения для Mac!
В-третьих в режиме QFileDialog::AcceptSave, строка появляется, но дерево навигиции не раскрыто(как при QFileDialog::AcceptOpen), приходиться раскрывать ручками.
В первый раз - да, потом дерево будет раскрыто. Как и для любого другого application.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 29, 2009, 15:09
Запускаем что-нибудь ходовое, например TextEdit. Нажимаем Command-O
Есть в режиме QFileDialog::AcceptSave, а значит в Mac есть диалог! Но QT делает неправильный вызов для режима QFileDialog::AcceptOpen + QFileDialog::AnyFile!


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: Igors от Август 29, 2009, 15:58
Есть в режиме QFileDialog::AcceptSave, а значит в Mac есть диалог! Но QT делает неправильный вызов для режима QFileDialog::AcceptOpen + QFileDialog::AnyFile!
Пережил 3 поколения нативных файл диалогов в Mac (каждый раз приходилось переписывать программы). Но ни разу не видел строку ввода чтобы в режиме "Open"  :) Конечно, можно ее добавить через customize, но то глухой нативняк.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 29, 2009, 16:09
Есть в режиме QFileDialog::AcceptSave, а значит в Mac есть диалог! Но QT делает неправильный вызов для режима QFileDialog::AcceptOpen + QFileDialog::AnyFile!
Пережил 3 поколения нативных файл диалогов в Mac (каждый раз приходилось переписывать программы). Но ни разу не видел строку ввода чтобы в режиме "Open"  :) Конечно, можно ее добавить через customize, но то глухой нативняк.
Причем здесь это.
Диалог с режимом ввода имени файла в Mac есть, что показывает работа в режиме QFileDialog::AcceptSave. Просто в Qt для QFileDialog::AcceptOpen + QFileDialog::AnyFile вызывается не тот Mac диалог(или возможно не в том режиме) это и есть ошибка троллей.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: Igors от Август 29, 2009, 16:50
Причем здесь это.
Диалог с режимом ввода имени файла в Mac есть, что показывает работа в режиме QFileDialog::AcceptSave. Просто в Qt для QFileDialog::AcceptOpen + QFileDialog::AnyFile вызывается не тот Mac диалог(или возможно не в том режиме) это и есть ошибка троллей.
Нативные файловые диалоги "Open" и "Save" = 2 совершенно разных диалога (по крайней мере на Mac). Разные нативные функции (типа NavGetFile/NavPutFile) используются для каждого, разные нативные ресурсы и т.п. Это 2 разных сервиса, а не 2 режима того же диалога. Для "Open" диалога строки ввода никогда не было, а для "Save" всегда была. Претензии к Qt программистам в данном случае беспочвенны  :)   


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 29, 2009, 18:37
Причем здесь это.
Диалог с режимом ввода имени файла в Mac есть, что показывает работа в режиме QFileDialog::AcceptSave. Просто в Qt для QFileDialog::AcceptOpen + QFileDialog::AnyFile вызывается не тот Mac диалог(или возможно не в том режиме) это и есть ошибка троллей.
Нативные файловые диалоги "Open" и "Save" = 2 совершенно разных диалога (по крайней мере на Mac). Разные нативные функции (типа NavGetFile/NavPutFile) используются для каждого, разные нативные ресурсы и т.п. Это 2 разных сервиса, а не 2 режима того же диалога. Для "Open" диалога строки ввода никогда не было, а для "Save" всегда была. Претензии к Qt программистам в данном случае беспочвенны  :)   
Еще раз:
1) В документации про особые свойства QFileDialog под Mac - ничего нет, так что в любом случае Претензии к Qt программистам или Qt документации обоснованы!
2) Меня не волнует что под Mac используются два разных типа диалога или один в разных режимах(про это не знаю, на Mac работаю всего несколько дней). Важно что под Mac для режима QFileDialog::AcceptOpen + QFileDialog::AnyFile можно использовать второй тип диалога(как для QFileDialog::AcceptSave) + желательно сделать раскрытие дерева.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: Igors от Август 29, 2009, 19:16
Spectre, я просто рассказал все что я знаю на Mac по этому поводу (начиная с 1994) . Ecли Вас это не устраивает - это не моя проблема (к счастью не я разрабатываю OSX). Будьте здоровы


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 29, 2009, 19:32
Spectre, я просто рассказал все что я знаю на Mac по этому поводу (начиная с 1994) . Ecли Вас это не устраивает - это не моя проблема (к счастью не я разрабатываю OSX). Будьте здоровы
Я не против того как сделаны диалоги в системе Mac. :)
Я против неправильной реализации на QT или документации.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: Авварон от Август 29, 2009, 20:31
qt обеспечивает _нативный_ вид. Поэтому требовать чтобы под маком было также как в винде, неправильно...


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 29, 2009, 20:49
qt обеспечивает _нативный_ вид. Поэтому требовать чтобы под маком было также как в винде, неправильно...
Естественно.
Однако, любые особенности, вернее несовместимости(особенности) дожны быть описаны, либо мы считаем это багом!
Между прочим, сабж касается только Mac, под linux так же все нормально.

Я переписал свое приложение с Builder на QT, для переносимости на другие платформы.
Под Windows все работает отлично.
Под Linux еще пока мало тестировал.
Под Mac - очень много QT-х багов. Под Mac гораздо меньше пишут чем под Windows и Linux, соответственно гораздо больше ошибок в QT библиотеке для Mac.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: pastor от Август 30, 2009, 02:05
Однако, любые особенности, вернее несовместимости(особенности) дожны быть описаны, либо мы считаем это багом!

Вопрос: А причем здесь Qt к нативным диалогам (толи мака, вантуза или линукса)?

Допустим завтра разработчики мака перепишут в корне диалоги или разрабы вантуза уберут поле ввода для имени файла. И что? Это баг Qt? Что должно быть указано в документации? имхо, все претензии к разработчикам оси, что мол диалоги у них не такие как в вантузе, etc.

Igors, +1 за второй пост топика.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 30, 2009, 11:14
Однако, любые особенности, вернее несовместимости(особенности) дожны быть описаны, либо мы считаем это багом!

Вопрос: А причем здесь Qt к нативным диалогам (толи мака, вантуза или линукса)?

Допустим завтра разработчики мака перепишут в корне диалоги или разрабы вантуза уберут поле ввода для имени файла. И что? Это баг Qt? Что должно быть указано в документации? имхо, все претензии к разработчикам оси, что мол диалоги у них не такие как в вантузе, etc.

Igors, +1 за второй пост топика.
С таким же успехом можно вызвать левый дилог(не относяйся к выбору файла) и сказать, - "а что вы хотели, пользуйтесь ненативным диалогом" :)
Нативный диалог на разных системах выглядит и работает по разному, с этим никто и не спорил.
В Mac есть диалог подходящий для данного режима, и то что разработчики не правильно его используют(или используют не тот диалог) это и есть ошибка. А если бы и небыло, то должно было бы быть упоминание в доке.
А то что "завтра" что-то изменится, - значит измениться версия QT, документация итд. Появится что-то новое, что-то не будет поддерживаться.



Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: pastor от Август 30, 2009, 11:50
В таком случае, покопай маковскую часть Qt, глянь что у них не так, напиши сагест (багрепорт?) тролям, а еще лучше с дифом, который фиксанет данную проблему.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 30, 2009, 12:03
В таком случае, покопай маковскую часть Qt, глянь что у них не так, напиши сагест (багрепорт?) тролям, а еще лучше с дифом, который фиксанет данную проблему.
Пока не до того, дофига еще надо сделать,а Мак у меня только в конторе и появляюсь я там исключительно по необходимости, работаю дома под виндами. Если кто потестирует и отрапортует, то хорошо.
Я заменил у себя QFileDialog::AcceptOpen на QFileDialog::AcceptSave + QFileDialog::DontConfirmOverwrite, меня на данный момент это устраивает.
Есть кучка более неприятных ошибок под Мак с которыми надо что-то делать, но это для других тем.


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: pastor от Август 30, 2009, 13:10
Есть кучка более неприятных ошибок под Мак с которыми надо что-то делать

Репортовать, репортовать и ещё раз репортовать :)


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 30, 2009, 13:16
Есть кучка более неприятных ошибок под Мак с которыми надо что-то делать

Репортовать, репортовать и ещё раз репортовать :)
Полностью согласен, собственно для этого у меня специальный тестовый проект. Дополняю его всякими глюками. :)
Как только закончу с основной задачей, то буду разбираться "особенными случаями".
Если интересно - посмотри http://www.prog.org.ru/topic_10379_0.html (http://www.prog.org.ru/topic_10379_0.html)


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: Winstrol от Август 30, 2009, 23:05
Spectre, приобрети платный саппорт и построй троллей. Зачем юзерам форума выносить мозг?


Название: Re: QFileDialog - не правильно работает под MAC
Отправлено: spectre71 от Август 31, 2009, 00:25
Spectre, приобрети платный саппорт и построй троллей. Зачем юзерам форума выносить мозг?
Во-первых я могу быть не прав, все глючат. :)
Во-вторых чем больше "вынос мозга юзерам",  - тем больше они сердиты, - тем ровнее строятся тролли.
В-третьих, он(саппорт), платный, есть, но:
  - у меня не важно с а'нглицким :'(
  - зарегистрирован не на меня, а на манагера. >:(
  - ну и.... лень - матушка(а оправдание простое  ;), "да, когда они исправят, если вообще исправят; проще сделать заплатку").