MyHomeLib – комп'ютерна програма для керування домашньою бібліотекою електронних книг. MyHomeLib може використовуватися не тільки для каталогізації колекції файлів з електронними книгами, але і як клієнт для роботи з бібліотекою Лібрусек та іншими бібліотеками на движку Лібрусек (Флібуста та іншими подібними).
MIT License
149
stars
41
forks
source link
unit_ExportToDeviceThread.pas TODO -oNickR -cUsability : предусмотреть возможность сказать "да для всех" #51
В файле "unit_ExportToDeviceThread.pas" висит TODO с ревизии Oleksiy Penkov 11.03.2019, 06:50
Этот повторяющийся диалог изматывает при выгрузке больших объемов книг из вкладки "Группы".
Выгружаю 40000 книг вторые сутки. Приходится наблюдать за прогрессом и нажимать "ОК" при появлении диалога.
Я не знаю точно в чем причина.
Подозреваю что книга находится одновременно в нескольких жанрах и при копировании жанров в одну группу получается, что книга копируется несколько раз.
При первой попытке все ОК.
При последующих попытках выдается диалог.
Варианты исправления.
Если после первого диалога пользователь выбрал "Продолжить", то выводить еще один диалог "Запомнить выбор и не спрашивать больше?" "Да"|"Нет".
Если пользователь выбрал "Да", то сохранять флаг в локальной переменной потока и в следующий раз проверять.
Это самый простой способ.
Добавить опцию в настройки приложения и пробрасывать ее через параметры в TExportToDeviceThread.
Чуть сложнее.
Не так удобно для пользователей, как 1й вариант. Большинство пользователей не поймет, что нужно выставить опцию.
Добавить в диалоговое окно чекбокс "Запомнить выбор".
Это самый сложный способ т.к. вероятно потребуется пилить нестандартное диалоговое окно на Win-API.
Зато этот вариант наиболее удобен для пользователя.
[2024-11-13]
Наконец то поймал ошибку.
Она возникает, когда программе не удается создать файл.
В моем случае это длинное название файла для файловой системы Ext4.
Максимально допустимое имя 134 символа кирилицы (Ext4 допускает до 255 байт на имя файла, но тут играет роль кодировка символов. В UTF8 от 1 до 4х байт).
First chance exception at $7745D902. Exception class EFCreateError with message 'Cannot create file "Z:\tmp\sveta-all\Абдусаламова Зулейха Магомедовна\Опыт решения педагогической проблемы в рамках одного из направлений профессиональной деятельности классного руководителя «Патриотическое воспитание».fb2". Параметр задан неверно'. Process MyHomeLib.exe (5212)
Вероятно, тот же результат будет в случаях:
ограничение в правах на файловую систему для пользователя, от которого запущена программа
нехватка свободного места на диске
некорректные символы в названии файла для типа файловой системы
В файле "unit_ExportToDeviceThread.pas" висит TODO с ревизии Oleksiy Penkov 11.03.2019, 06:50
Этот повторяющийся диалог изматывает при выгрузке больших объемов книг из вкладки "Группы". Выгружаю 40000 книг вторые сутки. Приходится наблюдать за прогрессом и нажимать "ОК" при появлении диалога.
Я не знаю точно в чем причина. Подозреваю что книга находится одновременно в нескольких жанрах и при копировании жанров в одну группу получается, что книга копируется несколько раз. При первой попытке все ОК. При последующих попытках выдается диалог.
Варианты исправления.
[2024-11-13] Наконец то поймал ошибку. Она возникает, когда программе не удается создать файл. В моем случае это длинное название файла для файловой системы Ext4. Максимально допустимое имя 134 символа кирилицы (Ext4 допускает до 255 байт на имя файла, но тут играет роль кодировка символов. В UTF8 от 1 до 4х байт).
Вероятно, тот же результат будет в случаях: