Skip to content

Commit eb52352

Browse files
committed
Fix memory leaks
1 parent f3dcc5d commit eb52352

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

common/gnomehintssettings.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ GnomeHintsSettings::GnomeHintsSettings()
9090
, m_canUseFileChooserPortal(!m_usePortal)
9191
, m_gnomeDesktopSettings(g_settings_new("org.gnome.desktop.wm.preferences"))
9292
, m_settings(g_settings_new("org.gnome.desktop.interface"))
93+
, m_fallbackFont(new QFont(QLatin1String("Sans"), 10))
9394
{
9495
gtk_init(nullptr, nullptr);
9596

@@ -151,6 +152,8 @@ GnomeHintsSettings::GnomeHintsSettings()
151152
loadTheme();
152153
loadTitlebar();
153154

155+
m_palette = new QPalette(Adwaita::Colors::palette(m_gtkThemeDarkVariant ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita));
156+
154157
if (m_canUseFileChooserPortal) {
155158
QTimer::singleShot(0, this, [this] () {
156159
const QString filePath = QStringLiteral("/proc/%1/root").arg(QCoreApplication::applicationPid());
@@ -184,6 +187,7 @@ GnomeHintsSettings::GnomeHintsSettings()
184187
} else {
185188
m_canUseFileChooserPortal = false;
186189
}
190+
watcher->deleteLater();
187191
});
188192
}
189193
}
@@ -192,6 +196,8 @@ GnomeHintsSettings::GnomeHintsSettings()
192196
GnomeHintsSettings::~GnomeHintsSettings()
193197
{
194198
qDeleteAll(m_fonts);
199+
delete m_fallbackFont;
200+
delete m_palette;
195201
if (m_cinnamonSettings) {
196202
g_object_unref(m_cinnamonSettings);
197203
}

common/gnomehintssettings.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,13 @@ class GnomeHintsSettings : public QObject
6767
return m_fonts[QPlatformTheme::SystemFont];
6868
} else {
6969
// GTK default font
70-
return new QFont(QLatin1String("Sans"), 10);
70+
return m_fallbackFont;
7171
}
7272
}
7373

7474
inline QPalette * palette() const
7575
{
76-
QPalette *palette = new QPalette(Adwaita::Colors::palette(m_gtkThemeDarkVariant ? Adwaita::ColorVariant::AdwaitaDark : Adwaita::ColorVariant::Adwaita));
77-
return palette;
76+
return m_palette;
7877
}
7978

8079
inline bool canUseFileChooserPortal() const
@@ -183,6 +182,8 @@ private Q_SLOTS:
183182
QHash<QPlatformTheme::Font, QFont*> m_fonts;
184183
QHash<QPlatformTheme::ThemeHint, QVariant> m_hints;
185184
QMap<QString, QVariantMap> m_portalSettings;
185+
QPalette *m_palette = nullptr;
186+
QFont *m_fallbackFont = nullptr;
186187
};
187188

188189
template <> inline int GnomeHintsSettings::getSettingsProperty(GSettings *settings, const QString &property, bool *ok) {

common/qxdgdesktopportalfiledialog.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ void QXdgDesktopPortalFileDialog::openPortal()
302302
this,
303303
SLOT(gotResponse(uint,QVariantMap)));
304304
}
305+
watcher->deleteLater();
305306
});
306307
}
307308

0 commit comments

Comments
 (0)