File indexing completed on 2024-05-12 05:06:12
0001 /* 0002 SPDX-FileCopyrightText: 2019 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "kmm_printer.h" 0007 0008 #include <QPrinter> 0009 #include <QPointer> 0010 #include <QPrintDialog> 0011 #include <QScopedPointer> 0012 #include <QDebug> 0013 0014 // Q_LOGGING_CATEGORY(Print, "Printing") 0015 0016 KMyMoneyPrinter::KMyMoneyPrinter() 0017 { 0018 } 0019 0020 QPrinter* KMyMoneyPrinter::instance(QPrinter::PrinterMode mode) 0021 { 0022 static QPrinter* printer(nullptr); 0023 0024 if (printer == nullptr) { 0025 printer = new QPrinter(mode); 0026 } 0027 return printer; 0028 } 0029 0030 QPrintDialog* KMyMoneyPrinter::dialog() 0031 { 0032 static QPrintDialog* dialog(nullptr); 0033 0034 if (dialog == nullptr) { 0035 dialog = new QPrintDialog(instance()); 0036 dialog->setWindowTitle(QString()); 0037 } 0038 return dialog; 0039 } 0040 0041 QPrinter* KMyMoneyPrinter::startPrint(QPrinter::PrinterMode mode) 0042 { 0043 QPrinter *printer = instance(mode); 0044 0045 if (dialog()->exec() != QDialog::Accepted) 0046 return nullptr; 0047 return printer; 0048 } 0049 0050 void KMyMoneyPrinter::cleanup() 0051 { 0052 auto printer = instance(); 0053 auto dlg = dialog(); 0054 0055 delete dlg; 0056 delete printer; 0057 }