Don't show left border and top border if page margin is 0.

--HG--
branch : develop
This commit is contained in:
Roman Telezhynskyi 2015-04-15 11:36:08 +03:00
parent dcc40b74d3
commit d7d1c0b78a
2 changed files with 9 additions and 9 deletions

View file

@ -40,7 +40,7 @@ VPoster::VPoster(const QPrinter *printer)
}
//---------------------------------------------------------------------------------------------------------------------
QVector<QImage> VPoster::Generate(const QImage &image, int page, int pages) const
QVector<QImage> VPoster::Generate(const QImage &image, int page, int sheets) const
{
QVector<QImage> poster;
@ -57,7 +57,7 @@ QVector<QImage> VPoster::Generate(const QImage &image, int page, int pages) cons
for (int j=0; j< colomns; j++)
{
QImage img = Cut(i, j, image);
img = Borders(rows, colomns, i, j, img, page, pages);
img = Borders(rows, colomns, i, j, img, page, sheets);
poster.append(img);
}
}
@ -171,7 +171,7 @@ QImage VPoster::Cut(int i, int j, const QImage &image) const
}
//---------------------------------------------------------------------------------------------------------------------
QImage VPoster::Borders(int rows, int colomns, int i, int j, QImage &image, int page, int pages) const
QImage VPoster::Borders(int rows, int colomns, int i, int j, QImage &image, int page, int sheets) const
{
QPainter painter(&image);
@ -179,7 +179,7 @@ QImage VPoster::Borders(int rows, int colomns, int i, int j, QImage &image, int
pen.setColor(Qt::black);
painter.setPen(pen);
if (j != 0)
if (j != 0 && PageRect().x() > 0)
{// Left border
painter.drawLine(QLine(0, 0, 0, image.rect().height()));
painter.drawImage(QPoint(0, image.rect().height()-allowence), QImage("://scissors_vertical.png"));
@ -191,7 +191,7 @@ QImage VPoster::Borders(int rows, int colomns, int i, int j, QImage &image, int
image.rect().width()-allowence, image.rect().height()));
}
if (i != 0)
if (i != 0 && PageRect().y() > 0)
{// Top border
painter.drawLine(QLine(0, 0, image.rect().width(), 0));
painter.drawImage(QPoint(image.rect().width()-allowence, 0), QImage("://scissors_horizontal.png"));
@ -213,9 +213,9 @@ QImage VPoster::Borders(int rows, int colomns, int i, int j, QImage &image, int
image.rect().width()-(allowence+layoutX), allowence-layoutY);
painter.drawText(labels, Qt::AlignLeft, tr("Grid ( %1 , %2 )").arg(i).arg(j));
painter.drawText(labels, Qt::AlignHCenter, tr("Page %1 of %2").arg(i*(colomns)+j+1).arg(rows*colomns));
if (pages > 1)
if (sheets > 1)
{
painter.drawText(labels, Qt::AlignRight, tr("Sheet %1 of %2").arg(page).arg(pages));
painter.drawText(labels, Qt::AlignRight, tr("Sheet %1 of %2").arg(page).arg(sheets));
}
painter.end();

View file

@ -41,7 +41,7 @@ class VPoster
public:
VPoster(const QPrinter *printer);
QVector<QImage> Generate(const QImage &image, int page, int pages = 1) const;
QVector<QImage> Generate(const QImage &image, int page, int sheets = 1) const;
private:
const QPrinter *printer;
unsigned int allowence;
@ -50,7 +50,7 @@ private:
int CountColomns(int width) const;
QImage Cut(int i, int j, const QImage &image) const;
QImage Borders(int rows, int colomns, int i, int j, QImage &image, int page, int pages) const;
QImage Borders(int rows, int colomns, int i, int j, QImage &image, int page, int sheets) const;
QRect PageRect() const;