18#include <QDialogButtonBox>
20#include <QInputDialog>
25class KDReports::PreviewDialogPrivate
30 , m_previewWidget(nullptr)
31 , m_buttonBox(nullptr)
32 , m_quickPrintButton(nullptr)
33 , m_dirBrowsingEnabled(true)
37 void slotTableBreakingDialog()
const;
38 void slotPrintWithDialog()
const;
39 void slotQuickPrint()
const;
49 bool m_dirBrowsingEnabled;
54 , d(new PreviewDialogPrivate(this))
57 d->m_previewWidget->setReport(report);
59 topLayout->addWidget(d->m_previewWidget);
61 topLayout->addLayout(bottomLayout);
67 bottomLayout->addWidget(d->m_buttonBox);
69 auto *printWithDialogButton =
new QPushButton(
tr(
"&Print..."),
this);
84 d->m_quickPrintButton->hide();
97 d->m_quickPrinterName = printerName;
98 d->m_quickPrintButton->setText(tr(
"Print &with %1").arg(printerName));
99 d->m_quickPrintButton->show();
106 d->m_defaultSaveDirectory = path;
111 d->m_dirBrowsingEnabled = allowed;
117 return dialog.
exec();
120void KDReports::PreviewDialogPrivate::slotTableBreakingDialog()
const
122 if (q->showTableSettingsDialog(m_previewWidget->report())) {
123 m_previewWidget->repaint();
127void KDReports::PreviewDialogPrivate::slotPrintWithDialog()
const
129 if (m_previewWidget->printWithDialog()) {
135void KDReports::PreviewDialogPrivate::slotQuickPrint()
const
139 report->setupPrinter(&printer);
141 report->
print(&printer, q);
146void KDReports::PreviewDialogPrivate::slotSave()
150 if (m_dirBrowsingEnabled) {
164 file = m_defaultSaveDirectory +
QLatin1Char(
'/') + fileName;
178 report->setupPrinter(&printer);
181 m_savedFileName = file;
182 report->
print(&printer, q);
194 d->m_previewWidget->setPageSizeChangeAllowed(b);
199 d->m_previewWidget->setShowTableSettingsDialog(b);
204 d->m_previewWidget->setWidthForEndlessPrinter(widthMM);
209 return d->m_previewWidget->isSelected(pageNumber);
224 return d->m_previewWidget;
229 return d->m_savedFileName;
QString savedFileName() const
~PreviewDialog() override
void setShowTableSettingsDialog(bool b)
virtual bool showTableSettingsDialog(KDReports::Report *report)
KDReports::PreviewWidget * previewWidget()
void setWidthForEndlessPrinter(qreal widthMM)
PreviewDialog(KDReports::Report *report, QWidget *parent=nullptr)
void linkActivated(const QUrl &url)
bool isSelected(int pageNumber) const
void setDirectoryBrowsingEnabled(bool allowed)
void accept() override
Reimplemented for internal purposes. .
void reject() override
Reimplemented for internal purposes. .
void setPageSizeChangeAllowed(bool b)
void setDefaultSaveDirectory(const QString &path)
void setQuickPrinterName(const QString &printerName)
bool print(QPrinter *printer, QWidget *parent=nullptr)
bool exists() const const
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options)
QString getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoMode mode, const QString &text, bool *ok, Qt::WindowFlags flags, Qt::InputMethodHints inputMethodHints)
QMessageBox::StandardButton warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton)
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QString tr(const char *sourceText, const char *disambiguation, int n)
void setOutputFileName(const QString &fileName)
void setPrinterName(const QString &name)
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const const
bool isEmpty() const const