LINUX.ORG.RU

[BUG] [Qt] [KDE] Плюсики в Dolphin

 , ,


0

1

Известно, что при наведении на файлы в Dolphin на них появляются плюсики для выделения их. Заметил следующий баг: если переместить окно не за заголовок, а за пустое место где-нибудь посередине, то плюсики перестанут появляться до тех пор, пока не кликнуть на поле с файлами. Если же перемещать за заголовок, то баг не воспроизводится, и плюсики на месте. Воспроизводится на 2-х компах, Qt 4.7.4.

Копнув глубже, заметил, что обычно плюсики появляются, когда сигнал QAbstractItemView::entered(const QModelIndex &) обрабатывается слотом SelectionManager::slotEntered(const QModelIndex &). Но после перемещения окна за середину этот слот перестаёт вызываться, пока не кликнуть в поле с файлами (наследник QAbstractItemView).

Кто-нибудь знает некостыльное решение этого?

Чуть позже напишу в bugs.kde.org, когда зарегистрируюсь там и сформулирую это всё по-английски.

KDE 4.8/Qt 4.8 - не воспроизводится.

bsdfun ★★★★★
()

Так же не воспроизводится: KDE-4.8, Qt-4.8.0.

Ja-Ja-Hey-Ho ★★★★★
()
Ответ на: комментарий от deterok

dolphin-4.8

KDE 4.8 у меня нет, чтобы проверить. Там же Dolphin переписали на Interviews-ng, наверное, поэтому не воспроизводится.

Придётся лезть в исходники Dolphin 4.8, чтобы узнать, как сделали там. Я просто делаю аналогичные плюсики в своём проекте и случайно заметил там этот баг, который воспроизвёлся и в долфине, поэтому хотелось бы всё-таки узнать, как исправить это без перехода на Interviews-ng.

gentoo_root ★★★★★
() автор топика

У меня как-то раз и в новом Dolphin такое было. Закономерности пока не успел уследить.
Всплывающие подсказки при наведении на файл тоже иногда перестают появляться.

pevzi ★★★★★
()
Ответ на: комментарий от gentoo_root

Придётся лезть в исходники Dolphin 4.8, чтобы узнать, как сделали там.

Поверхностно ознакомился, много же они там переделали. Теперь плюсик создаётся не один, а по одному на каждый файл; это больше не QAbstractButton, а QGraphicsWidget; он ловит события наведения мыши с помощью hoverEnterEvent() и hoverLeaveEvent(). Старый плюсик же ловил события наведения через сигнал QAbstractItemView::entered(), а процесс убирания плюсика представлял набор костылей типа отлова наведения на другой элемент, на viewport и выхода из viewport.

То, что сигнал не эмитится, наверняка баг в Qt, поэтому переписывание долфина на Interviews-ng не является решением бага. К тому же, в своём проекте я пока что не собираюсь что-либо основательно менять, поэтому буду рад услышать предложения по исправлению этого бага. Пока на ум приходят только костыли типа блокировки перетаскивания окна за середину или имитации клика на виджете после перетаскивания.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от e1nste1n

смысл голосовать если в 4.8 пофиксили

В 4.8 не пофиксили, а переписали эту часть кода по-другому. Получается, это вообще баг не в Dolphin, а в Qt, гораздо более глубокий.

// В багзилле некий Peter Penz поменял в моём багрепорте версию долфина с 1.7 на 2.0, хотя в том виде, в котором я описал, он не воспроизводится, судя по предыдущим комментариям.

gentoo_root ★★★★★
() автор топика
Ответ на: комментарий от ratvier

qt 4.8, kde 4.8 - воспроизводится

Хм, интересно, от чего это зависит, что у некоторых воспроизводится, а у некоторых — нет.

К сожалению, сам не могу попробовать с Qt 4.8 и Dolphin 2.0, потому что для этого надо или обновить KDE до 4.8 на десктопе, но это долго собирать надо, и тогда у меня не будет KDE 4.7.4, или установить Dolphin 2.0 на нетбук, но для этого придётся обновлять Qt и собирать kdelibs, что тоже достаточно долго.

gentoo_root ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.