25 #ifndef CALENDARVIEW_H
26 #define CALENDARVIEW_H
29 #include <tqptrlist.h>
32 #include <korganizer/koeventviewer.h>
33 #include <libkcal/scheduler.h>
34 #include <tdemacros.h>
36 #include "koglobals.h"
37 #include "interfaces/korganizer/calendarviewbase.h"
46 class DateNavigatorContainer;
53 namespace KOrg {
class History;
class IncidenceChangerBase; }
54 class HTMLExportSettings;
59 class CalendarViewExtension :
public TQWidget
62 CalendarViewExtension( TQWidget *parent,
const char *name = 0 )
63 : TQWidget( parent, name ) {}
68 virtual CalendarViewExtension *create( TQWidget *parent ) = 0;
92 CalendarView( TQWidget *parent = 0,
const char *name = 0 );
98 CalendarViewVisitor() : mView( 0 ) {}
102 return incidence->
accept( *
this );
108 class CanDeleteIncidenceVisitor :
public CalendarViewVisitor
112 bool visit(
Todo *todo ) {
return mView->deleteTodo( todo ); }
113 bool visit(
Journal *journal ) {
return mView->deleteJournal( journal ); }
119 TQPair<ResourceCalendar *, TQString> viewSubResourceCalendar();
121 KOrg::History *history()
const {
return mHistory; }
126 TQWidgetStack *viewStack()
const {
return mRightFrame; }
127 TQWidget *leftFrame()
const {
return mLeftFrame; }
128 NavigatorBar *navigatorBar()
const {
return mNavigatorBar; }
129 DateNavigator *dateNavigator()
const {
return mDateNavigator; }
132 IncidenceChangerBase *incidenceChanger()
const {
return mChanger; }
145 void addExtension( CalendarViewExtension::Factory * );
153 TQString currentFilterName()
const;
177 void changeNavStringNext(
const TQString & );
191 void subtodoSelected(
bool );
212 void calendarViewExpanded(
bool );
217 void newIncidenceChanger( IncidenceChangerBase* );
218 void exportHTML( HTMLExportSettings* );
220 void newFilterListSignal(
const TQStringList & );
221 void selectFilterSignal(
int );
222 void filterChanged();
227 void updateConfig(
const TQCString& );
230 void updateCategories();
238 bool openCalendar(
const TQString &filename,
bool merge =
false );
244 bool saveCalendar(
const TQString &filename );
250 void closeCalendar();
253 void archiveCalendar();
255 void showIncidence();
256 void editIncidence();
257 bool editIncidence(
const TQString &uid );
258 bool editIncidence(
const TQString &uid,
const TQDate &date );
259 void deleteIncidence();
269 bool addIncidence(
const TQString &ical );
280 const TQDate &startDt );
282 const TQDateTime &startDt );
284 const TQDateTime &startDt,
const TQDateTime &EndDt,
285 bool allDay =
false );
291 const TQString &summary,
292 const TQString &description = TQString(),
293 const TQStringList &attachment = TQStringList(),
294 const TQStringList &attendees = TQStringList(),
295 const TQStringList &attachmentMimetypes = TQStringList(),
296 bool inlineAttachment =
false );
299 void showIncidence(
Incidence *,
const TQDate & );
301 bool editIncidence(
Incidence *incidence,
const TQDate &date,
bool isCounter =
false );
307 void deleteIncidence(
Incidence *,
bool force =
false );
319 void pasteIncidence();
322 void deleteSubTodosIncidence (
Todo *todo );
328 void deleteTodoIncidence (
Todo *todo,
bool force =
false );
341 bool deleteIncidence(
const TQString &uid,
bool force =
false );
348 const TQDate &date );
352 void newSubTodo(
Todo * );
355 const TQString &summary,
356 const TQString &description = TQString(),
357 const TQStringList &attachments = TQStringList(),
358 const TQStringList &attendees = TQStringList(),
359 const TQStringList &attachmentMimetypes = TQStringList(),
360 bool inlineAttachment =
false,
bool createTask =
false );
365 const TQDate &date );
367 const TQString &text,
const TQDate &date = TQDate() );
370 void dissociateOccurrence(
Incidence *,
const TQDate & );
371 void dissociateFutureOccurrence(
Incidence *,
const TQDate & );
378 void checkClipboard();
389 void writeSettings();
392 void readFilterSettings( TDEConfig *config );
395 void writeFilterSettings( TDEConfig *config );
399 void changeIncidenceDisplay(
Incidence *,
int );
403 KOGlobals::WhatChanged modification );
404 void incidenceToBeDeleted(
Incidence *incidence );
406 void startMultiModify(
const TQString &text );
407 void endMultiModify();
411 void updateView(
const TQDate &start,
const TQDate &end );
414 void updateUnmanagedViews();
438 void exportICalendar();
441 void exportVCalendar();
444 void appointment_show();
450 void appointment_edit();
455 void appointment_delete();
466 bool makeSubTodosIndependent ( );
471 bool makeChildrenIndependent(
Incidence *inc );
474 void takeOverEvent();
477 void takeOverCalendar();
482 void setModified(
bool modified =
true );
487 void setReadOnly(
bool readOnly =
true );
492 void schedule_publish(
Incidence *incidence = 0 );
493 void schedule_request(
Incidence *incidence = 0 );
494 void schedule_refresh(
Incidence *incidence = 0 );
495 void schedule_cancel(
Incidence *incidence = 0 );
496 void schedule_add(
Incidence *incidence = 0 );
497 void schedule_reply(
Incidence *incidence = 0 );
498 void schedule_counter(
Incidence *incidence = 0 );
499 void schedule_declinecounter(
Incidence *incidence = 0 );
500 void schedule_forward(
Incidence *incidence = 0 );
501 void mailFreeBusy(
int daysToPublish = 30 );
502 void uploadFreeBusy();
504 void openAddressbook();
512 void showDateNavigator(
bool );
513 void showTodoView(
bool );
514 void showEventViewer(
bool );
517 void goDate(
const TQDate& date );
520 void showDate(
const TQDate &date );
532 void showLeftFrame(
bool show =
true );
536 void processMainViewSelection(
Incidence *incidence,
const TQDate &date );
537 void processTodoListSelection(
Incidence *incidence,
const TQDate &date );
539 void processIncidenceSelection(
Incidence *incidence,
const TQDate &date );
541 void purgeCompleted();
543 void slotAutoArchivingSettingsModified() { emit autoArchivingSettingsModified(); }
545 void showErrorMessage(
const TQString & );
547 void addIncidenceOn(
Incidence *,
const TQDate & );
548 void moveIncidenceTo(
Incidence *,
const TQDate & );
549 void filterActivated(
int filterNum );
551 void resourcesChanged();
559 void selectWeek(
const TQDate & );
566 void showDates(
const KCal::DateList &,
const TQDate &preferredMonth = TQDate() );
571 int msgCalModified();
576 void adaptNavigationUnits();
584 TQDate activeIncidenceDate();
596 TQDate activeDate(
bool fallbackToToday =
false );
620 KOGlobals::OccurrenceAction userAction,
621 KOGlobals::WhichOccurrences &chosenOption,
622 const TQDate &itemDate = TQDate(),
623 const bool commitToCalendar =
false );
626 void setIncidenceChanger( IncidenceChangerBase *changer );
629 int msgItemDelete(
Incidence *incidence );
631 Todo *selectedTodo();
634 void checkForFilteredChange(
Incidence *incidence );
638 void dateTimesForNewEvent( TQDateTime &startDt, TQDateTime &endDt,
bool &allDay );
640 const TQDateTime &startDtParam = TQDateTime(),
641 const TQDateTime &endDtParam = TQDateTime() ,
642 bool allDayParam =
false );
653 Incidence *incToSendToClipboard(
bool cut );
655 void calendarModified(
bool,
Calendar * );
659 bool purgeCompletedSubTodos(
Todo* todo,
bool ¬AllPurged );
664 void getIncidenceHierarchy(
Incidence *inc, Incidence::List &incidences );
666 KOrg::History *mHistory;
669 TQSplitter *mLeftSplitter;
670 TQWidget *mLeftFrame;
671 TQWidgetStack *mRightFrame;
675 NavigatorBar *mNavigatorBar;
677 DateNavigatorContainer *mDateNavigatorContainer;
680 TQPtrList<CalendarViewExtension> mExtensions;
685 DateChecker *mDateChecker;
692 TQPtrList<CalFilter> mFilters;
703 TQMap<Incidence*,KOIncidenceEditor*> mDialogList;
705 KOrg::IncidenceChangerBase *mChanger;
This is the main calendar widget.
void groupEventsSelected(bool)
Emitted when state of events selection has changed and user is attendee.
void statusMessage(const TQString &)
Send status message, which can e.g.
bool deleteTodo(Todo *)
Check if deleting the todo is allowed.
void dayPassed(const TQDate &)
Emitted, when a day changed (i.e.
void pasteEnabled(bool)
Emitted, when clipboard content changes.
bool deleteEvent(Event *)
Check if deleting the supplied event is allowed.
void modifiedChanged(bool)
Emitted when state of modified flag changes.
void cancelAttendees(Incidence *)
Attendees were removed from this incidence.
void organizerEventsSelected(bool)
Emitted when state of events selection has changed and user is organizer.
bool deleteJournal(Journal *)
Check if deleting the supplied journal is allowed.
void incidenceSelected(Incidence *incidence, const TQDate &date)
Emitted when an incidence gets selected.
void closed(TQWidget *)
emitted right before we die
void configChanged()
when change is made to options dialog, the topwidget will catch this and emit this signal which notif...
void changeNavStringPrev(const TQString &)
Emitted when the unit of navigation changes.
void readOnlyChanged(bool)
Emitted when state of read-only flag changes.
void categoriesChanged()
Emitted when the categories were updated, and thus the categories editor dialog needs to reload the l...
void closingDown()
emitted when the topwidget is closing down, so that any attached child windows can also close.
void todoSelected(bool)
Emitted, when a todoitem is selected or deselected.
void autoArchivingSettingsModified()
Emitted when auto-archiving options were modified.
This class controls date navigation.
virtual bool accept(Visitor &)
This class manages the dialogs used by the calendar view.
This class provides a dialog for editing an event.
Viewer widget for events.
This is the base class for the calendar component editors.
This class provides a multi-column list view of todo events.
This class manages the views of the calendar.
This class provides an interface for all views being displayed within the main calendar view.
interface for main calendar view widget
This class provides a view of calendar resources.
bool view(TQWidget *parent, Attachment *attachment)