0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-23 16:22:58 +03:00

resize function has been added to the report preview widget

This commit is contained in:
Alexander Arin 2021-10-05 17:42:37 +03:00
parent 379831fbe3
commit fa3645c389
3 changed files with 26 additions and 7 deletions

View File

@ -40,6 +40,7 @@ public:
void activateItemSelectionMode();
void deleteSelectedItems();
void activateCurrentPage();
void resize(ScaleType scaleType, int percent=0);
public slots:
void refreshPages();

View File

@ -320,19 +320,14 @@ void PreviewReportWidget::setScalePercent(int percent)
void PreviewReportWidget::fitWidth()
{
if (d_ptr->currentPage()){
qreal scalePercent = ui->graphicsView->viewport()->width() / ui->graphicsView->scene()->width();
setScalePercent(scalePercent*100);
m_scaleType = FitWidth;
resize(m_scaleType = FitWidth);
}
}
void PreviewReportWidget::fitPage()
{
if (d_ptr->currentPage()){
qreal vScale = ui->graphicsView->viewport()->width() / ui->graphicsView->scene()->width();
qreal hScale = ui->graphicsView->viewport()->height() / d_ptr->currentPage()->height();
setScalePercent(qMin(vScale,hScale)*100);
m_scaleType = FitPage;
resize(m_scaleType = FitPage);
}
}
@ -428,6 +423,28 @@ void PreviewReportWidget::activateCurrentPage()
page->setCurrentPage(d_ptr->currentPage().data());
}
void PreviewReportWidget::resize(ScaleType scaleType, int percent)
{
switch (scaleType) {
case FitWidth:
setScalePercent(ui->graphicsView->viewport()->width() / ui->graphicsView->scene()->width()*100);
break;
case FitPage:
setScalePercent(qMin(
ui->graphicsView->viewport()->width() / ui->graphicsView->scene()->width(),
ui->graphicsView->viewport()->height() / d_ptr->currentPage()->height()
) * 100);
break;
case OneToOne:
setScalePercent(100);
break;
case Percents:
setScalePercent(percent);
break;
}
}
void PreviewReportWidget::slotSliderMoved(int value)
{
if (m_scaleChanging) return;

View File

@ -40,6 +40,7 @@ public:
void activateItemSelectionMode();
void deleteSelectedItems();
void activateCurrentPage();
void resize(ScaleType scaleType, int percent=0);
public slots:
void refreshPages();