korganizer Library API Documentation

kotodoview.h

00001 /* 00002 This file is part of KOrganizer. 00003 00004 Copyright (c) 2000,2001,2003 Cornelius Schumacher <schumacher@kde.org> 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; either version 2 of the License, or 00009 (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 00020 As a special exception, permission is given to link this program 00021 with any edition of Qt, and distribute the resulting executable, 00022 without including the source code for Qt in the source distribution. 00023 */ 00024 #ifndef KOTODOVIEW_H 00025 #define KOTODOVIEW_H 00026 00027 #include <qmap.h> 00028 #include <qtooltip.h> 00029 00030 #include <klistview.h> 00031 00032 #include <libkcal/todo.h> 00033 #include <korganizer/baseview.h> 00034 #include "calprinter.h" 00035 00036 class QDragEnterEvent; 00037 class QDragMoveEvent; 00038 class QDragLeaveEvent; 00039 class QDropEvent; 00040 class QPopupMenu; 00041 00042 class KOTodoListView; 00043 class KOTodoViewItem; 00044 class KDatePickerPopup; 00045 00046 class DocPrefs; 00047 00048 namespace KPIM { 00049 class ClickLineEdit; 00050 } 00051 namespace KCal { 00052 class Incidence; 00053 class Calendar; 00054 } 00055 using namespace KCal; 00056 00057 class KOTodoListViewToolTip : public QToolTip 00058 { 00059 public: 00060 KOTodoListViewToolTip( QWidget *parent, KOTodoListView *lv ); 00061 00062 protected: 00063 void maybeTip( const QPoint &pos ); 00064 00065 private: 00066 KOTodoListView *todolist; 00067 }; 00068 00069 00070 class KOTodoListView : public KListView 00071 { 00072 Q_OBJECT 00073 public: 00074 KOTodoListView( QWidget *parent = 0, const char *name = 0 ); 00075 ~KOTodoListView(); 00076 00077 void setCalendar( Calendar * ); 00078 00079 signals: 00080 void incidenceAdded( Incidence* ); 00081 void incidenceChanged( Incidence*, Incidence* ); 00082 void incidenceDeleted( Incidence* ); 00083 void incidenceToBeDeleted( Incidence* ); 00084 00085 protected: 00086 virtual bool event( QEvent * ); 00087 00088 void contentsDragEnterEvent( QDragEnterEvent * ); 00089 void contentsDragMoveEvent( QDragMoveEvent * ); 00090 void contentsDragLeaveEvent( QDragLeaveEvent * ); 00091 void contentsDropEvent( QDropEvent * ); 00092 00093 void contentsMousePressEvent( QMouseEvent * ); 00094 void contentsMouseMoveEvent( QMouseEvent * ); 00095 void contentsMouseReleaseEvent( QMouseEvent * ); 00096 void contentsMouseDoubleClickEvent( QMouseEvent * ); 00097 00098 private: 00099 Calendar *mCalendar; 00100 00101 QPoint mPressPos; 00102 bool mMousePressed; 00103 QListViewItem *mOldCurrent; 00104 KOTodoListViewToolTip *tooltip; 00105 }; 00106 00107 00114 class KOTodoView : public KOrg::BaseView 00115 { 00116 Q_OBJECT 00117 public: 00118 KOTodoView( Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 00119 ~KOTodoView(); 00120 00121 void setCalendar( Calendar * ); 00122 00123 Incidence::List selectedIncidences(); 00124 Todo::List selectedTodos(); 00125 00126 DateList selectedDates() { return DateList(); } 00127 00129 int currentDateCount() { return 0; } 00130 00131 void printPreview( CalPrinter *calPrinter, const QDate &fd, 00132 const QDate &td ); 00133 00134 CalPrinter::PrintType printType(); 00135 00136 void setDocumentId( const QString & ); 00137 00138 void saveLayout( KConfig *config, const QString &group ) const; 00139 void restoreLayout( KConfig *config, const QString &group ); 00141 QPopupMenu *getCategoryPopupMenu( KOTodoViewItem *todoItem ); 00142 00143 public slots: 00144 void updateView(); 00145 void updateConfig(); 00146 00147 void changeIncidenceDisplay( Incidence *, int ); 00148 00149 void showDates( const QDate &start, const QDate &end ); 00150 void showIncidences( const Incidence::List & ); 00151 00152 void clearSelection(); 00153 00154 void editItem( QListViewItem *item, const QPoint &, int ); 00155 void editItem( QListViewItem *item ); 00156 void showItem( QListViewItem *item, const QPoint &, int ); 00157 void showItem( QListViewItem *item ); 00158 void popupMenu( QListViewItem *item, const QPoint &, int ); 00159 void newTodo(); 00160 void newSubTodo(); 00161 void showTodo(); 00162 void editTodo(); 00163 void deleteTodo(); 00164 00165 void setNewPriority( int ); 00166 void setNewPercentage( int ); 00167 void setNewDate( QDate ); 00168 void copyTodoToDate( QDate ); 00169 void changedCategories( int ); 00170 00171 void purgeCompleted(); 00172 00173 void itemStateChanged( QListViewItem * ); 00174 void setTodoModified( Todo *oldTodo, Todo *todo ) 00175 { 00176 emit incidenceChanged( oldTodo, todo ); 00177 } 00178 void emitCompletedSignal( Todo * ); 00179 00180 signals: 00181 void unSubTodoSignal(); 00182 00183 void todoCompleted( Todo * ); 00184 00185 void purgeCompletedSignal(); 00186 00187 protected slots: 00188 void processSelectionChange(); 00189 void addQuickTodo(); 00190 void removeTodoItems(); 00191 00192 private: 00193 /* 00194 * the TodoEditor approach is rather unscaling in the long 00195 * run. 00196 * Korganizer keeps it in memory and we need to update 00197 * 1. make KOTodoViewItem a QObject again? 00198 * 2. add a public method for setting one todo modified? 00199 * 3. add a private method for setting a todo modified + friend here? 00200 * -- zecke 2002-07-08 00201 */ 00202 friend class KOTodoViewItem; 00203 00204 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem( Todo *todo ); 00205 bool scheduleRemoveTodoItem( KOTodoViewItem *todoItem ); 00206 void restoreItemState( QListViewItem * ); 00207 00208 KOTodoListView *mTodoListView; 00209 QPopupMenu *mItemPopupMenu; 00210 QPopupMenu *mPopupMenu; 00211 QPopupMenu *mPriorityPopupMenu; 00212 QPopupMenu *mPercentageCompletedPopupMenu; 00213 QPopupMenu *mCategoryPopupMenu; 00214 KDatePickerPopup *mMovePopupMenu; 00215 KDatePickerPopup *mCopyPopupMenu; 00216 00217 QMap<int, int> mPercentage; 00218 QMap<int, int> mPriority; 00219 QMap<int, QString> mCategory; 00220 00221 KOTodoViewItem *mActiveItem; 00222 00223 QMap<Todo *,KOTodoViewItem *> mTodoMap; 00224 QPtrList<KOTodoViewItem> mItemsToDelete; 00225 00226 DocPrefs *mDocPrefs; 00227 QString mCurrentDoc; 00228 KPIM::ClickLineEdit *mQuickAdd; 00229 00230 static const int POPUP_UNSUBTODO; 00231 }; 00232 00233 #endif
KDE Logo
This file is part of the documentation for korganizer Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:53:27 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003