| Attached Files | reversePageNum.diff [^] (5,855 bytes) 12-Jun-22 14:47 [Show Content] [Hide Content]diff --git a/Scribus/scribus/scribusdoc.cpp b/Scribus/scribus/scribusdoc.cpp
index d6869d4..5b0d142 100644
--- a/Scribus/scribus/scribusdoc.cpp
+++ b/Scribus/scribus/scribusdoc.cpp
@@ -6363,7 +6363,11 @@ const QString ScribusDoc::getSectionPageNumberForPageIndex(const uint pageIndex)
//If a section is inactive, theres no page numbers printed
if (docPrefsData.docSectionMap[key].active==false)
return "";
- uint sectionIndexOffset=pageIndex-docPrefsData.docSectionMap[key].fromindex+docPrefsData.docSectionMap[key].sectionstartindex;
+ uint sectionIndexOffset;
+ if (!docPrefsData.docSectionMap[key].reversed)
+ sectionIndexOffset = pageIndex - docPrefsData.docSectionMap[key].fromindex + docPrefsData.docSectionMap[key].sectionstartindex;
+ else
+ sectionIndexOffset = -pageIndex + docPrefsData.docSectionMap[key].toindex + docPrefsData.docSectionMap[key].sectionstartindex;
retVal=getStringFromSequence(docPrefsData.docSectionMap[key].type, sectionIndexOffset);
return retVal;
}
diff --git a/Scribus/scribus/ui/prefs_documentsections.cpp b/Scribus/scribus/ui/prefs_documentsections.cpp
index f2be423..5a89145 100644
--- a/Scribus/scribus/ui/prefs_documentsections.cpp
+++ b/Scribus/scribus/ui/prefs_documentsections.cpp
@@ -63,23 +63,27 @@ void Prefs_DocumentSections::updateTable()
QCheckBox *item1 = new QCheckBox();
item1->setChecked((*it).active);
sectionsTable->setCellWidget(row, i++, item1);
+ //Reversed
+ QCheckBox *item2 = new QCheckBox();
+ item2->setChecked((*it).reversed);
+ sectionsTable->setCellWidget(row, i++, item2);
//FromIndex
- QTableWidgetItem *item2 = new QTableWidgetItem(QString::number((*it).fromindex+1));
- sectionsTable->setItem(row, i++, item2);
- //ToIndex
- QTableWidgetItem *item3 = new QTableWidgetItem(QString::number((*it).toindex+1));
+ QTableWidgetItem *item3 = new QTableWidgetItem(QString::number((*it).fromindex+1));
sectionsTable->setItem(row, i++, item3);
+ //ToIndex
+ QTableWidgetItem *item4 = new QTableWidgetItem(QString::number((*it).toindex+1));
+ sectionsTable->setItem(row, i++, item4);
//Style
- QComboBox *item4 = new QComboBox();
- item4->addItems(styles);
- sectionsTable->setCellWidget(row, i++, item4);
+ QComboBox *item5 = new QComboBox();
+ item5->addItems(styles);
+ sectionsTable->setCellWidget(row, i++, item5);
if ((*it).type==Type_None)
- item4->setCurrentIndex(styles.count()-1);
+ item5->setCurrentIndex(styles.count()-1);
else
- item4->setCurrentIndex((*it).type);
+ item5->setCurrentIndex((*it).type);
//Start Page Number
- QTableWidgetItem *item5 = new QTableWidgetItem(QString::number((*it).sectionstartindex));
- sectionsTable->setItem(row, i++, item5);
+ QTableWidgetItem *item6 = new QTableWidgetItem(QString::number((*it).sectionstartindex));
+ sectionsTable->setItem(row, i++, item6);
//End Page Number
/*
QTableItem *item7 = new QTableItem(sectionsTable, QTableItem::WhenCurrent, QString::number((*it).sectionstartindex + (*it).toindex - (*it).fromindex));
@@ -87,11 +91,11 @@ void Prefs_DocumentSections::updateTable()
sectionsTable->setItem(row, i++, item7);
*/
//Field Width
- QTableWidgetItem *item6 = new QTableWidgetItem(QString::number((*it).pageNumberWidth));
- sectionsTable->setItem(row, i++, item6);
+ QTableWidgetItem *item7 = new QTableWidgetItem(QString::number((*it).pageNumberWidth));
+ sectionsTable->setItem(row, i++, item7);
//Fill Char
- QTableWidgetItem *item7 = new QTableWidgetItem(QString((*it).pageNumberFillChar));
- sectionsTable->setItem(row, i++, item7);
+ QTableWidgetItem *item8 = new QTableWidgetItem(QString((*it).pageNumberFillChar));
+ sectionsTable->setItem(row, i++, item8);
//
QTableWidgetItem *t=sectionsTable->verticalHeaderItem(row);
if (t!=NULL)
@@ -119,7 +123,14 @@ void Prefs_DocumentSections::tableItemChanged( int row, int col )
}
break;
case 2:
+ {
+ QCheckBox* qcti=dynamic_cast<QCheckBox*>(sectionsTable->cellWidget(row,col));
+ if (qcti!=NULL)
+ localSections[row].reversed=qcti->isChecked();
+ }
+ break;
case 3:
+ case 4:
// Validate to/from page specification before conversion to an index
//!!! There is still a problem here if m_maxpageindex == MAX_UINT ;)
newDocPageSpec=sectionsTable->item(row, col)->text().toUInt();
@@ -136,12 +147,12 @@ void Prefs_DocumentSections::tableItemChanged( int row, int col )
}
// Now, since newDocPageSpec >= 1, convert to index
--newDocPageSpec;
- if (col==2)
+ if (col==3)
localSections[row].fromindex=newDocPageSpec;
else
localSections[row].toindex=newDocPageSpec;
break;
- case 4:
+ case 5:
{
QComboBox* qcti=dynamic_cast<QComboBox*>(sectionsTable->cellWidget(row,col));
if (qcti!=NULL)
@@ -155,13 +166,13 @@ void Prefs_DocumentSections::tableItemChanged( int row, int col )
}
}
break;
- case 5:
- localSections[row].sectionstartindex=sectionsTable->item(row, col)->text().toUInt();
- break;
case 6:
- localSections[row].pageNumberWidth=sectionsTable->item(row, col)->text().toInt();
+ localSections[row].sectionstartindex= sectionsTable->item(row, col)->text().toUInt();;
break;
case 7:
+ localSections[row].pageNumberWidth=sectionsTable->item(row, col)->text().toInt();
+ break;
+ case 8:
{
QString ch=sectionsTable->item(row, col)->text();
if (ch.length()>0)
diff --git a/Scribus/scribus/ui/prefs_documentsectionsbase.ui b/Scribus/scribus/ui/prefs_documentsectionsbase.ui
index 888b2e2..5423c78 100644
--- a/Scribus/scribus/ui/prefs_documentsectionsbase.ui
+++ b/Scribus/scribus/ui/prefs_documentsectionsbase.ui
@@ -55,6 +55,11 @@
</column>
<column>
<property name="text">
+ <string>Reversed</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
<string>From</string>
</property>
</column>
|