0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-25 00:54:39 +03:00

Finish 1.4.82

This commit is contained in:
Arin Alexander 2018-06-20 16:24:07 +03:00
commit d5d671ab98
3 changed files with 100 additions and 3 deletions

View File

@ -84,6 +84,40 @@ QColor DataBand::bandColor() const
return QColor(Qt::darkGreen);
}
void DataBand::preparePopUpMenu(QMenu &menu)
{
BandDesignIntf::preparePopUpMenu(menu);
QAction* currAction = menu.addAction(tr("Keep footer together"));
currAction->setCheckable(true);
currAction->setChecked(keepFooterTogether());
currAction = menu.addAction(tr("Keep subdetail together"));
currAction->setCheckable(true);
currAction->setChecked(tryToKeepTogether());
currAction = menu.addAction(tr("Slice last row"));
currAction->setCheckable(true);
currAction->setChecked(sliceLastRow());
}
void DataBand::processPopUpAction(QAction *action)
{
BandDesignIntf::processPopUpAction(action);
if (action->text().compare(tr("Keep footer together")) == 0){
setProperty("keepFooterTogether",action->isChecked());
}
if (action->text().compare(tr("Keep subdetail together")) == 0){
setProperty("keepSubdetailTogether",action->isChecked());
}
if (action->text().compare(tr("Slice last row")) == 0){
setProperty("sliceLastRow",action->isChecked());
}
}
BaseDesignIntf *DataBand::createSameTypeItem(QObject *owner, QGraphicsItem *parent)
{
return new DataBand(owner,parent);
@ -96,6 +130,38 @@ DataHeaderBand::DataHeaderBand(QObject *owner, QGraphicsItem *parent)
setMarkerColor(bandColor());
}
void DataHeaderBand::preparePopUpMenu(QMenu &menu)
{
BandDesignIntf::preparePopUpMenu(menu);
QAction* currAction = menu.addAction(tr("Reprint on each page"));
currAction->setCheckable(true);
currAction->setChecked(reprintOnEachPage());
currAction = menu.addAction(tr("Repeat on each row"));
currAction->setCheckable(true);
currAction->setChecked(repeatOnEachRow());
currAction = menu.addAction(tr("Print always"));
currAction->setCheckable(true);
currAction->setChecked(printAlways());
}
void DataHeaderBand::processPopUpAction(QAction *action)
{
BandDesignIntf::processPopUpAction(action);
if (action->text().compare(tr("Reprint on each page")) == 0){
setProperty("repeatOnEachPage",action->isChecked());
}
if (action->text().compare(tr("Repeat on each row")) == 0){
setProperty("repeatOnEachRow",action->isChecked());
}
if (action->text().compare(tr("Print always")) == 0){
setProperty("printAlways",action->isChecked());
}
}
DataFooterBand::DataFooterBand(QObject *owner, QGraphicsItem *parent)
:BandDesignIntf(BandDesignIntf::DataFooter,xmlTagFooter,owner,parent)
{
@ -103,5 +169,21 @@ DataFooterBand::DataFooterBand(QObject *owner, QGraphicsItem *parent)
setMarkerColor(bandColor());
}
void DataFooterBand::preparePopUpMenu(QMenu &menu)
{
BandDesignIntf::preparePopUpMenu(menu);
QAction* currAction = menu.addAction(tr("Print always"));
currAction->setCheckable(true);
currAction->setChecked(printAlways());
}
void DataFooterBand::processPopUpAction(QAction *action)
{
BandDesignIntf::processPopUpAction(action);
if (action->text().compare(tr("Print always")) == 0){
setProperty("printAlways",action->isChecked());
}
}
}

View File

@ -54,6 +54,8 @@ public:
bool isData() const {return true;}
protected:
QColor bandColor() const;
void preparePopUpMenu(QMenu &menu);
void processPopUpAction(QAction *action);
private:
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0);
};
@ -71,6 +73,9 @@ public:
bool isUnique() const {return false;}
bool isHeader() const {return true;}
QColor bandColor() const {return QColor(Qt::darkGreen);}
protected:
void preparePopUpMenu(QMenu &menu);
void processPopUpAction(QAction *action);
private:
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
return new DataHeaderBand(owner,parent);
@ -88,6 +93,9 @@ public:
bool isUnique() const {return false;}
bool isFooter() const {return true;}
QColor bandColor() const{return QColor(Qt::darkGreen);}
protected:
void preparePopUpMenu(QMenu &menu);
void processPopUpAction(QAction *action);
private:
BaseDesignIntf* createSameTypeItem(QObject* owner=0, QGraphicsItem* parent=0){
return new DataFooterBand(owner,parent);

View File

@ -577,6 +577,7 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
firstTime = false;
}
if (!dataBand->keepFooterTogether())
m_reprintableBands.removeOne(dataBand->bandHeader());
if (bandDatasource->prior()){
@ -584,8 +585,11 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
bandDatasource->next();
}
if (footer && !footer->printAlways())
if (footer && !footer->printAlways()){
renderBand(footer, 0, StartNewPageAsNeeded);
if (dataBand->keepFooterTogether())
m_reprintableBands.removeOne(dataBand);
}
datasources()->deleteVariable(varName);
@ -593,8 +597,11 @@ void ReportRender::renderDataBand(BandDesignIntf *dataBand)
renderBand(dataBand, 0, StartNewPageAsNeeded);
}
if (footer && footer->printAlways())
if (footer && footer->printAlways()){
renderBand(footer, 0, StartNewPageAsNeeded);
if (dataBand->keepFooterTogether())
m_reprintableBands.removeOne(dataBand);
}
}
void ReportRender::renderPageHeader(PageItemDesignIntf *patternPage)