2014-02-08 07:08:36 +00:00
|
|
|
/*
|
|
|
|
Copyright 2006-2014 The QElectroTech Team
|
|
|
|
This file is part of QElectroTech.
|
|
|
|
|
|
|
|
QElectroTech is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation, either version 2 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
QElectroTech is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
2014-02-06 15:19:27 +00:00
|
|
|
#include "diagramfoliolist.h"
|
|
|
|
#include <QPainter>
|
|
|
|
|
|
|
|
|
|
|
|
void DiagramFolioList::drawBackground(QPainter *p, const QRectF &r)
|
|
|
|
{
|
|
|
|
p -> save();
|
|
|
|
|
|
|
|
// desactive tout antialiasing, sauf pour le texte
|
|
|
|
p -> setRenderHint(QPainter::Antialiasing, false);
|
|
|
|
p -> setRenderHint(QPainter::TextAntialiasing, true);
|
|
|
|
p -> setRenderHint(QPainter::SmoothPixmapTransform, false);
|
|
|
|
|
|
|
|
// dessine un fond blanc
|
|
|
|
p -> setPen(Qt::NoPen);
|
|
|
|
//set brush color to present background color.
|
|
|
|
p -> setBrush(Diagram::background_color);
|
|
|
|
p -> drawRect(r);
|
|
|
|
|
|
|
|
p -> setPen(Qt::black);
|
|
|
|
qreal width = border_and_titleblock.columnsTotalWidth();
|
|
|
|
qreal height = border_and_titleblock.rowsTotalHeight();
|
|
|
|
|
|
|
|
QList<Diagram *> diagram_list = project() -> diagrams();
|
|
|
|
|
|
|
|
//top left corner of drawable area
|
|
|
|
qreal x0 = border_and_titleblock.rowsHeaderWidth();
|
|
|
|
qreal y0 = border_and_titleblock.columnsHeaderHeight();
|
|
|
|
qreal drawings_quantity = diagram_list.size();
|
|
|
|
qreal rowHeight = height / (drawings_quantity+1) * 0.8;
|
|
|
|
rowHeight = (rowHeight > height*0.05) ? height*0.05 : rowHeight;
|
|
|
|
QRectF row_RectF(x0 + width*.1, y0 + height*.05, width*0.8, rowHeight);
|
|
|
|
|
2014-02-07 07:54:54 +00:00
|
|
|
QString authorTranslatable = tr("Auteur");
|
|
|
|
QString titleTranslatable = tr("Titre");
|
|
|
|
QString folioTranslatable = tr("Folio");
|
|
|
|
QString dateTranslatable = tr("Date");
|
|
|
|
|
|
|
|
fillRow(p, row_RectF, authorTranslatable, titleTranslatable, folioTranslatable, dateTranslatable);
|
2014-02-06 15:19:27 +00:00
|
|
|
foreach (Diagram *diagram, diagram_list) {
|
|
|
|
y0 += rowHeight;
|
|
|
|
QRectF row_rect(x0 + width*.1, y0 + height*.05, width*0.8, rowHeight);
|
|
|
|
fillRow(p, row_rect, diagram -> border_and_titleblock.author(), diagram -> border_and_titleblock.title(),
|
2014-02-06 16:03:22 +00:00
|
|
|
diagram -> border_and_titleblock.folio(), diagram -> border_and_titleblock.date().toString("dd/MM/yyyy"));
|
2014-02-06 15:19:27 +00:00
|
|
|
}
|
|
|
|
p -> setPen(Qt::NoPen);
|
|
|
|
border_and_titleblock.draw(p, margin, margin);
|
|
|
|
p -> restore();
|
|
|
|
}
|
|
|
|
|
|
|
|
void DiagramFolioList::fillRow(QPainter *qp, const QRectF &row_rect, QString author, QString title,
|
|
|
|
QString folio, QString date)
|
|
|
|
{
|
|
|
|
qp -> drawRect(row_rect);
|
|
|
|
qreal x = row_rect.topLeft().x();
|
|
|
|
qreal y = row_rect.topLeft().y();
|
|
|
|
qreal column_width = row_rect.width() / 4;
|
|
|
|
|
|
|
|
qp -> drawText(QRectF(x, y, column_width, row_rect.height()), Qt::AlignCenter, folio);
|
|
|
|
qp -> drawText(QRectF(x + column_width, y, column_width, row_rect.height()), Qt::AlignCenter, title);
|
|
|
|
qp -> drawText(QRectF(x + 2*column_width, y, column_width, row_rect.height()), Qt::AlignCenter, author);
|
|
|
|
qp -> drawText(QRectF(x + 3*column_width, y, column_width, row_rect.height()), Qt::AlignCenter, date);
|
|
|
|
|
|
|
|
for (int i = 1; i <= 3; i++ )
|
|
|
|
qp -> drawLine(x + i*column_width, y, x + i*column_width, y + row_rect.height());
|
|
|
|
}
|