27 #ifndef KORG_CALENDARVIEW_H
28 #define KORG_CALENDARVIEW_H
33 #include <KCalCore/Incidence>
34 #include <KCalCore/Visitor>
35 #include <KCalCore/ScheduleMessage>
37 #include <akonadi/calendar/itiphandler.h>
39 #include <calendarsupport/messagewidget.h>
51 class HTMLExportSettings;
54 namespace CalendarSupport {
56 class IncidenceViewer;
59 namespace IncidenceEditorNG {
60 class IncidenceDialog;
65 class IncidenceChanger;
66 class CalendarClipboard;
121 return incidence->accept( *
this, incidence );
128 void setCalendar(
const Akonadi::ETMCalendar::Ptr & );
129 Akonadi::ETMCalendar::Ptr calendar()
const;
131 void showMessage(
const QString &message, KMessageWidget::MessageType);
133 Akonadi::History *history()
const;
152 void updateHighlightModes();
171 Akonadi::Item currentSelection();
177 Akonadi::Item selectedIncidence();
182 bool isFiltered()
const;
187 QString currentFilterName()
const;
193 void configChanged();
199 void modifiedChanged(
bool );
202 void readOnlyChanged(
bool );
205 void changeNavStringPrev(
const QString & );
206 void changeNavStringNext(
const QString & );
209 void organizerEventsSelected(
bool );
211 void groupEventsSelected(
bool );
216 void incidenceSelected(
const Akonadi::Item &incidence,
const QDate &date );
219 void todoSelected(
bool );
220 void subtodoSelected(
bool );
224 void dayPassed(
const QDate & );
230 void pasteEnabled(
bool );
232 void statusMessage(
const QString & );
234 void calendarViewExpanded(
bool );
237 void autoArchivingSettingsModified();
239 void newIncidenceChanger( Akonadi::IncidenceChanger * );
240 void exportHTML( KOrg::HTMLExportSettings * );
243 void filterChanged();
251 void handleIncidenceCreated(
const Akonadi::Item &item);
258 bool saveCalendar(
const QString &filename );
261 void archiveCalendar();
263 void newEvent(
const QDate & );
275 void newEvent(
const QDateTime &startDt );
283 void newEvent(
const QString &summary,
288 bool inlineAttachment=
false );
289 void newFloatingEvent();
293 void showIncidence(
const Akonadi::Item &item );
294 bool showIncidence( Akonadi::Item::Id
id );
295 void showIncidence();
302 void showIncidenceContext(
const Akonadi::Item &incidence );
303 bool showIncidenceContext( Akonadi::Item::Id
id );
306 bool editIncidence(
const Akonadi::Item &item,
bool isCounter =
false );
307 bool editIncidence( Akonadi::Item::Id
id );
308 void editIncidence();
317 bool deleteIncidence(
const Akonadi::Item &item,
bool force=
false );
318 bool deleteIncidence( Akonadi::Item::Id
id,
bool force=
false );
319 void deleteIncidence();
329 bool addIncidence(
const QString &ical );
330 bool addIncidence(
const KCalCore::Incidence::Ptr &incidence );
335 void cutIncidence(
const Akonadi::Item & );
340 void copyIncidence(
const Akonadi::Item & );
345 void pasteIncidence();
348 void deleteSubTodosIncidence (
const Akonadi::Item &todo );
355 void deleteTodoIncidence (
const Akonadi::Item &todo,
bool force=
false );
361 void newTodo(
const QDate &date );
364 void newTodo(
const Akonadi::Collection &collection );
370 void newSubTodo(
const Akonadi::Item &todo );
373 void newSubTodo(
const Akonadi::Collection &collection );
379 bool inlineAttachment=
false );
382 void newJournal(
const QDate &date );
384 void newJournal(
const Akonadi::Collection &collection );
386 void configureCurrentView();
388 void toggleAlarm(
const Akonadi::Item &incidence );
389 void toggleTodoCompleted(
const Akonadi::Item &incidence );
390 void copyIncidenceToResource(
const Akonadi::Item &incidence,
const Akonadi::Collection &col );
391 void moveIncidenceToResource(
const Akonadi::Item &incidence,
const Akonadi::Collection &col );
392 void dissociateOccurrences(
const Akonadi::Item &incidence,
const QDate &date );
398 void checkClipboard();
409 void writeSettings();
412 void readFilterSettings( KConfig *config );
415 void writeFilterSettings( KConfig *config );
419 void changeIncidenceDisplay(
const Akonadi::Item &incidence,
420 Akonadi::IncidenceChanger::ChangeType );
422 void slotCreateFinished(
int changeId,
423 const Akonadi::Item &item,
424 Akonadi::IncidenceChanger::ResultCode resultCode,
427 void slotModifyFinished(
int changeId,
428 const Akonadi::Item &item,
429 Akonadi::IncidenceChanger::ResultCode resultCode,
432 void slotDeleteFinished(
int changeId,
434 Akonadi::IncidenceChanger::ResultCode resultCode,
437 void startMultiModify(
const QString &text );
438 void endMultiModify();
440 void updateView(
const QDate &start,
const QDate &end,
441 const QDate &preferredMonth,
const bool updateTodos=
true );
444 void updateUnmanagedViews();
455 void onCutFinished();
471 void exportICalendar();
474 void exportVCalendar();
477 void appointment_show();
483 void appointment_edit();
489 void appointment_delete();
497 bool incidence_unsub(
const Akonadi::Item &item );
500 bool makeSubTodosIndependent( );
505 bool makeChildrenIndependent(
const Akonadi::Item &item );
508 void takeOverEvent();
511 bool isReadOnly()
const;
516 void setReadOnly(
bool readOnly=
true );
518 void eventUpdated(
const Akonadi::Item &incidence );
521 void schedule_publish(
const Akonadi::Item &incidence=Akonadi::Item() );
522 void schedule_request(
const Akonadi::Item &incidence=Akonadi::Item() );
523 void schedule_refresh(
const Akonadi::Item &incidence=Akonadi::Item() );
524 void schedule_cancel(
const Akonadi::Item &incidence=Akonadi::Item() );
525 void schedule_add(
const Akonadi::Item &incidence=Akonadi::Item() );
526 void schedule_reply(
const Akonadi::Item &incidence=Akonadi::Item() );
527 void schedule_counter(
const Akonadi::Item &incidence=Akonadi::Item() );
528 void schedule_declinecounter(
const Akonadi::Item &incidence=Akonadi::Item() );
529 void schedule_forward(
const Akonadi::Item &incidence=Akonadi::Item() );
530 void mailFreeBusy(
int daysToPublish=30 );
531 void uploadFreeBusy();
533 void openAddressbook();
541 void showDateNavigator(
bool );
542 void showTodoView(
bool );
543 void showEventViewer(
bool );
546 void goDate(
const QDate &date );
549 void showDate(
const QDate &date );
560 void showLeftFrame(
bool show=
true );
562 void dialogClosing(
const Akonadi::Item &incidence );
564 void processMainViewSelection(
const Akonadi::Item &incidence,
const QDate &date );
565 void processTodoListSelection(
const Akonadi::Item &incidence,
const QDate &date );
567 void processIncidenceSelection(
const Akonadi::Item &incidence,
const QDate &date );
569 void purgeCompleted();
573 void showErrorMessage(
const QString & );
574 void schedule( KCalCore::iTIPMethod,
const Akonadi::Item &incidence );
575 void addIncidenceOn(
const Akonadi::Item &incidence,
const QDate & );
576 void moveIncidenceTo(
const Akonadi::Item &incidence,
const QDate & );
577 void filterActivated(
int filterNum );
579 void resourcesChanged();
590 void selectWeek(
const QDate &week,
const QDate &preferredMonth );
598 void changeFullView(
bool fullView );
606 void showDates(
const KCalCore::DateList &,
const QDate &preferredMonth =
QDate() );
609 int msgCalModified();
614 void adaptNavigationUnits();
622 QDate activeIncidenceDate();
634 QDate activeDate(
bool fallbackToToday =
false );
637 int msgItemDelete(
const Akonadi::Item &incidence );
639 Akonadi::Item selectedTodo();
640 IncidenceEditorNG::IncidenceDialog *incidenceDialog(
const Akonadi::Item &);
642 void warningChangeFailed(
const Akonadi::Item & );
643 void checkForFilteredChange(
const Akonadi::Item &incidence );
650 IncidenceEditorNG::IncidenceDialog *newEventEditor(
const KCalCore::Event::Ptr &event );
655 void onCheckableProxyAboutToToggle(
bool newState );
656 void onCheckableProxyToggled(
bool newState );
657 void onTodosPurged(
bool success,
int numDeleted,
int numIgnored);
661 Akonadi::Collection selectedCollection()
const;
662 Akonadi::Collection::List checkedCollections()
const;
664 void createPrinter();
666 void dissociateOccurrence(
const Akonadi::Item &incidence,
const QDate & ,
bool futureOccurrences);
674 Akonadi::Collection defaultCollection(
681 IncidenceEditorNG::IncidenceDialog *createIncidenceEditor(
682 const Akonadi::Item &item,
const Akonadi::Collection &collection = Akonadi::Collection() );
684 CalendarSupport::CalPrinter *mCalPrinter;
685 Akonadi::TodoPurger *mTodoPurger;
691 CalendarSupport::MessageWidget *mMessageWidget;
701 Akonadi::ETMCalendar::Ptr mCalendar;
706 KVBox *mEventViewerBox;
707 CalendarSupport::IncidenceViewer *mEventViewer;
713 KCalCore::CalFilter *mCurrentFilter;
718 Akonadi::Item mSelectedIncidence;
722 Akonadi::IncidenceChanger *mChanger;
723 Akonadi::ITIPHandler *mITIPHandler;
725 bool mSplitterSizesValid;
726 bool mCreatingEnabled;
728 Akonadi::CalendarClipboard *mCalendarClipboard;
virtual Akonadi::IncidenceChanger * incidenceChanger() const
QStackedWidget * viewStack() const
NavigatorBar * navigatorBar() const
bool act(KCalCore::IncidenceBase::Ptr &incidence, CalendarView *view)
KODialogManager * dialogManager() const
This is the main calendar widget.
DateNavigator * dateNavigator() const
CalendarViewExtension(QWidget *parent)
#define KORGANIZERPRIVATE_EXPORT
void slotAutoArchivingSettingsModified()
This class provides an interface for all views being displayed within the main calendar view...
This class provides a view of calendar resources.
QWidget * leftFrame() const
This class controls date navigation.
A KCheckableProxyModel that emits a signal before and after toggling.
This class manages the views of the calendar.
interface for main calendar view widget
KOViewManager * viewManager() const
This class manages the dialogs used by the calendar view.