Subversion Repositories Scribus

Compare Revisions

Ignore whitespace Rev 15236 → Rev 15237

/trunk/Scribus/scribus/scribusdoc.cpp
9446,7 → 9446,7
}
 
 
void ScribusDoc::itemSelection_DistributeDistH(bool usingDistance, double distance)
void ScribusDoc::itemSelection_DistributeDistH(bool usingDistance, double distance, bool reverseDistribute)
{
if (!startAlign())
return;
9464,6 → 9464,7
uint left=X1sorted.begin().value();
uint right=X2sorted[X2sorted.keys().back()];
double minX=AObjects[left].x2;
double maxX=AObjects[right].x2;
double separation=0.0;
if (!usingDistance)
{
9484,21 → 9485,48
}
else
separation=value2pts(distance, unitIndex());
double currX=minX;
for ( QMap<double,uint>::Iterator it = X1sorted.begin(); it != X1sorted.end(); ++it )
if (!reverseDistribute)
{
if (it.value()==left)
continue;
if (it.value()==right && !usingDistance)
continue;
currX+=separation;
double currX=minX;
for ( QMap<double,uint>::Iterator it = X1sorted.begin(); it != X1sorted.end(); ++it )
{
if (it.value()==left)
continue;
if (it.value()==right && !usingDistance)
continue;
currX+=separation;
 
double diff=currX-AObjects[it.value()].x1;
for (int j = 0; j < AObjects[it.value()].Objects.count(); ++j)
if (!AObjects[it.value()].Objects.at(j)->locked())
AObjects[it.value()].Objects.at(j)->moveBy(diff, 0.0);
currX+=AObjects[it.value()].width;
double diff=currX-AObjects[it.value()].x1;
for (int j = 0; j < AObjects[it.value()].Objects.count(); ++j)
if (!AObjects[it.value()].Objects.at(j)->locked())
AObjects[it.value()].Objects.at(j)->moveBy(diff, 0.0);
currX+=AObjects[it.value()].width;
}
}
else
{
QMapIterator<double,uint> it(X1sorted);
it.toBack();
double currX=maxX;
while (it.hasPrevious())
{
it.previous();
if (it.value()==right)
{
currX-=AObjects[it.value()].width;
continue;
}
if (it.value()==left && !usingDistance)
continue;
currX-=separation;
 
double diff=currX-AObjects[it.value()].x2;
for (int j = 0; j < AObjects[it.value()].Objects.count(); ++j)
if (!AObjects[it.value()].Objects.at(j)->locked())
AObjects[it.value()].Objects.at(j)->moveBy(diff, 0.0);
currX-=AObjects[it.value()].width;
}
}
endAlign();
}
 
9623,7 → 9651,7
}
 
 
void ScribusDoc::itemSelection_DistributeDistV(bool usingDistance, double distance)
void ScribusDoc::itemSelection_DistributeDistV(bool usingDistance, double distance, bool reverseDistribute)
{
if (!startAlign())
return;
9641,6 → 9669,7
uint top=Y1sorted.begin().value();
uint bottom=Y2sorted[Y2sorted.keys().back()];
double minY=AObjects[top].y2;
double maxY=AObjects[bottom].y2;
double separation=0.0;
if (!usingDistance)
{
9661,21 → 9690,48
}
else
separation=value2pts(distance, unitIndex());
double currY=minY;
for ( QMap<double,uint>::Iterator it = Y1sorted.begin(); it != Y1sorted.end(); ++it )
if (!reverseDistribute)
{
if (it.value()==top)
continue;
if (it.value()==bottom && !usingDistance)
continue;
currY+=separation;
double currY=minY;
for ( QMap<double,uint>::Iterator it = Y1sorted.begin(); it != Y1sorted.end(); ++it )
{
if (it.value()==top)
continue;
if (it.value()==bottom && !usingDistance)
continue;
currY+=separation;
 
double diff=currY-AObjects[it.value()].y1;
for (int j = 0; j < AObjects[it.value()].Objects.count(); ++j)
if (!AObjects[it.value()].Objects.at(j)->locked())
AObjects[it.value()].Objects.at(j)->moveBy(0.0,diff);
currY+=AObjects[it.value()].height;
double diff=currY-AObjects[it.value()].y1;
for (int j = 0; j < AObjects[it.value()].Objects.count(); ++j)
if (!AObjects[it.value()].Objects.at(j)->locked())
AObjects[it.value()].Objects.at(j)->moveBy(0.0,diff);
currY+=AObjects[it.value()].height;
}
}
else
{
QMapIterator<double,uint> it(Y1sorted);
it.toBack();
double currY=maxY;
while (it.hasPrevious())
{
it.previous();
if (it.value()==bottom)
{
currY-=AObjects[it.value()].height;
continue;
}
if (it.value()==top && !usingDistance)
continue;
currY-=separation;
 
double diff=currY-AObjects[it.value()].y2;
for (int j = 0; j < AObjects[it.value()].Objects.count(); ++j)
if (!AObjects[it.value()].Objects.at(j)->locked())
AObjects[it.value()].Objects.at(j)->moveBy(0.0, diff);
currY-=AObjects[it.value()].height;
}
}
endAlign();
usingDistance=false;
}
/trunk/Scribus/scribus/scribusdoc.h
1248,12 → 1248,12
void itemSelection_AlignTopOut(AlignTo currAlignTo, AlignMethod currAlignMethod, double guidePosition);
void itemSelection_AlignTopIn(AlignTo currAlignTo, AlignMethod currAlignMethod, double guidePosition);
 
void itemSelection_DistributeDistH(bool usingDistance=false, double distance=0.0);
void itemSelection_DistributeDistH(bool usingDistance=false, double distance=0.0, bool reverseDistribute=false);
void itemSelection_DistributeAcrossPage(bool useMargins=false);
void itemSelection_DistributeRight();
void itemSelection_DistributeBottom();
void itemSelection_DistributeCenterH();
void itemSelection_DistributeDistV(bool usingDistance=false, double distance=0.0);
void itemSelection_DistributeDistV(bool usingDistance=false, double distance=0.0, bool reverseDistribute=false);
void itemSelection_DistributeDownPage(bool useMargins=false);
void itemSelection_DistributeLeft();
void itemSelection_DistributeCenterV();
/trunk/Scribus/scribus/ui/aligndistribute.ui
9,8 → 9,8
<rect>
<x>0</x>
<y>0</y>
<width>262</width>
<height>218</height>
<width>253</width>
<height>272</height>
</rect>
</property>
<property name="minimumSize">
248,7 → 248,7
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
<height>0</height>
</size>
</property>
</spacer>
259,10 → 259,7
<attribute name="title">
<string>Distribute</string>
</attribute>
<layout class="QVBoxLayout">
<property name="margin">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout">
<item>
494,6 → 491,49
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="spacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="reverseDistributionCheckBox">
<property name="text">
<string>Reverse Distribution</string>
</property>
</widget>
</item>
<item>
<spacer name="spacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
504,7 → 544,7
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>16</height>
<height>0</height>
</size>
</property>
</spacer>
568,7 → 608,7
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
<height>0</height>
</size>
</property>
</spacer>
/trunk/Scribus/scribus/ui/aligndistribute.cpp
165,6 → 165,8
 
distributeDistLabel->setText( tr( "&Distance:" ) );
distributeDistSpinBox->setToolTip( tr( "Distribute the items with the distance specified" ) );
 
reverseDistributionCheckBox->setToolTip( tr("When distributing by a set distance, reverse the direction of the distribution of items") );
guideInfoTextNone = tr("None Selected");
 
352,7 → 354,7
void AlignDistributePalette::distributeDistH(bool usingDistance)
{
if (currDoc!=NULL)
currDoc->itemSelection_DistributeDistH(usingDistance, distributeDistSpinBox->value());
currDoc->itemSelection_DistributeDistH(usingDistance, distributeDistSpinBox->value(), reverseDistributionCheckBox->isChecked());
}
 
void AlignDistributePalette::distributeDistValH()
408,7 → 410,7
void AlignDistributePalette::distributeDistV(bool usingDistance)
{
if (currDoc!=NULL)
currDoc->itemSelection_DistributeDistV(usingDistance, distributeDistSpinBox->value());
currDoc->itemSelection_DistributeDistV(usingDistance, distributeDistSpinBox->value(), reverseDistributionCheckBox->isChecked());
}
 
void AlignDistributePalette::distributeDistValV()