View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002341 | Scribus | User Interface | public | 2005-08-01 11:00 | 2025-06-12 21:01 |
Reporter | jo-hannes | Assigned To | ale | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | assigned | Resolution | open | ||
Platform | any | OS | any | OS Version | any |
Product Version | 1.3 | ||||
Summary | 0002341: [PATCH] apply masterpage: change the range fields to one field where user defined pages can be entered (like 1-4,7,9) | ||||
Description | . | ||||
Tags | No tags attached. | ||||
Patch | Yes | ||||
child of | 0003837 | acknowledged | Metabug: Master pages/Page templates |
|
why would it be better than the current solution? |
|
i have 20 pages and want to apply masterpage 1 to pages 2,5,6,8,13. that could be done easier. compare with the print dialog, i suggested user defined ranges there too and you have it in nearly any program |
|
Nice! Agree. |
|
Disagree with the idea of changing the existing functionality. Agree with adding this as a 5th option. |
|
Yes. |
|
acknowledging as per note by cbradney |
|
- created an .ui file - added the fifth option - moved most of the functionality from scribus.cpp to ui/applytemplatedialog.cpp - removed languageChange(), since it's a modal dialog. - using modern signals it would be a good idea to rename ui/applytemplatedialog.h to ui/applymasterpagedialog.h (the same for the .cpp) to match the class name... but it's easier to do for you directly on svn rather than getting it from the diff. apply-master-page-to-range.diff (24,237 bytes)
From 972d392513c7589bb3a1064f9cde8d6630d7d564 Mon Sep 17 00:00:00 2001 From: ale rimoldi <ale@graphicslab.org> Date: Thu, 12 Jun 2025 22:59:48 +0200 Subject: add the comma separated ranges, create an .ui, and some refactoring diff --git a/scribus/scribus.cpp b/scribus/scribus.cpp index d82ebbab1..36d930e63 100644 --- a/scribus/scribus.cpp +++ b/scribus/scribus.cpp @@ -7642,38 +7642,18 @@ void ScribusMainWindow::ApplyMasterPage() return; QString masterPageName(dia->getMasterPageName()); - int pageSelection = dia->getPageSelection(); //0=current, 1=even, 2=odd, 3=all + QList<int> pages = dia->getPagesSelected(); - int startPage, endPage; - if (pageSelection == 0) - { - startPage = doc->currentPage()->pageNr(); - endPage = doc->currentPage()->pageNr() + 1; - } - else if (dia->usingRange()) - { - startPage = dia->getFromPage() - 1; //Pages start from 0, not 1 - endPage = dia->getToPage(); - } - else - { - startPage = pageSelection == 1 ? 1 : 0; //if even, startPage is 1 (real page 2) - endPage = doc->DocPages.count(); - } + if (pages.empty()) + return; UndoTransaction trans; - if (UndoManager::undoEnabled() && (startPage + 1 < endPage)) + if (UndoManager::undoEnabled()) trans = m_undoManager->beginTransaction(QString(), nullptr, Um::ApplyMasterPage, masterPageName); - for (int pageNum = startPage; pageNum < endPage; ++pageNum) + for (int page: pages) { - //Increment by 1 and not 2 even for even/odd application as user - //can select to eg apply to even pages with a single odd page selected - if (pageSelection == 1 && (pageNum % 2 == 0)) //Even, %2!=0 as 1st page is numbered 0 - continue; - if (pageSelection == 2 && (pageNum % 2 != 0)) //Odd, %2==0 as 1st page is numbered 0 - continue; - Apply_MasterPage(masterPageName, pageNum, false); + Apply_MasterPage(masterPageName, page, false); } if (trans) diff --git a/scribus/ui/applymasterpagedialog.ui b/scribus/ui/applymasterpagedialog.ui new file mode 100644 index 000000000..7ca07fa63 --- /dev/null +++ b/scribus/ui/applymasterpagedialog.ui @@ -0,0 +1,283 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ApplyMasterPageDialog</class> + <widget class="QDialog" name="ApplyMasterPageDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>302</width> + <height>299</height> + </rect> + </property> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="windowTitle"> + <string>Apply Master Page</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="leftMargin"> + <number>8</number> + </property> + <property name="topMargin"> + <number>8</number> + </property> + <property name="rightMargin"> + <number>8</number> + </property> + <property name="bottomMargin"> + <number>8</number> + </property> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="masterPageLabel"> + <property name="text"> + <string>&Master page</string> + </property> + <property name="buddy"> + <cstring>masterPageComboBox</cstring> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Orientation::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QComboBox" name="masterPageComboBox"/> + </item> + </layout> + </item> + <item> + <widget class="QGroupBox" name="applyToPageButtonGroup"> + <property name="title"> + <string>Apply to</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <property name="leftMargin"> + <number>8</number> + </property> + <property name="topMargin"> + <number>8</number> + </property> + <property name="rightMargin"> + <number>8</number> + </property> + <property name="bottomMargin"> + <number>8</number> + </property> + <item> + <widget class="QRadioButton" name="currentPageRadioButton"> + <property name="text"> + <string>Current &page</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="evenPagesRadioButton"> + <property name="text"> + <string>&Even pages</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="oddPagesRadioButton"> + <property name="text"> + <string>O&dd pages</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="allPagesRadioButton"> + <property name="text"> + <string>&All pages</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="customRangeLayout"> + <property name="spacing"> + <number>4</number> + </property> + <item> + <widget class="QRadioButton" name="customRangeRadioButton"> + <property name="toolTip"> + <string>Apply the selected master page to the list of comma separated pages (or ranges)</string> + </property> + <property name="text"> + <string>Custom &range</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="customRangeLineEdit"> + <property name="enabled"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_3"> + <property name="orientation"> + <enum>Qt::Orientation::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="rangeLayout"> + <property name="spacing"> + <number>4</number> + </property> + <item> + <widget class="QCheckBox" name="useRangeCheckBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="toolTip"> + <string>Apply the selected master page to even, odd or all pages within the following range</string> + </property> + <property name="text"> + <string>&Within range</string> + </property> + </widget> + </item> + <item> + <widget class="ScrSpinBox" name="fromPageSpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="suffix"> + <string notr="true"/> + </property> + <property name="decimals"> + <number>0</number> + </property> + <property name="minimum"> + <double>1.000000000000000</double> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="toPageLabel"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>to</string> + </property> + </widget> + </item> + <item> + <widget class="ScrSpinBox" name="toPageSpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="suffix"> + <string notr="true"/> + </property> + <property name="decimals"> + <number>0</number> + </property> + <property name="minimum"> + <double>1.000000000000000</double> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Orientation::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Orientation::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <customwidgets> + <customwidget> + <class>ScrSpinBox</class> + <extends>QDoubleSpinBox</extends> + <header>ui/scrspinbox.h</header> + </customwidget> + </customwidgets> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>ApplyMasterPageDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>ApplyMasterPageDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/scribus/ui/applytemplatedialog.cpp b/scribus/ui/applytemplatedialog.cpp index 666896549..c92d6b767 100644 --- a/scribus/ui/applytemplatedialog.cpp +++ b/scribus/ui/applytemplatedialog.cpp @@ -15,130 +15,40 @@ for which a new license (GPL+exception) is in place. #include "applytemplatedialog.h" #include <QCheckBox> -#include <QComboBox> -#include <QEvent> -#include <QGroupBox> -#include <QHBoxLayout> -#include <QLabel> -#include <QPushButton> #include <QRadioButton> -#include <QSpacerItem> -#include <QSpinBox> -#include <QToolTip> -#include <QVBoxLayout> #include "commonstrings.h" +#include "util.h" // for parsePagesString #include "scpage.h" #include "scribusdoc.h" #include "iconmanager.h" -enum { - CurrentPage, - EvenPages, - OddPages, - AllPages -}; - -/* - * Constructs a ApplyMasterPageDialog as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - * - * The dialog will by default be modeless, unless you set 'modal' to - * true to construct a modal dialog. - */ -ApplyMasterPageDialog::ApplyMasterPageDialog( QWidget* parent ) : QDialog( parent ) +ApplyMasterPageDialog::ApplyMasterPageDialog(QWidget* parent) : QDialog(parent) { + setupUi(this); setModal(true); - setWindowTitle( tr( "Apply Master Page" )); setWindowIcon(IconManager::instance().loadIcon("app-icon")); - ApplyMasterPageDialogLayout = new QVBoxLayout(this); - ApplyMasterPageDialogLayout->setContentsMargins(9, 9, 9, 9); - ApplyMasterPageDialogLayout->setSpacing(6); - - templateNameLayout = new QHBoxLayout; - templateNameLayout->setContentsMargins(0, 0, 0, 0); - templateNameLayout->setSpacing(6); - - masterPageLabel = new QLabel( this ); - templateNameLayout->addWidget( masterPageLabel ); - spacer2 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum ); - templateNameLayout->addItem( spacer2 ); - - masterPageComboBox = new QComboBox(this); - masterPageComboBox->setEditable(false); - templateNameLayout->addWidget( masterPageComboBox ); - ApplyMasterPageDialogLayout->addLayout( templateNameLayout ); - - applyToPageButtonGroup = new QGroupBox(this); - applyToPageButtonGroup->setMinimumSize( QSize( 250, 0 ) ); - applyToPageButtonGroupLayout = new QVBoxLayout(applyToPageButtonGroup); - applyToPageButtonGroupLayout->setSpacing(6); - applyToPageButtonGroupLayout->setContentsMargins(9, 9, 9, 9); - - currentPageRadioButton = new QRadioButton( applyToPageButtonGroup ); - currentPageRadioButton->setChecked( true ); - applyToPageButtonGroupLayout->addWidget( currentPageRadioButton ); - - evenPagesRadioButton = new QRadioButton( applyToPageButtonGroup ); - applyToPageButtonGroupLayout->addWidget( evenPagesRadioButton ); - - oddPagesRadioButton = new QRadioButton( applyToPageButtonGroup ); - applyToPageButtonGroupLayout->addWidget( oddPagesRadioButton ); - - allPagesRadioButton = new QRadioButton( applyToPageButtonGroup ); - applyToPageButtonGroupLayout->addWidget( allPagesRadioButton ); - - rangeLayout = new QHBoxLayout; - rangeLayout->setSpacing(6); - rangeLayout->setContentsMargins(0, 0, 0, 0); - useRangeCheckBox = new QCheckBox( applyToPageButtonGroup ); - useRangeCheckBox->setEnabled( false ); - rangeLayout->addWidget( useRangeCheckBox ); + resize(QSize(268, 230).expandedTo(minimumSizeHint())); - fromPageSpinBox = new ScrSpinBox( applyToPageButtonGroup ); - fromPageSpinBox->setEnabled( false ); - fromPageSpinBox->setMinimum( 1 ); - fromPageSpinBox->setDecimals(0); - fromPageSpinBox->setSuffix(""); - rangeLayout->addWidget( fromPageSpinBox ); + connect(useRangeCheckBox, qOverload<bool>(&QCheckBox::toggled), this, &ApplyMasterPageDialog::enableRange); + connect(currentPageRadioButton, &QCheckBox::clicked, this, &ApplyMasterPageDialog::singleSelectable); + connect(evenPagesRadioButton, &QCheckBox::clicked, this, &ApplyMasterPageDialog::rangeSelectable); + connect(oddPagesRadioButton, &QCheckBox::clicked, this, &ApplyMasterPageDialog::rangeSelectable); + connect(allPagesRadioButton, &QCheckBox::clicked, this, &ApplyMasterPageDialog::rangeSelectable); + connect(customRangeRadioButton, &QRadioButton::toggled, this, &ApplyMasterPageDialog::customRangeEditable); - toPageLabel = new QLabel( applyToPageButtonGroup ); - rangeLayout->addWidget( toPageLabel ); + connect(fromPageSpinBox, qOverload<double>(&ScrSpinBox::valueChanged), this, &ApplyMasterPageDialog::checkRangeFrom); + connect(toPageSpinBox, qOverload<double>(&ScrSpinBox::valueChanged), this, &ApplyMasterPageDialog::checkRangeTo); - toPageSpinBox = new ScrSpinBox( applyToPageButtonGroup ); - toPageSpinBox->setEnabled( false ); - toPageSpinBox->setMinimum( 1 ); - toPageSpinBox->setDecimals(0); - toPageSpinBox->setSuffix(""); - rangeLayout->addWidget( toPageSpinBox ); - spacer3 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum ); - rangeLayout->addItem( spacer3 ); - applyToPageButtonGroupLayout->addLayout( rangeLayout ); - ApplyMasterPageDialogLayout->addWidget( applyToPageButtonGroup ); - - buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); - ApplyMasterPageDialogLayout->addWidget(buttonBox); - languageChange(); - resize( QSize(268, 230).expandedTo(minimumSizeHint()) ); - - // signals and slots connections - connect( useRangeCheckBox, SIGNAL( toggled(bool) ), this, SLOT( enableRange(bool) ) ); - connect( currentPageRadioButton, SIGNAL( clicked() ), this, SLOT( singleSelectable() ) ); - connect( evenPagesRadioButton, SIGNAL( clicked() ), this, SLOT( rangeSelectable() ) ); - connect( oddPagesRadioButton, SIGNAL( clicked() ), this, SLOT( rangeSelectable() ) ); - connect( allPagesRadioButton, SIGNAL( clicked() ), this, SLOT( rangeSelectable() ) ); - connect( fromPageSpinBox, SIGNAL( valueChanged(double) ), this, SLOT( checkRangeFrom() ) ); - connect( toPageSpinBox, SIGNAL( valueChanged(double) ), this, SLOT( checkRangeTo() ) ); connect(buttonBox, &QDialogButtonBox::accepted, this, &ApplyMasterPageDialog::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &ApplyMasterPageDialog::reject); - - // buddies - masterPageLabel->setBuddy( masterPageComboBox ); } void ApplyMasterPageDialog::setup(ScribusDoc *doc, const QString& Nam) { + m_doc = doc; + QString na = (Nam == CommonStrings::masterPageNormal) ? CommonStrings::trMasterPageNormal : Nam; QString in; @@ -167,36 +77,32 @@ QString ApplyMasterPageDialog::getMasterPageName() return masterPageComboBox->itemData(currentIndex).toString(); } - -int ApplyMasterPageDialog::getPageSelection() -{ - if (currentPageRadioButton->isChecked()) - return CurrentPage; - if (evenPagesRadioButton->isChecked()) - return EvenPages; - if (oddPagesRadioButton->isChecked()) - return OddPages; - return AllPages; -} - void ApplyMasterPageDialog::checkRangeFrom() { - disconnect(fromPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeFrom())); - disconnect(toPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeTo())); if (fromPageSpinBox->value() > toPageSpinBox->value()) + { + const bool fromWasBlocked = fromPageSpinBox->blockSignals(true); + const bool toWasBlocked = toPageSpinBox->blockSignals(true); + toPageSpinBox->setValue(fromPageSpinBox->value()); - connect(fromPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeFrom())); - connect(toPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeTo())); + + toPageSpinBox->blockSignals(toWasBlocked); + fromPageSpinBox->blockSignals(fromWasBlocked); + } } void ApplyMasterPageDialog::checkRangeTo() { - disconnect(fromPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeFrom())); - disconnect(toPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeTo())); if (toPageSpinBox->value() < fromPageSpinBox->value()) + { + const bool fromWasBlocked = fromPageSpinBox->blockSignals(true); + const bool toWasBlocked = toPageSpinBox->blockSignals(true); + fromPageSpinBox->setValue(toPageSpinBox->value()); - connect(fromPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeFrom())); - connect(toPageSpinBox, SIGNAL(valueChanged(double)), this, SLOT(checkRangeTo())); + + toPageSpinBox->blockSignals(toWasBlocked); + fromPageSpinBox->blockSignals(fromWasBlocked); + } } void ApplyMasterPageDialog::enableRange( bool enabled ) @@ -209,6 +115,7 @@ void ApplyMasterPageDialog::rangeSelectable() { useRangeCheckBox->setEnabled(true); enableRange(useRangeCheckBox->isChecked()); + customRangeLineEdit->setEnabled(false); } void ApplyMasterPageDialog::singleSelectable() @@ -218,18 +125,20 @@ void ApplyMasterPageDialog::singleSelectable() toPageSpinBox->setEnabled(false); } - -bool ApplyMasterPageDialog::usingRange() +void ApplyMasterPageDialog::customRangeEditable(bool enabled) { - return useRangeCheckBox->isChecked(); + if (enabled) + { + singleSelectable(); + } + customRangeLineEdit->setEnabled(enabled); } - int ApplyMasterPageDialog::getFromPage() { if (useRangeCheckBox->isChecked()) - return static_cast<int>(fromPageSpinBox->value()); - return -1; + return static_cast<int>(fromPageSpinBox->value()) - 1; // pages start from 0, not 1; + return 0; } @@ -237,34 +146,39 @@ int ApplyMasterPageDialog::getToPage() { if (useRangeCheckBox->isChecked()) return static_cast<int>(toPageSpinBox->value()); - return -1; + return m_doc->DocPages.count(); } -void ApplyMasterPageDialog::changeEvent(QEvent *e) +QList<int> ApplyMasterPageDialog::getPagesSelected() { - if (e->type() == QEvent::LanguageChange) + QList<int>pagesSelected; + + if (currentPageRadioButton->isChecked()) { - languageChange(); + pagesSelected.push_back(m_doc->currentPage()->pageNr()); + return pagesSelected; } - else - QWidget::changeEvent(e); -} -void ApplyMasterPageDialog::languageChange() -{ - setWindowTitle( tr( "Apply Master Page" ) ); - masterPageLabel->setText( tr( "&Master Page:" ) ); - applyToPageButtonGroup->setTitle( tr( "Apply to" ) ); - currentPageRadioButton->setText( tr( "Current &Page" ) ); - currentPageRadioButton->setShortcut( QKeySequence( tr( "Alt+P" ) ) ); - evenPagesRadioButton->setText( tr( "&Even Pages" ) ); - evenPagesRadioButton->setShortcut( QKeySequence( tr( "Alt+E" ) ) ); - oddPagesRadioButton->setText( tr( "O&dd Pages" ) ); - oddPagesRadioButton->setShortcut( QKeySequence( tr( "Alt+D" ) ) ); - allPagesRadioButton->setText( tr( "&All Pages" ) ); - allPagesRadioButton->setShortcut( QKeySequence( tr( "Alt+A" ) ) ); - useRangeCheckBox->setText( tr( "&Within Range" ) ); - useRangeCheckBox->setShortcut( QKeySequence( tr( "Alt+W" ) ) ); - useRangeCheckBox->setToolTip( "<qt>" + tr( "Apply the selected master page to even, odd or all pages within the following range") + "</qt>" ); - toPageLabel->setText( tr( "to" ) ); + if (customRangeRadioButton->isChecked()) + { + QString customRange = customRangeLineEdit->text(); + std::vector<int> stdPagesSelected; + parsePagesString(customRange, &stdPagesSelected, m_doc->DocPages.count()); + return QList<int>(stdPagesSelected.begin(), stdPagesSelected.end()); + } + + int start = getFromPage(); + int end = getToPage(); + + for (int i = start; i < end; i++) + { + // even if i % 2 != 0, since the first page is 0 + if (evenPagesRadioButton->isChecked() && i % 2 == 0) + continue; + else if (oddPagesRadioButton->isChecked() && i % 2 != 0) + continue; + pagesSelected.push_back(i); + } + + return pagesSelected; } diff --git a/scribus/ui/applytemplatedialog.h b/scribus/ui/applytemplatedialog.h index 71dd7fef4..05dd1c3b0 100644 --- a/scribus/ui/applytemplatedialog.h +++ b/scribus/ui/applytemplatedialog.h @@ -19,23 +19,14 @@ for which a new license (GPL+exception) is in place. #include <QDialogButtonBox> #include <QString> +#include "ui_applymasterpagedialog.h" + #include "scribusapi.h" -#include "scribusdoc.h" -#include "scpage.h" -#include "ui/scrspinbox.h" -class QCheckBox; -class QComboBox; -class QEvent; -class QGroupBox; -class QHBoxLayout; -class QLabel; -class QPushButton; -class QRadioButton; -class QSpacerItem; -class QVBoxLayout; +class ScribusDoc; + -class SCRIBUS_API ApplyMasterPageDialog : public QDialog +class SCRIBUS_API ApplyMasterPageDialog : public QDialog, Ui::ApplyMasterPageDialog { Q_OBJECT @@ -43,46 +34,22 @@ public: ApplyMasterPageDialog( QWidget* parent = nullptr ); ~ApplyMasterPageDialog() = default; - QLabel* masterPageLabel { nullptr }; - QComboBox* masterPageComboBox { nullptr }; - QGroupBox* applyToPageButtonGroup { nullptr }; - QRadioButton* currentPageRadioButton { nullptr }; - QRadioButton* evenPagesRadioButton { nullptr }; - QRadioButton* oddPagesRadioButton { nullptr }; - QRadioButton* allPagesRadioButton { nullptr }; - QCheckBox* useRangeCheckBox { nullptr }; - ScrSpinBox* fromPageSpinBox { nullptr }; - QLabel* toPageLabel { nullptr }; - ScrSpinBox* toPageSpinBox { nullptr }; - virtual void setup(ScribusDoc* doc, const QString& Nam); - virtual QString getMasterPageName(); - virtual int getPageSelection(); - virtual bool usingRange(); - virtual int getFromPage(); - virtual int getToPage(); + QString getMasterPageName(); + int getFromPage(); + int getToPage(); + QList<int> getPagesSelected(); -protected: - QVBoxLayout* ApplyMasterPageDialogLayout { nullptr }; - QHBoxLayout* templateNameLayout { nullptr }; - QSpacerItem* spacer2 { nullptr }; - QVBoxLayout* applyToPageButtonGroupLayout { nullptr }; - QHBoxLayout* rangeLayout { nullptr }; - QSpacerItem* spacer3 { nullptr }; - QDialogButtonBox* buttonBox { nullptr }; - - void changeEvent(QEvent *e) override; - -protected slots: - virtual void languageChange(); +private: + ScribusDoc* m_doc = nullptr; private slots: - virtual void checkRangeFrom(); - virtual void checkRangeTo(); - virtual void enableRange( bool enabled ); - virtual void rangeSelectable(); - virtual void singleSelectable(); - + void checkRangeFrom(); + void checkRangeTo(); + void enableRange( bool enabled ); + void rangeSelectable(); + void singleSelectable(); + void customRangeEditable(bool enabled); }; #endif // APPLYMASTERPAGEDIALOG_H |
Date Modified | Username | Field | Change |
---|---|---|---|
2005-08-01 11:00 | jo-hannes | New Issue | |
2006-04-08 16:52 | mhanski | Severity | minor => feature |
2006-04-08 16:53 | mhanski | Note Added: 0009702 | |
2006-04-08 22:15 | jo-hannes | Note Added: 0009733 | |
2006-04-09 02:38 | louisdesjardins | Note Added: 0009740 | |
2006-04-21 18:36 | mhanski | OS | => any |
2006-04-21 18:36 | mhanski | OS Version | => any |
2006-04-21 18:36 | mhanski | Platform | => any |
2006-04-21 18:36 | mhanski | Product Version | 1.3.1cvs => 1.3 |
2006-04-21 18:38 | mhanski | Status | new => feedback |
2006-04-21 21:41 | cbradney | Note Added: 0010273 | |
2006-04-21 22:01 | louisdesjardins | Note Added: 0010275 | |
2006-05-04 21:22 | mhanski | Note Added: 0010931 | |
2006-05-04 21:22 | mhanski | Status | feedback => acknowledged |
2006-05-18 18:09 | christoph_s | Relationship added | related to 0003837 |
2006-05-18 18:17 | christoph_s | Relationship replaced | child of 0003837 |
2025-06-12 21:01 | ale | Note Added: 0052752 | |
2025-06-12 21:01 | ale | File Added: apply-master-page-to-range.diff | |
2025-06-12 21:01 | ale | Assigned To | => ale |
2025-06-12 21:01 | ale | Status | acknowledged => assigned |
2025-06-12 21:01 | ale | Summary | apply masterpage: change the range fields to one field where user defined pages can be entered (like 1-4,7,9) => [PATCH] apply masterpage: change the range fields to one field where user defined pages can be entered (like 1-4,7,9) |
2025-06-12 21:01 | ale | Patch | => Yes |