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 <qfont.h> 00028 #include <qfontmetrics.h> 00029 #include <qlineedit.h> 00030 #include <qptrlist.h> 00031 #include <qlistbox.h> 00032 #include <qpopupmenu.h> 00033 #include <qlabel.h> 00034 #include <qmap.h> 00035 #include <qtimer.h> 00036 #include <qevent.h> 00037 #include <qtooltip.h> 00038 #include <qpoint.h> 00039 #include <qrect.h> 00040 00041 #include <klistview.h> 00042 00043 #include <libkcal/calendar.h> 00044 #include <libkcal/todo.h> 00045 00046 #include <korganizer/baseview.h> 00047 00048 #include "kotodoviewitem.h" 00049 #include "koprefs.h" 00050 #include "koglobals.h" 00051 #include "calprinter.h" 00052 00053 class QDragEnterEvent; 00054 class QDragMoveEvent; 00055 class QDragLeaveEvent; 00056 class QDropEvent; 00057 00058 class KOTodoListView; 00059 00060 class DocPrefs; 00061 00062 00063 class KOTodoListViewToolTip : public QToolTip 00064 { 00065 public: 00066 KOTodoListViewToolTip( QWidget *parent, KOTodoListView *lv ); 00067 00068 protected: 00069 void maybeTip( const QPoint &pos ); 00070 00071 private: 00072 KOTodoListView *todolist; 00073 }; 00074 00075 00076 class KOTodoListView : public KListView 00077 { 00078 Q_OBJECT 00079 public: 00080 KOTodoListView( QWidget *parent = 0, const char *name = 0 ); 00081 ~KOTodoListView(); 00082 00083 void setCalendar( Calendar * ); 00084 00085 signals: 00086 void todoDropped( Todo * ); 00087 void todoChanged( Todo*, Todo* ); 00088 void todoAdded( Todo* ); 00089 00090 protected: 00091 virtual bool event( QEvent * ); 00092 00093 void contentsDragEnterEvent( QDragEnterEvent * ); 00094 void contentsDragMoveEvent( QDragMoveEvent * ); 00095 void contentsDragLeaveEvent( QDragLeaveEvent * ); 00096 void contentsDropEvent( QDropEvent * ); 00097 00098 void contentsMousePressEvent( QMouseEvent * ); 00099 void contentsMouseMoveEvent( QMouseEvent * ); 00100 void contentsMouseReleaseEvent( QMouseEvent * ); 00101 void contentsMouseDoubleClickEvent( QMouseEvent * ); 00102 00103 private: 00104 Calendar *mCalendar; 00105 00106 QPoint mPressPos; 00107 bool mMousePressed; 00108 QListViewItem *mOldCurrent; 00109 KOTodoListViewToolTip *tooltip; 00110 }; 00111 00112 00116 class KOQuickTodo : public QLineEdit 00117 { 00118 Q_OBJECT 00119 public: 00120 KOQuickTodo( QWidget *parent = 0 ); 00121 00122 protected: 00123 void focusInEvent( QFocusEvent *ev ); 00124 void focusOutEvent( QFocusEvent *ev ); 00125 }; 00126 00127 00134 class KOTodoView : public KOrg::BaseView 00135 { 00136 Q_OBJECT 00137 public: 00138 KOTodoView( Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 00139 ~KOTodoView(); 00140 00141 void setCalendar( Calendar * ); 00142 00143 Incidence::List selectedIncidences(); 00144 Todo::List selectedTodos(); 00145 00146 DateList selectedDates() { return DateList(); } 00147 00149 int currentDateCount() { return 0; } 00150 00151 void printPreview( CalPrinter *calPrinter, const QDate &fd, 00152 const QDate &td ); 00153 00154 CalPrinter::PrintType printType(); 00155 00156 void setDocumentId( const QString & ); 00157 00158 void saveLayout( KConfig *config, const QString &group ) const; 00159 void restoreLayout( KConfig *config, const QString &group ); 00161 QPopupMenu *getCategoryPopupMenu( KOTodoViewItem *todoItem ); 00162 00163 public slots: 00164 void updateView(); 00165 void updateConfig(); 00166 00167 void changeEventDisplay( Event *, int ); 00168 00169 void showDates( const QDate &start, const QDate &end ); 00170 void showEvents( const Event::List & ); 00171 00172 void clearSelection(); 00173 00174 void editItem( QListViewItem *item, const QPoint &, int ); 00175 void editItem( QListViewItem *item ); 00176 void showItem( QListViewItem *item, const QPoint &, int ); 00177 void popupMenu( QListViewItem *item, const QPoint &, int ); 00178 void newTodo(); 00179 void newSubTodo(); 00180 void showTodo(); 00181 void editTodo(); 00182 void deleteTodo(); 00183 00184 void setNewPriority( int ); 00185 void setNewPercentage( int ); 00186 void changedCategories( int ); 00187 00188 void purgeCompleted(); 00189 00190 void itemClicked( QListViewItem * ); 00191 void itemStateChanged( QListViewItem * ); 00192 void modified( bool ); 00193 void setTodoModified( Todo *oldTodo, Todo *todo ) 00194 { 00195 emit todoChanged( oldTodo, todo ); 00196 } 00197 00198 signals: 00199 void newTodoSignal(); 00200 void newSubTodoSignal( Todo * ); 00201 void unSubTodoSignal(); 00202 void showTodoSignal( Todo * ); 00203 00204 void editTodoSignal( Todo * ); 00205 void deleteTodoSignal( Todo * ); 00206 void todoModifiedSignal( Todo *, Todo *, int ); 00207 void todoChanged ( Todo*, Todo* ); 00208 void todoAdded ( Todo* ); 00209 00210 void isModified( bool ); 00211 00212 void purgeCompletedSignal(); 00213 00214 protected slots: 00215 void processSelectionChange(); 00216 void addQuickTodo(); 00217 00218 private: 00219 /* 00220 * the TodoEditor approach is rather unscaling in the long 00221 * run. 00222 * Korganizer keeps it in memory and we need to update 00223 * 1. make KOTodoViewItem a QObject again? 00224 * 2. add a public method for setting one todo modified? 00225 * 3. add a private method for setting a todo modified + friend here? 00226 * -- zecke 2002-07-08 00227 */ 00228 friend class KOTodoViewItem; 00229 00230 void setTodoModified( Todo * ); 00231 QMap<Todo *,KOTodoViewItem *>::ConstIterator insertTodoItem( Todo *todo ); 00232 void restoreItemState( QListViewItem * ); 00233 00234 KOTodoListView *mTodoListView; 00235 QPopupMenu *mItemPopupMenu; 00236 QPopupMenu *mPopupMenu; 00237 QPopupMenu *mPriorityPopupMenu; 00238 QPopupMenu *mPercentageCompletedPopupMenu; 00239 QPopupMenu *mCategoryPopupMenu; 00240 00241 QMap<int, int> mPercentage; 00242 QMap<int, int> mPriority; 00243 QMap<int, QString> mCategory; 00244 00245 KOTodoViewItem *mActiveItem; 00246 00247 QMap<Todo *,KOTodoViewItem *> mTodoMap; 00248 00249 DocPrefs *mDocPrefs; 00250 QString mCurrentDoc; 00251 KOQuickTodo *mQuickAdd; 00252 00253 static const int POPUP_UNSUBTODO; 00254 }; 00255 00256 #endif
KDE Logo
This file is part of the documentation for korganizer Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Jul 28 23:58:14 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003