0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-24 00:33:02 +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 activateItemSelectionMode();
void deleteSelectedItems(); void deleteSelectedItems();
void activateCurrentPage(); void activateCurrentPage();
void resize(ScaleType scaleType, int percent=0);
public slots: public slots:
void refreshPages(); void refreshPages();

View File

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

View File

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