r18967 - gnucash/trunk/src/gnc - Cutecash: Fix memory leak of missing cleanup of RecentFileMenu object.

Christian Stimming cstim at code.gnucash.org
Sat Mar 27 06:24:07 EDT 2010


Author: cstim
Date: 2010-03-27 06:24:07 -0400 (Sat, 27 Mar 2010)
New Revision: 18967
Trac: http://svn.gnucash.org/trac/changeset/18967

Modified:
   gnucash/trunk/src/gnc/mainwindow.cpp
   gnucash/trunk/src/gnc/mainwindow.hpp
Log:
Cutecash: Fix memory leak of missing cleanup of RecentFileMenu object.

Modified: gnucash/trunk/src/gnc/mainwindow.cpp
===================================================================
--- gnucash/trunk/src/gnc/mainwindow.cpp	2010-03-26 19:15:56 UTC (rev 18966)
+++ gnucash/trunk/src/gnc/mainwindow.cpp	2010-03-27 10:24:07 UTC (rev 18967)
@@ -77,6 +77,7 @@
 
 MainWindow::MainWindow()
         : ui(new Ui::MainWindow)
+        , m_menuRecentFiles(new RecentFileMenu(tr("Open &Recent")))
         , m_undoStack(new QUndoStack(this))
 {
     ui->setupUi(this);
@@ -98,7 +99,6 @@
 
 MainWindow::~MainWindow()
 {
-    delete ui;
     if (m_session.get())
     {
         qof_session_destroy(m_session.get());
@@ -225,9 +225,8 @@
 
 void MainWindow::createToolBars()
 {
-    menuRecentFiles = new RecentFileMenu(tr("Open &Recent"));
-    ui->menuFile->insertMenu(ui->actionSave, menuRecentFiles);
-    connect(menuRecentFiles, SIGNAL(fileSelected(const QString &)),
+    ui->menuFile->insertMenu(ui->actionSave, m_menuRecentFiles.data());
+    connect(m_menuRecentFiles.data(), SIGNAL(fileSelected(const QString &)),
             this, SLOT(loadFileMaybe(const QString&)));
 
     m_fileToolBar = addToolBar(tr("File"));
@@ -256,7 +255,7 @@
     QSize size = settings.value("size", QSize(400, 400)).toSize();
     resize(size);
     move(pos);
-    menuRecentFiles->readSettings(&settings, "RecentFiles");
+    m_menuRecentFiles->readSettings(&settings, "RecentFiles");
 }
 
 void MainWindow::writeSettings()
@@ -264,7 +263,7 @@
     QSettings settings("gnucash.org", "Cutecash");
     settings.setValue("pos", pos());
     settings.setValue("size", size());
-    menuRecentFiles->writeSettings(&settings, "RecentFiles");
+    m_menuRecentFiles->writeSettings(&settings, "RecentFiles");
 }
 
 bool MainWindow::maybeSave()
@@ -286,7 +285,7 @@
 
 void MainWindow::setCurrentFile(const QString &fileName)
 {
-    menuRecentFiles->usingFile(fileName);
+    m_menuRecentFiles->usingFile(fileName);
     m_currentFilename = fileName;
     documentCleanStateChanged(true);
 

Modified: gnucash/trunk/src/gnc/mainwindow.hpp
===================================================================
--- gnucash/trunk/src/gnc/mainwindow.hpp	2010-03-26 19:15:56 UTC (rev 18966)
+++ gnucash/trunk/src/gnc/mainwindow.hpp	2010-03-27 10:24:07 UTC (rev 18967)
@@ -25,6 +25,7 @@
 
 #include <QMainWindow>
 #include <QItemSelection>
+#include <QSharedPointer>
 #include "gnc/Session.hpp"
 #include "gnc/AccountItemModel.hpp"
 
@@ -112,7 +113,7 @@
                                     const QString& newfile,
                                     GNCFileDialogType type);
 
-    Ui::MainWindow *ui;
+    QSharedPointer<Ui::MainWindow> ui;
 
     QString m_currentFilename;
 
@@ -120,7 +121,7 @@
     QToolBar *m_editToolBar;
     QAction *m_actionUndo;
     QAction *m_actionRedo;
-    RecentFileMenu *menuRecentFiles;
+    QSharedPointer<RecentFileMenu> m_menuRecentFiles;
     QUndoStack *m_undoStack;
 
     Session m_session;



More information about the gnucash-changes mailing list