korganizer
journalprint.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef KORG_NOPRINTER
00026
00027 #include "journalprint.h"
00028
00029 #include "calprintpluginbase.h"
00030 #include "calprinthelper.h"
00031 #include <libkcal/journal.h>
00032 #include <libkcal/calendar.h>
00033 #include <libkdepim/kdateedit.h>
00034 #include <kconfig.h>
00035 #include <kdebug.h>
00036
00037 #include <qbuttongroup.h>
00038
00039 #include "calprintjournalconfig_base.h"
00040
00041
00042 class JournalPrintFactory : public KOrg::PrintPluginFactory {
00043 public:
00044 KOrg::PrintPlugin *create() { return new CalPrintJournal; }
00045 };
00046
00047 K_EXPORT_COMPONENT_FACTORY( libkorg_journalprint, JournalPrintFactory )
00048
00049
00050
00051
00052
00053
00054 QWidget *CalPrintJournal::createConfigWidget( QWidget *w )
00055 {
00056 return new CalPrintJournalConfig_Base( w );
00057 }
00058
00059 void CalPrintJournal::readSettingsWidget()
00060 {
00061 CalPrintJournalConfig_Base *cfg =
00062 dynamic_cast<CalPrintJournalConfig_Base*>( mConfigWidget );
00063 if ( cfg ) {
00064 mFromDate = cfg->mFromDate->date();
00065 mToDate = cfg->mToDate->date();
00066 mUseDateRange = (cfg->mDateRangeGroup->selectedId() == 1);
00067 }
00068 }
00069
00070 void CalPrintJournal::setSettingsWidget()
00071 {
00072 CalPrintJournalConfig_Base *cfg =
00073 dynamic_cast<CalPrintJournalConfig_Base*>( mConfigWidget );
00074 if ( cfg ) {
00075 cfg->mFromDate->setDate( mFromDate );
00076 cfg->mToDate->setDate( mToDate );
00077
00078 cfg->mDateRangeGroup->setButton( (mUseDateRange)?1:0 );
00079 }
00080 }
00081
00082 void CalPrintJournal::loadConfig()
00083 {
00084 if ( mConfig ) {
00085 mUseDateRange = mConfig->readBoolEntry( "JournalsInRange", false );
00086 }
00087 setSettingsWidget();
00088 }
00089
00090 void CalPrintJournal::saveConfig()
00091 {
00092 kdDebug(5850) << "CalPrintJournal::saveConfig()" << endl;
00093
00094 readSettingsWidget();
00095 if ( mConfig ) {
00096 mConfig->writeEntry( "JournalsInRange", mUseDateRange );
00097 }
00098 }
00099
00100 void CalPrintJournal::setDateRange( const QDate& from, const QDate& to )
00101 {
00102 CalPrintPluginBase::setDateRange( from, to );
00103 CalPrintJournalConfig_Base *cfg =
00104 dynamic_cast<CalPrintJournalConfig_Base*>( mConfigWidget );
00105 if ( cfg ) {
00106 cfg->mFromDate->setDate( from );
00107 cfg->mToDate->setDate( to );
00108 }
00109 }
00110
00111 void CalPrintJournal::print( QPainter &p, int width, int height )
00112 {
00113 int x=0, y=0;
00114 Journal::List journals( mCalendar->journals() );
00115 if ( mUseDateRange ) {
00116 Journal::List allJournals = journals;
00117 journals.clear();
00118 Journal::List::Iterator it = allJournals.begin();
00119 for ( ; it != allJournals.end(); ++it ) {
00120 QDate dt = (*it)->dtStart().date();
00121 if ( mFromDate <= dt && dt <= mToDate ) {
00122 journals.append( *it );
00123 }
00124 }
00125 }
00126
00127 mHelper->drawHeader( p, i18n("Journal entries"), QDate(), QDate(), 0, 0, width, mHelper->mHeaderHeight/2 );
00128 y = mHelper->mHeaderHeight/2 + 15;
00129
00130 Journal::List::Iterator it = journals.begin();
00131 for ( ; it != journals.end(); ++it ) {
00132 mHelper->drawJournal( *it, p, x, y, width, height );
00133 }
00134 }
00135
00136 #endif
|