korganizer

kogroupware.h

00001 /*
00002   This file is part of the Groupware/KOrganizer integration.
00003 
00004   Requires the Qt and KDE widget libraries, available at no cost at
00005   http://www.trolltech.com and http://www.kde.org respectively
00006 
00007   Copyright (c) 2002-2004 Klarälvdalens Datakonsult AB
00008         <info@klaralvdalens-datakonsult.se>
00009 
00010   This program is free software; you can redistribute it and/or modify
00011   it under the terms of the GNU General Public License as published by
00012   the Free Software Foundation; either version 2 of the License, or
00013   (at your option) any later version.
00014 
00015   This program is distributed in the hope that it will be useful,
00016   but WITHOUT ANY WARRANTY; without even the implied warranty of
00017   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00018   GNU General Public License for more details.
00019 
00020   You should have received a copy of the GNU General Public License
00021   along with this program; if not, write to the Free Software
00022   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
00023   MA  02110-1301, USA.
00024 
00025   In addition, as a special exception, the copyright holders give
00026   permission to link the code of this program with any edition of
00027   the Qt library by Trolltech AS, Norway (or with modified versions
00028   of Qt that use the same license as Qt), and distribute linked
00029   combinations including the two.  You must obey the GNU General
00030   Public License in all respects for all of the code used other than
00031   Qt.  If you modify this file, you may extend this exception to
00032   your version of the file, but you are not obligated to do so.  If
00033   you do not wish to do so, delete this exception statement from
00034   your version.
00035 */
00036 
00037 #ifndef KOGROUPWARE_H
00038 #define KOGROUPWARE_H
00039 
00040 #include <libkcal/calendarresources.h>
00041 #include <libkcal/icalformat.h>
00042 #include <libkcal/scheduler.h>
00043 #include <qstring.h>
00044 
00045 #include <kio/job.h>
00046 
00047 using namespace KCal;
00048 
00049 namespace KCal {
00050 class Calendar;
00051 class Event;
00052 }
00053 class CalendarView;
00054 class FreeBusyManager;
00055 
00056 namespace KOrg {
00057 class IncidenceChangerBase;
00058 }
00059 
00060 using namespace KOrg;
00061 
00062 class KOGroupware : public QObject
00063 {
00064     Q_OBJECT
00065   public:
00066     static KOGroupware* create( CalendarView*, KCal::CalendarResources* );
00067     static KOGroupware* instance();
00068 
00069     FreeBusyManager *freeBusyManager();
00070 
00075     bool sendICalMessage( QWidget* parent, KCal::Scheduler::Method method,
00076                           Incidence* incidence, bool isDeleting = false,
00077                           bool statusChanged = false );
00078 
00084     void sendCounterProposal( KCal::Calendar* calendar, KCal::Event* oldEvent, KCal::Event *newEvent ) const;
00085 
00086     // THIS IS THE ACTUAL KM/KO API
00087     enum EventState { Accepted, ConditionallyAccepted, Declined, Request };
00088 
00089     // convert the TNEF attachment to a vCard or iCalendar part
00090     QString msTNEFToVPart( const QByteArray& tnef );
00091 
00092     // DoNoNotify is a flag indicating that the user does not want
00093     // updates sent back to the organizer.
00094     void setDoNotNotify( bool notify ) { mDoNotNotify = notify; }
00095     bool doNotNotify() { return mDoNotNotify; }
00096 
00097   private slots:
00099     void incomingDirChanged( const QString& path );
00100 
00102     void slotViewNewIncidenceChanger( IncidenceChangerBase* changer );
00103 
00104     void initialCheckForChanges();
00105   protected:
00106     KOGroupware( CalendarView*, KCal::CalendarResources* );
00107 
00108   private:
00109     static KOGroupware *mInstance;
00110     KCal::ICalFormat mFormat;
00111     CalendarView *mView;
00112     KCal::CalendarResources *mCalendar;
00113     static FreeBusyManager *mFreeBusyManager;
00114     bool mDoNotNotify;
00115 };
00116 
00117 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys