korganizer
CalPrintPluginBase Class Reference
#include <calprintpluginbase.h>
Inheritance diagram for CalPrintPluginBase:

Detailed Description
Base class for KOrganizer printing classes.Each sub class represents one calendar print format.
Definition at line 62 of file calprintpluginbase.h.
Public Types | |
enum | DisplayFlags { Text = 0x0001, TimeBoxes = 0x0002 } |
Public Member Functions | |
CalPrintPluginBase () | |
virtual | ~CalPrintPluginBase () |
virtual QWidget * | createConfigWidget (QWidget *) |
virtual void | print (QPainter &p, int width, int height)=0 |
virtual void | doPrint (KPrinter *printer) |
virtual void | loadConfig ()=0 |
virtual void | saveConfig ()=0 |
void | doLoadConfig () |
void | doSaveConfig () |
void | setKOrgCoreHelper (KOrg::CoreHelper *helper) |
bool | useColors () const |
void | setUseColors (bool useColors) |
QColor | categoryBgColor (Incidence *incidence) |
QColor | textColor (const QColor &color) |
QTime | dayStart () |
bool | isWorkingDay (const QDate &dt) |
QString | holidayString (const QDate &dt) |
Event * | holiday (const QDate &dt) |
void | setCategoryColors (QPainter &p, Incidence *incidence) |
KPrinter::Orientation | orientation () const |
int | headerHeight () const |
void | setHeaderHeight (const int height) |
int | subHeaderHeight () const |
void | setSubHeaderHeight (const int height) |
int | margin () const |
void | setMargin (const int margin) |
int | padding () const |
void | setPadding (const int margin) |
int | borderWidth () const |
void | setBorderWidth (const int border) |
const KCalendarSystem * | calendarSystem () const |
void | setCalendarSystem (const KCalendarSystem *calsys) |
void | printEventString (QPainter &p, const QRect &box, const QString &str, int flags=-1) |
void | showEventBox (QPainter &p, const QRect &box, Incidence *incidence, const QString &str, int flags=-1) |
void | drawSubHeaderBox (QPainter &p, const QString &str, const QRect &box) |
void | drawVerticalBox (QPainter &p, const QRect &box, const QString &str) |
int | drawBoxWithCaption (QPainter &p, const QRect &box, const QString &caption, const QString &contents, bool sameLine, bool expand, const QFont &captionFont, const QFont &textFont) |
int | drawHeader (QPainter &p, QString title, const QDate &month1, const QDate &month2, const QRect &box, bool expand=false) |
void | drawSmallMonth (QPainter &p, const QDate &qd, const QRect &box) |
void | drawDaysOfWeek (QPainter &p, const QDate &fromDate, const QDate &toDate, const QRect &box) |
void | drawDaysOfWeekBox (QPainter &p, const QDate &qd, const QRect &box) |
void | drawTimeLine (QPainter &p, const QTime &fromTime, const QTime &toTime, const QRect &box) |
int | drawAllDayBox (QPainter &p, Event::List &eventList, const QDate &qd, bool expandable, const QRect &box) |
void | drawAgendaDayBox (QPainter &p, Event::List &eventList, const QDate &qd, bool expandable, QTime &fromTime, QTime &toTime, const QRect &box) |
void | drawAgendaItem (PrintCellItem *item, QPainter &p, const QDateTime &startPrintDate, const QDateTime &endPrintDate, float minlen, const QRect &box) |
void | drawDayBox (QPainter &p, const QDate &qd, const QRect &box, bool fullDate=false, bool printRecurDaily=true, bool printRecurWeekly=true) |
void | drawWeek (QPainter &p, const QDate &qd, const QRect &box) |
void | drawTimeTable (QPainter &p, const QDate &fromDate, const QDate &toDate, QTime &fromTime, QTime &toTime, const QRect &box) |
void | drawMonthTable (QPainter &p, const QDate &qd, bool weeknumbers, bool recurDaily, bool recurWeekly, const QRect &box) |
void | drawMonth (QPainter &p, const QDate &dt, const QRect &box, int maxdays=-1, int subDailyFlags=TimeBoxes, int holidaysFlags=Text) |
void | drawTodo (int &count, Todo *todo, QPainter &p, TodoSortField sortField, SortDirection sortDir, bool connectSubTodos, bool strikeoutCompleted, bool desc, int posPriority, int posSummary, int posDueDt, int posPercentComplete, int level, int x, int &y, int width, int pageHeight, const Todo::List &todoList, TodoParentStart *r=0) |
void | drawJournal (Journal *journal, QPainter &p, int x, int &y, int width, int pageHeight) |
void | drawJournalField (QPainter &p, QString field, QString text, int x, int &y, int width, int pageHeight) |
void | drawSplitHeaderRight (QPainter &p, const QDate &fd, const QDate &td, const QDate &cd, int width, int height) |
Static Public Member Functions | |
static int | weekdayColumn (int weekday) |
static void | drawBox (QPainter &p, int linewidth, const QRect &rect) |
static void | drawShadedBox (QPainter &p, int linewidth, const QBrush &brush, const QRect &rect) |
Protected Member Functions | |
void | drawIncidence (QPainter &p, const QRect &dayBox, const QString &time, const QString &summary, int &textY) |
Protected Attributes | |
bool | mUseColors |
int | mHeaderHeight |
int | mSubHeaderHeight |
int | mMargin |
int | mPadding |
int | mBorder |
const KCalendarSystem * | mCalSys |
Constructor & Destructor Documentation
CalPrintPluginBase::CalPrintPluginBase | ( | ) |
Member Function Documentation
QWidget * CalPrintPluginBase::createConfigWidget | ( | QWidget * | ) | [virtual] |
Returns widget for configuring the print format.
Implements KOrg::PrintPlugin.
Reimplemented in CalPrintJournal, CalPrintList, CalPrintWhatsNext, CalPrintYear, CalPrintIncidence, CalPrintDay, CalPrintWeek, CalPrintMonth, and CalPrintTodos.
Definition at line 121 of file calprintpluginbase.cpp.
virtual void CalPrintPluginBase::print | ( | QPainter & | p, | |
int | width, | |||
int | height | |||
) | [pure virtual] |
Actually do the printing.
- Parameters:
-
p QPainter the print result is painted to width Width of printable area height Height of printable area
Implemented in CalPrintJournal, CalPrintList, CalPrintWhatsNext, CalPrintYear, CalPrintIncidence, CalPrintDay, CalPrintWeek, CalPrintMonth, and CalPrintTodos.
void CalPrintPluginBase::doPrint | ( | KPrinter * | printer | ) | [virtual] |
Start printing.
Implements KOrg::PrintPlugin.
Definition at line 142 of file calprintpluginbase.cpp.
virtual void CalPrintPluginBase::loadConfig | ( | ) | [pure virtual] |
Load print format configuration from config file.
Implemented in CalPrintJournal, CalPrintList, CalPrintWhatsNext, CalPrintYear, CalPrintIncidence, CalPrintDay, CalPrintWeek, CalPrintMonth, and CalPrintTodos.
virtual void CalPrintPluginBase::saveConfig | ( | ) | [pure virtual] |
Write print format configuration to config file.
Implemented in CalPrintJournal, CalPrintList, CalPrintWhatsNext, CalPrintYear, CalPrintIncidence, CalPrintDay, CalPrintWeek, CalPrintMonth, and CalPrintTodos.
void CalPrintPluginBase::doLoadConfig | ( | ) | [virtual] |
Load complete config.
This also calls loadConfig() of the derived class.
Reimplemented from KOrg::PrintPlugin.
Definition at line 173 of file calprintpluginbase.cpp.
void CalPrintPluginBase::doSaveConfig | ( | ) | [virtual] |
Save complete config.
This also calls saveConfig() of the derived class.
Reimplemented from KOrg::PrintPlugin.
Definition at line 189 of file calprintpluginbase.cpp.
void CalPrintPluginBase::setKOrgCoreHelper | ( | KOrg::CoreHelper * | helper | ) | [virtual] |
HELPER FUNCTIONS.
Reimplemented from KOrg::PrintPlugin.
Definition at line 206 of file calprintpluginbase.cpp.
QColor CalPrintPluginBase::categoryBgColor | ( | Incidence * | incidence | ) |
Helper functions to hide the KOrg::CoreHelper.
Definition at line 246 of file calprintpluginbase.cpp.
int CalPrintPluginBase::weekdayColumn | ( | int | weekday | ) | [static] |
Determines the column of the given weekday ( 1=Monday, 7=Sunday ), taking the start of the week setting into account as given in kcontrol.
- Parameters:
-
weekday Index of the weekday
Definition at line 1561 of file calprintpluginbase.cpp.
int CalPrintPluginBase::headerHeight | ( | ) | const |
Returns the height of the page header.
If the height was explicitly set using setHeaderHeight, that value is returned, otherwise a default value based on the printer orientation.
- Returns:
- height of the page header of the printout
Definition at line 294 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawBox | ( | QPainter & | p, | |
int | linewidth, | |||
const QRect & | rect | |||
) | [static] |
Draw a box with given width at the given coordinates.
- Parameters:
-
p The printer to be used linewidth The border width of the box rect The rectangle of the box
Definition at line 347 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawShadedBox | ( | QPainter & | p, | |
int | linewidth, | |||
const QBrush & | brush, | |||
const QRect & | rect | |||
) | [static] |
Draw a shaded box with given width at the given coordinates.
- Parameters:
-
p The printer to be used linewidth The border width of the box brush The brush to fill the box rect The rectangle of the box
Definition at line 357 of file calprintpluginbase.cpp.
void CalPrintPluginBase::printEventString | ( | QPainter & | p, | |
const QRect & | box, | |||
const QString & | str, | |||
int | flags = -1 | |||
) |
Print the given string (event summary) in the given rectangle.
Margins and justification (centered or not) are automatically adjusted.
- Parameters:
-
p QPainter of the printout box Coordinates of the surrounding event box str The text to be printed in the box
Definition at line 365 of file calprintpluginbase.cpp.
void CalPrintPluginBase::showEventBox | ( | QPainter & | p, | |
const QRect & | box, | |||
Incidence * | incidence, | |||
const QString & | str, | |||
int | flags = -1 | |||
) |
Print the box for the given event with the given string.
- Parameters:
-
p QPainer of the printout box Coordinates of the event's box incidence The incidence (if available), from which the category color will be deduced, if applicable. str The string to print inside the box
Definition at line 373 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawSubHeaderBox | ( | QPainter & | p, | |
const QString & | str, | |||
const QRect & | box | |||
) |
Draw a subheader box with a shaded background and the given string.
- Parameters:
-
p QPainter of the printout str Text to be printed inside the box box Coordinates of the box
Definition at line 394 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawVerticalBox | ( | QPainter & | p, | |
const QRect & | box, | |||
const QString & | str | |||
) |
Draw an event box with vertical text.
- Parameters:
-
p QPainter of the printout box Coordinates of the box str ext to be printed inside the box
Definition at line 404 of file calprintpluginbase.cpp.
int CalPrintPluginBase::drawBoxWithCaption | ( | QPainter & | p, | |
const QRect & | box, | |||
const QString & | caption, | |||
const QString & | contents, | |||
bool | sameLine, | |||
bool | expand, | |||
const QFont & | captionFont, | |||
const QFont & | textFont | |||
) |
Draw a component box with a heading (printed in bold).
- Parameters:
-
p QPainter of the printout box Coordinates of the box caption Caption string to be printed inside the box contents Normal text contents of the box. If contents.isNull(), then no text will be printed, only the caption. sameLine Whether the contents should start on the same line as the caption (the space below the caption text will be used as indentation in the subsequent lines) or on the next line (no indentation of the contents) expand Whether to expand the box vertically to fit the whole text in it.
- Returns:
- The bottom of the printed box. If expand==true, the bottom of the drawn box is returned, if expand==false, the vertical end of the printed contents inside the box is returned. If you want to print some custom graphics or text below the contents, use the return value as the top-value of your custom contents in that case.
Definition at line 420 of file calprintpluginbase.cpp.
int CalPrintPluginBase::drawHeader | ( | QPainter & | p, | |
QString | title, | |||
const QDate & | month1, | |||
const QDate & | month2, | |||
const QRect & | box, | |||
bool | expand = false | |||
) |
Draw the gray header bar of the printout to the QPainter.
It prints the given text and optionally one or two small month views, as specified by the two QDate. The printed text can also contain a line feed. If month2 is invalid, only the month that contains month1 is printed. E.g. the filofax week view draws just the current month, while the month view draws the previous and the next month.
- Parameters:
-
p QPainter of the printout title The string printed as the title of the page (e.g. the date, date range or todo list title) month1 Date specifying the month for the left one of the small month views in the title bar. If left empty, only month2 will be printed (or none, it that is invalid as well). month2 Date specifying the month for the right one of the small month views in the title bar. If left empty, only month1 will be printed (or none, it that is invalid as well). box coordinates of the title bar expand Whether to expand the box vertically to fit the whole title in it.
- Returns:
- The bottom of the printed box. If expand==false, this is box.bottom, otherwise it is larger than box.bottom and matches the y-coordinate of the surrounding rectangle.
Definition at line 483 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawSmallMonth | ( | QPainter & | p, | |
const QDate & | qd, | |||
const QRect & | box | |||
) |
Draw a small calendar with the days of a month into the given area.
Used for example in the title bar of the sheet.
- Parameters:
-
p QPainter of the printout qd Arbitrary Date within the month to be printed. box coordinates of the small calendar
Definition at line 533 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawDaysOfWeek | ( | QPainter & | p, | |
const QDate & | fromDate, | |||
const QDate & | toDate, | |||
const QRect & | box | |||
) |
Draw a horizontal bar with the weekday names of the given date range in the given area of the painter.
This is used for the weekday-bar on top of the timetable view and the month view.
- Parameters:
-
p QPainter of the printout fromDate First date of the printed dates toDate Last date of the printed dates box coordinates of the box for the days of the week
Definition at line 601 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawDaysOfWeekBox | ( | QPainter & | p, | |
const QDate & | qd, | |||
const QRect & | box | |||
) |
Draw a single weekday name in a box inside the given area of the painter.
This is called in a loop by drawDaysOfWeek.
- Parameters:
-
p QPainter of the printout qd Date of the printed day box coordinates of the weekbox
Definition at line 619 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawTimeLine | ( | QPainter & | p, | |
const QTime & | fromTime, | |||
const QTime & | toTime, | |||
const QRect & | box | |||
) |
Draw a (vertical) time scale from time fromTime to toTime inside the given area of the painter.
Every hour will have a one-pixel line over the whole width, every half-hour the line will only span the left half of the width. This is used in the day and timetable print styles
- Parameters:
-
p QPainter of the printout fromTime Start time of the time range to display toTime End time of the time range to display box coordinates of the timeline
Definition at line 626 of file calprintpluginbase.cpp.
int CalPrintPluginBase::drawAllDayBox | ( | QPainter & | p, | |
Event::List & | eventList, | |||
const QDate & | qd, | |||
bool | expandable, | |||
const QRect & | box | |||
) |
Draw the all-day box for the agenda print view (the box on top which doesn't have a time on the time scale associated).
If expandable is set, height is the cell height of a single cell, and the returned height will be the total height used for the all-day events. If !expandable, only one cell will be used, and multiple events are concatenated using ", ".
- Parameters:
-
p QPainter of the printout eventList The list of all-day events that are supposed to be printed inside this box qd The date of the currently printed day expandable If true, height is the height of one single cell, the printout will use as many cells as events in the list and return the total height needed for all of them. If false, height specifies the total height allowed for all events, and the events are displayed in one cell, with their summaries concatenated by ", ". box coordinates of the all day box.
- Returns:
- The height used for the all-day box.
Definition at line 700 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawAgendaDayBox | ( | QPainter & | p, | |
Event::List & | eventList, | |||
const QDate & | qd, | |||
bool | expandable, | |||
QTime & | fromTime, | |||
QTime & | toTime, | |||
const QRect & | box | |||
) |
Draw the agenda box for the day print style (the box showing all events of that day).
Also draws a grid with half-hour spacing of the grid lines.
- Parameters:
-
p QPainter of the printout eventList The list of the events that are supposed to be printed inside this box qd The date of the currently printed day expandable If true, the start and end times are adjusted to include the whole range of all events of that day, not just of the given time range. The height of the box will not be affected by this (but the height of one hour will be scaled down so that the whole range fits into the box. fromTime and toTime receive the actual time range printed by this function). fromTime Start of the time range to be printed. Might be adjusted to include all events if expandable==true toTime End of the time range to be printed. Might be adjusted to include all events if expandable==true box coordinates of the agenda day box.
Definition at line 753 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawDayBox | ( | QPainter & | p, | |
const QDate & | qd, | |||
const QRect & | box, | |||
bool | fullDate = false , |
|||
bool | printRecurDaily = true , |
|||
bool | printRecurWeekly = true | |||
) |
Draw the box containing a list of all events of the given day (with their times, of course).
Used in the Filofax and the month print style.
- Parameters:
-
p QPainter of the printout qd The date of the currently printed day. All events of the calendar that appear on that day will be printed. box coordinates of the day box. fullDate Whether the title bar of the box should contain the full date string or just a short. printRecurDaily Whether daily recurring incidences should be printed. printRecurWeekly Whether weekly recurring incidences should be printed.
Definition at line 875 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawWeek | ( | QPainter & | p, | |
const QDate & | qd, | |||
const QRect & | box | |||
) |
Draw the week (filofax) table of the week containing the date qd.
The first three days of the week will be shown in the first column (using drawDayBox), the remaining four in the second column, where the last two days of the week (typically Saturday and Sunday) only get half the height of the other day boxes.
- Parameters:
-
p QPainter of the printout qd Arbitrary date within the week to be printed. box coordinates of the week box.
Definition at line 983 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawTimeTable | ( | QPainter & | p, | |
const QDate & | fromDate, | |||
const QDate & | toDate, | |||
QTime & | fromTime, | |||
QTime & | toTime, | |||
const QRect & | box | |||
) |
Draw the timetable view of the given time range from fromDate to toDate.
On the left side the time scale is printed (using drawTimeLine), then each day gets one column (printed using drawAgendaDayBox), and the events are displayed as boxes (like in korganizer's day/week view). The first cell of each column contains the all-day events (using drawAllDayBox with expandable=false). The given time range cannot be expanded to include all events.
- Parameters:
-
p QPainter of the printout fromDate First day to be included in the page toDate Last day to be included in the page fromTime Start time of the displayed time range toTime End time of the displayed time range box coordinates of the time table.
Definition at line 1013 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawMonthTable | ( | QPainter & | p, | |
const QDate & | qd, | |||
bool | weeknumbers, | |||
bool | recurDaily, | |||
bool | recurWeekly, | |||
const QRect & | box | |||
) |
Draw the month table of the month containing the date qd.
Each day gets one box (using drawDayBox) that contains a list of all events on that day. They are arranged in a matrix, with the first column being the first day of the week (so it might display some days of the previous and the next month). Above the matrix there is a bar showing the weekdays (drawn using drawDaysOfWeek).
- Parameters:
-
p QPainter of the printout qd Arbitrary date within the month to be printed. recurDaily Whether daily recurring incidences should be printed. recurWeekly Whether weekly recurring incidences should be printed. weeknumbers Whether the week numbers are printed left of each row of the matrix box coordinates of the month.
Definition at line 1263 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawMonth | ( | QPainter & | p, | |
const QDate & | dt, | |||
const QRect & | box, | |||
int | maxdays = -1 , |
|||
int | subDailyFlags = TimeBoxes , |
|||
int | holidaysFlags = Text | |||
) |
Draw a vertical representation of the month containing the date dt.
Each day gets one line.
- Parameters:
-
p QPainter of the printout dt Arbitrary date within the month to be printed box coordinates of the box reserved for the month maxdays Days to print. If a value of -1 is given, the number of days is deduced from the month. If maxdays is larger than the number of days in the month, the remaining boxes are shaded to indicate they are not days of the month. subDailyFlags Bitfield consisting of DisplayFlags flags to determine how events that do not cross midnight should be printed. holidaysFlags Bitfield consisting of DisplayFlags flags to determine how holidays should be printed.
Definition at line 1076 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawTodo | ( | int & | count, | |
Todo * | todo, | |||
QPainter & | p, | |||
TodoSortField | sortField, | |||
SortDirection | sortDir, | |||
bool | connectSubTodos, | |||
bool | strikeoutCompleted, | |||
bool | desc, | |||
int | posPriority, | |||
int | posSummary, | |||
int | posDueDt, | |||
int | posPercentComplete, | |||
int | level, | |||
int | x, | |||
int & | y, | |||
int | width, | |||
int | pageHeight, | |||
const Todo::List & | todoList, | |||
TodoParentStart * | r = 0 | |||
) |
Draws single to-do and its (intented) sub-to-dos, optionally connects them by a tree-like line, and optionally shows due date, summary, description and priority.
- Parameters:
-
count The number of the currently printed to-do (count will be incremented for each to-do drawn) todo The to-do to be printed. It's sub-to-dos are recursively drawn, so drawTodo should only be called on the to-dos of the highest level. p QPainter of the printout sortField Specifies on which attribute of the todo you want to sort. sortDir Specifies if you want to sort ascending or descending. connectSubTodos Whether sub-to-dos shall be connected with their parent by a line (tree-like). strikeoutCompleted Whether completed to-dos should be printed with strike-out summaries. desc Whether to print the whole description of the to-do (the summary is always printed). posPriority x-coordinate where the priority is supposed to be printed. If <0, no priority will be printed. posSummary x-coordinate where the summary of the to-do is supposed to be printed. posDueDt x-coordinate where the due date is supposed to the be printed. If <0, no due date will be printed. posPercentComplete x-coordinate where the percentage complete is supposed to be printed. If <0, percentage complete will not be printed. level Level of the current to-do in the to-do hierarchy (0 means highest level of printed to-dos, 1 are their sub-to-dos, etc.) x x-coordinate of the upper left coordinate of the first to-do. y y-coordinate of the upper left coordinate of the first to-do. width width of the whole to-do list. pageHeight Total height allowed for the to-do list on a page. If an to-do would be below that line, a new page is started. todoList Contains a list of sub-todos for the specified todo
.r Internal (used when printing sub-to-dos to give information about its parent)
Definition at line 1336 of file calprintpluginbase.cpp.
void CalPrintPluginBase::drawJournal | ( | Journal * | journal, | |
QPainter & | p, | |||
int | x, | |||
int & | y, | |||
int | width, | |||
int | pageHeight | |||
) |
Draws single journal item.
- Parameters:
-
journal The item to be printed. p QPainter of the printout x x-coordinate of the upper left coordinate of the first item y y-coordinate of the upper left coordinate of the first item width width of the whole list pageHeight Total height allowed for the list on a page. If an item would be below that line, a new page is started.
Definition at line 1587 of file calprintpluginbase.cpp.
The documentation for this class was generated from the following files: