|
branches/work/kst/1.1/kst/kst: msg#00173kde.kst
SVN commit 437103 by staikos: backport fix for page selection M +24 -3 kst.cpp --- branches/work/kst/1.1/kst/kst/kst.cpp #437102:437103 @@ -1100,9 +1100,11 @@ } void KstApp::slotFilePrint() { + KstViewWindow *currentWin = dynamic_cast<KstViewWindow*>(activeWindow()); KstViewWindow *win; + int currentPage = 0; int pages = 0; - + KMdiIterator<KMdiChildView*> *it = createIterator(); if (it) { while (it->currentItem()) { @@ -1110,6 +1112,9 @@ if (win && !win->view()->children().isEmpty()) { pages++; } + if (win == currentWin) { + currentPage = pages; + } it->next(); } deleteIterator(it); @@ -1118,7 +1123,7 @@ if (pages > 0) { KPrinter printer; KstSettings *ks = KstSettings::globalSettings(); - + printer.setOption("kde-pagesize", ks->printing.pageSize); printer.setOption("kde-orientation", ks->printing.orientation); printer.setOption("kst-plot-datetime-footer", ks->printing.plotDateTimeFooter); @@ -1127,6 +1132,8 @@ printer.setOption("kst-plot-monochrome", ks->printing.monochrome); printer.setFromTo(0, 0); printer.setMinMax(1, pages); + printer.setCurrentPage(currentPage); + printer.setPageSelection(KPrinter::ApplicationSide); pages = 0; printer.addDialogPage(new KstPrintOptionsPage); @@ -1151,6 +1158,17 @@ ks->printing.monochrome = printer.option("kst-plot-monochrome"); ks->save(); +#if KDE_VERSION <= KDE_MAKE_VERSION(3,3,0) + int iFromPage = printer.fromPage(); + int iToPage = printer.toPage(); + + if (iFromPage == 0 && iToPage == 0) { + printer.setPageSelection(KPrinter::SystemSide); + } +#else + QValueList<int> pageList = printer.pageList(); +#endif + it = createIterator(); if (it) { bool firstPage = true; @@ -1158,12 +1176,15 @@ win = dynamic_cast<KstViewWindow*>(it->currentItem()); if (win && !win->view()->children().isEmpty()) { pages++; +#if KDE_VERSION <= KDE_MAKE_VERSION(3,3,0) if ((iFromPage == 0 && iToPage == 0) || (iFromPage <= pages && iToPage >= pages)) { +#else + if (pageList.contains(pages)) { +#endif if (!firstPage && !printer.newPage()) { break; } - KstTopLevelViewPtr tlv = kst_cast<KstTopLevelView>(win->view()); if (tlv) { if (lineAdjust != 0) { |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [Bug 104347] window width is widened automatically when the status bar needs more room: 00173, Andrew Walker |
|---|---|
| Next by Date: | branches/work/kst/1.1/kst/kst: 00173, George Staikos |
| Previous by Thread: | branches/work/kst/1.1/kst/ksti: 00173, George Staikos |
| Next by Thread: | branches/work/kst/1.1/kst/kst: 00173, George Staikos |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |