Fix memory leak. PrinterDialog is not deleted when close it
authorMontel Laurent <kdeqt@yahoo.fr>
Fri, 30 Nov 2012 11:50:53 +0000 (12:50 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 30 Nov 2012 22:56:02 +0000 (23:56 +0100)
Change-Id: I9f0a300cdaf9803bc2ad723946ac4d0f825cc28b
Reviewed-by: David Faure <david.faure@kdab.com>
examples/touch/fingerpaint/scribblearea.cpp
examples/widgets/itemviews/pixelator/mainwindow.cpp
examples/widgets/mainwindows/dockwidgets/mainwindow.cpp
examples/widgets/richtext/orderform/mainwindow.cpp
examples/widgets/widgets/scribble/scribblearea.cpp

index b0dd719..7e0c8ed 100644 (file)
@@ -157,9 +157,9 @@ void ScribbleArea::print()
 #ifndef QT_NO_PRINTER
     QPrinter printer(QPrinter::HighResolution);
 
-    QPrintDialog *printDialog = new QPrintDialog(&printer, this);
+    QPrintDialog printDialog(&printer, this);
 //! [21] //! [22]
-    if (printDialog->exec() == QDialog::Accepted) {
+    if (printDialog.exec() == QDialog::Accepted) {
         QPainter painter(&printer);
         QRect rect = painter.viewport();
         QSize size = image.size();
index cae9711..18c1266 100644 (file)
@@ -167,11 +167,12 @@ void MainWindow::printImage()
 
     QPrinter printer(QPrinter::HighResolution);
 
-    QPrintDialog *dlg = new QPrintDialog(&printer, this);
-    dlg->setWindowTitle(tr("Print Image"));
+    QPrintDialog dlg(&printer, this);
+    dlg.setWindowTitle(tr("Print Image"));
 
-    if (dlg->exec() != QDialog::Accepted)
+    if (dlg.exec() != QDialog::Accepted) {
         return;
+    }
 
     QPainter painter;
     painter.begin(&printer);
index d3b05f0..4228282 100644 (file)
@@ -121,12 +121,12 @@ void MainWindow::print()
     QTextDocument *document = textEdit->document();
     QPrinter printer;
 
-    QPrintDialog *dlg = new QPrintDialog(&printer, this);
-    if (dlg->exec() != QDialog::Accepted)
+    QPrintDialog dlg(&printer, this);
+    if (dlg.exec() != QDialog::Accepted) {
         return;
+    }
 
     document->print(&printer);
-
     statusBar()->showMessage(tr("Ready"), 2000);
 #endif
 }
index 4334e8b..e6e7e3b 100644 (file)
@@ -240,12 +240,13 @@ void MainWindow::printFile()
 //! [18]
     QPrinter printer;
 
-    QPrintDialog *dialog = new QPrintDialog(&printer, this);
-    dialog->setWindowTitle(tr("Print Document"));
+    QPrintDialog dialog(&printer, this);
+    dialog.setWindowTitle(tr("Print Document"));
     if (editor->textCursor().hasSelection())
-        dialog->addEnabledOption(QAbstractPrintDialog::PrintSelection);
-    if (dialog->exec() != QDialog::Accepted)
+        dialog.addEnabledOption(QAbstractPrintDialog::PrintSelection);
+    if (dialog.exec() != QDialog::Accepted) {
         return;
+    }
 //! [18]
 
     editor->print(&printer);
index ad17b53..f5ccb52 100644 (file)
@@ -203,9 +203,9 @@ void ScribbleArea::print()
 #ifndef QT_NO_PRINTER
     QPrinter printer(QPrinter::HighResolution);
  
-    QPrintDialog *printDialog = new QPrintDialog(&printer, this);
+    QPrintDialog printDialog(&printer, this);
 //! [21] //! [22]
-    if (printDialog->exec() == QDialog::Accepted) {
+    if (printDialog.exec() == QDialog::Accepted) {
         QPainter painter(&printer);
         QRect rect = painter.viewport();
         QSize size = image.size();