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 "koglobals.h"
00041 
00042 #include <libkcal/calendarresources.h>
00043 #include <libkcal/icalformat.h>
00044 #include <libkcal/scheduler.h>
00045 
00046 #include <kio/job.h>
00047 
00048 #include <qstring.h>
00049 
00050 using namespace KCal;
00051 
00052 namespace KCal {
00053 class Calendar;
00054 class Event;
00055 }
00056 class CalendarView;
00057 class FreeBusyManager;
00058 
00059 namespace KOrg {
00060 class IncidenceChangerBase;
00061 }
00062 
00063 using namespace KOrg;
00064 
00065 class KOGroupware : public QObject
00066 {
00067     Q_OBJECT
00068   public:
00069     static KOGroupware* create( CalendarView*, KCal::CalendarResources* );
00070     static KOGroupware* instance();
00071 
00072     FreeBusyManager *freeBusyManager();
00073 
00078     bool sendICalMessage( QWidget *parent, KCal::Scheduler::Method method,
00079                           Incidence* incidence,
00080                           KOGlobals::HowChanged action,
00081                           bool attendeeStatusChanged );
00082 
00088     void sendCounterProposal( KCal::Calendar* calendar, KCal::Event* oldEvent, KCal::Event *newEvent ) const;
00089 
00090     // convert the TNEF attachment to a vCard or iCalendar part
00091     QString msTNEFToVPart( const QByteArray& tnef );
00092 
00093     // DoNotNotify is a flag indicating that the user does not want
00094     // updates sent back to the organizer.
00095     void setDoNotNotify( bool notify ) { mDoNotNotify = notify; }
00096     bool doNotNotify() { return mDoNotNotify; }
00097 
00098   private slots:
00100     void incomingDirChanged( const QString& path );
00101 
00103     void slotViewNewIncidenceChanger( IncidenceChangerBase* changer );
00104 
00105     void initialCheckForChanges();
00106   protected:
00107     KOGroupware( CalendarView*, KCal::CalendarResources* );
00108 
00109   private:
00110     static KOGroupware *mInstance;
00111     KCal::ICalFormat mFormat;
00112     CalendarView *mView;
00113     KCal::CalendarResources *mCalendar;
00114     static FreeBusyManager *mFreeBusyManager;
00115     bool mDoNotNotify;
00116 };
00117 
00118 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys