diff options
-rw-r--r-- | qt-ui/printdialog.cpp | 18 | ||||
-rw-r--r-- | qt-ui/printdialog.h | 1 | ||||
-rw-r--r-- | qt-ui/printlayout.cpp | 17 |
3 files changed, 13 insertions, 23 deletions
diff --git a/qt-ui/printdialog.cpp b/qt-ui/printdialog.cpp index e8a323e03..f8f06aead 100644 --- a/qt-ui/printdialog.cpp +++ b/qt-ui/printdialog.cpp @@ -66,24 +66,8 @@ PrintDialog::PrintDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f connect(quit, SIGNAL(activated()), parent, SLOT(close())); } -bool PrintDialog::checkForAvailablePrinters(void) -{ - QList<QPrinterInfo> list = QPrinterInfo::availablePrinters(); - if (!list.length()) { - QMessageBox msgBox; - msgBox.setIcon(QMessageBox::Critical); - msgBox.setText(tr("Subsurface cannot find installed printers on this system!")); - msgBox.setWindowIcon(QIcon(":subsurface-icon")); - msgBox.exec(); - return false; - } - return true; -} - void PrintDialog::previewClicked(void) { - if (!checkForAvailablePrinters()) - return; QPrintPreviewDialog previewDialog(&printer, this); connect(&previewDialog, SIGNAL(paintRequested(QPrinter *)), this, SLOT(onPaintRequested(QPrinter *))); previewDialog.exec(); @@ -91,8 +75,6 @@ void PrintDialog::previewClicked(void) void PrintDialog::printClicked(void) { - if (!checkForAvailablePrinters()) - return; QPrintDialog printDialog(&printer, this); if (printDialog.exec() == QDialog::Accepted){ printLayout->print(); diff --git a/qt-ui/printdialog.h b/qt-ui/printdialog.h index b29021838..32069a278 100644 --- a/qt-ui/printdialog.h +++ b/qt-ui/printdialog.h @@ -18,7 +18,6 @@ public: explicit PrintDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); private: - bool checkForAvailablePrinters(void); PrintOptions *optionsWidget; PrintLayout *printLayout; QProgressBar *progressBar; diff --git a/qt-ui/printlayout.cpp b/qt-ui/printlayout.cpp index 1d34a0633..e7fba9bfb 100644 --- a/qt-ui/printlayout.cpp +++ b/qt-ui/printlayout.cpp @@ -7,6 +7,7 @@ #include <QHeaderView> #include <QPointer> #include <QPicture> +#include <QMessageBox> #include "mainwindow.h" #include "../dive.h" @@ -64,6 +65,14 @@ void PrintLayout::print() { // we call setup each time to check if the printer properties have changed setup(); + if (pageW == 0 || pageH == 0) { + QMessageBox msgBox; + msgBox.setIcon(QMessageBox::Critical); + msgBox.setText(tr("Subsurface cannot find a usable printer on this system!")); + msgBox.setWindowIcon(QIcon(":subsurface-icon")); + msgBox.exec(); + return; + } switch (printOptions->type) { case options::PRETTY: printProfileDives(3, 2); @@ -422,13 +431,13 @@ void PrintLayout::printTable() #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) (void)headingRowHeightD2; QRegion region(0, pageIndexes.at(i) - 1, - table.width(), - pageIndexes.at(i + 1) - pageIndexes.at(i) + 1); + table.width(), + pageIndexes.at(i + 1) - pageIndexes.at(i) + 1); table.render(&painter, QPoint(0, 0), region); #else QRegion region(0, pageIndexes.at(i) + headingRowHeightD2 - 1, - table.width(), - pageIndexes.at(i + 1) - (pageIndexes.at(i) + headingRowHeightD2) + 1); + table.width(), + pageIndexes.at(i + 1) - (pageIndexes.at(i) + headingRowHeightD2) + 1); // vectorize the table first by using QPicture QPicture pic; QPainter picPainter; |