summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp204
-rw-r--r--korganizer/calendarview.h1
2 files changed, 202 insertions, 3 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index a1b1d71..8269910 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -835,27 +835,25 @@ void CalendarView::checkFiles()
}
if ( !message.isEmpty() ) {
message = KGlobal::formatMessage( i18n("Calendar(s) not loaded:"),0 )+"\n" + message +KGlobal::formatMessage(i18n("You can try to reload the calendar in the Resource View!"),0);
KMessageBox::error(this,message, i18n("Loding of calendar(s) failed"));
}
static bool firstTime = true;
if ( firstTime ) {
firstTime = false;
QTimer::singleShot( 2000, this, SLOT ( checkAlarms() ));
}
}
void CalendarView::checkAlarms()
-{
-
-
+{
KConfig *config = KOGlobals::config();
config->setGroup( "AppRun" );
QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) );
int daysto = dt.daysTo( QDate::currentDate() );
int days = config->readNumEntry( "LatestProgramStopDays" , daysto);
dt = dt.addDays( days );
int secto = dt.secsTo( QDateTime::currentDateTime() );
int secs = config->readNumEntry( "LatestProgramStopSecs" , secto) - 30;
//qDebug("KO: Reading program stop %d ", secs);
//secs -= ( 3600 * 24*3 ); // debug only
QDateTime latest = dt.addSecs ( secs );
qDebug("KO: Last termination on %s ", latest.toString().latin1());
@@ -893,25 +891,225 @@ void CalendarView::checkAlarms()
int y = QApplication::desktop()->height() - wid - 70;
dia->setGeometry ( x,y,wid,wid);
} else {
int si = 220;
if ( QApplication::desktop()->width() > 470 )
si = 400;
dia->resize(si,si/2);
}
dia->setBackgroundColor( QColor( 255, 255, 255 ) );
dia->show();
}
+#if 0
+ // for creating timetracker test data
+ qDebug("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCc ");
+ Todo * nt;
+ mCalendar->close();
+ {
+ Todo * root1 = new Todo;
+ mCalendar->addTodo( root1 );
+ root1->setSummary( "Project_1");
+ root1->setPriority( 1 );
+ root1->setDescription( "This is a test description of a root Project" );
+ root1->setPercentComplete( 20 );
+ updateView();
+ QDateTime start = QDateTime ( QDate( 2004,11,1), QTime ( 7,30,0) );
+ QDateTime end = QDateTime ( QDate( 2005,8,1), QTime ( 0,0,0) );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Planning_Project_1");
+ nt->setPriority( 1 );
+ nt->setDescription( "This is a test description of Planning_Project_1" );
+ nt->setPercentComplete( 20 );
+
+
+ Todo * sub1 = nt;
+ sub1->setRelatedTo( root1 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Planning_Project_1: Lutz");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workLutz11 = nt;
+ workLutz11->setRelatedTo( sub1 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Planning_Project_1: Norbert");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workNorbert11 = nt;
+ workNorbert11->setRelatedTo( sub1 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Work on 1");
+ nt->setPriority( 1 );
+ nt->setDescription( "This is a test description of Work Project_1" );
+ nt->setPercentComplete( 20 );
+
+ Todo * sub2 = nt;
+ sub2->setRelatedTo( root1 );
+
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Work on 1: Lutz");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workLutz12 = nt;
+ workLutz12->setRelatedTo( sub2 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Work on 1: Norbert");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workNorbert12 = nt;
+ workNorbert12->setRelatedTo( sub2 );
+
+ int secLenRunning = 7200;
+ int secLenPausing = 3600 * 3;
+ int dayInterval = 1;
+ //createRunningDate4Todo( root1, start, end, secLenRunning, secLenPausing, dayInterval );
+ createRunningDate4Todo( root1, start, end, secLenRunning*24, secLenPausing, 14 );
+ createRunningDate4Todo( sub1, start.addSecs( secLenRunning ), start.addDays( 10 ), secLenRunning*4, secLenPausing, 1);
+ createRunningDate4Todo( sub2, start.addDays( 8 ), end, secLenRunning*4, secLenPausing, 3);
+ createRunningDate4Todo( workLutz11, start, start.addDays( 8 ), secLenRunning, secLenPausing, 0);
+ createRunningDate4Todo( workNorbert11, start, start.addDays( 8 ), secLenRunning*2, secLenPausing, 1);
+ createRunningDate4Todo( workLutz12, start.addDays( 8 ),end, secLenRunning*5, secLenPausing, 3);
+ createRunningDate4Todo( workNorbert11, start.addDays( 8 ), end, secLenRunning, secLenPausing*3, 0);
+
+ }
+
+ {
+ Todo * root1 = new Todo;
+ mCalendar->addTodo( root1 );
+ root1->setSummary( "Project_2");
+ root1->setPriority( 1 );
+ root1->setDescription( "This is a test description of a root Project 2" );
+ root1->setPercentComplete( 20 );
+ updateView();
+ QDateTime start = QDateTime ( QDate( 2004,11,1), QTime ( 7,30,0) );
+ QDateTime end = QDateTime ( QDate( 2005,8,1), QTime ( 0,0,0) );
+ int secLenRunning = 7200;
+ int secLenPausing = 3600 * 3;
+ int dayInterval = 1;
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Planning_Project_2");
+ nt->setPriority( 1 );
+ nt->setDescription( "This is a test description of Planning_Project_2" );
+ nt->setPercentComplete( 20 );
+
+
+ Todo * sub1 = nt;
+ sub1->setRelatedTo( root1 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Planning_Project_2: Lutz");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workLutz11 = nt;
+ workLutz11->setRelatedTo( sub1 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Planning_Project_2: Norbert");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workNorbert11 = nt;
+ workNorbert11->setRelatedTo( sub1 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Work on 2");
+ nt->setPriority( 1 );
+ nt->setDescription( "This is a test description of Work Project_2" );
+ nt->setPercentComplete( 20 );
+
+ Todo * sub2 = nt;
+ sub2->setRelatedTo( root1 );
+
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Work on 2: Lutz");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workLutz12 = nt;
+ workLutz12->setRelatedTo( sub2 );
+
+ nt = new Todo;
+ mCalendar->addTodo( nt );
+ nt->setSummary( "Work on 2: Norbert");
+ nt->setPriority( 1 );
+ nt->setDescription( "This todo counts the actual work of a person on a project" );
+ nt->setPercentComplete( 20 );
+ Todo * workNorbert12 = nt;
+ workNorbert12->setRelatedTo( sub2 );
+ createRunningDate4Todo( root1, start, end, secLenRunning, secLenPausing, 10 );
+ createRunningDate4Todo( sub1, start.addSecs( secLenRunning*3 ), start.addDays( 20 ), secLenRunning*2, secLenPausing, 2);
+ createRunningDate4Todo( sub2, start.addDays( 8 ), end, secLenRunning*3, secLenPausing, 7);
+ createRunningDate4Todo( workLutz11, start, start.addDays( 18 ), secLenRunning/2, secLenPausing*5, 0);
+ createRunningDate4Todo( workNorbert11, start.addDays( 8 ), start.addDays( 18 ), secLenRunning*5, secLenPausing*5, 1);
+ createRunningDate4Todo( workLutz12, start.addDays( 8 ),end, secLenRunning, secLenPausing*8, 0);
+ createRunningDate4Todo( workNorbert11, start.addDays( 28 ), end, secLenRunning/8, secLenPausing*6, 0);
+ }
+ updateView();
+#endif
+}
+void CalendarView::createRunningDate4Todo( Todo * runT, QDateTime start , QDateTime end, int secLenRunning, int secLenPausing,int dayInterval )
+{
+ static int ccc = 0;
+ ++ccc;
+ QDateTime t_start = start;
+ runT->setPriority( 5 );
+ runT->setPercentComplete( 0 );
+ int count = 0;
+ int prio = 5;
+ int complete = 0;
+ while ( t_start < end ) {
+ ++count;
+ if ( count > ccc ) {
+ count = 0;
+ --prio;
+ if ( prio == 0 ) prio = 5;
+ complete += 20;
+ if ( complete > 100 ) complete = 0;
+ runT->setPriority( prio );
+ runT->setPercentComplete( complete );
+ }
+ runT->setRunning( true );
+ runT->saveRunningInfo( "Additional tt comment: running on "+ t_start.toString(), t_start, t_start.addSecs( secLenRunning ) );
+ if ( dayInterval )
+ t_start = t_start.addDays( dayInterval );
+ else {
+ t_start = t_start.addSecs( secLenRunning + secLenPausing );
+ }
+ }
}
+
void CalendarView::showDay( QDate d )
{
dateNavigator()->blockSignals( true );
dateNavigator()->selectDate( d );
dateNavigator()->blockSignals( false );
mViewManager->showDayView();
//dateNavigator()->selectDate( d );
}
void CalendarView::timerAlarm()
{
//qDebug("CalendarView::timerAlarm() ");
computeAlarm(mAlarmNotification );
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 1debef7..b223315 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -503,24 +503,25 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
void resetFocus();
void scrollBarValue(int);
void slotViewerClosed();
void timerAlarm();
void suspendAlarm();
void beamDone( Ir *ir );
/** Select a view or adapt the current view to display the specified dates. */
void showDates( const KCal::DateList & );
void selectWeekNum ( int );
void checkConflictForEvent();
public:
+ void createRunningDate4Todo( Todo * runT, QDateTime start , QDateTime end, int secLenRunning, int secLenPausing,int dayInterval );
// show a standard warning
// returns KMsgBox::yesNoCancel()
int msgCalModified();
virtual bool sync(KSyncManager* manager, QString filename, int mode);
virtual bool syncExternal(KSyncManager* manager, QString resource);
virtual void removeSyncInfo( QString syncProfile);
void setSyncManager(KSyncManager* manager);
void setLoadedFileVersion(QDateTime);
bool checkFileVersion(QString fn);
bool checkAllFileVersions();
bool checkFileChanged(QString fn);