New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

A few bugs

Сообщаем о найденных ошибках сюда

A few bugs

Postby kite » Wed Mar 02, 2011 8:59 pm

Напишу небольшой feedback/bug report по первым впечатлениям...
1. [bug] Использовать морфологические словари из hunspell это прикольно... Но, только вот если выбрать два очень похожих словаря (одновременно), например English (GB) и English (US), и немного пощёлкать по словам, то получаем или segmentation fault, или что-то вроде такого:
Code: Select all
====reading 16384 bytes
getResource: gdlookup://localhost?word=House Administration Committee&group=7
scheme: gdlookup
host: localhost
====reading 51232 bytes
>>>Sugg:  st:house
>>>Sugg:  st:house
>>>>>Alt:
>>>>>Alt:
>>>Sugg:  st:House
*** glibc detected *** goldendict: invalid fastbin entry (free): 0x00007f6fa01ed8d0 ***
>>>Sugg:  st:administration
======= Backtrace: =========
/lib/libc.so.6(+0x71b96)[0x7f6fbc40cb96]
/lib/libc.so.6(+0x7544b)[0x7f6fbc41044b]
/lib/libc.so.6(realloc+0xf9)[0x7f6fbc411ad9]
/usr/lib/libQtCore.so.4(_ZN9QListData7reallocEi+0x26)[0x7f6fbd14c456]
/usr/lib/libQtCore.so.4(_ZN9QListData6appendEi+0x68)[0x7f6fbd14c508]
/usr/lib/libQtCore.so.4(+0x8b4d5)[0x7f6fbd1474d5]
/usr/lib/libQtCore.so.4(_ZNK7QRegExp13capturedTextsEv+0xf8)[0x7f6fbd168268]
/usr/lib/libQtCore.so.4(_ZNK7QRegExp3capEi+0x21)[0x7f6fbd1683e1]
/usr/lib/libQtCore.so.4(_ZN7QRegExp3capEi+0x9)[0x7f6fbd168419]
goldendict[0x50db2e]
goldendict[0x51015d]
/usr/lib/libQtCore.so.4(+0x68b88)[0x7f6fbd124b88]
/usr/lib/libQtCore.so.4(+0x7252e)[0x7f6fbd12e52e]
/lib/libpthread.so.0(+0x6cb0)[0x7f6fbcea5cb0]
/lib/libc.so.6(clone+0x6d)[0x7f6fbc46e95d]
======= Memory map: ========
00400000-005e4000 r-xp 00000000 09:01 2910                               /usr/bin/goldendict
007e3000-007e7000 rw-p 001e3000 09:01 2910                               /usr/bin/goldendict
007e7000-007e8000 rw-p 00000000 00:00 0
00cba000-01532000 rw-p 00000000 00:00 0                                  [heap]
7f6f9aa43000-7f6f9aa45000 r-xp 00000000 09:01 1449784                    /usr/lib/gconv/ISO8859-1.so
7f6f9aa45000-7f6f9ac44000 ---p 00002000 09:01 1449784                    /usr/lib/gconv/ISO8859-1.so
7f6f9ac44000-7f6f9ac45000 r--p 00001000 09:01 1449784                    /usr/lib/gconv/ISO8859-1.so
7f6f9ac45000-7f6f9ac46000 rw-p 00002000 09:01 1449784                    /usr/lib/gconv/ISO8859-1.so
7f6f9ac46000-7f6f9ae46000 rw-p 00000000 00:00 0
7f6f9ae49000-7f6f9b349000 rw-p 00000000 00:00 0
7f6f9b34d000-7f6f9b755000 rw-p 00000000 00:00 0
7f6f9b755000-7f6f9b7e2000 r--p 00000000 09:01 29556                      /usr/share/fonts/TTF/DejaVuSans-BoldOblique.ttf
7f6f9b7e2000-7f6f9b808000 r--p 00000000 09:01 526157                     /usr/share/fonts/truetype/microsoft/verdanaz.ttf
7f6f9b808000-7f6f9b895000 r--p 00000000 09:01 29550                      /usr/share/fonts/TTF/DejaVuSans-Oblique.ttf
7f6f9b895000-7f6f9b93c000 r--p 00000000 09:01 29566                      /usr/share/fonts/TTF/DejaVuSans.ttf
7f6f9b93c000-7f6f9b9d7000 r--p 00000000 09:01 29569                      /usr/share/fonts/TTF/DejaVuSans-Bold.ttf
7f6f9b9d7000-7f6f9b9fd000 r--p 00000000 09:01 526156                     /usr/share/fonts/truetype/microsoft/verdanai.ttf
7f6f9b9fd000-7f6f9bdfd000 rw-p 00000000 00:00 0
7f6f9be00000-7f6f9c000000 rw-p 00000000 00:00 0
7f6f9c000000-7f6f9c5ad000 rw-p 00000000 00:00 0
7f6f9c5ad000-7f6fa0000000 ---p 00000000 00:00 0
7f6fa0000000-7f6fa0535000 rw-p 00000000 00:00 0
7f6fa0535000-7f6fa4000000 ---p 00000000 00:00 0
7f6fa4000000-7f6fa8000000 rw-p 00000000 00:00 0
7f6fa80d8000-7f6fa80e0000 rw-p 00000000 00:00 0
7f6fa80e4000-7f6fa8275000 rw-p 00000000 00:00 0
7f6fa8275000-7f6fa8297000 r--p 00000000 09:01 526155                     /usr/share/fonts/truetype/microsoft/verdanab.ttf
7f6fa8297000-7f6fa8298000 ---p 00000000 00:00 0
7f6fa8298000-7f6fa8a98000 rw-p 00000000 00:00 0
7f6fa8a98000-7f6fa8a99000 ---p 00000000 00:00 0
7f6fa8a99000-7f6fa9299000 rw-p 00000000 00:00 0
7f6fa9299000-7f6fa929a000 ---p 00000000 00:00 0
7f6fa929a000-7f6fa9d01000 rw-p 00000000 00:00 0
7f6fa9d01000-7f6faa124000 rw-p 00000000 00:00 0
7f6faa124000-7f6faa128000 rwxp 00000000 00:00 0
7f6faa128000-7f6faa14f000 r-xp 00000000 09:01 2491636                    /usr/lib/qt/plugins/codecs/libqtwcodecs.so
7f6faa14f000-7f6faa34e000 ---p 00027000 09:01 2491636                    /usr/lib/qt/plugins/codecs/libqtwcodecs.so
7f6faa34e000-7f6faa34f000 rw-p 00026000 09:01 2491636                    /usr/lib/qt/plugins/codecs/libqtwcodecs.so
7f6faa34f000-7f6faa362000 r-xp 00000000 09:01 2491626                    /usr/lib/qt/plugins/codecs/libqkrcodecs.so
7f6faa362000-7f6faa561000 ---p 00013000 09:01 2491626                    /usr/lib/qt/plugins/codecs/libqkrcodecs.so
7f6faa561000-7f6faa562000 rw-p 00012000 09:01 2491626                    /usr/lib/qt/plugins/codecs/libqkrcodecs.so
7f6faa562000-7f6faa58d000 r-xp 00000000 09:01 2491637                    /usr/lib/qt/plugins/codecs/libqjpcodecs.so
7f6faa58d000-7f6faa78d000 ---p 0002b000 09:01 2491637                    /usr/lib/qt/plugins/codecs/libqjpcodecs.so
7f6faa78d000-7f6faa78f000 rw-p 0002b000 09:01 2491637                    /usr/lib/qt/plugins/codecs/libqjpcodecs.so
7f6faa78f000-7f6faa7b2000 r-xp 00000000 09:01 2491625                    /usr/lib/qt/plugins/codecs/libqcncodecs.so
7f6faa7b2000-7f6faa9b2000 ---p 00023000 09:01 2491625                    /usr/lib/qt/plugins/codecs/libqcncodecs.so
7f6faa9b2000-7f6faa9b3000 rw-p 00023000 09:01 2491625                    /usr/lib/qt/plugins/codecs/libqcncodecs.so
7f6faa9b3000-7f6faa9df000 r-xp 00000000 09:01 2491643                    /usr/lib/qt/plugins/bearer/libqnmbearer.so
7f6faa9df000-7f6faabdf000 ---p 0002c000 09:01 2491643                    /usr/lib/qt/plugins/bearer/libqnmbearer.so
7f6faabdf000-7f6faabe1000 rw-p 0002c000 09:01 2491643                    /usr/lib/qt/plugins/bearer/libqnmbearer.so
7f6faabe1000-7f6faabed000 r-xp 00000000 09:01 2491641                    /usr/lib/qt/plugins/bearer/libqgenericbearer.so
7f6faabed000-7f6faaded000 ---p 0000c000 09:01 2491641                    /usr/lib/qt/plugins/bearer/libqgenericbearer.so
7f6faaded000-7f6faadee000 rw-p 0000c000 09:01 2491641                    /usr/lib/qt/plugins/bearer/libqgenericbearer.so
7f6faadee000-7f6faae36000 r-xp 00000000 09:01 2491644                    /usr/lib/qt/plugins/bearer/libqconnmanbearer.so
7f6faae36000-7f6fab036000 ---p 00048000 09:01 2491644                    /usr/lib/qt/plugins/bearer/libqconnmanbearer.so
7f6fab036000-7f6fab038000 rw-p 00048000 09:01 2491644                    /usr/lib/qt/plugins/bearer/libqconnmanbearer.so
7f6fab038000-7f6fab635000 rw-p 00000000 00:00 0
7f6fab680000-7f6fab7a0000 rw-p 00000000 00:00 0
7f6fab82c000-7f6fab830000 rwxp 00000000 00:00 0
7f6fab830000-7f6fab856000 rw-p 00000000 00:00 0
7f6fab856000-7f6fab857000 ---p 00000000 00:00 0
7f6fab857000-7f6fac057000 rw-p 00000000 00:00 0
7f6fac057000-7f6fac0b8000 r-xp 00000000 09:01 37376                      /usr/lib/libtiff.so.3.9.4
7f6fac0b8000-7f6fac2b8000 ---p 00061000 09:01 37376                      /usr/lib/libtiff.so.3.9.4
7f6fac2b8000-7f6fac2bb000 rw-p 00061000 09:01 37376                      /usr/lib/libtiff.so.3.9.4
7f6fac2bb000-7f6fac2c2000 r-xp 00000000 09:01 2492135                    /usr/lib/qt/plugins/imageformats/libqtiff.so
7f6fac2c2000-7f6fac4c1000 ---p 00007000 09:01 2492135                    /usr/lib/qt/plugins/imageformats/libqtiff.so
7f6fac4c1000-7f6fac4c2000 rw-p 00006000 09:01 2492135                    /usr/lib/qt/plugins/imageformats/libqtiff.so
7f6fac4c2000-7f6fac4c7000 r-xp 00000000 09:01 2492387                    /usr/lib/qt/plugins/imageformats/libqsvg.so
7f6fac4c7000-7f6fac6c6000 ---p 00005000 09:01 2492387                    /usr/lib/qt/plugins/imageformats/libqsvg.so
7f6fac6c6000-7f6fac6c7000 rw-p 00004000 09:01 2492387                    /usr/lib/qt/plugins/imageformats/libqsvg.so[1]    3123 abort      goldendict

2. [bug] Если добавить какой-нибудь словарь, потом удалить, переименовать его и добавить под новым именем, то потом получаем такую ситуацию - имеем две кнопочки на панели для одного словаря (которые даже работают синхронно). И никаким удалением/добавлением из GUI уже этого не исправить - добавляешь один словарь, а тебе их добавляется два под разными именами. Остается только редактировать недокументированный конфиг. Я понимаю, что хеши у словарей совпадают, но добавить проверочку на такой случай несложно.

3. [unix specific] В словари DSL можно вставлять звуки с помощью тега [s] и goldendict это даже как-то поддерживает - это очень хорошо, но lingvo разрабатывался под ОС, нечувствительную к регистру в ФС - потому им пофигу, в словаре может быть написано заглавными буквами [s]ABC.wav[/s], а сам файл называться строчными буквами abc.wav. Но goldendict в других (нормальных) ОС, ищет с учетом регистра по всем директориям, где есть словари, даже если эти директории совпадают (т.е. если 10 словарей свалены в одну папку, то он будет там пытаться искать 10 раз перед тем как напишет ошибку). Но это неважно, важно то, что файл прослушать нельзя. Единственное решение - использовать zip-архивы, в них поиск оказывается регистронезависимый.

4. [feature request] Goldendict понимает лигвовский формат .lsa - это просто замечательно! Но... как отдельный словарь. Т.е. если ты хочешь почитать лингвовский словарь и послушать звуки которые прописаны там в тегах [s] в то самое время, когда звуки лежат в .lsa, то фиг такое удастся. Надо из .lsa выдрать все файлы, сделать их .wav, запихнуть в архив (см. п.3) и только тогда... Но и тут есть минус - в .wav файлы занимают на порядок больше, чем в .lsa (там они судя по всему сжаты с помощью vorbis).

5. [feature request] В окне управления словарями и группами неплохо бы сделать кнопочки, которыми словари можно вверх/вниз двигать, ну или хотя бы hotkeys типа Ctrl+Up/Ctrl+Down. Когда словарей несколько десятков, очень неудобно их drug'n'drop-ом двигать.

6. [feature request] Кнопочки вкл./выкл. всех словарей из группы (на панели) тоже не помешают. Когда несколько десятков словарей, так и хочется их одним махом все выключить, и включить только нужные.

7. [bug] Кнопочка "Auto groups" глючит неимоверно (на большом количестве разнообразных словарей). Языки вроде определяет нормально, но вот словари в них пихает почти рандомно. Убедится возможно получится вот на таком наборе.

8. [feature request] Когда выделяешь слово и выбираешь lookup из контекстного меню, то перевод появляется, но поле ввода (которое слева) с этим не синхронизируется. Может так и надо, но как по мне это очень неудобно - хочешь поменять немного форму слова - надо его копипастить из статьи в это поле ввода (а потом ещё оказывается, что с ударением оно не понимает, а при копипасте его не убирает...). А если я захочу вернуться, то могу нажать back.
8*. [bug?] Почему-то у меня не работает Ctrl+Ins в карточке... Только Ctrl+C. :(

9. [feature request] Очень плохо, что нельзя просмотреть все слова из словаря. Есть некоторые тематические и небольшие словари, где это очень надо.

10. [cosmetics] Русский перевод первого окна ("Добро пожаловать...") пестрит отсутствием пробелов там, где они нужны... Как-то первое впечатление это портит.

11. [bug] Думаю, что шрифт Tahoma из дефолтного css стоит исключить. По причине отсутствия знака ударения. Да и вообще у всех свои предпочтения - настройки fontconfig-а никто не отменял.

12. [bug] При сохранении карточки в .html ссылки типа "gdau://search/*.wav", "qrcx://localhost/icons/*.png", "gdlookup://localhost/*" думаю стоит убирать... они всё равно не будут работать за пределами приложения. И вообще вы пробовали валидировать это на validator.w3.org? Думаю html стоит привести в соответствие со стандартом.
Ещё не пойму, почему у меня webkit в goldendict кнопочку play (когда она выделена) не просто обводит пунктирной линией, а ещё и перечеркивает такой же горизонтальной линией. Ни chromium, ни konqueror так не делают.

Но это всё незначительные мелочи, а самое главное как по мне:
13. Когда вызываешь всплывающее окно с переводом (Ctrl+C+C), то программа иногда (очень часто) каким-то образом, как бы это выразится, capture весь input с клавиатуры. Т.е. я в своем VM (awesome) не могу не то что на другой "рабочий стол" переключиться, а вообще любой hotkey заюзать. Но это может быть баг и не goldendict.

P.S. Сборка goldendict 1.0.1 из comunity-репозитория ArchLinux x64.
P.P.S. Спасибо за разработку и за то, что дочитали досюда.
Last edited by kite on Thu Mar 03, 2011 11:53 am, edited 1 time in total.
kite
 
Posts: 18
Joined: Mon Feb 28, 2011 9:49 pm
Location: Lugans'k, Ukraine

Re: A few bugs

Postby ikm » Thu Mar 03, 2011 1:40 am

kite wrote: если выбрать два очень похожих словаря (одновременно), например English (GB) и English (US), и немного пощёлкать по словам, то получаем или segmentation fault

Большое спасибо за наблюдение. Попробую воспроизвести.

kite wrote:если ты хочешь почитать лингвовский словарь и послушать звуки которые прописаны там в тегах [s] в то самое время, когда звуки лежат в .lsa, то фиг такое удастся.

Удастся. Нужно, чтобы они были в одной группе.

kite wrote:Если добавить какой-нибудь словарь, потом удалить, переименовать его и добавить под новым именем, то потом получаем такую ситуацию - имеем две кнопочки на панели для одного словаря

Есть такое - пока не нашел время это исправить.

kite wrote:Кнопочка "Auto groups" глючит неимоверно

Вполне возможно. Это не мой код. Его разработчик давно тут уже не показывался. А вообще, идея в том, чтобы перейти на языковые пары когда-нибудь.

kite wrote: Но goldendict в других (нормальных) ОС, ищет с учетом регистра по всем директориям

Простых решений данной проблемы нет.

kite wrote:Когда несколько десятков словарей, так и хочется их одним махом все выключить, и включить только нужные.

Ctrl-click.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: A few bugs

Postby kite » Thu Mar 03, 2011 2:42 am

ikm wrote:Удастся. Нужно, чтобы они были в одной группе.
Ага... Осталось только убрать этот словарь из карточки, чтоб глаза не мусолил.

ikm wrote:Простых решений данной проблемы нет.
А почему бы перед тем как выдать ошибку (т.е. после неудачной проверки QFile.exists()) не сделать проверку типа такой: QDir dir(dirName); dir.entryList().contains(fileName, Qt::CaseInsensitive);

ikm wrote:Ctrl-click.
О... Интересно сколько ещё скрытых возможностей я не знаю?..

ikm wrote:А вообще, идея в том, чтобы перейти на языковые пары когда-нибудь.
А по-моему и так удобно (пофикситить только этот групогенератор). Если переходить чисто на пары, то группы оставить надо. Иногда хочется не только два языка в группе. Например, язык, который ты изучаешь + все тебе понятные языки. Вон хороших словарей голландского попробуй поищи, потому я хочу видеть в карточке как перевод на русский, так и на английский.

P.S.
14. [feature request] Ещё мне кажется, что такая мелочь как кнопочка Apply в окнах Preferences/Dictionaries будет очень кстати.
15. [bug] Если нажать на Welcome Tab (да и на любой в общем) кнопочку back, то получаем пустой таб с пустым заголовком - некрасиво. Тем более, что при закрытии этого таба получаем похожий таб, но уже (intitled). Вообще можно взять хороший пример с любого браузера и если возвращаться некуда, то кнопочку back надо бы disable-ить.
16. [bug] Я юзаю ребиндинг левого Ctrl на кнопку CapsLock в X11 (Option "XkbOptions" "ctrl:nocaps" в /etc/X11/xorg.conf). Везде прекрасно работает! Кроме GoldenDict... Точнее в самом GoldenDict, как в любом Qt-приложении, Ctrl нормально понимается. Но вот popup, который по Ctrl+C+C, как-то интересно реализован - он понимает только стандартную вендовую раскладку, где Ctrl находится слева снизу.
В настройках в вкладке Hotkeys детект клавиш, разумеется, работает правильно согласно иксам.
kite
 
Posts: 18
Joined: Mon Feb 28, 2011 9:49 pm
Location: Lugans'k, Ukraine

Re: A few bugs

Postby kite » Sat May 21, 2011 3:52 pm

17. Включаем Morphology Dictionary, выделяем, например, "i.e.", щёлкаем Ctrl+C+C... и перевода нет. Хотя в словаре карточка с таким тайтлом есть. http://i038.radikal.ru/1105/a5/8585794e7d89.png
kite
 
Posts: 18
Joined: Mon Feb 28, 2011 9:49 pm
Location: Lugans'k, Ukraine

Re: A few bugs

Postby Tvangeste » Tue Jun 07, 2011 8:54 am

kite wrote:15. [bug] Если нажать на Welcome Tab (да и на любой в общем) кнопочку back, то получаем пустой таб с пустым заголовком - некрасиво. Тем более, что при закрытии этого таба получаем похожий таб, но уже (intitled).

Только что было пофикшено. Фикс в репозитории.

kite wrote:Вообще можно взять хороший пример с любого браузера и если возвращаться некуда, то кнопочку back надо бы disable-ить.

Согласный, тоже меня это огорчает. Посмотрю, что можно сделать малыми силами, чтобы не отвлекать по пустякам Константина. ;)
Tvangeste
 
Posts: 893
Joined: Thu Jun 02, 2011 11:42 am

Re: A few bugs

Postby Tvangeste » Mon Jun 13, 2011 12:47 pm

kite wrote:14. [feature request] Ещё мне кажется, что такая мелочь как кнопочка Apply в окнах Preferences/Dictionaries будет очень кстати.

Насчет Apply в Preferences не уверен, ей там делать особо нечего вроде как. А вот в Dictionaries очнь даже нужно. Потому как вот и я сам, и замечал у других пользователей, когда что-то поменяю в настройках в путях к словарям, или добавлю каких новых словарей, жму OK чтобы наверняка применить свои изменения, окно закрывается, я его еще раз открываю, и иду уже после этого настраивать группы.

С Apply workflow получается естественнее: Добавил словарь -> Apply -> Пошел добавлять словарь в группу.

В общем, добавил я кнопку Apply в диалог с настройками словарей, закоммитил в репозиторий.

P.S. По идее, можно и сразу после добавления словаря или изменения путей идти в закладку с группами, и GD сам подскажет, что правки не записаны, и хорошо бы их записать. Но почему-то лично я, да и судя по тому, как действовует еще пара пользователей GD, за которыми я наблюдал, не очень использовал этот вариант, а предпочитал нажать лишний раз OK. Теперь переоткрывать диалог не надо будет, знай жамкай на Apply :)
Tvangeste
 
Posts: 893
Joined: Thu Jun 02, 2011 11:42 am


Return to Ошибки

Who is online

Users browsing this forum: No registered users and 21 guests