0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-09-26 17:59:08 +03:00

Band relocation algorithm has been changed

This commit is contained in:
Arin Alexander
2018-07-24 23:11:21 +03:00
parent a008dd635c
commit d1dec36609
5 changed files with 95 additions and 12 deletions

View File

@@ -2261,7 +2261,7 @@ bool BandSwapCommand::doIt()
{
BandDesignIntf* band = dynamic_cast<BandDesignIntf*>(page()->reportItemByName(bandName));
BandDesignIntf* bandToSwap = dynamic_cast<BandDesignIntf*>(page()->reportItemByName(bandToSwapName));
if (band && bandToSwap){
if (page() && band && bandToSwap){
page()->pageItem()->swapBands(band, bandToSwap);
return true;
}
@@ -2272,9 +2272,32 @@ void BandSwapCommand::undoIt()
{
BandDesignIntf* band = dynamic_cast<BandDesignIntf*>(page()->reportItemByName(bandName));
BandDesignIntf* bandToSwap = dynamic_cast<BandDesignIntf*>(page()->reportItemByName(bandToSwapName));
if (band && bandToSwap)
if (page() && band && bandToSwap)
page()->pageItem()->swapBands(bandToSwap, band);
}
CommandIf::Ptr BandMoveFromToCommand::create(PageDesignIntf* page, int from, int to)
{
BandMoveFromToCommand* command = new BandMoveFromToCommand();
command->setPage(page);
command->from = from;
command->to = to;
return CommandIf::Ptr(command);
}
bool BandMoveFromToCommand::doIt()
{
if (page() && from != to) {
page()->pageItem()->moveBandFromTo(from, to);
return true;
}
return false;
}
void BandMoveFromToCommand::undoIt()
{
if (page()) page()->pageItem()->moveBandFromTo(to, from);
}
}