Subversion Repositories Scribus

Compare Revisions

Ignore whitespace Rev 14731 → Rev 14732

/branches/Version135/Scribus/scribus/guidemanager.cpp
550,92 → 550,44
 
Guides GuideManager::getAutoVerticals()
{
Guides retval;
double columnSize;
int value = verticalAutoCountSpin->value();
double offset = 0.0;
double newPageWidth = currentPage->width();
GuideManagerCore guides;
 
if (value == 0)
return retval;
++value;
double gapValue = 0.0;
if (horizontalAutoGapCheck->isChecked())
gapValue = value2pts(horizontalAutoGapSpin->value(), docUnitIndex);
guides.setHorizontalAutoGap(gapValue);
guides.setHorizontalAutoCount(horizontalAutoCountSpin->value());
guides.setHorizontalAutoRefer(horizontalRefer());
 
if (verticalRefer() == 1)
{
newPageWidth = newPageWidth - currentPage->Margins.Left - currentPage->Margins.Right;
offset = currentPage->Margins.Left;
}
else if (verticalRefer() == 2)
{
if (qRound(currentPage->guides.gx) != 0)
{
offset = currentPage->guides.gx;
newPageWidth = currentPage->guides.gw;
}
}
gapValue = 0.0;
if (verticalAutoGapCheck->isChecked())
gapValue = value2pts(verticalAutoGapSpin->value(), docUnitIndex);
guides.setVerticalAutoGap(gapValue);
guides.setVerticalAutoCount(verticalAutoCountSpin->value());
guides.setVerticalAutoRefer(verticalRefer());
 
if (currentPage->guides.verticalAutoGap() > 0.0 && verticalAutoGapCheck->isChecked())
columnSize = (newPageWidth - (value - 1) * currentPage->guides.verticalAutoGap()) / value;
else
columnSize = newPageWidth / value;
 
for (int i = 1, gapCount = 0; i < value; ++i)
{
if (currentPage->guides.verticalAutoGap() > 0.0 && verticalAutoGapCheck->isChecked())
{
retval.append(offset + i * columnSize + gapCount * currentPage->guides.verticalAutoGap());
++gapCount;
retval.append(offset + i * columnSize + gapCount * currentPage->guides.verticalAutoGap());
}
else
retval.append(offset + columnSize * i);
}
return retval;
return guides.getAutoVerticals(currentPage);
}
 
Guides GuideManager::getAutoHorizontals()
{
Guides retval;
double rowSize;
int value = horizontalAutoCountSpin->value();
double offset = 0.0;
double newPageHeight = currentPage->height();
GuideManagerCore guides;
 
if (value == 0)
return retval;
++value;
double gapValue = 0.0;
if (horizontalAutoGapCheck->isChecked())
gapValue = value2pts(horizontalAutoGapSpin->value(), docUnitIndex);
guides.setHorizontalAutoGap(gapValue);
guides.setHorizontalAutoCount(horizontalAutoCountSpin->value());
guides.setHorizontalAutoRefer(horizontalRefer());
 
if (horizontalRefer() == 1)
{
newPageHeight = newPageHeight - currentPage->Margins.Top - currentPage->Margins.Bottom;
offset = currentPage->Margins.Top;
}
else if (horizontalRefer() == 2)
{
if (qRound(currentPage->guides.gy) != 0.0)
{
offset = currentPage->guides.gy;
newPageHeight = currentPage->guides.gh;
}
}
gapValue = 0.0;
if (verticalAutoGapCheck->isChecked())
gapValue = value2pts(verticalAutoGapSpin->value(), docUnitIndex);
guides.setVerticalAutoGap(gapValue);
guides.setVerticalAutoCount(verticalAutoCountSpin->value());
guides.setVerticalAutoRefer(verticalRefer());
 
if (currentPage->guides.horizontalAutoGap() > 0.0 && horizontalAutoGapCheck->isChecked())
rowSize = (newPageHeight - (value - 1) * currentPage->guides.horizontalAutoGap()) / value;
else
rowSize = newPageHeight / value;
 
for (int i = 1, gapCount = 0; i < value; ++i)
{
if (currentPage->guides.horizontalAutoGap() > 0.0&& horizontalAutoGapCheck->isChecked())
{
retval.append(offset + i * rowSize + gapCount * currentPage->guides.horizontalAutoGap());
++gapCount;
retval.append(offset + i * rowSize + gapCount * currentPage->guides.horizontalAutoGap());
}
else
retval.append(offset + rowSize * i);
}
return retval;
return guides.getAutoHorizontals(currentPage);
}
 
void GuideManager::resetSelectionForPage()
/branches/Version135/Scribus/scribus/guidemanagercore.cpp
23,6 → 23,7
GuideManagerCore::GuideManagerCore():
undoManager(UndoManager::instance()),
m_page(0),
gx(0), gy(0), gw(0), gh(0),
m_horizontalAutoGap(0.0),
m_verticalAutoGap(0.0),
m_horizontalAutoCount(0),
234,6 → 235,106
return -1.0; // just for compiler warning
}
 
Guides GuideManagerCore::getAutoHorizontals(Page* page)
{
Guides guides;
double rowSize;
int value = m_horizontalAutoCount;
double offset = 0.0;
double newPageHeight = page->height();
 
if (page == NULL)
page = m_page;
if (page == NULL)
return guides;
 
if (m_horizontalAutoCount == 0)
return guides;
++value;
 
if (m_horizontalAutoRefer == 1)
{
newPageHeight = newPageHeight - page->Margins.Top - page->Margins.Bottom;
offset = page->Margins.Top;
}
else if (m_horizontalAutoRefer == 2)
{
if (qRound(page->guides.gy) != 0.0)
{
offset = page->guides.gy;
newPageHeight = page->guides.gh;
}
}
 
if (page->guides.horizontalAutoGap() > 0.0)
rowSize = (newPageHeight - (value - 1) * page->guides.horizontalAutoGap()) / value;
else
rowSize = newPageHeight / value;
 
for (int i = 1, gapCount = 0; i < value; ++i)
{
if (page->guides.horizontalAutoGap() > 0.0)
{
guides.append(offset + i * rowSize + gapCount * page->guides.horizontalAutoGap());
++gapCount;
guides.append(offset + i * rowSize + gapCount * page->guides.horizontalAutoGap());
}
else
guides.append(offset + rowSize * i);
}
return guides;
}
 
Guides GuideManagerCore::getAutoVerticals(Page* page)
{
Guides guides;
double columnSize;
int value = m_verticalAutoCount;
double offset = 0.0;
double newPageWidth = page->width();
 
if (page == NULL)
page = m_page;
if (page == NULL)
return guides;
 
if (m_verticalAutoCount == 0)
return guides;
++value;
 
if (m_horizontalAutoRefer == 1)
{
newPageWidth = newPageWidth - page->Margins.Left - page->Margins.Right;
offset = page->Margins.Left;
}
else if (m_horizontalAutoRefer == 2)
{
if (qRound(page->guides.gx) != 0)
{
offset = page->guides.gx;
newPageWidth = page->guides.gw;
}
}
 
if (page->guides.verticalAutoGap() > 0.0)
columnSize = (newPageWidth - (value - 1) * page->guides.verticalAutoGap()) / value;
else
columnSize = newPageWidth / value;
 
for (int i = 1, gapCount = 0; i < value; ++i)
{
if (page->guides.verticalAutoGap() > 0.0)
{
guides.append(offset + i * columnSize + gapCount * page->guides.verticalAutoGap());
++gapCount;
guides.append(offset + i * columnSize + gapCount * page->guides.verticalAutoGap());
}
else
guides.append(offset + columnSize * i);
}
return guides;
}
 
void GuideManagerCore::clearHorizontals(GuideType type)
{
switch (type)
/branches/Version135/Scribus/scribus/guidemanagercore.h
56,6 → 56,9
double horizontal(uint ix, GuideType type);
double vertical(uint ix, GuideType type);
 
Guides getAutoHorizontals(Page* page = NULL);
Guides getAutoVerticals(Page* page = NULL);
 
void clearHorizontals(GuideType type);
void clearVerticals(GuideType type);
 
/branches/Version135/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp
967,6 → 967,8
pg.hasAttribute("NumHGuides"));
GuideManagerIO::readSelection(pg.attribute("AGSelection"), Apage);
Apage->guides.addHorizontals(Apage->guides.getAutoHorizontals(Apage), GuideManagerCore::Auto);
Apage->guides.addVerticals(Apage->guides.getAutoVerticals(Apage), GuideManagerCore::Auto);
}
if ((pg.tagName()=="PAGEOBJECT") || (pg.tagName()=="MASTEROBJECT") || (pg.tagName()=="FRAMEOBJECT"))
{
2956,6 → 2958,9
GuideManagerCore::Standard,
pg.hasAttribute("NumHGuides"));
GuideManagerIO::readSelection(pg.attribute("AGSelection"), Apage);
 
Apage->guides.addHorizontals(Apage->guides.getAutoHorizontals(Apage), GuideManagerCore::Auto);
Apage->guides.addVerticals(Apage->guides.getAutoVerticals(Apage), GuideManagerCore::Auto);
}
if ((pg.tagName()=="PAGEOBJECT") || (pg.tagName()=="MASTEROBJECT") || (pg.tagName()=="FRAMEOBJECT"))
/branches/Version135/Scribus/scribus/guidemanager.h
99,6 → 99,11
\param page A reference to the page to store values. */
void storePageValues(Page * page);
 
/*! \brief Save needed (Auto) values into GuideManagerCore.
To be restored on the page return.
\param page A reference to the page to store values. */
void storePageValues(GuideManagerCore);
 
/*! \brief Overriden QDialog method to operate selection related widgets.
Auto guides tab. It disables the "selection" radio buttons when there
is no selection on current page. */