┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/userfeedback/settingsdatasource.cpp
diff options
context:
space:
mode:
authorNicolas Fella <[email protected]>2026-05-07 14:54:25 +0200
committerMéven Car <[email protected]>2026-05-07 12:54:25 +0000
commit8ee2bfee960819d9f92e486d93f9d59ffe230bbb (patch)
treeaeea95c93a8bdb7f4ce19a6d9fdcec01575c2e54 /src/userfeedback/settingsdatasource.cpp
parent6d51a60cb209dd0490aaab4c0c85ff5ad2ca0a0d (diff)
userfeedback: prevent dangling pointer access in SettingsDataSource
When the main window is closed m_mainWindow becomes dangling Since data collection happens infrequently we don't need to cache the window, just find it on demand BUG: 519876 SENTRY: DOLPHIN-VPX
Diffstat (limited to 'src/userfeedback/settingsdatasource.cpp')
-rw-r--r--src/userfeedback/settingsdatasource.cpp22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/userfeedback/settingsdatasource.cpp b/src/userfeedback/settingsdatasource.cpp
index c517793ad..6e34dbcda 100644
--- a/src/userfeedback/settingsdatasource.cpp
+++ b/src/userfeedback/settingsdatasource.cpp
@@ -31,22 +31,16 @@ QString SettingsDataSource::description() const
QVariant SettingsDataSource::data()
{
- if (!m_mainWindow) {
- // This assumes there is only one DolphinMainWindow per process.
- const auto topLevelWidgets = QApplication::topLevelWidgets();
- for (const auto widget : topLevelWidgets) {
- if (qobject_cast<DolphinMainWindow *>(widget)) {
- m_mainWindow = static_cast<DolphinMainWindow *>(widget);
- break;
- }
- }
- }
-
QVariantMap map;
- if (m_mainWindow) {
- map.insert(QStringLiteral("informationPanelEnabled"), m_mainWindow->isInformationPanelEnabled());
- map.insert(QStringLiteral("foldersPanelEnabled"), m_mainWindow->isFoldersPanelEnabled());
+ // This assumes there is only one DolphinMainWindow per process.
+ const auto topLevelWidgets = QApplication::topLevelWidgets();
+ for (const auto widget : topLevelWidgets) {
+ if (auto mainWindow = qobject_cast<DolphinMainWindow *>(widget)) {
+ map.insert(QStringLiteral("informationPanelEnabled"), mainWindow->isInformationPanelEnabled());
+ map.insert(QStringLiteral("foldersPanelEnabled"), mainWindow->isFoldersPanelEnabled());
+ break;
+ }
}
map.insert(QStringLiteral("tooltipsEnabled"), GeneralSettings::showToolTips());