logo       

[Bug 108060] printing doesn't allow page selection: msg#00167

kde.kst

Subject: [Bug 108060] printing doesn't allow page selection

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

http://bugs.kde.org/show_bug.cgi?id=108060
arwalker sumusltd com changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED



------- Additional Comments From arwalker sumusltd com 2005-07-20 23:49 -------
SVN commit 437079 by arwalker:

BUG:108060 No longer use deprecated methods. Allow user to select current page.
Use application side page selection for efficiency with KDE version 3.3 and
above.

M +27 -6 kst.cpp


--- trunk/extragear/graphics/kst/kst/kst.cpp #437078:437079
@ -1190,9 +1190,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()) {
@ -1200,6 +1202,9 @
if (win && !win->view()->children().isEmpty()) {
pages++;
}
+ if (win == currentWin) {
+ currentPage = pages;
+ }
it->next();
}
deleteIterator(it);
@ -1208,7 +1213,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);
@ -1231,6 +1236,8 @

printer.setFromTo(0, 0);
printer.setMinMax(1, pages);
+ printer.setCurrentPage(currentPage);
+ printer.setPageSelection(KPrinter::ApplicationSide);

pages = 0;
printer.addDialogPage(new KstPrintOptionsPage);
@ -1238,9 +1245,9 @
QPainter paint(&printer);
QPaintDeviceMetrics metrics(&printer);
QSize size(metrics.width(), metrics.height());
- int iFromPage = printer.fromPage();
- int iToPage = printer.toPage();
- bool datetimeFooter, maintainAspectRatio, monochrome;
+ bool datetimeFooter;
+ bool maintainAspectRatio;
+ bool monochrome;
int lineAdjust;
// additional monochrome options
bool enhanceReadability;
@ -1327,6 +1334,17 @

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;
@ -1334,12 +1352,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>
Google Custom Search

News | FAQ | advertise