Bug 437584 - Saving channel list locks up GUI, but keyboard still works
Summary: Saving channel list locks up GUI, but keyboard still works
Status: RESOLVED FIXED
Alias: None
Product: konversation
Classification: Applications
Component: general (other bugs)
Version First Reported In: 1.8.21041
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Konversation Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-05-23 23:19 UTC by Frank Steinmetzger
Modified: 2025-07-15 09:00 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Frank Steinmetzger 2021-05-23 23:19:18 UTC
I got wind of the the migration of FOSS projects to libera.chat and so followed suit with my Konversation installation. I wanted to get a glimpse of the available channels, so I pressed F5 for the channel list, refreshed it and saved it to a file for archive purposes, as I do every few months.

But then the GUI did not react to mouse input anymore. There was no CPU load, so it wasn’t a typical infinite loop. Next I tried Ctrl+Q and it worked: I got the “Do you want to quit” dialog. I cancelled it, and now the GUI worked again.

My current Konversation package is part of KDE 21.04.1. This is the first time I encountered this problem. The last time I used this feature, it was working normally, running on KDE 20.12.2.
Comment 1 ulterno 2025-04-04 15:26:59 UTC
As of version 1.10.24123 (Arch Repos), the workaround (Ctrl+Q and cancel) does not work.
Comment 2 ulterno 2025-04-04 18:02:39 UTC
Confirmed problem in master branch.

PROBING

In function: void ChannelListPanel::saveList()
- this variable is : ChannelListPanel('address', name="ChannelListWidgetUI")
- this->parentWidget() : QStackedWidget('address', name="qt_tabwidget_stackedwidget")

For QFileDialog::getSaveFileName(   )
- Setting the option (i.e. the last argument of type QFileDialog::Options) to QFileDialog::DontUseNativeDialog, hence invoking the Qt File dialog, is a functioning workaround
- Passing this->parentWidget() as the parent parameter (1st argument) makes the System File dialog work properly with kio 6.12.0-1
Comment 3 Bug Janitor Service 2025-04-04 18:24:12 UTC
A possibly relevant merge request was started @ https://invent.kde.org/network/konversation/-/merge_requests/119
Comment 4 ulterno 2025-04-04 18:32:17 UTC
Merge Request !119 should fix this.
Comment 5 Albert Astals Cid 2025-07-15 08:59:34 UTC
Git commit edad2338fe26751e01d17874ab69e3e5e2a0e29f by Albert Astals Cid, on behalf of Aditya Tolikar.
Committed on 15/07/2025 at 08:59.
Pushed by aacid into branch 'master'.

Pass a valid QWidget pointer to QFileDialog

The `this` pointer being passed to `QFileDialog` is not usable 
with the File Dialog provided by KIO.

Use the output of `QWidget::window()` function instead, 
to ensure that a usable pointer is given to the File Dialog provider.

M  +1    -1    src/irc/channellistpanel.cpp
M  +2    -2    src/urlcatcher.cpp
M  +1    -1    src/viewer/logfilereader.cpp

https://invent.kde.org/network/konversation/-/commit/edad2338fe26751e01d17874ab69e3e5e2a0e29f
Comment 6 Albert Astals Cid 2025-07-15 09:00:27 UTC
Git commit 094d9f2a4e980f0e6e02d7a88f24361eb782e395 by Albert Astals Cid, on behalf of Aditya Tolikar.
Committed on 15/07/2025 at 09:00.
Pushed by aacid into branch 'release/25.08'.

Pass a valid QWidget pointer to QFileDialog

The `this` pointer being passed to `QFileDialog` is not usable
with the File Dialog provided by KIO.

Use the output of `QWidget::window()` function instead,
to ensure that a usable pointer is given to the File Dialog provider.
(cherry picked from commit edad2338fe26751e01d17874ab69e3e5e2a0e29f)

M  +1    -1    src/irc/channellistpanel.cpp
M  +2    -2    src/urlcatcher.cpp
M  +1    -1    src/viewer/logfilereader.cpp

https://invent.kde.org/network/konversation/-/commit/094d9f2a4e980f0e6e02d7a88f24361eb782e395