viktor-zin / afce

Flowchart editor
GNU General Public License v3.0
61 stars 23 forks source link

Не добавляется расширение .afc #20

Closed glixx closed 10 years ago

glixx commented 10 years ago

Под qt5 заметил, что если сохранить файл, то не добавляется расширение .afc к имени файла.

glixx commented 10 years ago

При экспорте если вручную не вписать расширение, то не экспортируется.

glixx commented 10 years ago

Не проявляется для qt4, только для qt5.

viktor-zin commented 10 years ago

Что-то мне подсказывает, что в Qt5 проблема с диалоговым окном выбора файл в Linux... В Windows все нормально.

glixx commented 10 years ago

Да, qt5 + linux чего-то не то с диалогами. Может только у меня так, пока не знаю, надо чтобы кто-то воспроизвёл проблему.

glixx commented 10 years ago

Сказали так: "Я с подобным сталкивался. Это, вроде как, нормальная ситуация, а не баг. В то время я решил через проверку на присутствие/отсутствие расширения." Так что получается, что это фича QT5, а проверку на расширение надо делать в коде.

viktor-zin commented 10 years ago

Сделал добавление расширения. Нужно потестить по Linux.

glixx commented 10 years ago

В Linux регистр имеет значение, поэтому, получается что-то подобное: имя.BW.bw, то есть 2 расширения.

glixx commented 10 years ago

Вот еще вариант http://stackoverflow.com/questions/1953631/qfiledialog-adding-extension-automatically-when-saving-file

viktor-zin commented 10 years ago

По поводу регистра. Я специально использовал функцию SQtring::toLower(), чтобы при сравнении приводилось всё к нижнему регистру. Таким образом, должно нормально обрабатываться расширение. Однако, я нашел в своем алгоритме некоторое допущение, я без основательно предположил, что длина расширения 3 символа. Именно из-за этого добавляется новое расширение у двубуквенных или 4-буквенных.

viktor-zin commented 10 years ago

QFileDialog::setDefaultSuffix удобно использовать, когда у нас только один тип файлов. При экспорте в разные форматы, то нужно ручками обрабатывать. Внес изменения - нужно потестить.

glixx commented 10 years ago

Не помогло, всё также двойное расширение.

viktor-zin commented 10 years ago

Воспроизвел проблему у себя в Windows. Прогнал через отладчик. Нашел ошибку в коде. Кажется, получилось.

glixx commented 10 years ago

Тут походу не хватает условия на наличие галочки (отметил красным). Сложная задачка попалась :( afce

glixx commented 10 years ago

Скорее всего надо просто условиться и все расширения писать только в нижнем регистре всегда. На рисунке видно, что "4.BW" - это диалоговым окном добавлено, а ".bw" это afce добавляет.

viktor-zin commented 10 years ago

Я даже не предполагал, что такая галочка может быть. Однако код должен был предусмотреть такой вариант. Чувствую, что нужно Linux себе ставить, хотя бы в виртуальную машину :)

glixx commented 10 years ago

Да, хотя бы в виртуалке. В крайнем случае эта галочка только для QT4, поэтому можно добавить условие на версию QT. Но я смотрю пока только KDE, а в разных DE диалоги разные ещё плюсом.

viktor-zin commented 10 years ago

Поставил себе Kubuntu. Диалоговое окно экспорта отличается, и в нем нет такой галочки. Пробовал вручную написать расширение большими буквами - программа отработала корректно и не стала добавлять второе расширение. Так же в списке форматов нет BW-формата. Что я делаю не так? Как мне воспроизвести действия, которые приводят к такой ошибке? afce-kubunte-14 04 01-kde4

glixx commented 10 years ago

Такая галочка только при сборке под QT4 по крайней мере в KDE так.

viktor-zin commented 10 years ago

Собрал под Qt4 в Ubuntu и смог воспроизвести ошибку! Оказалось, что в qt4 в списках форматов оказалось расширение в верхнем регистре. На основании этого строился фильтр в диалоговом окне. При проверке расширения я имя файла приводил в нижний регистр, а эталонное расширение не приводил. Короче, исправил. Сейчас второе расширение не добавляется, но старое в верхнем регистре по-прежнему остается.

glixx commented 10 years ago

А файл version.txt в исходниках нужен? Может его в игнор добавить?

glixx commented 10 years ago

Галочка "Автоматически выбирать расширение файла" не работает. Если она не выбрана, то по идее расширение добавляться не должно. Её можно как-то отследить или пренебречь?

viktor-zin commented 10 years ago

По поводу version.txt, ничего страшного не будет, если этот файл пока будет присутствовать. Честно говоря, я пока не освоил гитхаб в полной мере, и у меня пока нет навыка управления версиями выпусков. Тут, вроде, есть релизы и метки, но я этот функционал пока не изучал. Что касается галочки в диалоговом окне, раз ее нет в пятой версии, то стоит наверно ею пренебречь и в будущем оставить релиз только для Qt 5. Поддерживать Qt 4 становится всё сложнее и сложнее.

glixx commented 10 years ago

Решено.