diff --git a/sources/factory/qetgraphicstablefactory.cpp b/sources/factory/qetgraphicstablefactory.cpp index ccac47f99..42bc415ce 100644 --- a/sources/factory/qetgraphicstablefactory.cpp +++ b/sources/factory/qetgraphicstablefactory.cpp @@ -59,5 +59,24 @@ void QetGraphicsTableFactory::createAndAddNomenclature(Diagram *diagram) table->setModel(model); diagram->addItem(table); table->setPos(50,50); + + + if (d->adjustTableToFolio()) + { + auto drawable_rect = diagram->border_and_titleblock.insideBorderRect(); + table->setPos(drawable_rect.topLeft().x() + 20, drawable_rect.topLeft().y() + 20 + table->headerItem()->rect().height()); + + auto size_ = table->size(); + size_.setWidth(int(drawable_rect.width() - 40)); + //Size must be a multiple of 10, because the table adjust itself by step of 10. + while (size_.width()%10) { + --size_.rwidth(); } + table->setSize(size_); + + //Calcul the maximum row to display to fit the nomenclature into diagram + auto available_height = drawable_rect.height() - table->pos().y(); + auto min_row_height = table->minimumRowHeigth(); + table->setDisplayNRow(int(floor(available_height/min_row_height))); //Convert a double to int, but max_row_to_display is already rounded an integer so we assume everything is ok + } } } diff --git a/sources/factory/ui/addtabledialog.ui b/sources/factory/ui/addtabledialog.ui index bc5c58999..d4e48df67 100644 --- a/sources/factory/ui/addtabledialog.ui +++ b/sources/factory/ui/addtabledialog.ui @@ -27,7 +27,7 @@ - false + true Ajuster la taille du tableau au folio diff --git a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp index 2936ef74e..34f80aff8 100644 --- a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp +++ b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.cpp @@ -406,6 +406,14 @@ void QetGraphicsTableItem::initLink() setSize(m_pending_size); } +/** + * @brief QetGraphicsTableItem::minimumRowHeigth + * @return the minimum height of a row + */ +int QetGraphicsTableItem::minimumRowHeigth() const { + return m_minimum_row_height; +} + /** * @brief QetGraphicsTableItem::toXml * Save the table to xml diff --git a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.h b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.h index 017f76533..1d000539f 100644 --- a/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.h +++ b/sources/qetgraphicsitem/ViewItem/qetgraphicstableitem.h @@ -74,6 +74,7 @@ class QetGraphicsTableItem : public QetGraphicsItem void setToMinimumHeight(); void initLink(); QUuid uuid() const {return m_uuid;} + int minimumRowHeigth() const; QDomElement toXml(QDomDocument &dom_document) const; void fromXml(const QDomElement &dom_element);