Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgslayoutitemtexttable.cpp 3 : : -------------------------- 4 : : begin : November 2017 5 : : copyright : (C) 2017 by Nyall Dawson 6 : : email : nyall dot dawson at gmail dot com 7 : : ***************************************************************************/ 8 : : 9 : : /*************************************************************************** 10 : : * * 11 : : * This program is free software; you can redistribute it and/or modify * 12 : : * it under the terms of the GNU General Public License as published by * 13 : : * the Free Software Foundation; either version 2 of the License, or * 14 : : * (at your option) any later version. * 15 : : * * 16 : : ***************************************************************************/ 17 : : 18 : : #include "qgslayoutitemtexttable.h" 19 : : #include "qgslayouttablecolumn.h" 20 : : #include "qgslayoutframe.h" 21 : : #include "qgslayout.h" 22 : : 23 : 0 : QgsLayoutItemTextTable::QgsLayoutItemTextTable( QgsLayout *layout ) 24 : 0 : : QgsLayoutTable( layout ) 25 : 0 : { 26 : : 27 : 0 : } 28 : : 29 : 0 : int QgsLayoutItemTextTable::type() const 30 : : { 31 : 0 : return QgsLayoutItemRegistry::LayoutTextTable; 32 : : } 33 : : 34 : 0 : QString QgsLayoutItemTextTable::displayName() const 35 : : { 36 : 0 : return tr( "<Text table frame>" ); 37 : : } 38 : : 39 : 0 : QgsLayoutItemTextTable *QgsLayoutItemTextTable::create( QgsLayout *layout ) 40 : : { 41 : 0 : return new QgsLayoutItemTextTable( layout ); 42 : 0 : } 43 : : 44 : 0 : void QgsLayoutItemTextTable::addRow( const QStringList &row ) 45 : : { 46 : 0 : mRowText.append( row ); 47 : 0 : refreshAttributes(); 48 : 0 : } 49 : : 50 : 0 : void QgsLayoutItemTextTable::setContents( const QVector<QStringList> &contents ) 51 : : { 52 : 0 : mRowText = contents; 53 : 0 : refreshAttributes(); 54 : 0 : } 55 : : 56 : 0 : bool QgsLayoutItemTextTable::getTableContents( QgsLayoutTableContents &contents ) 57 : : { 58 : 0 : contents.clear(); 59 : : 60 : 0 : for ( const QStringList &row : std::as_const( mRowText ) ) 61 : : { 62 : 0 : QgsLayoutTableRow currentRow; 63 : : 64 : 0 : for ( int i = 0; i < mColumns.count(); ++i ) 65 : : { 66 : 0 : if ( i < row.count() ) 67 : : { 68 : 0 : currentRow << row.at( i ); 69 : 0 : } 70 : : else 71 : : { 72 : 0 : currentRow << QString(); 73 : : } 74 : 0 : } 75 : 0 : contents << currentRow; 76 : 0 : } 77 : : 78 : 0 : recalculateTableSize(); 79 : 0 : return true; 80 : 0 : }