summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-31 12:48:10 (UTC)
committer zautrix <zautrix>2005-07-31 12:48:10 (UTC)
commit4fa00d59fd2895036e9f3bce7902bf6360679a0b (patch) (side-by-side diff)
tree6d66c464aac30fc4aa9d5ace6ed08feb075a0182
parent40d43ebcc70748da775532a16f187c733aca8c8e (diff)
downloadkdepimpi-4fa00d59fd2895036e9f3bce7902bf6360679a0b.zip
kdepimpi-4fa00d59fd2895036e9f3bce7902bf6360679a0b.tar.gz
kdepimpi-4fa00d59fd2895036e9f3bce7902bf6360679a0b.tar.bz2
creating tt test data
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
@@ -799,155 +799,353 @@ void CalendarView::scrollBarValue(int val )
QDate d ( year,1,1 );
mNavigator->selectDates( d.addDays( stepdays-1) , count );
block = false;
#endif
}
void CalendarView::updateView(const QDate &start, const QDate &end)
{
#ifdef DESKTOP_VERSION
if ( ! mDateScrollBar->draggingSlider () ) {
int dof = start.dayOfYear();
//qDebug("dof %d day %d val %d ", dof, start.dayOfYear(),mDateScrollBar->value() );
if ( dof != mDateScrollBar->value() ) {
mDateScrollBar->blockSignals( true );
mDateScrollBar->setValue( start.dayOfYear());
mDateScrollBar->blockSignals( false );
}
}
#endif
mTodoList->updateView();
mViewManager->updateView(start, end);
//mDateNavigator->updateView();
}
void CalendarView::checkFiles()
{
QString message;
QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
KopiCalendarFile * cal = calendars.first();
while ( cal ) {
if ( cal->mErrorOnLoad ) {
message += cal->mName +"\n"+KGlobal::formatMessage ( "(" +i18n( "Filepath: ")+ cal->mFileName+")" ,0 )+"\n";
}
cal = calendars.next();
}
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());
//qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() );
QPtrList<Incidence> el = mCalendar->rawIncidences();
QPtrList<Incidence> al;
Incidence* inL = el.first();
QDateTime cur = QDateTime::currentDateTime().addSecs(-59);
qDebug("KO: Checking alarm until %s ", cur.toString().latin1());
while ( inL ) {
bool ok = false;
int offset = 0;
QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ;
if ( ok ) {
//qDebug("OK %s",next.toString().latin1());
if ( next < cur ) {
al.append( inL );
//qDebug("found missed alarm: %s ", inL->summary().latin1() );
}
}
inL = el.next();
}
if ( al.count() ) {
QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop );
dia->setCaption( i18n("KO/Pi: Missing alarms!") );
QVBoxLayout* lay = new QVBoxLayout( dia );
lay->setSpacing( 0 );
lay->setMargin( 0 );
MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest );
connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) ));
lay->addWidget( matb );
if ( QApplication::desktop()->width() == 480 || QApplication::desktop()->width() == 640 ) {
int wid = 210;
int x = QApplication::desktop()->width() - wid - 7;
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 );
}
void CalendarView::suspendAlarm()
{
//qDebug(" CalendarView::suspendAlarm() ");
computeAlarm(mSuspendAlarmNotification );
}
void CalendarView::startAlarm( QString mess , QString filename)
{
topLevelWidget()->showNormal();
topLevelWidget()->setActiveWindow();
topLevelWidget()->raise();
mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount );
QTimer::singleShot( 2000, this, SLOT( checkNextTimerAlarm() ) );
}
void CalendarView::checkNextTimerAlarm()
{
mCalendar->checkAlarmForIncidence( 0, true );
}
void CalendarView::computeAlarm( QString msg )
{
QString mess = msg;
QString mAlarmMessage = mess.mid( 9 );
QString filename = MainWindow::resourcePath();
filename += "koalarm.wav";
QString tempfilename;
if ( mess.left( 13 ) == "suspend_alarm") {
bool error = false;
diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h
index 1debef7..b223315 100644
--- a/korganizer/calendarview.h
+++ b/korganizer/calendarview.h
@@ -467,96 +467,97 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser
/** Look for new messages in the inbox */
void lookForIncomingMessages();
/** Look for new messages in the outbox */
void lookForOutgoingMessages();
void processMainViewSelection( Incidence * );
void processTodoListSelection( Incidence * );
void processIncidenceSelection( Incidence * );
void purgeCompleted();
bool removeCompletedSubTodos( Todo* );
void slotCalendarChanged();
bool importBday();
bool addAnniversary( QDate data, QString name, KCal::Attendee* a , bool birthday );
bool importQtopia( const QString &categoriesFile,
const QString &datebookFile,
const QString &tasklistFile );
void syncExternal( int mode );
void slotSelectPickerDate( QDate ) ;
void showDatePicker() ;
void showDatePickerPopup() ;
void moveIncidence(Incidence *) ;
void beamIncidence(Incidence *) ;
void beamCalendar() ;
void beamFilteredCalendar() ;
void beamIncidenceList(QPtrList<Incidence>) ;
void manageCategories();
void editCategories();
int addCategories();
void removeCategories();
void setSyncDevice( QString );
void setSyncName( QString );
void showDay( QDate );
void undo_delete();
protected slots:
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);
Event* getLastSyncEvent();
/** Adapt navigation units correpsonding to step size of navigation of the
* current view.
*/
void adaptNavigationUnits();
bool synchronizeCalendar( Calendar* local, Calendar* remote, int mode );
int takeEvent( Incidence* local, Incidence* remote, int mode, bool full = false );
//Attendee* getYourAttendee(Event *event);
void setBlockShowDates( bool b ) { mBlockShowDates = b ;}
void setScrollBarStep(int val );
protected:
Event *mConflictingEvent;
void schedule(Scheduler::Method, Incidence *incidence = 0);
// returns KMsgBox::OKCandel()
int msgItemDelete(const QString name);
void showEventEditor();
void showTodoEditor();
Todo *selectedTodo();
private:
#ifdef DESKTOP_VERSION
QScrollBar * mDateScrollBar;
#endif
QDateTime mNextAlarmDateTime;
bool mViewerCallerIsSearchDialog;
bool mBlockShowDates;
KSyncManager* mSyncManager;
AlarmDialog * mAlarmDialog;
QString mAlarmNotification;
QString mSuspendAlarmNotification;
QTimer* mSuspendTimer;
QTimer* mAlarmTimer;
QTimer* mRecheckAlarmTimer;
void computeAlarm( QString );
void startAlarm( QString, QString );