summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-06-18 12:47:08 (UTC)
committer zautrix <zautrix>2005-06-18 12:47:08 (UTC)
commit4ad2d49928757d72657735e088ac1cf587637fca (patch) (unidiff)
tree34373eb6925de34900f762b5ebda6077efbd1b7c /korganizer
parent3c6bc55a0c7abf758df57bbb3dc0842bd6b87e6c (diff)
downloadkdepimpi-4ad2d49928757d72657735e088ac1cf587637fca.zip
kdepimpi-4ad2d49928757d72657735e088ac1cf587637fca.tar.gz
kdepimpi-4ad2d49928757d72657735e088ac1cf587637fca.tar.bz2
fixxx
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kotodoview.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp
index 926a136..98c9bd9 100644
--- a/korganizer/kotodoview.cpp
+++ b/korganizer/kotodoview.cpp
@@ -26,153 +26,153 @@
26#include <qcursor.h> 26#include <qcursor.h>
27#include <qwhatsthis.h> 27#include <qwhatsthis.h>
28#include <qdialog.h> 28#include <qdialog.h>
29#include <qlabel.h> 29#include <qlabel.h>
30#include <qpushbutton.h> 30#include <qpushbutton.h>
31 31
32#include <qinputdialog.h> 32#include <qinputdialog.h>
33 33
34#include <qvbox.h> 34#include <qvbox.h>
35#include <kdebug.h> 35#include <kdebug.h>
36#include "koprefs.h" 36#include "koprefs.h"
37#include <klocale.h> 37#include <klocale.h>
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kdateedit.h> 39#include <kdateedit.h>
40#include "ktimeedit.h" 40#include "ktimeedit.h"
41#include <kiconloader.h> 41#include <kiconloader.h>
42#include <kmessagebox.h> 42#include <kmessagebox.h>
43 43
44#include <libkcal/icaldrag.h> 44#include <libkcal/icaldrag.h>
45#include <libkcal/vcaldrag.h> 45#include <libkcal/vcaldrag.h>
46#include <libkcal/calfilter.h> 46#include <libkcal/calfilter.h>
47#include <libkcal/dndfactory.h> 47#include <libkcal/dndfactory.h>
48#include <libkcal/calendarresources.h> 48#include <libkcal/calendarresources.h>
49#include <libkcal/resourcecalendar.h> 49#include <libkcal/resourcecalendar.h>
50#include <kresources/resourceselectdialog.h> 50#include <kresources/resourceselectdialog.h>
51#include <libkcal/kincidenceformatter.h> 51#include <libkcal/kincidenceformatter.h>
52#ifndef DESKTOP_VERSION 52#ifndef DESKTOP_VERSION
53#include <qpe/qpeapplication.h> 53#include <qpe/qpeapplication.h>
54#else 54#else
55#include <qapplication.h> 55#include <qapplication.h>
56#endif 56#endif
57#ifndef KORG_NOPRINTER 57#ifndef KORG_NOPRINTER
58#include "calprinter.h" 58#include "calprinter.h"
59#endif 59#endif
60#include "docprefs.h" 60#include "docprefs.h"
61 61
62#include "kotodoview.h" 62#include "kotodoview.h"
63using namespace KOrg; 63using namespace KOrg;
64 64
65 65
66KOStopTodoPrefs::KOStopTodoPrefs( Todo* todo, QWidget *parent, const char *name ) : 66KOStopTodoPrefs::KOStopTodoPrefs( Todo* todo, QWidget *parent, const char *name ) :
67 QDialog( parent, name, true ) 67 QDialog( parent, name, true )
68{ 68{
69 mTodo = todo; 69 mTodo = todo;
70 setCaption( i18n("Stop todo") ); 70 setCaption( i18n("Stop todo") );
71 QVBoxLayout* lay = new QVBoxLayout( this ); 71 QVBoxLayout* lay = new QVBoxLayout( this );
72 lay->setSpacing( 3 ); 72 lay->setSpacing( 3 );
73 lay->setMargin( 3 ); 73 lay->setMargin( 3 );
74 QLabel * lab = new QLabel( i18n("%1\nis running!").arg( todo->summary() ), this ); 74 QLabel * lab = new QLabel( i18n("<b>%1\n</b>").arg( todo->summary() ), this );
75 lay->addWidget( lab ); 75 lay->addWidget( lab );
76 lab->setAlignment( AlignHCenter ); 76 lab->setAlignment( AlignHCenter );
77 lab = new QLabel( i18n("Additional Comment:"), this ); 77 lab = new QLabel( i18n("Additional Comment:"), this );
78 lay->addWidget( lab ); 78 lay->addWidget( lab );
79 mComment = new QLineEdit( this ); 79 mComment = new QLineEdit( this );
80 lay->addWidget( mComment ); 80 lay->addWidget( mComment );
81 QHBox * start = new QHBox ( this ); 81 QHBox * start = new QHBox ( this );
82 lay->addWidget( start ); 82 lay->addWidget( start );
83 lab = new QLabel( i18n("Start:"), start ); 83 lab = new QLabel( i18n("Start:"), start );
84 QHBox * end = new QHBox ( this ); 84 QHBox * end = new QHBox ( this );
85 lay->addWidget( end ); 85 lay->addWidget( end );
86 lab = new QLabel( i18n("End:"), end ); 86 lab = new QLabel( i18n("End:"), end );
87 sde = new KDateEdit( start ); 87 sde = new KDateEdit( start );
88 ste = new KOTimeEdit( start ); 88 ste = new KOTimeEdit( start );
89 connect ( sde,SIGNAL(setTimeTo( QTime ) ),ste , SLOT ( setTime(QTime ) ) ); 89 connect ( sde,SIGNAL(setTimeTo( QTime ) ),ste , SLOT ( setTime(QTime ) ) );
90 ede = new KDateEdit( end ); 90 ede = new KDateEdit( end );
91 ete = new KOTimeEdit(end ); 91 ete = new KOTimeEdit(end );
92 connect ( ede,SIGNAL(setTimeTo( QTime ) ),ete , SLOT ( setTime(QTime ) ) ); 92 connect ( ede,SIGNAL(setTimeTo( QTime ) ),ete , SLOT ( setTime(QTime ) ) );
93 sde->setDate( mTodo->runStart().date() ); 93 sde->setDate( mTodo->runStart().date() );
94 ste->setTime( mTodo->runStart().time() ); 94 ste->setTime( mTodo->runStart().time() );
95 ede->setDate( QDate::currentDate()); 95 ede->setDate( QDate::currentDate());
96 ete->setTime( QTime::currentTime() ); 96 ete->setTime( QTime::currentTime() );
97 QPushButton * ok = new QPushButton( i18n("Stop and save"), this ); 97 QPushButton * ok = new QPushButton( i18n("Stop and save"), this );
98 lay->addWidget( ok ); 98 lay->addWidget( ok );
99 ok->setDefault( true ); 99 ok->setDefault( true );
100 QPushButton * cancel = new QPushButton( i18n("Continue running"), this ); 100 QPushButton * cancel = new QPushButton( i18n("Continue running"), this );
101 lay->addWidget( cancel ); 101 lay->addWidget( cancel );
102 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 102 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
103 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 103 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
104 ok = new QPushButton( i18n("Stop - do not save"), this ); 104 ok = new QPushButton( i18n("Stop - do not save"), this );
105 connect ( ok,SIGNAL(clicked() ),this , SLOT ( doNotSave() ) ); 105 connect ( ok,SIGNAL(clicked() ),this , SLOT ( doNotSave() ) );
106 lay->addWidget( ok ); 106 lay->addWidget( ok );
107 if (QApplication::desktop()->width() < 320 ) 107 if (QApplication::desktop()->width() < 320 )
108 resize( 240, 200 ); 108 resize( 240, sizeHint().height() );
109 else 109 else
110 resize( 320, 200 ); 110 resize( 320, sizeHint().height() );
111 111
112} 112}
113 113
114void KOStopTodoPrefs::accept() 114void KOStopTodoPrefs::accept()
115{ 115{
116 QDateTime start = QDateTime( sde->date(), ste->getTime() ); 116 QDateTime start = QDateTime( sde->date(), ste->getTime() );
117 QDateTime stop = QDateTime( ede->date(), ete->getTime() ); 117 QDateTime stop = QDateTime( ede->date(), ete->getTime() );
118 if ( start > stop ) { 118 if ( start > stop ) {
119 KMessageBox::sorry(this, 119 KMessageBox::sorry(this,
120 i18n("The start time is\nafter the end time!"), 120 i18n("The start time is\nafter the end time!"),
121 i18n("Time mismatch!")); 121 i18n("Time mismatch!"));
122 return; 122 return;
123 } 123 }
124 mTodo->saveRunningInfo( mComment->text(), start, stop ); 124 mTodo->saveRunningInfo( mComment->text(), start, stop );
125 QDialog::accept(); 125 QDialog::accept();
126} 126}
127void KOStopTodoPrefs::doNotSave() 127void KOStopTodoPrefs::doNotSave()
128{ 128{
129 int result = KMessageBox::warningContinueCancel(this, 129 int result = KMessageBox::warningContinueCancel(this,
130 i18n("Do you really want to set\nthe state to stopped\nwithout saving the data?"),mTodo->summary() ); 130 i18n("Do you really want to set\nthe state to stopped\nwithout saving the data?"),mTodo->summary(),i18n("Yes, stop todo") );
131 if (result != KMessageBox::Continue) return; 131 if (result != KMessageBox::Continue) return;
132 mTodo->stopRunning(); 132 mTodo->stopRunning();
133 QDialog::accept(); 133 QDialog::accept();
134} 134}
135 135
136 136
137class KOTodoViewWhatsThis :public QWhatsThis 137class KOTodoViewWhatsThis :public QWhatsThis
138{ 138{
139public: 139public:
140 KOTodoViewWhatsThis( QWidget *wid, KOTodoView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { }; 140 KOTodoViewWhatsThis( QWidget *wid, KOTodoView* view ) : QWhatsThis( wid ), _wid(wid),_view (view) { };
141 141
142protected: 142protected:
143 virtual QString text( const QPoint& p) 143 virtual QString text( const QPoint& p)
144 { 144 {
145 return _view->getWhatsThisText(p) ; 145 return _view->getWhatsThisText(p) ;
146 } 146 }
147private: 147private:
148 QWidget* _wid; 148 QWidget* _wid;
149 KOTodoView * _view; 149 KOTodoView * _view;
150}; 150};
151 151
152KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent, 152KOTodoListView::KOTodoListView(Calendar *calendar,QWidget *parent,
153 const char *name) : 153 const char *name) :
154 KListView(parent,name) 154 KListView(parent,name)
155{ 155{
156 mName = QString ( name ); 156 mName = QString ( name );
157 mCalendar = calendar; 157 mCalendar = calendar;
158#ifndef DESKTOP_VERSION 158#ifndef DESKTOP_VERSION
159 QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold ); 159 QPEApplication::setStylusOperation(viewport(), QPEApplication::RightOnHold );
160#endif 160#endif
161 mOldCurrent = 0; 161 mOldCurrent = 0;
162 mMousePressed = false; 162 mMousePressed = false;
163 163
164 setAcceptDrops(true); 164 setAcceptDrops(true);
165 viewport()->setAcceptDrops(true); 165 viewport()->setAcceptDrops(true);
166 int size = 16; 166 int size = 16;
167 if (qApp->desktop()->width() < 300 ) 167 if (qApp->desktop()->width() < 300 )
168 size = 12; 168 size = 12;
169 setTreeStepSize( size + 6 ); 169 setTreeStepSize( size + 6 );
170 170
171} 171}
172 172
173void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e) 173void KOTodoListView::contentsDragEnterEvent(QDragEnterEvent *e)
174{ 174{
175#ifndef KORG_NODND 175#ifndef KORG_NODND
176// kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl; 176// kdDebug() << "KOTodoListView::contentsDragEnterEvent" << endl;
177 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) && 177 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) &&
178 !QTextDrag::canDecode( e ) ) { 178 !QTextDrag::canDecode( e ) ) {
@@ -1159,96 +1159,103 @@ void KOTodoView::changedCategories(int index)
1159 if ( categories.find ( colcat ) != categories.end () ) { 1159 if ( categories.find ( colcat ) != categories.end () ) {
1160 categories.remove( colcat ); 1160 categories.remove( colcat );
1161 categories.prepend( colcat ); 1161 categories.prepend( colcat );
1162 } 1162 }
1163 } 1163 }
1164 mActiveItem->todo()->setCategories (categories); 1164 mActiveItem->todo()->setCategories (categories);
1165 mActiveItem->construct(); 1165 mActiveItem->construct();
1166 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 ); 1166 mActiveItem->todo()->setRevision( mActiveItem->todo()->revision()+1 );
1167 todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED); 1167 todoModified (mActiveItem->todo (), KOGlobals::CATEGORY_MODIFIED);
1168 } 1168 }
1169} 1169}
1170void KOTodoView::itemDoubleClicked(QListViewItem *item) 1170void KOTodoView::itemDoubleClicked(QListViewItem *item)
1171{ 1171{
1172 if ( pendingSubtodo != 0 ) { 1172 if ( pendingSubtodo != 0 ) {
1173 topLevelWidget()->setCaption(i18n("Reparenting aborted!")); 1173 topLevelWidget()->setCaption(i18n("Reparenting aborted!"));
1174 } 1174 }
1175 pendingSubtodo = 0; 1175 pendingSubtodo = 0;
1176 //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() ); 1176 //int row = mTodoListView->header()->sectionAt ( mTodoListView->header()->mapFromGlobal( QCursor::pos()).x() );
1177 int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() ); 1177 int row = mTodoListView->header()->sectionAt ( mTodoListView->viewportToContents(mTodoListView->viewport()->mapFromGlobal( QCursor::pos())) .x() );
1178 //qDebug("ROW %d ", row); 1178 //qDebug("ROW %d ", row);
1179 if (!item) { 1179 if (!item) {
1180 newTodo(); 1180 newTodo();
1181 return; 1181 return;
1182 } else { 1182 } else {
1183 if ( row == 2 || row == 1 ) { 1183 if ( row == 2 || row == 1 ) {
1184 mActiveItem = (KOTodoViewItem *) item; 1184 mActiveItem = (KOTodoViewItem *) item;
1185 newSubTodo(); 1185 newSubTodo();
1186 return; 1186 return;
1187 } 1187 }
1188 if ( row == 5 || row == 6 ) { 1188 if ( row == 5 || row == 6 ) {
1189 mActiveItem = (KOTodoViewItem *) item; 1189 mActiveItem = (KOTodoViewItem *) item;
1190 toggleRunningItem(); 1190 toggleRunningItem();
1191 return; 1191 return;
1192 } 1192 }
1193 } 1193 }
1194 if ( KOPrefs::instance()->mEditOnDoubleClick ) 1194 if ( KOPrefs::instance()->mEditOnDoubleClick )
1195 editItem( item ); 1195 editItem( item );
1196 else 1196 else
1197 showItem( item , QPoint(), 0 ); 1197 showItem( item , QPoint(), 0 );
1198} 1198}
1199void KOTodoView::toggleRunningItem() 1199void KOTodoView::toggleRunningItem()
1200{ 1200{
1201 // qDebug("KOTodoView::toggleRunning() "); 1201 // qDebug("KOTodoView::toggleRunning() ");
1202 if ( ! mActiveItem ) 1202 if ( ! mActiveItem )
1203 return; 1203 return;
1204 Todo * t = mActiveItem->todo(); 1204 Todo * t = mActiveItem->todo();
1205 if ( t->isRunning() ) { 1205 if ( t->isRunning() ) {
1206 KOStopTodoPrefs tp ( t, this ); 1206 KOStopTodoPrefs tp ( t, this );
1207 if (QApplication::desktop()->width() < 800 ){
1208 int wid = tp.width();
1209 int hei = tp.height();
1210 int xx = (QApplication::desktop()->width()-wid)/2;
1211 int yy = (QApplication::desktop()->height()-hei)/2;
1212 tp.setGeometry( xx,yy,wid,hei );
1213 }
1207 tp.exec(); 1214 tp.exec();
1208 mActiveItem->construct(); 1215 mActiveItem->construct();
1209 } else { 1216 } else {
1210 int result = KMessageBox::warningContinueCancel(this, 1217 int result = KMessageBox::warningContinueCancel(this,
1211 i18n("<center>%1</center> <center>is not running. Do you want to set\nthe state to running?</center>").arg(mActiveItem->text(0).left( 25 ) ),i18n("Start todo"),i18n("Start todo"),i18n("Cancel"), true); 1218 i18n("<center>%1</center> <center>is not running. Do you want to set\nthe state to running?</center>").arg(mActiveItem->text(0).left( 25 ) ),i18n("Start todo"),i18n("Start todo"),i18n("Cancel"), true);
1212 if (result != KMessageBox::Continue) return; 1219 if (result != KMessageBox::Continue) return;
1213 t->setRunning( true ); 1220 t->setRunning( true );
1214 mActiveItem->construct(); 1221 mActiveItem->construct();
1215 } 1222 }
1216} 1223}
1217 1224
1218void KOTodoView::itemClicked(QListViewItem *item) 1225void KOTodoView::itemClicked(QListViewItem *item)
1219{ 1226{
1220 //qDebug("KOTodoView::itemClicked %d", item); 1227 //qDebug("KOTodoView::itemClicked %d", item);
1221 if (!item) { 1228 if (!item) {
1222 if ( pendingSubtodo != 0 ) { 1229 if ( pendingSubtodo != 0 ) {
1223 topLevelWidget()->setCaption(i18n("Reparenting aborted!")); 1230 topLevelWidget()->setCaption(i18n("Reparenting aborted!"));
1224 } 1231 }
1225 pendingSubtodo = 0; 1232 pendingSubtodo = 0;
1226 return; 1233 return;
1227 } 1234 }
1228 KOTodoViewItem *todoItem = (KOTodoViewItem *)item; 1235 KOTodoViewItem *todoItem = (KOTodoViewItem *)item;
1229 if ( pendingSubtodo != 0 ) { 1236 if ( pendingSubtodo != 0 ) {
1230 bool allowReparent = true; 1237 bool allowReparent = true;
1231 QListViewItem *par = item; 1238 QListViewItem *par = item;
1232 while ( par ) { 1239 while ( par ) {
1233 if ( par == pendingSubtodo ) { 1240 if ( par == pendingSubtodo ) {
1234 allowReparent = false; 1241 allowReparent = false;
1235 break; 1242 break;
1236 } 1243 }
1237 par = par->parent(); 1244 par = par->parent();
1238 } 1245 }
1239 if ( !allowReparent ) { 1246 if ( !allowReparent ) {
1240 topLevelWidget()->setCaption(i18n("Recursive reparenting not possible!")); 1247 topLevelWidget()->setCaption(i18n("Recursive reparenting not possible!"));
1241 pendingSubtodo = 0; 1248 pendingSubtodo = 0;
1242 } else { 1249 } else {
1243 Todo* newParent = todoItem->todo(); 1250 Todo* newParent = todoItem->todo();
1244 Todo* newSub = pendingSubtodo->todo(); 1251 Todo* newSub = pendingSubtodo->todo();
1245 pendingSubtodo = 0; 1252 pendingSubtodo = 0;
1246 emit reparentTodoSignal( newParent,newSub ); 1253 emit reparentTodoSignal( newParent,newSub );
1247 return; 1254 return;
1248 } 1255 }
1249 } 1256 }
1250 1257
1251} 1258}
1252 1259
1253void KOTodoView::setDocumentId( const QString &id ) 1260void KOTodoView::setDocumentId( const QString &id )
1254{ 1261{