korganizer

actionmanager.h
1/*
2 This file is part of KOrganizer.
3
4 Copyright (c) 2002 Mike Pilone <mpilone@slac.com>
5 Copyright (c) 2002 Don Sanders <sanders@kde.org>
6 Copyright (c) 2003,2004 Cornelius Schumacher <schumacher@kde.org>
7 Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
23 As a special exception, permission is given to link this program
24 with any edition of TQt, and distribute the resulting executable,
25 without including the source code for TQt in the source distribution.
26*/
27#ifndef KORG_ACTIONMANAGER_H
28#define KORG_ACTIONMANAGER_H
29
30#include <tqobject.h>
31#include <kurl.h>
32#include <korganizer/part.h>
33#include <tdemacros.h>
34
35#include "kcalendariface.h"
36
37namespace KCal
38{
39 class Calendar;
41 class Incidence;
42 class ResourceCalendar;
43}
44namespace KOrg {
45 class MainWindow;
46}
47
48class TDEAction;
49class TDEActionCollection;
50class TDERecentFilesAction;
51class TDESelectAction;
52class TDEToggleAction;
53class TDEConfig;
54class TDEProcess;
55class KTempFile;
56class KXMLGUIClient;
57class CalendarView;
58class KOrganizer;
59class KONewStuff;
60class KOWindowList;
61class PreviewDialog;
62class ResourceView;
63class HTMLExportSettings;
64
65using namespace KCal;
66
73class TDE_EXPORT ActionManager : public TQObject, public KCalendarIface
74{
75 TQ_OBJECT
76
77 public:
78 ActionManager( KXMLGUIClient *client, CalendarView *widget,
79 TQObject *parent, KOrg::MainWindow *mainWindow,
80 bool isPart );
81 virtual ~ActionManager();
82
84 void init();
85
86 CalendarView *view() const { return mCalendarView; }
87
97
101 void saveCalendar();
102
108
113
114 public slots:
116 bool addResource( const KURL &mUrl );
121 bool openURL( const KURL &url, bool merge = false );
123 bool saveURL();
125 bool saveAsURL( const KURL &kurl );
127 bool saveModifiedURL();
128
129 void exportHTML();
130 void exportHTML( HTMLExportSettings * );
131 public:
133 KURL url() const { return mURL; }
134
136 static KOrg::MainWindow* findInstance( const KURL &url );
138 bool openURL( const TQString &url );
140 bool mergeURL( const TQString &url );
142 bool saveAsURL( const TQString &url );
144 void closeURL();
146 TQString getCurrentURLasString() const;
153 virtual bool deleteIncidence( const TQString& uid, bool force = false );
154
155 bool editIncidence( const TQString &uid );
156 bool editIncidence( const TQString &uid, const TQDate &date );
157
162
163 bool addIncidence( const TQString& ical );
164
166 virtual ResourceRequestReply resourceRequest( const TQValueList<TQPair<TQDateTime, TQDateTime> >& busy,
167 const TQCString& resource,
168 const TQString& vCalIn );
169
170 void openEventEditor( const TQString& );
171 void openEventEditor( const TQString& summary,
172 const TQString& description,
173 const TQString& attachment );
174 void openEventEditor( const TQString& summary,
175 const TQString& description,
176 const TQString& attachment,
177 const TQStringList& attendees );
178 void openEventEditor( const TQString& summary,
179 const TQString& description,
180 const TQString& uri,
181 const TQString& file,
182 const TQStringList& attendees,
183 const TQString& attachmentMimetype );
184
185 void openTodoEditor( const TQString& );
186 void openTodoEditor( const TQString& summary,
187 const TQString& description,
188 const TQString& attachment );
189 void openTodoEditor( const TQString& summary,
190 const TQString& description,
191 const TQString& attachment,
192 const TQStringList& attendees );
193 void openTodoEditor( const TQString& summary,
194 const TQString& description,
195 const TQString& uri,
196 const TQString& file,
197 const TQStringList& attendees,
198 const TQString& attachmentMimetype,
199 bool isTask );
200
201 void openJournalEditor( const TQDate& date );
202 void openJournalEditor( const TQString& text, const TQDate& date );
203 void openJournalEditor( const TQString& text );
204 //TODO:
205 // void openJournalEditor( const TQString& summary,
206 // const TQString& description,
207 // const TQString& attachment );
208
209 void showJournalView();
210 void showTodoView();
211 void showEventView();
212
213 void goDate( const TQDate& );
214 void goDate( const TQString& );
215 void showDate( const TQDate &date );
216
217 TQString localFileName();
218
219 bool queryClose();
220
221 void loadProfile( const TQString & path );
222
223 void saveToProfile( const TQString & path ) const;
224
225 bool handleCommandLine();
226
227 signals:
231 void actionNew( const KURL &url = KURL() );
232
239
245
248
249 public slots:
254 void updateConfig();
255
256 void setDestinationPolicy();
257
258 void processIncidenceSelection( Incidence *incidence, const TQDate &date );
259 void keyBindings();
260
265 void readSettings();
266
270 void writeSettings();
271
272 /* Session management */
273 void saveProperties( TDEConfig * );
274 void readProperties( TDEConfig * );
275
276 void loadParts();
277
278 void importCalendar( const KURL &url );
279
280 protected slots:
281
283 void file_new();
284
286 void file_open();
287
290 void file_open( const KURL &url );
291
293 void file_icalimport();
294
296 void file_merge();
297
299 void file_revert();
300
302 void file_archive();
303
305 void file_save();
306
308 void file_saveas();
309
311 void file_close();
312
314 void configureDateTime();
315
317 void showTip();
318
320 void showTipOnStart();
321
322 void downloadNewStuff();
323 void uploadNewStuff();
324
325 void toggleResourceButtons();
326
327 void toggleDateNavigator();
328 void toggleTodoView();
329 void toggleEventViewer();
330 void toggleResourceView();
331
333 void checkAutoSave();
334
337
339 void slotAutoArchive();
340
341 void configureDateTimeFinished(TDEProcess *);
342
343 void setTitle();
344
345 void updateUndoAction( const TQString & );
346
347 void updateRedoAction( const TQString & );
348
349 void slotPreviewDialogFinished( PreviewDialog * );
350
351 protected:
353 KURL getSaveURL();
354
355 void showStatusMessageOpen( const KURL &url, bool merge );
356
357 void initCalendar( Calendar *cal );
358
362 TQWidget *dialogParent();
363
364 private slots:
365 void dumpText( const TQString & ); // only for debugging purposes
366
367 private:
368 class ActionStringsVisitor;
369
371 void initActions();
372 void enableIncidenceActions( bool enable );
373
374 TQPair<ResourceCalendar *, TQString> viewSubResourceCalendar();
375 bool isWritable( ResourceCalendar *res, const TQString &subRes, const TQString &contentsType );
376
377 KOrg::Part::List mParts; // List of parts loaded
378 KURL mURL; // URL of calendar file
379 TQString mFile; // Local name of calendar file
380 TQString mLastUrl; // URL of last loaded calendar.
381
382 KTempFile *mTempFile;
383 TQTimer *mAutoSaveTimer; // used if calendar is to be autosaved
384 TQTimer *mAutoArchiveTimer; // used for the auto-archiving feature
385
386 // list of all existing KOrganizer instances
387 static KOWindowList *mWindowList;
388
389 // Actions
390 TDERecentFilesAction *mRecent;
391 TDEToggleAction *mResourceButtonsAction;
392
393 TDEToggleAction *mDateNavigatorShowAction;
394 TDEToggleAction *mTodoViewShowAction;
395 TDEToggleAction *mResourceViewShowAction;
396 TDEToggleAction *mEventViewerShowAction;
397// TDEToggleAction *mToggleAlarmAction;
398
399 TDEAction *mShowIncidenceAction;
400 TDEAction *mEditIncidenceAction;
401 TDEAction *mDeleteIncidenceAction;
402// TDEAction *mAssignResourceAction;
403
404 TDEAction *mCutAction;
405 TDEAction *mCopyAction;
406 TDEAction *mDeleteAction;
407 TDEAction *mNextXDays;
408 TDEAction *mPublishEvent;
409 TDEAction *mForwardEvent;
410
411 TDEAction *mSendInvitation;
412 TDEAction *mSendCancel;
413 TDEAction *mSendStatusUpdate;
414
415 TDEAction *mRequestChange;
416 TDEAction *mRequestUpdate;
417
418 TDEAction *mUndoAction;
419 TDEAction *mRedoAction;
420
421 TDESelectAction *mFilterAction;
422
423 KXMLGUIClient *mGUIClient;
424 TDEActionCollection *mACollection;
425 CalendarView *mCalendarView;
426 KOrg::MainWindow *mMainWindow;
427 bool mIsPart;
428
429 KONewStuff *mNewStuff;
430 bool mHtmlExportSync;
431
432 // Either mCalendar *or* mCalendarResources is set.
433 Calendar *mCalendar;
434 CalendarResources *mCalendarResources;
435
436 ResourceView *mResourceView;
437
438 bool mIsClosing;
439};
440
441#endif
bool saveURL()
Save calendar file to URL of current calendar.
KURL getSaveURL()
Get URL for saving.
void file_open()
open a file, load it into the calendar.
void slotAutoArchivingSettingsModified()
connected to CalendarView's signal which comes from the ArchiveDialog
void file_close()
close a file, prompt for save if changes made.
void file_save()
save a file with the current fileName.
void file_icalimport()
import a calendar from another program like ical.
void createCalendarResources()
Create Calendar object based on the resource framework and set it on the view.
void loadResourceCalendar()
Load the resource based calendar.
void file_new()
open new window
void showTipOnStart()
Show tip of the day.
void createCalendarLocal()
Create Calendar object based on local file and set it on the view.
void readSettings()
Using the TDEConfig associated with the kapp variable, read in the settings from the config file.
bool saveResourceCalendar()
Save the resource based calendar.
void saveCalendar()
Save calendar to disk.
void showTip()
Show tip of the day.
TQWidget * dialogParent()
Return widget used as parent for dialogs and message boxes.
void updateConfig()
Options dialog made a changed to the configuration.
void writeSettings()
Write current state to config file.
bool saveModifiedURL()
Save calendar if it is modified by the user.
void slotAutoArchive()
called by the auto archive timer to automatically delete/archive events
void closingDown()
Emitted when the topwidget is closing down, so that any attached child windows can also close.
void file_revert()
revert to saved
void checkAutoSave()
called by the autoSaveTimer to automatically save the calendar
void file_merge()
open a calendar and add the contents to the current calendar.
void actionNew(const KURL &url=KURL())
Emitted when the "New" action is activated.
void init()
Peform initialization that requires this* to be full constructed.
void file_archive()
delete or archive old entries in your calendar for speed/space.
void configChanged()
When change is made to options dialog, the topwidget will catch this and emit this signal which notif...
bool saveAsURL(const KURL &kurl)
Save calendar file to URL.
bool addResource(const KURL &mUrl)
Add a new resource.
void resourceAdded(ResourceCalendar *)
Indicates that a new resource was added.
bool openURL(const KURL &url, bool merge=false)
Open calendar file from URL.
KURL url() const
Get current URL.
void file_saveas()
save a file under a (possibly) different filename.
void configureDateTime()
Open kcontrol module for configuring date and time formats.
This is the main calendar widget.
This class manages a list of KOrganizer instances, each associated with a window displaying a calenda...
interface for korganizer main window
Definition mainwindow.h:41
This is the main class for KOrganizer.
Definition korganizer.h:66
This class provides a view of calendar resources.
This file is a generic DCOP interface, shared between KDE applications.