- /** Test that all the fields contain valid entries. It's unlikely
- that the internal code will get this wrong (at least for the
- xforms code anyway) however new ports and external scripts
- might drive the wrong values in.
- */
- void testInvariant() const
- {
-#ifdef ENABLE_ASSERTIONS
- if (!from_page.empty()) {
- // Assert(from_page == number or empty)
- lyx::Assert(containsOnly(from_page,
- "1234567890"));
- }
- if (to_page) {
- // Assert(to_page == empty
- // or number iff from_page set)
- lyx::Assert(!from_page.empty());
- }
- switch (target) {
- case PRINTER:
-// Assert(!printer_name.empty());
- break;
- case FILE:
- lyx::Assert(!file_name.empty());
- break;
- default:
- lyx::Assert(false);
- break;
- }
- switch (which_pages) {
- case ALL:
- case ODD:
- case EVEN:
- break;
- default:
- lyx::Assert(false);
- break;
- }
-#endif
- }
-
- ///
- PrinterParams(Target const & t = PRINTER,
- string const & pname = lyxrc.printer,
- string const & fname = string(),
- WhichPages const wp = ALL,
- string const & from = string(),
- int const & to = 0,
- bool const reversed = false,
- bool const unsorted = false,
- int const & num_copies = 1)
- : target(t),
- printer_name(pname),
- file_name(fname),
- which_pages(wp),
- from_page(from),
- to_page(to),
- reverse_order(reversed),
- unsorted_copies(unsorted),
- count_copies(num_copies)
- {
- testInvariant();
- }
- ///
- PrinterParams(PrinterParams const & pp)
- : target(pp.target),
- printer_name(pp.printer_name),
- file_name(pp.file_name),
- which_pages(pp.which_pages),
- from_page(pp.from_page),
- to_page(pp.to_page),
- reverse_order(pp.reverse_order),
- unsorted_copies(pp.unsorted_copies),
- count_copies(pp.count_copies)
- {
- testInvariant();
- }