|
|
|
|
@ -214,6 +214,17 @@ InputBar::InputBar(EmojiPanel *emojiPanel, AudioRecorder *recorder, QWidget *par
|
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* QWidget уничтожает дочерние viewport после полей InputBar: снимаем callbacks до их уничтожения. */ |
|
|
|
|
InputBar::~InputBar() { |
|
|
|
|
GUI_DEBUG("InputBar: removing file drop targets count=%d", int(m_dropTargets.size())); |
|
|
|
|
for (auto* target : m_dropTargets) { |
|
|
|
|
target->removeEventFilter(this); |
|
|
|
|
disconnect(target, nullptr, this, nullptr); |
|
|
|
|
} |
|
|
|
|
m_dropTargets.clear(); |
|
|
|
|
delete m_dropHint.data(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Qt доставляет drop в viewport, а не в QTextEdit/QListView. Родитель composer принимает drop на кнопках. */ |
|
|
|
|
void InputBar::installFileDropTarget(QWidget* target) { |
|
|
|
|
if (!target || m_dropTargets.contains(target)) return; |
|
|
|
|
|