Diffstat (limited to 'korganizer/kowhatsnextview.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | korganizer/kowhatsnextview.cpp | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/korganizer/kowhatsnextview.cpp b/korganizer/kowhatsnextview.cpp index 219f7c3..7166a01 100644 --- a/korganizer/kowhatsnextview.cpp +++ b/korganizer/kowhatsnextview.cpp @@ -25,5 +25,7 @@ #include <qapplication.h> - +#ifdef DESKTOP_VERSION +#include <qpaintdevicemetrics.h> +#endif #include <kglobal.h> #include <klocale.h> @@ -57,4 +59,29 @@ void WhatsNextTextBrowser::setSource(const QString& n) } } +void WhatsNextTextBrowser::printMe() +{ +#ifdef DESKTOP_VERSION + QPrinter printer; + if (!printer.setup() ) + return; + QPainter p; + p.begin ( &printer ); + QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); + float dx, dy; + int wid = (m.width() * 9)/10; + dx = (float) wid/(float)contentsWidth (); + dy = (float)(m.height()) / (float)contentsHeight (); + float scale; + // scale to fit the width or height of the paper + if ( dx < dy ) + scale = dx; + else + scale = dy; + p.translate( m.width()/10,0 ); + p.scale( scale, scale ); + drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); + p.end(); +#endif +} KOWhatsNextView::KOWhatsNextView(Calendar *calendar, QWidget *parent, @@ -115,16 +142,5 @@ void KOWhatsNextView::printMe() { #ifdef DESKTOP_VERSION - QPrinter printer; - if (!printer.setup() ) - return; - QTextBrowser tb; - tb.setFixedSize( 600, 4000 ); - QPainter::redirect ( tb.viewport(), &printer ); - updateView(); - tb.setText( mText ); - tb.show(); - tb.repaint(); - tb.hide(); - KMessageBox::information( this, i18n("Printing What's Next View!\n\nPlease close after\nprinting is finished.")); + mView->printMe(); #endif } |