summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-29 12:54:34 (UTC)
committer zautrix <zautrix>2005-06-29 12:54:34 (UTC)
commitf29d4de96b6fd334ff64f11731f5d4899b69f124 (patch) (unidiff)
tree389555e0e180443d946174b5e97b153047935d16
parent4c19dcc4e5b45d9cf04c91af82f00b764b01e985 (diff)
downloadkdepimpi-f29d4de96b6fd334ff64f11731f5d4899b69f124.zip
kdepimpi-f29d4de96b6fd334ff64f11731f5d4899b69f124.tar.gz
kdepimpi-f29d4de96b6fd334ff64f11731f5d4899b69f124.tar.bz2
nf
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt9
-rw-r--r--korganizer/koeventviewer.cpp2
2 files changed, 10 insertions, 1 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 0dad1c1..54376a0 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,98 +1,107 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.1.11 ************
4
5KO/Pi:
6Because we can have many calendars now in KO/Pi we can have more than one journal entry per day.
7Added features to handle (and add ) more than one journal entry per day.
8Added option for a journal title.
9
10Added info about the calendar, the item belongs to, to the event/todo/journal viewer.
11
3********** VERSION 2.1.10 ************ 12********** VERSION 2.1.10 ************
4 13
5KO/Pi: 14KO/Pi:
6Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file. 15Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file.
7When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted. 16When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted.
8Fixed a bug in searching for a small timerange, i.e. one day. 17Fixed a bug in searching for a small timerange, i.e. one day.
9 18
10KA/Pi: 19KA/Pi:
11Fixed two problems in csv export. 20Fixed two problems in csv export.
12Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi. 21Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi.
13 22
14********** VERSION 2.1.9 ************ 23********** VERSION 2.1.9 ************
15 24
16KO/Pi: 25KO/Pi:
17Fixed some problems of the new search options in the search dialog. 26Fixed some problems of the new search options in the search dialog.
18Fixed some problems in the new resource config options. 27Fixed some problems in the new resource config options.
19Changed the recurrence edit of events and todos such that the recurrence edit page now is notified about a change of the start date on the first page. 28Changed the recurrence edit of events and todos such that the recurrence edit page now is notified about a change of the start date on the first page.
20Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown: 29Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown:
21Now you can click on the bottom/top of an allday agenda item or on the left/right side of an agenda item to get the "new todo/new event" popup. 30Now you can click on the bottom/top of an allday agenda item or on the left/right side of an agenda item to get the "new todo/new event" popup.
22 31
23Fixed a problem in recurrence range in syncing with DTM. 32Fixed a problem in recurrence range in syncing with DTM.
24 33
25KA/Pi: 34KA/Pi:
26Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...) 35Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...)
27 36
28PwM/Pi: 37PwM/Pi:
29Added "sec" to the timeout config settings to make it clear the timeout values are seconds. 38Added "sec" to the timeout config settings to make it clear the timeout values are seconds.
30 39
31********** VERSION 2.1.8 ************ 40********** VERSION 2.1.8 ************
32 41
33KO/Pi: 42KO/Pi:
34Added info about the completion state of a todo in the ListView/Searchdialog. 43Added info about the completion state of a todo in the ListView/Searchdialog.
35If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well. 44If in TodoView is selected "do not show compledted todos" then completed todos are not shown in the ListView as well.
36Fixed some updating problems when changing the filter. 45Fixed some updating problems when changing the filter.
37 46
38KA/Pi: 47KA/Pi:
39In the addressee selection dialog now the formatted name is shown, if not empty. 48In the addressee selection dialog now the formatted name is shown, if not empty.
40Added a column "category" to the addressee selection dialog to make it possible to sort addressees after category. 49Added a column "category" to the addressee selection dialog to make it possible to sort addressees after category.
41Now in the addressee selection dialog a selected contact is remove with a single click from the selected list. 50Now in the addressee selection dialog a selected contact is remove with a single click from the selected list.
42 51
43Fixed in the file selector on the Zaurus the problem that symbolic links to files/dirs were ignored. 52Fixed in the file selector on the Zaurus the problem that symbolic links to files/dirs were ignored.
44Fixed the sorting for size in the file selector on the Z. 53Fixed the sorting for size in the file selector on the Z.
45 54
46Changed the color selection dialog on the Zaurus to a more user friendly version. 55Changed the color selection dialog on the Zaurus to a more user friendly version.
47 56
48********** VERSION 2.1.7 ************ 57********** VERSION 2.1.7 ************
49 58
50KO/Pi: 59KO/Pi:
51Fixed several problems in the new Resource handling. 60Fixed several problems in the new Resource handling.
52Added more options to the search dialog. 61Added more options to the search dialog.
53Fixed a problem in the Month view. 62Fixed a problem in the Month view.
54Added more options to the dialog when setting a todo to stopped. 63Added more options to the dialog when setting a todo to stopped.
55 64
56Fixed two small problems in KO/Pi Alarm applet. 65Fixed two small problems in KO/Pi Alarm applet.
57 66
58********** VERSION 2.1.6 ************ 67********** VERSION 2.1.6 ************
59 68
60This release is for testing only. 69This release is for testing only.
61 70
62KO/Pi: 71KO/Pi:
63Added to the list view (the list view is used in search dialog as well) the possibility to print it. 72Added to the list view (the list view is used in search dialog as well) the possibility to print it.
64Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view. 73Added to the list view the possibility to hide entries, if you do not want to print all entries of the list view.
65Added to the list view the possibility to add all subtodos of selected todos to an export/beam. 74Added to the list view the possibility to add all subtodos of selected todos to an export/beam.
66Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout. 75Added to the search dialog the possibility to make an additive search such that you can get a better list for export/printout.
67Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus. 76Added to the search dialog the possibility to hide the checkboxes such that there is more space for the list view on the Zaurus.
68Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly. 77Fixed a problem in the AlarmTimer Applet: Now utf8 messages are displayed properly.
69 78
70Added support for multiple calendar files in KO/Pi. Only local ical (*.ics) files are supported as calendars. 79Added support for multiple calendar files in KO/Pi. Only local ical (*.ics) files are supported as calendars.
71In the sync profile config it is still missing to specify a particular calendar to sync with this profile. That setting will be added later. 80In the sync profile config it is still missing to specify a particular calendar to sync with this profile. That setting will be added later.
72Now on every sync the set of calendars is synced which are enabled in the resource view. 81Now on every sync the set of calendars is synced which are enabled in the resource view.
73 82
74A calendar is enabled in the resource view if the "eye" column is checked. 83A calendar is enabled in the resource view if the "eye" column is checked.
75You can set a calendar to be the default for new items( "+" column ). 84You can set a calendar to be the default for new items( "+" column ).
76You can tell KO/Pi to ignore all alarm of a calendar ( "bell" column ) and you can set it readonly. 85You can tell KO/Pi to ignore all alarm of a calendar ( "bell" column ) and you can set it readonly.
77To find out how to add a new calendar and how to remove a calendar is left as an exercise to the reader ... 86To find out how to add a new calendar and how to remove a calendar is left as an exercise to the reader ...
78 87
79 88
80********** VERSION 2.1.5 ************ 89********** VERSION 2.1.5 ************
81 90
82This is the new stable version. 91This is the new stable version.
83Bugfix: 92Bugfix:
84Fixed a problem with agenda popup on the desktop in KO/Pi. 93Fixed a problem with agenda popup on the desktop in KO/Pi.
85Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization. 94Fixed a crash when reloading file, e.g. after a passive pi-sync synchronization.
86Added config option to not display completed todos in agenda view. 95Added config option to not display completed todos in agenda view.
87Addressee view is now using the formatted name, if defined. 96Addressee view is now using the formatted name, if defined.
88That makes it possible to display "lastname, firstname" in that view now. 97That makes it possible to display "lastname, firstname" in that view now.
89To set the formatted name for all contacts, please use menu: 98To set the formatted name for all contacts, please use menu:
90Edit->Change->Set formatted name. 99Edit->Change->Set formatted name.
91Fixed the bug in KA/Pi that is was not possible to add images to a contact on Windows. 100Fixed the bug in KA/Pi that is was not possible to add images to a contact on Windows.
92 101
93********** VERSION 2.1.4 ************ 102********** VERSION 2.1.4 ************
94 103
95Fixed two more bugs in the KA/Pi CSV import dialog: 104Fixed two more bugs in the KA/Pi CSV import dialog:
96Made it possible to read multi-line fields and import it to the "Note" field. 105Made it possible to read multi-line fields and import it to the "Note" field.
97Fixed a problem in mapping custom fields, whatever a custem field is... 106Fixed a problem in mapping custom fields, whatever a custem field is...
98 107
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index 8c1e5b2..52c5247 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -623,187 +623,187 @@ void KOEventViewer::formatAttendees(Incidence *event)
623 mText.append(a->email()); 623 mText.append(a->email());
624 mText += "\n"; 624 mText += "\n";
625 } 625 }
626 } else { 626 } else {
627 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 627 mText += "<li><a href=\"uid:" + a->uid() + "\">";
628 if (!a->name().isEmpty()) mText += a->name(); 628 if (!a->name().isEmpty()) mText += a->name();
629 else mText += a->email(); 629 else mText += a->email();
630 mText += "</a>\n"; 630 mText += "</a>\n";
631 } 631 }
632#else //DESKTOP_VERSION 632#else //DESKTOP_VERSION
633 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 633 mText += "<li><a href=\"uid:" + a->uid() + "\">";
634 if (!a->name().isEmpty()) mText += a->name(); 634 if (!a->name().isEmpty()) mText += a->name();
635 else mText += a->email(); 635 else mText += a->email();
636 mText += "</a>\n"; 636 mText += "</a>\n";
637#endif //DESKTOP_VERSION 637#endif //DESKTOP_VERSION
638#else 638#else
639 //qDebug("nokabc "); 639 //qDebug("nokabc ");
640 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 640 mText += "<li><a href=\"uid:" + a->uid() + "\">";
641 if (!a->name().isEmpty()) mText += a->name(); 641 if (!a->name().isEmpty()) mText += a->name();
642 else mText += a->email(); 642 else mText += a->email();
643 mText += "</a>\n"; 643 mText += "</a>\n";
644#endif 644#endif
645 645
646 646
647 if (!a->email().isEmpty()) { 647 if (!a->email().isEmpty()) {
648 if (iconPath) { 648 if (iconPath) {
649 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">"; 649 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">";
650 if ( a->RSVP() ) { 650 if ( a->RSVP() ) {
651 ++a_count_nr; 651 ++a_count_nr;
652 mText += "<IMG src=\"" + iconPath + "\">"; 652 mText += "<IMG src=\"" + iconPath + "\">";
653 } 653 }
654 else { 654 else {
655 ++a_count; 655 ++a_count;
656 mText += "<IMG src=\"" + NOiconPath + "\">"; 656 mText += "<IMG src=\"" + NOiconPath + "\">";
657 } 657 }
658 mText += "</a>\n"; 658 mText += "</a>\n";
659 } 659 }
660 } 660 }
661 if (a->status() != Attendee::NeedsAction ) 661 if (a->status() != Attendee::NeedsAction )
662 mText +="[" + a->statusStr() + "] "; 662 mText +="[" + a->statusStr() + "] ";
663 if (a->role() == Attendee::Chair ) 663 if (a->role() == Attendee::Chair )
664 mText +="(" + a->roleStr().left(1) + ".)"; 664 mText +="(" + a->roleStr().left(1) + ".)";
665 } 665 }
666 mText.append("</li></ul>"); 666 mText.append("</li></ul>");
667 if ( (a_count+a_count_nr) > 1 ) { 667 if ( (a_count+a_count_nr) > 1 ) {
668 mText += "<a href=\"mailto:ALL\">"; 668 mText += "<a href=\"mailto:ALL\">";
669 mText += i18n( "Mail to all" ); 669 mText += i18n( "Mail to all" );
670 mText += "</a> ( "; 670 mText += "</a> ( ";
671 mText += "<IMG src=\"" + iconPath + "\">"; 671 mText += "<IMG src=\"" + iconPath + "\">";
672 mText += i18n( " and " ); 672 mText += i18n( " and " );
673 mText += "<IMG src=\"" + NOiconPath + "\"> )"; 673 mText += "<IMG src=\"" + NOiconPath + "\"> )";
674 mText += "<br>\n"; 674 mText += "<br>\n";
675 675
676 676
677 } 677 }
678 if ( a_count_nr > 1 ) { 678 if ( a_count_nr > 1 ) {
679 mText += "<a href=\"mailto:RSVP\">"; 679 mText += "<a href=\"mailto:RSVP\">";
680 mText += i18n( "Mail to selected" ); 680 mText += i18n( "Mail to selected" );
681 mText += "</a> ( "; 681 mText += "</a> ( ";
682 mText += i18n( "<IMG src=\"%1\"> only )").arg ( iconPath ); 682 mText += i18n( "<IMG src=\"%1\"> only )").arg ( iconPath );
683 mText += "<br>\n"; 683 mText += "<br>\n";
684 } 684 }
685 } 685 }
686 686
687} 687}
688void KOEventViewer::appendJournal(Journal *jour, int mode ) 688void KOEventViewer::appendJournal(Journal *jour, int mode )
689{ 689{
690 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 690 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
691 if (mode == 0 ) { 691 if (mode == 0 ) {
692 addTag("h2",i18n("Journal from: ")); 692 addTag("h2",i18n("Journal from: "));
693 } 693 }
694 else { 694 else {
695 if ( mode == 1 ) { 695 if ( mode == 1 ) {
696 addTag("h2",i18n( "Local: " ) +i18n("Journal from: ")); 696 addTag("h2",i18n( "Local: " ) +i18n("Journal from: "));
697 } else { 697 } else {
698 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: ")); 698 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: "));
699 } 699 }
700 } 700 }
701 topLevelWidget()->setCaption("Journal Viewer"); 701 topLevelWidget()->setCaption("Journal Viewer");
702 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer))); 702 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer)));
703 if (!jour->summary().isEmpty()) { 703 if (!jour->summary().isEmpty()) {
704 addTag("b",i18n(" Title: ") + deTag(jour->summary())); 704 addTag("b",i18n(" Title: ") + deTag(jour->summary()));
705 } 705 }
706 formatReadOnly(jour); 706 formatReadOnly(jour);
707 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) ); 707 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) );
708 708
709 if (!jour->description().isEmpty()) { 709 if (!jour->description().isEmpty()) {
710 addTag("p",deTag(jour->description())); 710 addTag("p",deTag(jour->description()));
711 } 711 }
712 setText(mText); 712 setText(mText);
713} 713}
714 714
715void KOEventViewer::formatReadOnly(Incidence *event) 715void KOEventViewer::formatReadOnly(Incidence *event)
716{ 716{
717 int id = event->calID(); 717 int id = event->calID();
718 if ( id > 1 ) { 718 if ( id > 1 ) {
719 addTag("p", i18n("Calendar:")+" " + KOPrefs::instance()->getCalendar( id )->mName ); 719 addTag("p", "<em>("+i18n("Calendar:")+" " + KOPrefs::instance()->getCalendar( id )->mName + ")</em>");
720 } 720 }
721 if (event->isReadOnly()) { 721 if (event->isReadOnly()) {
722 addTag("p","<em>(" + i18n("read-only") + ")</em>"); 722 addTag("p","<em>(" + i18n("read-only") + ")</em>");
723 } 723 }
724} 724}
725void KOEventViewer::setSyncMode( bool b ) 725void KOEventViewer::setSyncMode( bool b )
726{ 726{
727 mSyncMode = b; 727 mSyncMode = b;
728} 728}
729 729
730void KOEventViewer::setTodo(Todo *event, bool clearV ) 730void KOEventViewer::setTodo(Todo *event, bool clearV )
731{ 731{
732 if ( clearV ) 732 if ( clearV )
733 clearEvents(); 733 clearEvents();
734 if ( mSyncMode ) { 734 if ( mSyncMode ) {
735 if ( clearV ) 735 if ( clearV )
736 appendTodo(event,1 ); 736 appendTodo(event,1 );
737 else 737 else
738 appendTodo(event,2); 738 appendTodo(event,2);
739 } else 739 } else
740 appendTodo(event); 740 appendTodo(event);
741} 741}
742void KOEventViewer::setJournal(Journal *event, bool clearV ) 742void KOEventViewer::setJournal(Journal *event, bool clearV )
743{ 743{
744 if ( clearV ) 744 if ( clearV )
745 clearEvents(); 745 clearEvents();
746 if ( mSyncMode ) { 746 if ( mSyncMode ) {
747 if ( clearV ) 747 if ( clearV )
748 appendJournal(event, 1); 748 appendJournal(event, 1);
749 else 749 else
750 appendJournal(event, 2); 750 appendJournal(event, 2);
751 } else 751 } else
752 appendJournal(event); 752 appendJournal(event);
753} 753}
754 754
755void KOEventViewer::setEvent(Event *event) 755void KOEventViewer::setEvent(Event *event)
756{ 756{
757 clearEvents(); 757 clearEvents();
758 if ( mSyncMode ) 758 if ( mSyncMode )
759 appendEvent(event, 1); 759 appendEvent(event, 1);
760 else 760 else
761 appendEvent(event); 761 appendEvent(event);
762} 762}
763 763
764void KOEventViewer::addEvent(Event *event) 764void KOEventViewer::addEvent(Event *event)
765{ 765{
766 if ( mSyncMode ) 766 if ( mSyncMode )
767 appendEvent(event, 2); 767 appendEvent(event, 2);
768 else 768 else
769 appendEvent(event); 769 appendEvent(event);
770} 770}
771 771
772void KOEventViewer::clearEvents(bool now) 772void KOEventViewer::clearEvents(bool now)
773{ 773{
774 mText = ""; 774 mText = "";
775 if (now) setText(mText); 775 if (now) setText(mText);
776} 776}
777 777
778void KOEventViewer::addText(QString text) 778void KOEventViewer::addText(QString text)
779{ 779{
780 mText.append(text); 780 mText.append(text);
781 setText(mText); 781 setText(mText);
782} 782}
783QString KOEventViewer::deTag(QString text) 783QString KOEventViewer::deTag(QString text)
784{ 784{
785#if QT_VERSION >= 0x030000 785#if QT_VERSION >= 0x030000
786 text.replace( '<' , "&lt;" ); 786 text.replace( '<' , "&lt;" );
787 text.replace( '>' , "&gt;" ); 787 text.replace( '>' , "&gt;" );
788#else 788#else
789 if ( text.find ('<') >= 0 ) { 789 if ( text.find ('<') >= 0 ) {
790 text.replace( QRegExp("<") , "&lt;" ); 790 text.replace( QRegExp("<") , "&lt;" );
791 } 791 }
792 if ( text.find ('>') >= 0 ) { 792 if ( text.find ('>') >= 0 ) {
793 text.replace( QRegExp(">") , "&gt;" ); 793 text.replace( QRegExp(">") , "&gt;" );
794 } 794 }
795#endif 795#endif
796 return text; 796 return text;
797} 797}
798void KOEventViewer::keyPressEvent ( QKeyEvent * e ) 798void KOEventViewer::keyPressEvent ( QKeyEvent * e )
799{ 799{
800 switch ( e->key() ) { 800 switch ( e->key() ) {
801 case Qt::Key_Return: 801 case Qt::Key_Return:
802 case Qt::Key_Enter : 802 case Qt::Key_Enter :
803 e->ignore(); 803 e->ignore();
804 break; 804 break;
805 default: 805 default:
806 QTextBrowser::keyPressEvent ( e ); 806 QTextBrowser::keyPressEvent ( e );
807 break; 807 break;
808 } 808 }
809} 809}