summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/calendarview.cpp36
1 files changed, 25 insertions, 11 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp
index 7566b22..d51187a 100644
--- a/korganizer/calendarview.cpp
+++ b/korganizer/calendarview.cpp
@@ -783,404 +783,418 @@ void CalendarView::scrollBarValue(int val )
783 block = true; 783 block = true;
784 int count = mNavigator->selectedDates().count(); 784 int count = mNavigator->selectedDates().count();
785 int day = mNavigator->selectedDates().first().dayOfYear(); 785 int day = mNavigator->selectedDates().first().dayOfYear();
786 int stepdays = val; 786 int stepdays = val;
787 if ( mDateScrollBar->lineStep () <= count ) { 787 if ( mDateScrollBar->lineStep () <= count ) {
788 //val = val/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep(); 788 //val = val/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep();
789 //qDebug("VAL %d ",val ); 789 //qDebug("VAL %d ",val );
790 stepdays = (val-day)/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep(); 790 stepdays = (val-day)/mDateScrollBar->lineStep ()*mDateScrollBar->lineStep();
791 stepdays = day+stepdays; 791 stepdays = day+stepdays;
792 if ( stepdays < 0 ) stepdays = 0; 792 if ( stepdays < 0 ) stepdays = 0;
793 } 793 }
794 if ( stepdays == day ) { 794 if ( stepdays == day ) {
795 block = false; 795 block = false;
796 return; 796 return;
797 } 797 }
798 int year = mNavigator->selectedDates().first().year(); 798 int year = mNavigator->selectedDates().first().year();
799 QDate d ( year,1,1 ); 799 QDate d ( year,1,1 );
800 mNavigator->selectDates( d.addDays( stepdays-1) , count ); 800 mNavigator->selectDates( d.addDays( stepdays-1) , count );
801 block = false; 801 block = false;
802#endif 802#endif
803 803
804} 804}
805void CalendarView::updateView(const QDate &start, const QDate &end) 805void CalendarView::updateView(const QDate &start, const QDate &end)
806{ 806{
807#ifdef DESKTOP_VERSION 807#ifdef DESKTOP_VERSION
808 if ( ! mDateScrollBar->draggingSlider () ) { 808 if ( ! mDateScrollBar->draggingSlider () ) {
809 int dof = start.dayOfYear(); 809 int dof = start.dayOfYear();
810 //qDebug("dof %d day %d val %d ", dof, start.dayOfYear(),mDateScrollBar->value() ); 810 //qDebug("dof %d day %d val %d ", dof, start.dayOfYear(),mDateScrollBar->value() );
811 if ( dof != mDateScrollBar->value() ) { 811 if ( dof != mDateScrollBar->value() ) {
812 mDateScrollBar->blockSignals( true ); 812 mDateScrollBar->blockSignals( true );
813 mDateScrollBar->setValue( start.dayOfYear()); 813 mDateScrollBar->setValue( start.dayOfYear());
814 mDateScrollBar->blockSignals( false ); 814 mDateScrollBar->blockSignals( false );
815 } 815 }
816 } 816 }
817#endif 817#endif
818 mTodoList->updateView(); 818 mTodoList->updateView();
819 mViewManager->updateView(start, end); 819 mViewManager->updateView(start, end);
820 //mDateNavigator->updateView(); 820 //mDateNavigator->updateView();
821} 821}
822 822
823 823
824 824
825void CalendarView::checkFiles() 825void CalendarView::checkFiles()
826{ 826{
827 QString message; 827 QString message;
828 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 828 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
829 KopiCalendarFile * cal = calendars.first(); 829 KopiCalendarFile * cal = calendars.first();
830 while ( cal ) { 830 while ( cal ) {
831 if ( cal->mErrorOnLoad ) { 831 if ( cal->mErrorOnLoad ) {
832 message += cal->mName +"\n"+KGlobal::formatMessage ( "(" +i18n( "Filepath: ")+ cal->mFileName+")" ,0 )+"\n"; 832 message += cal->mName +"\n"+KGlobal::formatMessage ( "(" +i18n( "Filepath: ")+ cal->mFileName+")" ,0 )+"\n";
833 } 833 }
834 cal = calendars.next(); 834 cal = calendars.next();
835 } 835 }
836 if ( !message.isEmpty() ) { 836 if ( !message.isEmpty() ) {
837 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); 837 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);
838 KMessageBox::error(this,message, i18n("Loding of calendar(s) failed")); 838 KMessageBox::error(this,message, i18n("Loding of calendar(s) failed"));
839 } 839 }
840 static bool firstTime = true; 840 static bool firstTime = true;
841 if ( firstTime ) { 841 if ( firstTime ) {
842 firstTime = false; 842 firstTime = false;
843 QTimer::singleShot( 2000, this, SLOT ( checkAlarms() )); 843 QTimer::singleShot( 2000, this, SLOT ( checkAlarms() ));
844 } 844 }
845} 845}
846void CalendarView::checkAlarms() 846void CalendarView::checkAlarms()
847{ 847{
848 KConfig *config = KOGlobals::config(); 848 KConfig *config = KOGlobals::config();
849 config->setGroup( "AppRun" ); 849 config->setGroup( "AppRun" );
850 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) ); 850 QDateTime dt ( QDate (2005,1,1), QTime( 0,0,0 ) );
851 int daysto = dt.daysTo( QDate::currentDate() ); 851 int daysto = dt.daysTo( QDate::currentDate() );
852 int days = config->readNumEntry( "LatestProgramStopDays" , daysto); 852 int days = config->readNumEntry( "LatestProgramStopDays" , daysto);
853 dt = dt.addDays( days ); 853 dt = dt.addDays( days );
854 int secto = dt.secsTo( QDateTime::currentDateTime() ); 854 int secto = dt.secsTo( QDateTime::currentDateTime() );
855 int secs = config->readNumEntry( "LatestProgramStopSecs" , secto) - 30; 855 int secs = config->readNumEntry( "LatestProgramStopSecs" , secto) - 30;
856 //qDebug("KO: Reading program stop %d ", secs); 856 //qDebug("KO: Reading program stop %d ", secs);
857 //secs -= ( 3600 * 24*3 ); // debug only 857 //secs -= ( 3600 * 24*3 ); // debug only
858 QDateTime latest = dt.addSecs ( secs ); 858 QDateTime latest = dt.addSecs ( secs );
859 qDebug("KO: Last termination on %s ", latest.toString().latin1()); 859 qDebug("KO: Last termination on %s ", latest.toString().latin1());
860 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() ); 860 //qDebug("KO: Current Time %s ",QDateTime::currentDateTime().toString().latin1() );
861 QPtrList<Incidence> el = mCalendar->rawIncidences(); 861 QPtrList<Incidence> el = mCalendar->rawIncidences();
862 QPtrList<Incidence> al; 862 QPtrList<Incidence> al;
863 Incidence* inL = el.first(); 863 Incidence* inL = el.first();
864 QDateTime cur = QDateTime::currentDateTime().addSecs(-59); 864 QDateTime cur = QDateTime::currentDateTime().addSecs(-59);
865 qDebug("KO: Checking alarm until %s ", cur.toString().latin1()); 865 qDebug("KO: Checking alarm until %s ", cur.toString().latin1());
866 while ( inL ) { 866 while ( inL ) {
867 bool ok = false; 867 bool ok = false;
868 int offset = 0; 868 int offset = 0;
869 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ; 869 QDateTime next = inL->getNextAlarmDateTime(& ok, &offset, latest ) ;
870 if ( ok ) { 870 if ( ok ) {
871 //qDebug("OK %s",next.toString().latin1()); 871 //qDebug("OK %s",next.toString().latin1());
872 if ( next < cur ) { 872 if ( next < cur ) {
873 al.append( inL ); 873 al.append( inL );
874 //qDebug("found missed alarm: %s ", inL->summary().latin1() ); 874 //qDebug("found missed alarm: %s ", inL->summary().latin1() );
875 } 875 }
876 } 876 }
877 inL = el.next(); 877 inL = el.next();
878 } 878 }
879 if ( al.count() ) { 879 if ( al.count() ) {
880 QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop ); 880 QDialog* dia = new QDialog( this, "huhu", false, WDestructiveClose | WStyle_StaysOnTop );
881 dia->setCaption( i18n("KO/Pi: Missing alarms!") ); 881 dia->setCaption( i18n("KO/Pi: Missing alarms!") );
882 QVBoxLayout* lay = new QVBoxLayout( dia ); 882 QVBoxLayout* lay = new QVBoxLayout( dia );
883 lay->setSpacing( 0 ); 883 lay->setSpacing( 0 );
884 lay->setMargin( 0 ); 884 lay->setMargin( 0 );
885 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest ); 885 MissedAlarmTextBrowser* matb = new MissedAlarmTextBrowser ( dia, al, latest );
886 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) )); 886 connect( matb, SIGNAL( showIncidence( QString ) ),SLOT( showIncidence( QString ) ));
887 lay->addWidget( matb ); 887 lay->addWidget( matb );
888 if ( QApplication::desktop()->width() == 480 || QApplication::desktop()->width() == 640 ) { 888 if ( QApplication::desktop()->width() == 480 || QApplication::desktop()->width() == 640 ) {
889 int wid = 210; 889 int wid = 210;
890 int x = QApplication::desktop()->width() - wid - 7; 890 int x = QApplication::desktop()->width() - wid - 7;
891 int y = QApplication::desktop()->height() - wid - 70; 891 int y = QApplication::desktop()->height() - wid - 70;
892 dia->setGeometry ( x,y,wid,wid); 892 dia->setGeometry ( x,y,wid,wid);
893 } else { 893 } else {
894 int si = 220; 894 int si = 220;
895 if ( QApplication::desktop()->width() > 470 ) 895 if ( QApplication::desktop()->width() > 470 )
896 si = 400; 896 si = 400;
897 dia->resize(si,si/2); 897 dia->resize(si,si/2);
898 } 898 }
899 dia->setBackgroundColor( QColor( 255, 255, 255 ) ); 899 dia->setBackgroundColor( QColor( 255, 255, 255 ) );
900 dia->show(); 900 dia->show();
901 901
902 } 902 }
903#if 0 903#if 0
904 // for creating timetracker test data 904 // for creating timetracker test data
905 qDebug("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCc "); 905 qDebug("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCc ");
906 Todo * nt; 906 Todo * nt;
907 mCalendar->close(); 907 mCalendar->close();
908 { 908 {
909 Todo * root1 = new Todo; 909 Todo * root1 = new Todo;
910 mCalendar->addTodo( root1 ); 910 mCalendar->addTodo( root1 );
911 root1->setSummary( "Project_1"); 911 root1->setSummary( "Project1");
912 root1->setPriority( 1 ); 912 root1->setPriority( 1 );
913 root1->setCategories( QString( "Cat_Pro1") );
913 root1->setDescription( "This is a test description of a root Project" ); 914 root1->setDescription( "This is a test description of a root Project" );
914 root1->setPercentComplete( 20 ); 915 root1->setPercentComplete( 20 );
915 updateView(); 916 updateView();
916 QDateTime start = QDateTime ( QDate( 2004,11,1), QTime ( 7,30,0) ); 917 QDateTime start = QDateTime ( QDate( 2004,11,1), QTime ( 7,30,0) );
917 QDateTime end = QDateTime ( QDate( 2005,8,1), QTime ( 0,0,0) ); 918 QDateTime end = QDateTime ( QDate( 2005,8,5), QTime ( 0,0,0) );
918 919
919 nt = new Todo; 920 nt = new Todo;
920 mCalendar->addTodo( nt ); 921 mCalendar->addTodo( nt );
921 nt->setSummary( "Planning_Project_1"); 922 nt->setSummary( "Planning Project1");
922 nt->setPriority( 1 ); 923 nt->setPriority( 1 );
923 nt->setDescription( "This is a test description of Planning_Project_1" ); 924 nt->setDescription( "This is a test description of Planning Project1" );
924 nt->setPercentComplete( 20 ); 925 nt->setPercentComplete( 20 );
926 nt->setCategories( QString( "Cat_Pro1,Cat_Plan_Pro1") );
925 927
926 928
927 Todo * sub1 = nt; 929 Todo * sub1 = nt;
928 sub1->setRelatedTo( root1 ); 930 sub1->setRelatedTo( root1 );
929 931
930 nt = new Todo; 932 nt = new Todo;
931 mCalendar->addTodo( nt ); 933 mCalendar->addTodo( nt );
932 nt->setSummary( "Planning_Project_1: Lutz"); 934 nt->setSummary( "Planning Project1: Lutz");
933 nt->setPriority( 1 ); 935 nt->setPriority( 1 );
934 nt->setDescription( "This todo counts the actual work of a person on a project" ); 936 nt->setDescription( "This todo counts the actual work of a person on a project" );
935 nt->setPercentComplete( 20 ); 937 nt->setPercentComplete( 20 );
938 nt->setCategories( QString( "Cat_Pro1,Cat_Plan_Pro1,Cat_Work_Lutz") );
936 Todo * workLutz11 = nt; 939 Todo * workLutz11 = nt;
937 workLutz11->setRelatedTo( sub1 ); 940 workLutz11->setRelatedTo( sub1 );
938 941
939 nt = new Todo; 942 nt = new Todo;
940 mCalendar->addTodo( nt ); 943 mCalendar->addTodo( nt );
941 nt->setSummary( "Planning_Project_1: Norbert"); 944 nt->setSummary( "Planning Project1: Norbert");
942 nt->setPriority( 1 ); 945 nt->setPriority( 1 );
943 nt->setDescription( "This todo counts the actual work of a person on a project" ); 946 nt->setDescription( "This todo counts the actual work of a person on a project" );
944 nt->setPercentComplete( 20 ); 947 nt->setPercentComplete( 20 );
948 nt->setCategories( QString( "Cat_Pro1,Cat_Plan_Pro1,Cat_Work_Norbert") );
945 Todo * workNorbert11 = nt; 949 Todo * workNorbert11 = nt;
946 workNorbert11->setRelatedTo( sub1 ); 950 workNorbert11->setRelatedTo( sub1 );
947 951
948 nt = new Todo; 952 nt = new Todo;
949 mCalendar->addTodo( nt ); 953 mCalendar->addTodo( nt );
950 nt->setSummary( "Work on 1"); 954 nt->setSummary( "Work on 1");
951 nt->setPriority( 1 ); 955 nt->setPriority( 1 );
952 nt->setDescription( "This is a test description of Work Project_1" ); 956 nt->setDescription( "This is a test description of Work Project_1" );
957 nt->setCategories( QString( "Cat_Pro1,Cat_Work_Pro1") );
953 nt->setPercentComplete( 20 ); 958 nt->setPercentComplete( 20 );
954 959
955 Todo * sub2 = nt; 960 Todo * sub2 = nt;
956 sub2->setRelatedTo( root1 ); 961 sub2->setRelatedTo( root1 );
957 962
958 963
959 nt = new Todo; 964 nt = new Todo;
960 mCalendar->addTodo( nt ); 965 mCalendar->addTodo( nt );
961 nt->setSummary( "Work on 1: Lutz"); 966 nt->setSummary( "Work on 1: Lutz");
962 nt->setPriority( 1 ); 967 nt->setPriority( 1 );
963 nt->setDescription( "This todo counts the actual work of a person on a project" ); 968 nt->setDescription( "This todo counts the actual work of a person on a project" );
969 nt->setCategories( QString( "Cat_Pro1,Cat_Work_Pro1,Cat_Work_Lutz") );
964 nt->setPercentComplete( 20 ); 970 nt->setPercentComplete( 20 );
965 Todo * workLutz12 = nt; 971 Todo * workLutz12 = nt;
966 workLutz12->setRelatedTo( sub2 ); 972 workLutz12->setRelatedTo( sub2 );
967 973
968 nt = new Todo; 974 nt = new Todo;
969 mCalendar->addTodo( nt ); 975 mCalendar->addTodo( nt );
970 nt->setSummary( "Work on 1: Norbert"); 976 nt->setSummary( "Work on 1: Norbert");
971 nt->setPriority( 1 ); 977 nt->setPriority( 1 );
972 nt->setDescription( "This todo counts the actual work of a person on a project" ); 978 nt->setDescription( "This todo counts the actual work of a person on a project" );
979 nt->setCategories( QString( "Cat_Pro1,Cat_Work_Pro1,Cat_Work_Norbert") );
973 nt->setPercentComplete( 20 ); 980 nt->setPercentComplete( 20 );
974 Todo * workNorbert12 = nt; 981 Todo * workNorbert12 = nt;
975 workNorbert12->setRelatedTo( sub2 ); 982 workNorbert12->setRelatedTo( sub2 );
976 983
977 int secLenRunning = 7200; 984 int secLenRunning = 7200;
978 int secLenPausing = 3600 * 3; 985 int secLenPausing = 3600 * 3;
979 int dayInterval = 1; 986 int dayInterval = 1;
980 //createRunningDate4Todo( root1, start, end, secLenRunning, secLenPausing, dayInterval ); 987 //createRunningDate4Todo( root1, start, end, secLenRunning, secLenPausing, dayInterval );
981 createRunningDate4Todo( root1, start, end, secLenRunning*24, secLenPausing, 14 ); 988 createRunningDate4Todo( root1, start, end, secLenRunning*24, secLenPausing, 14 );
982 createRunningDate4Todo( sub1, start.addSecs( secLenRunning ), start.addDays( 10 ), secLenRunning*4, secLenPausing, 1); 989 createRunningDate4Todo( sub1, start.addSecs( secLenRunning ), start.addDays( 10 ), secLenRunning*4, secLenPausing, 1);
983 createRunningDate4Todo( sub2, start.addDays( 8 ), end, secLenRunning*4, secLenPausing, 3); 990 createRunningDate4Todo( sub2, start.addDays( 8 ), end, secLenRunning*4, secLenPausing, 3);
984 createRunningDate4Todo( workLutz11, start, start.addDays( 8 ), secLenRunning, secLenPausing, 0); 991 createRunningDate4Todo( workLutz11, start, start.addDays( 8 ), secLenRunning, secLenPausing, 0);
985 createRunningDate4Todo( workNorbert11, start, start.addDays( 8 ), secLenRunning*2, secLenPausing, 1); 992 createRunningDate4Todo( workNorbert11, start, start.addDays( 8 ), secLenRunning*2, secLenPausing, 1);
986 createRunningDate4Todo( workLutz12, start.addDays( 8 ),end, secLenRunning*5, secLenPausing, 3); 993 createRunningDate4Todo( workLutz12, start.addDays( 8 ),end, secLenRunning*5, secLenPausing, 3);
987 createRunningDate4Todo( workNorbert12, start.addDays( 8 ), end, secLenRunning, secLenPausing*3, 0); 994 createRunningDate4Todo( workNorbert12, start.addDays( 8 ), end, secLenRunning, secLenPausing*3, 0);
988 995
989 } 996 }
990 997
991 { 998 {
992 Todo * root1 = new Todo; 999 Todo * root1 = new Todo;
993 mCalendar->addTodo( root1 ); 1000 mCalendar->addTodo( root1 );
994 root1->setSummary( "Project_2"); 1001 root1->setSummary( "Project2");
995 root1->setPriority( 1 ); 1002 root1->setPriority( 1 );
996 root1->setDescription( "This is a test description of a root Project 2" ); 1003 root1->setDescription( "This is a test description of a root Project 2" );
997 root1->setPercentComplete( 20 ); 1004 root1->setPercentComplete( 20 );
1005 root1->setCategories( QString( "Cat_Pro2") );
998 updateView(); 1006 updateView();
999 QDateTime start = QDateTime ( QDate( 2004,11,1), QTime ( 7,30,0) ); 1007 QDateTime start = QDateTime ( QDate( 2004,11,1), QTime ( 7,30,0) );
1000 QDateTime end = QDateTime ( QDate( 2005,8,1), QTime ( 0,0,0) ); 1008 QDateTime end = QDateTime ( QDate( 2005,8,5), QTime ( 0,0,0) );
1001 int secLenRunning = 7200; 1009 int secLenRunning = 7200;
1002 int secLenPausing = 3600 * 3; 1010 int secLenPausing = 3600 * 3;
1003 int dayInterval = 1; 1011 int dayInterval = 1;
1004 1012
1005 nt = new Todo; 1013 nt = new Todo;
1006 mCalendar->addTodo( nt ); 1014 mCalendar->addTodo( nt );
1007 nt->setSummary( "Planning_Project_2"); 1015 nt->setSummary( "Planning Project2");
1008 nt->setPriority( 1 ); 1016 nt->setPriority( 1 );
1009 nt->setDescription( "This is a test description of Planning_Project_2" ); 1017 nt->setDescription( "This is a test description of Planning_Project_2" );
1018 nt->setCategories( QString( "Cat_Pro2,Cat_Plan_Pro2") );
1010 nt->setPercentComplete( 20 ); 1019 nt->setPercentComplete( 20 );
1011 1020
1012 1021
1013 Todo * sub1 = nt; 1022 Todo * sub1 = nt;
1014 sub1->setRelatedTo( root1 ); 1023 sub1->setRelatedTo( root1 );
1015 1024
1016 nt = new Todo; 1025 nt = new Todo;
1017 mCalendar->addTodo( nt ); 1026 mCalendar->addTodo( nt );
1018 nt->setSummary( "Planning_Project_2: Lutz"); 1027 nt->setSummary( "Planning Project2: Lutz");
1019 nt->setPriority( 1 ); 1028 nt->setPriority( 1 );
1020 nt->setDescription( "This todo counts the actual work of a person on a project" ); 1029 nt->setDescription( "This todo counts the actual work of a person on a project" );
1030 nt->setCategories( QString( "Cat_Pro2,Cat_Plan_Pro2,Cat_Work_Lutz") );
1021 nt->setPercentComplete( 20 ); 1031 nt->setPercentComplete( 20 );
1022 Todo * workLutz11 = nt; 1032 Todo * workLutz11 = nt;
1023 workLutz11->setRelatedTo( sub1 ); 1033 workLutz11->setRelatedTo( sub1 );
1024 1034
1025 nt = new Todo; 1035 nt = new Todo;
1026 mCalendar->addTodo( nt ); 1036 mCalendar->addTodo( nt );
1027 nt->setSummary( "Planning_Project_2: Norbert"); 1037 nt->setSummary( "Planning Project2: Norbert");
1028 nt->setPriority( 1 ); 1038 nt->setPriority( 1 );
1029 nt->setDescription( "This todo counts the actual work of a person on a project" ); 1039 nt->setDescription( "This todo counts the actual work of a person on a project" );
1040 nt->setCategories( QString( "Cat_Pro2,Cat_Plan_Pro2,Cat_Work_Norbert") );
1030 nt->setPercentComplete( 20 ); 1041 nt->setPercentComplete( 20 );
1031 Todo * workNorbert11 = nt; 1042 Todo * workNorbert11 = nt;
1032 workNorbert11->setRelatedTo( sub1 ); 1043 workNorbert11->setRelatedTo( sub1 );
1033 1044
1034 nt = new Todo; 1045 nt = new Todo;
1035 mCalendar->addTodo( nt ); 1046 mCalendar->addTodo( nt );
1036 nt->setSummary( "Work on 2"); 1047 nt->setSummary( "Work on 2");
1037 nt->setPriority( 1 ); 1048 nt->setPriority( 1 );
1038 nt->setDescription( "This is a test description of Work Project_2" ); 1049 nt->setDescription( "This is a test description of Work Project_2" );
1050 nt->setCategories( QString( "Cat_Pro2,Cat_Work_Pro2") );
1039 nt->setPercentComplete( 20 ); 1051 nt->setPercentComplete( 20 );
1040 1052
1041 Todo * sub2 = nt; 1053 Todo * sub2 = nt;
1042 sub2->setRelatedTo( root1 ); 1054 sub2->setRelatedTo( root1 );
1043 1055
1044 1056
1045 nt = new Todo; 1057 nt = new Todo;
1046 mCalendar->addTodo( nt ); 1058 mCalendar->addTodo( nt );
1047 nt->setSummary( "Work on 2: Lutz"); 1059 nt->setSummary( "Work on 2: Lutz");
1048 nt->setPriority( 1 ); 1060 nt->setPriority( 1 );
1049 nt->setDescription( "This todo counts the actual work of a person on a project" ); 1061 nt->setDescription( "This todo counts the actual work of a person on a project" );
1062 nt->setCategories( QString( "Cat_Pro2,Cat_Work_Pro2,Cat_Work_Lutz") );
1050 nt->setPercentComplete( 20 ); 1063 nt->setPercentComplete( 20 );
1051 Todo * workLutz12 = nt; 1064 Todo * workLutz12 = nt;
1052 workLutz12->setRelatedTo( sub2 ); 1065 workLutz12->setRelatedTo( sub2 );
1053 1066
1054 nt = new Todo; 1067 nt = new Todo;
1055 mCalendar->addTodo( nt ); 1068 mCalendar->addTodo( nt );
1056 nt->setSummary( "Work on 2: Norbert"); 1069 nt->setSummary( "Work on 2: Norbert");
1057 nt->setPriority( 1 ); 1070 nt->setPriority( 1 );
1058 nt->setDescription( "This todo counts the actual work of a person on a project" ); 1071 nt->setDescription( "This todo counts the actual work of a person on a project" );
1072 nt->setCategories( QString( "Cat_Pro2,Cat_Work_Pro2,Cat_Work_Norbert") );
1059 nt->setPercentComplete( 20 ); 1073 nt->setPercentComplete( 20 );
1060 Todo * workNorbert12 = nt; 1074 Todo * workNorbert12 = nt;
1061 workNorbert12->setRelatedTo( sub2 ); 1075 workNorbert12->setRelatedTo( sub2 );
1062 createRunningDate4Todo( root1, start, end, secLenRunning, secLenPausing, 10 ); 1076 createRunningDate4Todo( root1, start, end, secLenRunning, secLenPausing, 10 );
1063 createRunningDate4Todo( sub1, start.addSecs( secLenRunning*3 ), start.addDays( 20 ), secLenRunning*2, secLenPausing, 2); 1077 createRunningDate4Todo( sub1, start.addSecs( secLenRunning*3 ), start.addDays( 20 ), secLenRunning*2, secLenPausing, 2);
1064 createRunningDate4Todo( sub2, start.addDays( 8 ), end, secLenRunning*3, secLenPausing, 7); 1078 createRunningDate4Todo( sub2, start.addDays( 8 ), end, secLenRunning*3, secLenPausing, 7);
1065 createRunningDate4Todo( workLutz11, start, start.addDays( 18 ), secLenRunning/2, secLenPausing*5, 0); 1079 createRunningDate4Todo( workLutz11, start, start.addDays( 18 ), secLenRunning/2, secLenPausing*5, 0);
1066 createRunningDate4Todo( workNorbert11, start.addDays( 8 ), start.addDays( 18 ), secLenRunning*5, secLenPausing*5, 1); 1080 createRunningDate4Todo( workNorbert11, start.addDays( 8 ), start.addDays( 18 ), secLenRunning*5, secLenPausing*5, 1);
1067 createRunningDate4Todo( workLutz12, start.addDays( 8 ),end, secLenRunning, secLenPausing*8, 0); 1081 createRunningDate4Todo( workLutz12, start.addDays( 8 ),end, secLenRunning, secLenPausing*8, 0);
1068 createRunningDate4Todo( workNorbert12, start.addDays( 28 ), end, secLenRunning/8, secLenPausing*6, 0); 1082 createRunningDate4Todo( workNorbert12, start.addDays( 28 ), end, secLenRunning/8, secLenPausing*6, 0);
1069 } 1083 }
1070 updateView(); 1084 updateView();
1071#endif 1085#endif
1072 1086
1073} 1087}
1074void CalendarView::createRunningDate4Todo( Todo * runT, QDateTime start , QDateTime end, int secLenRunning, int secLenPausing,int dayInterval ) 1088void CalendarView::createRunningDate4Todo( Todo * runT, QDateTime start , QDateTime end, int secLenRunning, int secLenPausing,int dayInterval )
1075{ 1089{
1076 static int ccc = 0; 1090 static int ccc = 0;
1077 ++ccc; 1091 ++ccc;
1078 QDateTime t_start = start; 1092 QDateTime t_start = start;
1079 runT->setPriority( 5 ); 1093 runT->setPriority( 5 );
1080 runT->setPercentComplete( 0 ); 1094 runT->setPercentComplete( 0 );
1081 int count = 0; 1095 int count = 0;
1082 int prio = 5; 1096 int prio = 5;
1083 int complete = 0; 1097 int complete = 0;
1084 while ( t_start < end ) { 1098 while ( t_start < end ) {
1085 ++count; 1099 ++count;
1086 if ( count > ccc ) { 1100 if ( count > ccc ) {
1087 count = 0; 1101 count = 0;
1088 --prio; 1102 --prio;
1089 if ( prio == 0 ) prio = 5; 1103 if ( prio == 0 ) prio = 5;
1090 complete += 20; 1104 complete += 20;
1091 if ( complete > 100 ) complete = 0; 1105 if ( complete > 100 ) complete = 0;
1092 runT->setPriority( prio ); 1106 runT->setPriority( prio );
1093 runT->setPercentComplete( complete ); 1107 runT->setPercentComplete( complete );
1094 } 1108 }
1095 runT->setRunning( true ); 1109 runT->setRunning( true );
1096 runT->saveRunningInfo( "Additional tt comment: running on "+ t_start.toString(), t_start, t_start.addSecs( secLenRunning ) ); 1110 runT->saveRunningInfo( "Additional tt comment: running on "+ t_start.toString(), t_start, t_start.addSecs( secLenRunning ) );
1097 if ( dayInterval ) 1111 if ( dayInterval )
1098 t_start = t_start.addDays( dayInterval ); 1112 t_start = t_start.addDays( dayInterval );
1099 else { 1113 else {
1100 t_start = t_start.addSecs( secLenRunning + secLenPausing ); 1114 t_start = t_start.addSecs( secLenRunning + secLenPausing );
1101 } 1115 }
1102 } 1116 }
1103} 1117}
1104 1118
1105void CalendarView::showDay( QDate d ) 1119void CalendarView::showDay( QDate d )
1106{ 1120{
1107 dateNavigator()->blockSignals( true ); 1121 dateNavigator()->blockSignals( true );
1108 dateNavigator()->selectDate( d ); 1122 dateNavigator()->selectDate( d );
1109 dateNavigator()->blockSignals( false ); 1123 dateNavigator()->blockSignals( false );
1110 mViewManager->showDayView(); 1124 mViewManager->showDayView();
1111 //dateNavigator()->selectDate( d ); 1125 //dateNavigator()->selectDate( d );
1112} 1126}
1113void CalendarView::timerAlarm() 1127void CalendarView::timerAlarm()
1114{ 1128{
1115 //qDebug("CalendarView::timerAlarm() "); 1129 //qDebug("CalendarView::timerAlarm() ");
1116 computeAlarm(mAlarmNotification ); 1130 computeAlarm(mAlarmNotification );
1117} 1131}
1118 1132
1119void CalendarView::suspendAlarm() 1133void CalendarView::suspendAlarm()
1120{ 1134{
1121 //qDebug(" CalendarView::suspendAlarm() "); 1135 //qDebug(" CalendarView::suspendAlarm() ");
1122 computeAlarm(mSuspendAlarmNotification ); 1136 computeAlarm(mSuspendAlarmNotification );
1123 1137
1124} 1138}
1125 1139
1126void CalendarView::startAlarm( QString mess , QString filename) 1140void CalendarView::startAlarm( QString mess , QString filename)
1127{ 1141{
1128 1142
1129 topLevelWidget()->showNormal(); 1143 topLevelWidget()->showNormal();
1130 topLevelWidget()->setActiveWindow(); 1144 topLevelWidget()->setActiveWindow();
1131 topLevelWidget()->raise(); 1145 topLevelWidget()->raise();
1132 1146
1133 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount ); 1147 mAlarmDialog->eventNotification( mess, KOPrefs::instance()->mAlarmPlayBeeps, filename, true,KOPrefs::instance()->mAlarmBeepInterval ,KOPrefs::instance()->mAlarmSuspendCount );
1134 QTimer::singleShot( 2000, this, SLOT( checkNextTimerAlarm() ) ); 1148 QTimer::singleShot( 2000, this, SLOT( checkNextTimerAlarm() ) );
1135 1149
1136} 1150}
1137 1151
1138void CalendarView::checkNextTimerAlarm() 1152void CalendarView::checkNextTimerAlarm()
1139{ 1153{
1140 mCalendar->checkAlarmForIncidence( 0, true ); 1154 mCalendar->checkAlarmForIncidence( 0, true );
1141} 1155}
1142 1156
1143void CalendarView::computeAlarm( QString msg ) 1157void CalendarView::computeAlarm( QString msg )
1144{ 1158{
1145 1159
1146 QString mess = msg; 1160 QString mess = msg;
1147 QString mAlarmMessage = mess.mid( 9 ); 1161 QString mAlarmMessage = mess.mid( 9 );
1148 QString filename = MainWindow::resourcePath(); 1162 QString filename = MainWindow::resourcePath();
1149 filename += "koalarm.wav"; 1163 filename += "koalarm.wav";
1150 QString tempfilename; 1164 QString tempfilename;
1151 if ( mess.left( 13 ) == "suspend_alarm") { 1165 if ( mess.left( 13 ) == "suspend_alarm") {
1152 bool error = false; 1166 bool error = false;
1153 int len = mess.mid( 13 ).find("+++"); 1167 int len = mess.mid( 13 ).find("+++");
1154 if ( len < 2 ) 1168 if ( len < 2 )
1155 error = true; 1169 error = true;
1156 else { 1170 else {
1157 tempfilename = mess.mid( 13, len ); 1171 tempfilename = mess.mid( 13, len );
1158 if ( !QFile::exists( tempfilename ) ) 1172 if ( !QFile::exists( tempfilename ) )
1159 error = true; 1173 error = true;
1160 } 1174 }
1161 if ( ! error ) { 1175 if ( ! error ) {
1162 filename = tempfilename; 1176 filename = tempfilename;
1163 } 1177 }
1164 mAlarmMessage = mess.mid( 13+len+3 ); 1178 mAlarmMessage = mess.mid( 13+len+3 );
1165 //qDebug("suspend file %s ",tempfilename.latin1() ); 1179 //qDebug("suspend file %s ",tempfilename.latin1() );
1166 startAlarm( mAlarmMessage, filename); 1180 startAlarm( mAlarmMessage, filename);
1167 return; 1181 return;
1168 } 1182 }
1169 if ( mess.left( 11 ) == "timer_alarm") { 1183 if ( mess.left( 11 ) == "timer_alarm") {
1170 //mTimerTime = 0; 1184 //mTimerTime = 0;
1171 startAlarm( mess.mid( 11 ), filename ); 1185 startAlarm( mess.mid( 11 ), filename );
1172 return; 1186 return;
1173 } 1187 }
1174 if ( mess.left( 10 ) == "proc_alarm") { 1188 if ( mess.left( 10 ) == "proc_alarm") {
1175 bool error = false; 1189 bool error = false;
1176 int len = mess.mid( 10 ).find("+++"); 1190 int len = mess.mid( 10 ).find("+++");
1177 if ( len < 2 ) 1191 if ( len < 2 )
1178 error = true; 1192 error = true;
1179 else { 1193 else {
1180 tempfilename = mess.mid( 10, len ); 1194 tempfilename = mess.mid( 10, len );
1181 if ( !QFile::exists( tempfilename ) ) 1195 if ( !QFile::exists( tempfilename ) )
1182 error = true; 1196 error = true;
1183 } 1197 }
1184 if ( error ) { 1198 if ( error ) {
1185 mAlarmMessage = "Procedure Alarm\nError - File not found\n"; 1199 mAlarmMessage = "Procedure Alarm\nError - File not found\n";
1186 mAlarmMessage += mess.mid( 10+len+3+9 ); 1200 mAlarmMessage += mess.mid( 10+len+3+9 );