mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-25 17:14:40 +03:00
Band location has been fixed
# Conflicts: # limereport/lrbanddesignintf.h
This commit is contained in:
commit
c40169146c
@ -172,7 +172,7 @@ void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *op
|
|||||||
if (itemMode() & DesignMode){
|
if (itemMode() & DesignMode){
|
||||||
painter->save();
|
painter->save();
|
||||||
QString bandText = objectName();
|
QString bandText = objectName();
|
||||||
if (parentBand()) bandText+=QLatin1String(" connected to ")+parentBand()->objectName();
|
if (parentBand()) bandText+=tr(" connected to ")+parentBand()->objectName();
|
||||||
QFont font("Arial", 7 * Const::fontFACTOR, -1, true);
|
QFont font("Arial", 7 * Const::fontFACTOR, -1, true);
|
||||||
QFontMetrics fontMetrics(font);
|
QFontMetrics fontMetrics(font);
|
||||||
|
|
||||||
@ -230,9 +230,15 @@ void BandDesignIntf::setBandIndex(int value)
|
|||||||
m_bandIndex=value;
|
m_bandIndex=value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BandDesignIntf::changeBandIndex(int value)
|
void BandDesignIntf::changeBandIndex(int value, bool firstTime)
|
||||||
{
|
{
|
||||||
int indexOffset = value - m_bandIndex;
|
int indexOffset;
|
||||||
|
|
||||||
|
if (firstTime && bandHeader())
|
||||||
|
value += 1;
|
||||||
|
|
||||||
|
indexOffset = value - m_bandIndex;
|
||||||
|
|
||||||
foreach(BandDesignIntf* band, childBands()){
|
foreach(BandDesignIntf* band, childBands()){
|
||||||
int newIndex = band->bandIndex()+indexOffset;
|
int newIndex = band->bandIndex()+indexOffset;
|
||||||
band->changeBandIndex(newIndex);
|
band->changeBandIndex(newIndex);
|
||||||
@ -294,6 +300,16 @@ bool BandDesignIntf::isConnectedToBand(BandDesignIntf::BandsType bandType) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int BandDesignIntf::maxChildIndex(BandDesignIntf::BandsType bandType) const{
|
||||||
|
int curIndex = bandIndex();
|
||||||
|
foreach(BandDesignIntf* childBand, childBands()){
|
||||||
|
if ( (childBand->bandIndex() > bandIndex()) && (childBand->bandType() < bandType) ){
|
||||||
|
curIndex = std::max(curIndex,childBand->maxChildIndex());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return curIndex;
|
||||||
|
}
|
||||||
|
|
||||||
int BandDesignIntf::maxChildIndex(QSet<BandDesignIntf::BandsType> ignoredBands) const{
|
int BandDesignIntf::maxChildIndex(QSet<BandDesignIntf::BandsType> ignoredBands) const{
|
||||||
int curIndex = bandIndex();
|
int curIndex = bandIndex();
|
||||||
foreach(BandDesignIntf* childBand, childBands()){
|
foreach(BandDesignIntf* childBand, childBands()){
|
||||||
|
@ -133,7 +133,7 @@ public:
|
|||||||
virtual QColor selectionColor() const;
|
virtual QColor selectionColor() const;
|
||||||
int bandIndex() const;
|
int bandIndex() const;
|
||||||
void setBandIndex(int value);
|
void setBandIndex(int value);
|
||||||
void changeBandIndex(int value);
|
void changeBandIndex(int value, bool firstTime = false);
|
||||||
void setBandType(BandsType value){m_bandType=value;}
|
void setBandType(BandsType value){m_bandType=value;}
|
||||||
|
|
||||||
QString datasourceName();
|
QString datasourceName();
|
||||||
@ -153,6 +153,7 @@ public:
|
|||||||
bool isConnectedToBand(BandDesignIntf::BandsType bandType) const;
|
bool isConnectedToBand(BandDesignIntf::BandsType bandType) const;
|
||||||
|
|
||||||
int minChildIndex(BandsType bandType);
|
int minChildIndex(BandsType bandType);
|
||||||
|
int maxChildIndex(BandDesignIntf::BandsType bandType) const;
|
||||||
int maxChildIndex(QSet<BandsType> ignoredBands = QSet<BandDesignIntf::BandsType>()) const;
|
int maxChildIndex(QSet<BandsType> ignoredBands = QSet<BandDesignIntf::BandsType>()) const;
|
||||||
|
|
||||||
BandDesignIntf* parentBand() const {return m_parentBand;}
|
BandDesignIntf* parentBand() const {return m_parentBand;}
|
||||||
|
@ -224,11 +224,17 @@ int PageItemDesignIntf::calcBandIndex(BandDesignIntf::BandsType bandType, BandDe
|
|||||||
int bandIndex=-1;
|
int bandIndex=-1;
|
||||||
qSort(m_bands.begin(),m_bands.end(),bandSortBandLessThenByIndex);
|
qSort(m_bands.begin(),m_bands.end(),bandSortBandLessThenByIndex);
|
||||||
foreach(BandDesignIntf* band,m_bands){
|
foreach(BandDesignIntf* band,m_bands){
|
||||||
if ((band->bandType()==BandDesignIntf::GroupHeader)&&(band->bandType()>bandType)) break;
|
if ((band->bandType() == BandDesignIntf::GroupHeader) && ( band->bandType() > bandType)) break;
|
||||||
if ((band->bandType()<=bandType)){
|
if ((band->bandType() <= bandType)){
|
||||||
if (bandIndex<=band->bandIndex()) bandIndex=band->maxChildIndex()+1;
|
if (bandIndex <= band->bandIndex()) {
|
||||||
|
if (bandType != BandDesignIntf::Data){
|
||||||
|
bandIndex=band->maxChildIndex(bandType)+1;
|
||||||
|
} else {
|
||||||
|
bandIndex=band->maxChildIndex()+1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else { increaseBandIndex = true; break;}
|
||||||
|
}
|
||||||
|
|
||||||
if (bandIndex==-1) {
|
if (bandIndex==-1) {
|
||||||
bandIndex = (int)(bandType);
|
bandIndex = (int)(bandType);
|
||||||
@ -244,7 +250,7 @@ int PageItemDesignIntf::calcBandIndex(BandDesignIntf::BandsType bandType, BandDe
|
|||||||
|
|
||||||
switch (bandType) {
|
switch (bandType) {
|
||||||
case BandDesignIntf::SubDetailBand:
|
case BandDesignIntf::SubDetailBand:
|
||||||
bandIndex = parentBand->maxChildIndex() + 1;
|
bandIndex = parentBand->maxChildIndex(bandType) + 1;
|
||||||
increaseBandIndex = true;
|
increaseBandIndex = true;
|
||||||
break;
|
break;
|
||||||
case BandDesignIntf::SubDetailHeader:
|
case BandDesignIntf::SubDetailHeader:
|
||||||
@ -412,7 +418,8 @@ void PageItemDesignIntf::relocateBands()
|
|||||||
if (!(itemMode() & DesignMode)){
|
if (!(itemMode() & DesignMode)){
|
||||||
while ( (bandIndex < m_bands.count()) &&
|
while ( (bandIndex < m_bands.count()) &&
|
||||||
((m_bands[bandIndex]->bandType() == BandDesignIntf::TearOffBand) ||
|
((m_bands[bandIndex]->bandType() == BandDesignIntf::TearOffBand) ||
|
||||||
(m_bands[bandIndex]->bandType() == BandDesignIntf::PageFooter))
|
(m_bands[bandIndex]->bandType() == BandDesignIntf::PageFooter) ||
|
||||||
|
m_bands[bandIndex]->bandType() == BandDesignIntf::ReportFooter )
|
||||||
){
|
){
|
||||||
bandIndex++;
|
bandIndex++;
|
||||||
}
|
}
|
||||||
@ -636,8 +643,9 @@ void PageItemDesignIntf::bandGeometryChanged(QObject* object, QRectF newGeometry
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (curIndex != band->bandIndex()){
|
if (curIndex != band->bandIndex()){
|
||||||
bandToSwap->changeBandIndex(band->bandIndex());
|
int swapIndex = bandToSwap->maxChildIndex();
|
||||||
band->changeBandIndex(curIndex);
|
bandToSwap->changeBandIndex(band->bandIndex(),true);
|
||||||
|
band->changeBandIndex(swapIndex,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
relocateBands();
|
relocateBands();
|
||||||
|
@ -124,7 +124,16 @@ void QObjectPropertyModel::translatePropertyName()
|
|||||||
tr("image");
|
tr("image");
|
||||||
tr("keepAspectRatio");
|
tr("keepAspectRatio");
|
||||||
tr("columnsCount");
|
tr("columnsCount");
|
||||||
|
tr("useAlternateBackgroundColor");
|
||||||
|
tr("printBeforePageHeader");
|
||||||
|
tr("maxScalePercent");
|
||||||
|
tr("printOnFirstPage");
|
||||||
|
tr("printOnLastPage");
|
||||||
|
tr("printAlways");
|
||||||
|
tr("repeatOnEachRow");
|
||||||
|
tr("condition");
|
||||||
|
tr("groupFieldName");
|
||||||
|
tr("keepGroupTogether");
|
||||||
}
|
}
|
||||||
|
|
||||||
void QObjectPropertyModel::clearObjectsList()
|
void QObjectPropertyModel::clearObjectsList()
|
||||||
|
@ -1007,15 +1007,15 @@ p, li { white-space: pre-wrap; }
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>condition</source>
|
<source>condition</source>
|
||||||
<translation type="vanished">Условие</translation>
|
<translation>Условие</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>keepGroupTogether</source>
|
<source>keepGroupTogether</source>
|
||||||
<translation type="vanished">Сохранять группу вместе</translation>
|
<translation>Сохранять группу вместе</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>groupFieldName</source>
|
<source>groupFieldName</source>
|
||||||
<translation type="vanished">Столбец группы</translation>
|
<translation>Столбец группы</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>geometry</source>
|
<source>geometry</source>
|
||||||
@ -1235,7 +1235,7 @@ p, li { white-space: pre-wrap; }
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>printAlways</source>
|
<source>printAlways</source>
|
||||||
<translation type="vanished">Печатать всегда</translation>
|
<translation>Печатать всегда</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>borderColor</source>
|
<source>borderColor</source>
|
||||||
@ -1309,6 +1309,30 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>pdf417CodeWords</source>
|
<source>pdf417CodeWords</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>useAlternateBackgroundColor</source>
|
||||||
|
<translation>Использовать альтернативный цвет фона</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>printBeforePageHeader</source>
|
||||||
|
<translation>Печатать перед заголовком страницы</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>maxScalePercent</source>
|
||||||
|
<translation>Максимальный процент уменьшения</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>printOnFirstPage</source>
|
||||||
|
<translation>Печатать на первой странице</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>printOnLastPage</source>
|
||||||
|
<translation>Печатать на последней странице</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>repeatOnEachRow</source>
|
||||||
|
<translation>Печатать на каждой странице</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::RectMMPropItem</name>
|
<name>LimeReport::RectMMPropItem</name>
|
||||||
|
Loading…
Reference in New Issue
Block a user