From 041729646fdaabd2ed69b4fc77c839efa81a7d2e Mon Sep 17 00:00:00 2001 From: zautrix Date: Tue, 07 Jun 2005 20:23:54 +0000 Subject: print list added to kopi --- (limited to 'korganizer') diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index bc52281..7022e02 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include #include @@ -63,6 +65,7 @@ #include "kfiledialog.h" #include "kolistview.h" +#include "koeventviewer.h" @@ -280,7 +283,18 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent, mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), i18n("Delete all selected"),this, SLOT(deleteAll()),true); +#ifdef DESKTOP_VERSION + mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), + i18n("Hide all selected"),this, + SLOT(hideAll()),true); +#endif + mPopupMenu->insertSeparator(); +#ifdef DESKTOP_VERSION + mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), + i18n("Print complete list"),this, + SLOT(printList()),true); mPopupMenu->insertSeparator(); +#endif QPopupMenu * exportPO = new QPopupMenu ( this ); mPopupMenu->insertItem( i18n("Export selected"), exportPO ); exportPO->insertItem( i18n("As iCal (ics) file..."),this, @@ -722,6 +736,27 @@ void KOListView::writeToFile( bool iCal ) } QTimer::singleShot( 1, this, SLOT ( resetFocus() ) ); } +void KOListView::hideAll() +{ + QPtrList delSel ; + QListViewItem *item = mListView->firstChild (); + while ( item ) { + if ( item->isSelected() ) { + delSel.append(item); + } + item = item->nextSibling(); + } + item = delSel.first() ; + while ( item ) { + QListViewItem * del = item; + item = delSel.next(); + delete del; + } +} +void KOListView::printList() +{ + mListView->printList(); +} void KOListView::deleteAll() { int icount = 0; @@ -1287,3 +1322,50 @@ void KOListViewListView::contentsMouseMoveEvent(QMouseEvent *e) KListView::contentsMouseMoveEvent(e); } +#define protected public +#include +#undef protected +void KOListViewListView::printList() +{ +#ifdef DESKTOP_VERSION + KOPrintPrefs pp ( this ); + if (!pp.exec() ) + return; + int scaleval = pp.printMode() ; + + QPrinter printer; + if (!printer.setup() ) + return; + clearSelection (); + 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,m.width()/10 ); + if ( scaleval == 2 || scaleval == 1 && scale < 1.0 ) { + p.scale( scale, scale ); + } + + int cou = header()->count(); + int iii; + QRect rect ( 0,0,0, header()->height()); + for ( iii = 0; iii < cou; ++iii ) { + rect.setLeft ( header()->sectionPos( iii ) ); + rect.setRight ( header()->sectionPos( iii ) + header()->sectionSize (iii)); + header()->paintSection ( & p, header()->mapToIndex (iii), rect ); + } + p.translate( 0, header()->height()); + drawContentsOffset ( &p, 0,0, 0,0, contentsWidth (), contentsHeight () ); + p.end(); +#endif +} diff --git a/korganizer/kolistview.h b/korganizer/kolistview.h index f4d6879..c25592d 100644 --- a/korganizer/kolistview.h +++ b/korganizer/kolistview.h @@ -216,6 +216,7 @@ class KOListViewListView : public KListView public: KOListViewListView(KOListView * lv ); bool hasMultiSelection(QListViewItem*); + void printList(); signals: void newEvent(); void showIncidence( Incidence* ); @@ -266,6 +267,8 @@ class KOListView : public KOEventView void beamIncidenceList(QPtrList); public slots: + void hideAll(); + void printList(); void resetFocus(); virtual void updateView(); virtual void showDates(const QDate &start, const QDate &end); -- cgit v0.9.0.2