mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-13 20:23:04 +02:00
New Diagram: List of Drawings (rough draft) added
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2812 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
parent
004b7ddc3e
commit
026c7f95bb
61
sources/diagramfoliolist.cpp
Normal file
61
sources/diagramfoliolist.cpp
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#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);
|
||||||
|
|
||||||
|
fillRow(p, row_RectF, "Author", "Title", "Folio", "Date");
|
||||||
|
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(),
|
||||||
|
diagram -> border_and_titleblock.folio(), diagram -> border_and_titleblock.date().toString());
|
||||||
|
}
|
||||||
|
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());
|
||||||
|
}
|
20
sources/diagramfoliolist.h
Normal file
20
sources/diagramfoliolist.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#ifndef DIAGRAMFOLIOLIST_H
|
||||||
|
#define DIAGRAMFOLIOLIST_H
|
||||||
|
|
||||||
|
#include "diagram.h"
|
||||||
|
|
||||||
|
class DiagramFolioList : public Diagram
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DiagramFolioList(QObject *parent = 0) : Diagram(parent) {}
|
||||||
|
virtual ~DiagramFolioList() {}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void drawBackground(QPainter *, const QRectF &);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void fillRow(QPainter *, const QRectF &, QString, QString, QString, QString);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DIAGRAMFOLIOLIST_H
|
@ -648,6 +648,7 @@ bool QETDiagramEditor::newProject() {
|
|||||||
|
|
||||||
// ajoute un schema au projet
|
// ajoute un schema au projet
|
||||||
new_project -> addNewDiagram();
|
new_project -> addNewDiagram();
|
||||||
|
new_project -> addNewDiagramFolioList();
|
||||||
|
|
||||||
return(addProject(new_project));
|
return(addProject(new_project));
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "qetproject.h"
|
#include "qetproject.h"
|
||||||
#include "diagram.h"
|
#include "diagram.h"
|
||||||
|
#include "diagramfoliolist.h"
|
||||||
#include "elementdefinition.h"
|
#include "elementdefinition.h"
|
||||||
#include "xmlelementscollection.h"
|
#include "xmlelementscollection.h"
|
||||||
#include "elementscategory.h"
|
#include "elementscategory.h"
|
||||||
@ -830,6 +831,25 @@ Diagram *QETProject::addNewDiagram() {
|
|||||||
return(diagram);
|
return(diagram);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Diagram *QETProject::addNewDiagramFolioList() {
|
||||||
|
// ne fait rien si le projet est en lecture seule
|
||||||
|
if (isReadOnly()) return(0);
|
||||||
|
|
||||||
|
// cree un nouveau schema
|
||||||
|
Diagram *diagram_folio_list = new DiagramFolioList();
|
||||||
|
|
||||||
|
// lui transmet les parametres par defaut
|
||||||
|
diagram_folio_list -> border_and_titleblock.importBorder(defaultBorderProperties());
|
||||||
|
diagram_folio_list -> border_and_titleblock.importTitleBlock(defaultTitleBlockProperties());
|
||||||
|
diagram_folio_list -> defaultConductorProperties = defaultConductorProperties();
|
||||||
|
QString title = "List of Drawings";
|
||||||
|
diagram_folio_list -> border_and_titleblock.setTitle(title);
|
||||||
|
|
||||||
|
addDiagram(diagram_folio_list);
|
||||||
|
emit(diagramAdded(this, diagram_folio_list));
|
||||||
|
return(diagram_folio_list);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Enleve un schema du projet et emet le signal diagramRemoved
|
Enleve un schema du projet et emet le signal diagramRemoved
|
||||||
@param diagram le schema a enlever
|
@param diagram le schema a enlever
|
||||||
|
@ -125,6 +125,7 @@ class QETProject : public QObject {
|
|||||||
public slots:
|
public slots:
|
||||||
void componentWritten();
|
void componentWritten();
|
||||||
Diagram *addNewDiagram();
|
Diagram *addNewDiagram();
|
||||||
|
Diagram *addNewDiagramFolioList();
|
||||||
void removeDiagram(Diagram *);
|
void removeDiagram(Diagram *);
|
||||||
void diagramOrderChanged(int, int);
|
void diagramOrderChanged(int, int);
|
||||||
void setModified(bool);
|
void setModified(bool);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user