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.