Gui: fix printing from ImageView
This commit is contained in:
@@ -286,21 +286,19 @@ QImage ImageView::imageFromClipboard()
|
||||
|
||||
void ImageView::print(QPrinter* printer)
|
||||
{
|
||||
QPrintDialog dialog(printer, this);
|
||||
if (dialog.exec()) {
|
||||
QPainter painter(printer);
|
||||
QPixmap pixmap = QPixmap::fromImage(rawImage);
|
||||
QRect rect = painter.viewport();
|
||||
QSize size = pixmap.size();
|
||||
size.scale(rect.size(), Qt::KeepAspectRatio);
|
||||
painter.setViewport(rect.x(), rect.y(), size.width(), size.height());
|
||||
painter.setWindow(pixmap.rect());
|
||||
painter.drawPixmap(0, 0, pixmap);
|
||||
}
|
||||
QPainter painter(printer);
|
||||
QPixmap pixmap = QPixmap::fromImage(rawImage);
|
||||
QRect rect = painter.viewport();
|
||||
QSize size = pixmap.size();
|
||||
size.scale(rect.size(), Qt::KeepAspectRatio);
|
||||
painter.setViewport(rect.x(), rect.y(), size.width(), size.height());
|
||||
painter.setWindow(pixmap.rect());
|
||||
painter.drawPixmap(0, 0, pixmap);
|
||||
}
|
||||
|
||||
bool ImageView::onMsg(const char* pMsg,const char**)
|
||||
bool ImageView::onMsg(const char* pMsg,const char** ppReturn)
|
||||
{
|
||||
Q_UNUSED(ppReturn)
|
||||
if (strcmp("ViewFit", pMsg) == 0) {
|
||||
fitToWindow(true);
|
||||
return true;
|
||||
|
||||
@@ -272,7 +272,13 @@ void MDIView::printPreview()
|
||||
void MDIView::savePrinterSettings(QPrinter* printer)
|
||||
{
|
||||
auto hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Printer");
|
||||
hGrp = hGrp->GetGroup(printer->printerName().toUtf8());
|
||||
QString printerName = printer->printerName();
|
||||
if (printerName.isEmpty()) {
|
||||
// no printer defined
|
||||
return;
|
||||
}
|
||||
|
||||
hGrp = hGrp->GetGroup(printerName.toUtf8());
|
||||
|
||||
hGrp->SetInt("DefaultPageSize", printer->pageLayout().pageSize().id());
|
||||
hGrp->SetInt("DefaultPageOrientation", static_cast<int>(printer->pageLayout().orientation()));
|
||||
@@ -282,7 +288,13 @@ void MDIView::savePrinterSettings(QPrinter* printer)
|
||||
void MDIView::restorePrinterSettings(QPrinter* printer)
|
||||
{
|
||||
auto hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Printer");
|
||||
hGrp = hGrp->GetGroup(printer->printerName().toUtf8());
|
||||
QString printerName = printer->printerName();
|
||||
if (printerName.isEmpty()) {
|
||||
// no printer defined
|
||||
return;
|
||||
}
|
||||
|
||||
hGrp = hGrp->GetGroup(printerName.toUtf8());
|
||||
|
||||
QPrinterInfo info = QPrinterInfo::defaultPrinter();
|
||||
int initialDefaultPageSize = info.isNull() ? QPageSize::A4 : info.defaultPageSize().id();
|
||||
|
||||
Reference in New Issue
Block a user