diff --git a/src/dialogs/ConfigDialog.cpp b/src/dialogs/ConfigDialog.cpp index a1844c109..a4893b3f1 100644 --- a/src/dialogs/ConfigDialog.cpp +++ b/src/dialogs/ConfigDialog.cpp @@ -232,6 +232,7 @@ class RemotesPanel : public QWidget { connect(dialog, &QDialog::accepted, this, [this, dialog] { mRepo.addRemote(dialog->name(), dialog->url()); }); + dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->open(); } @@ -675,13 +676,13 @@ class LfsPanel : public QWidget { connect(environment, &QAbstractButton::clicked, this, [view] { git::Repository repo = view->repo(); - QDialog *dialog = new QDialog(); - dialog->setWindowTitle(tr("git-lfs env (read only)")); + QDialog dialog; + dialog.setWindowTitle(tr("git-lfs env (read only)")); QSize size(500, 500); - dialog->setFixedSize(size); + dialog.setFixedSize(size); - QTextEdit *textEdit = new QTextEdit(dialog); + QTextEdit *textEdit = new QTextEdit(&dialog); textEdit->setFixedSize(size); textEdit->setReadOnly(true); @@ -689,7 +690,7 @@ class LfsPanel : public QWidget { textEdit->append(string); } - dialog->exec(); + dialog.exec(); }); QPushButton *deinit = new QPushButton(tr("Deinitialize LFS")); diff --git a/src/dialogs/UpdateSubmodulesDialog.cpp b/src/dialogs/UpdateSubmodulesDialog.cpp index c155f9f92..262644f3a 100644 --- a/src/dialogs/UpdateSubmodulesDialog.cpp +++ b/src/dialogs/UpdateSubmodulesDialog.cpp @@ -93,6 +93,7 @@ class Model : public QAbstractTableModel { UpdateSubmodulesDialog::UpdateSubmodulesDialog(const git::Repository &repo, QWidget *parent) : QDialog(parent) { + setAttribute(Qt::WA_DeleteOnClose); mTable = new QTableView(this); mTable->setShowGrid(false); mTable->setSelectionMode(QAbstractItemView::NoSelection); diff --git a/src/git/Repository.cpp b/src/git/Repository.cpp index 601b5b1e8..10cca4813 100644 --- a/src/git/Repository.cpp +++ b/src/git/Repository.cpp @@ -183,7 +183,9 @@ Id Repository::workdirId(const QString &path) const { QString Repository::message() const { git_buf buf = GIT_BUF_INIT; git_repository_message(&buf, d->repo); - return QString::fromUtf8(buf.ptr, buf.size); + QString msg = QString::fromUtf8(buf.ptr, buf.size); + git_buf_dispose(&buf); + return msg; } // Config file used for git specific configs diff --git a/src/ui/CommitEditor.cpp b/src/ui/CommitEditor.cpp index 00691ec11..8c2125bfe 100644 --- a/src/ui/CommitEditor.cpp +++ b/src/ui/CommitEditor.cpp @@ -50,9 +50,8 @@ class TextEdit : public QTextEdit { bool setupSpellCheck(const QString &dictPath, const QString &userDict, const QTextCharFormat &spellFormat, const QTextCharFormat &ignoredFormat) { - mSpellChecker = new SpellChecker(dictPath, userDict); + mSpellChecker = std::make_unique(dictPath, userDict); if (!mSpellChecker->isValid()) { - delete mSpellChecker; mSpellChecker = nullptr; mSpellList.clear(); setSelections(); @@ -248,7 +247,7 @@ class TextEdit : public QTextEdit { QTimer mTimer; - SpellChecker *mSpellChecker = nullptr; + std::unique_ptr mSpellChecker = nullptr; QTextCharFormat mSpellFormat; QTextCharFormat mIgnoredFormat; QList mSpellList;