-rw-r--r-- | bin/kdepim/WhatsNew.txt | 8 | ||||
-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 3 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 2 | ||||
-rw-r--r-- | korganizer/kofilterview.h | 1 | ||||
-rw-r--r-- | korganizer/komonthview.cpp | 8 | ||||
-rw-r--r-- | korganizer/komonthview.h | 3 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 9 |
7 files changed, 25 insertions, 9 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 352ab63..30bb856 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,50 +1,58 @@ | |||
1 | Info about the changes in new versions of KDE-Pim/Pi | 1 | Info about the changes in new versions of KDE-Pim/Pi |
2 | 2 | ||
3 | ********** VERSION 2.1.12 ************ | ||
4 | |||
5 | KO/Pi: | ||
6 | Many small usability fixes, e.g. rearranged the popup menus such that they are better to use on the Zaurus. | ||
7 | Fixed a problem with the month view when file was saved but KO/Pi was not the active window. | ||
8 | Fixed some problems in the resource config dialog (e.g. added a warning if you set all calendars to read-only). | ||
9 | Fixed some other small problems. | ||
10 | |||
3 | ********** VERSION 2.1.11 ************ | 11 | ********** VERSION 2.1.11 ************ |
4 | 12 | ||
5 | KO/Pi: | 13 | KO/Pi: |
6 | Because we can have many calendars now in KO/Pi we can have more than one journal entry per day. | 14 | Because we can have many calendars now in KO/Pi we can have more than one journal entry per day. |
7 | Added features to handle (and add ) more than one journal entry per day. | 15 | Added features to handle (and add ) more than one journal entry per day. |
8 | Added option for a journal title. | 16 | Added option for a journal title. |
9 | 17 | ||
10 | Added info about the calendar, the item belongs to, to the event/todo/journal viewer. | 18 | Added info about the calendar, the item belongs to, to the event/todo/journal viewer. |
11 | Fixed a problem of the alarm of completed recurring todos. | 19 | Fixed a problem of the alarm of completed recurring todos. |
12 | Added to the event/todo editor to set quickly the category of an item. | 20 | Added to the event/todo editor to set quickly the category of an item. |
13 | 21 | ||
14 | 22 | ||
15 | Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet. | 23 | Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet. |
16 | 24 | ||
17 | Added KA/Pi multi sync to the multi sync called from the alarm applet. | 25 | Added KA/Pi multi sync to the multi sync called from the alarm applet. |
18 | 26 | ||
19 | ********** VERSION 2.1.10 ************ | 27 | ********** VERSION 2.1.10 ************ |
20 | 28 | ||
21 | KO/Pi: | 29 | KO/Pi: |
22 | Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file. | 30 | Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file. |
23 | When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted. | 31 | When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted. |
24 | Fixed a bug in searching for a small timerange, i.e. one day. | 32 | Fixed a bug in searching for a small timerange, i.e. one day. |
25 | 33 | ||
26 | KA/Pi: | 34 | KA/Pi: |
27 | Fixed two problems in csv export. | 35 | Fixed two problems in csv export. |
28 | Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi. | 36 | Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi. |
29 | 37 | ||
30 | ********** VERSION 2.1.9 ************ | 38 | ********** VERSION 2.1.9 ************ |
31 | 39 | ||
32 | KO/Pi: | 40 | KO/Pi: |
33 | Fixed some problems of the new search options in the search dialog. | 41 | Fixed some problems of the new search options in the search dialog. |
34 | Fixed some problems in the new resource config options. | 42 | Fixed some problems in the new resource config options. |
35 | Changed 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. | 43 | Changed 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. |
36 | Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown: | 44 | Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown: |
37 | Now 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. | 45 | Now 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. |
38 | 46 | ||
39 | Fixed a problem in recurrence range in syncing with DTM. | 47 | Fixed a problem in recurrence range in syncing with DTM. |
40 | 48 | ||
41 | KA/Pi: | 49 | KA/Pi: |
42 | Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...) | 50 | Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...) |
43 | 51 | ||
44 | PwM/Pi: | 52 | PwM/Pi: |
45 | Added "sec" to the timeout config settings to make it clear the timeout values are seconds. | 53 | Added "sec" to the timeout config settings to make it clear the timeout values are seconds. |
46 | 54 | ||
47 | ********** VERSION 2.1.8 ************ | 55 | ********** VERSION 2.1.8 ************ |
48 | 56 | ||
49 | KO/Pi: | 57 | KO/Pi: |
50 | Added info about the completion state of a todo in the ListView/Searchdialog. | 58 | Added info about the completion state of a todo in the ListView/Searchdialog. |
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index 9c22730..5fece5b 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -700,97 +700,96 @@ | |||
700 | { "Local file:","Lokale Datei:" }, | 700 | { "Local file:","Lokale Datei:" }, |
701 | { "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, | 701 | { "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, |
702 | { "Fill in default values for:","Setze Beispiel Werte ein für:" }, | 702 | { "Fill in default values for:","Setze Beispiel Werte ein für:" }, |
703 | { "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, | 703 | { "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, |
704 | { "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, | 704 | { "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, |
705 | { "Device","Gerät:" }, | 705 | { "Device","Gerät:" }, |
706 | { "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, | 706 | { "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, |
707 | { "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" }, | 707 | { "Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n","Synchronisationsübersicht:\n\n %d items lokal hinzugefügt\n %d items entfernt hinzugefügt\n %d items lokal geändert\n %d items entfernt geändert\n %d items lokal gelöscht\n %d items entfernt gelöscht\n" }, |
708 | { "Synchronization successful","Synchronisation erfolgreich" }, | 708 | { "Synchronization successful","Synchronisation erfolgreich" }, |
709 | { "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, | 709 | { "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, |
710 | { "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, | 710 | { "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, |
711 | { "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, | 711 | { "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, |
712 | { "Enter password","Passwort eingeben" }, | 712 | { "Enter password","Passwort eingeben" }, |
713 | { "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, | 713 | { "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, |
714 | { "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, | 714 | { "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, |
715 | { "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, | 715 | { "Sorry, the copy command failed!\nCommand was:\n%1\n \nTry command on console to get more\ndetailed info about the reason.\n","Sorry, das Kopierkommando schlug fehl!\nKommando war:\n%1\n \nVersuche Kommando von Kosole um\nDetails für das Fehlschlagen\nzu erfahren.\n" }, |
716 | { "Writing back file result: ","Resultat des Dateizurückschreibens: " }, | 716 | { "Writing back file result: ","Resultat des Dateizurückschreibens: " }, |
717 | { "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, | 717 | { "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, |
718 | { "Edit Calendar Filters","Editiere Kalendar Filter" }, | 718 | { "Edit Calendar Filters","Editiere Kalendar Filter" }, |
719 | { "Enter filter name:","Neuer Filter Name:" }, | 719 | { "Enter filter name:","Neuer Filter Name:" }, |
720 | { "Add Filter","Filter hinzufügen" }, | 720 | { "Add Filter","Filter hinzufügen" }, |
721 | { "Question","Frage" }, | 721 | { "Question","Frage" }, |
722 | { "Filter position: ","Filter Position: " }, | 722 | { "Filter position: ","Filter Position: " }, |
723 | { "Month View","Monatsansicht" }, | 723 | { "Month View","Monatsansicht" }, |
724 | { "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" }, | 724 | { "This profil cannot be deleted!\n","Dieses Profil kann\nnicht gelöscht werden!" }, |
725 | { "KO/Pi config error","KO/Pi Konfig. Fehler" }, | 725 | { "KO/Pi config error","KO/Pi Konfig. Fehler" }, |
726 | { "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, | 726 | { "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, |
727 | { "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" }, | 727 | { "Multiple profiles with same name!\nPlease use unique profile names!","Mehrere Profile haben denselben Namen!\nBitte unterschiedliche Namen wählen!" }, |
728 | { "Access: ","Zugriff: " }, | 728 | { "Access: ","Zugriff: " }, |
729 | { "Needs Action","Aktion notwendig" }, | 729 | { "Needs Action","Aktion notwendig" }, |
730 | { "Accepted","Akzeptiert" }, | 730 | { "Accepted","Akzeptiert" }, |
731 | { "Declined","Abgelehnt" }, | 731 | { "Declined","Abgelehnt" }, |
732 | { "Tentative","Vorläufig" }, | 732 | { "Tentative","Vorläufig" }, |
733 | { "Delegated","Beauftragt" }, | 733 | { "Delegated","Beauftragt" }, |
734 | { "Completed","Vollständig" }, | 734 | { "Completed","Vollständig" }, |
735 | { "In Process","In Bearbeitung" }, | 735 | { "In Process","In Bearbeitung" }, |
736 | { "Participant","Teilnehmer" }, | 736 | { "Participant","Teilnehmer" }, |
737 | { "Optional Participant","Möglicher Teilnehmer" }, | 737 | { "Optional Participant","Möglicher Teilnehmer" }, |
738 | { "Observer","Beobachter" }, | 738 | { "Observer","Beobachter" }, |
739 | { "Chair","Vorsitzender" }, | 739 | { "Chair","Vorsitzender" }, |
740 | { "Not supported \non desktop!\n","" }, | 740 | { "Not supported \non desktop!\n","" }, |
741 | { "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " }, | 741 | { "Nothing selected!\n\nThis prints the full width of the Agenda view as you see it!\n\nTo determine the vertical range of the printing, please select\na vertical range (with the left mouse button down) in one column. ","Es ist nichts selektiert!\nDieses druckt die volle Breite der Agenda View, so wie man sie sieht.\nUm die vertikale Auswahl zum Drucken zu bestimmen,\nbitte einen vertikalen Zeitraum (mit gedrückter linker Maustaste)\nin einer Spalte auswählen.\n(Es wird danach direkt der Termin Dialog angezeigt\n - dort bitte auf Abbrechen klicken) " }, |
742 | { "Date range: ","Datums Zeitspanne: " }, | 742 | { "Date range: ","Datums Zeitspanne: " }, |
743 | { "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " }, | 743 | { "Not supported \non PDA!\n","Nicht verfügbar\nauf dem PDA. " }, |
744 | { "Syncing - close to abort!","Syncing-schließe um abzubrechen." }, | 744 | { "Syncing - close to abort!","Syncing-schließe um abzubrechen." }, |
745 | { "Add / remove events","Add./entferne Termine" }, | 745 | { "Add / remove events","Add./entferne Termine" }, |
746 | { "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." }, | 746 | { "File does not exist:\n '%1'.","Datei existiert nicht:\n '%1'." }, |
747 | { "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." }, | 747 | { "Couldn't load calendar\n '%1'.","Kann Kalender nicht laden:\n '%1'." }, |
748 | { "\nThe file on disk has changed!\nFile size: %1 bytes.\nLast modified: %2\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie gepeicherte Datei wurde verändert!\nDatei Grösse: %1 Bytes.\nZuletzt geändert: %2\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, | ||
749 | { "Overwrite","Überschreiben" }, | 748 | { "Overwrite","Überschreiben" }, |
750 | { "Sync+save","Syncen+speichern" }, | 749 | { "Sync+save","Syncen+speichern" }, |
751 | { "Default","Standard" }, | 750 | { "Default","Standard" }, |
752 | { " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, | 751 | { " Categories added to list! "," Kategorien zur Liste hinzugefügt! " }, |
753 | { " %d items?"," %d Einträge?" }, | 752 | { " %d items?"," %d Einträge?" }, |
754 | { "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" }, | 753 | { "\nThis event recurs\nover multiple dates.\nAre you sure you want\nto delete this event\nand all its recurrences?","\nDieses ist ein\nwiederholender Termin!.\nSind Sie sicher, dass Sie\ndiesen Termin und alle\nWiederholungen löschen möchten?" }, |
755 | { " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, | 754 | { " ?\n\nDelete:\n"," ?\n\nLösche:\n" }, |
756 | { "Current","Aktuelle" }, | 755 | { "Current","Aktuelle" }, |
757 | { "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" }, | 756 | { "\nThis event recurs\nover multiple dates.\nDo you want to delete\nall it's recurrences,\nor only the current one on:\n","\nDieses ist ein\nwiederholender Termin!\nMöchten sie alle Wiederholungen\nlöschen, oder nur die aktuelle am:\n" }, |
758 | { "All","Alle" }, | 757 | { "All","Alle" }, |
759 | { "Data Loss Warning","Datenverlust Warnung" }, | 758 | { "Data Loss Warning","Datenverlust Warnung" }, |
760 | { "Proceed","Weitermachen" }, | 759 | { "Proceed","Weitermachen" }, |
761 | { "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, | 760 | { "The journal entries can not be\nexported to a vCalendar file.","Die Journal Einträge können\nnicht in eine vCalendar\nDatei exportiert werden!" }, |
762 | { "Filter disabled ","Filter abgeschaltet" }, | 761 | { "Filter disabled ","Filter abgeschaltet" }, |
763 | { "Filter selected: ","Gewählter Filter: " }, | 762 | { "Filter selected: ","Gewählter Filter: " }, |
764 | { "Toggle Cancel","Gecancelt ändern" }, | 763 | { "Toggle Cancel","Gecancelt ändern" }, |
765 | { "&Toggle Cancel","Gecancel&t ändern" }, | 764 | { "&Toggle Cancel","Gecancel&t ändern" }, |
766 | { "Configure Toolbar","Konfiguriere Toolbar" }, | 765 | { "Configure Toolbar","Konfiguriere Toolbar" }, |
767 | { "Stretched TB","Gedehnte TB" }, | 766 | { "Stretched TB","Gedehnte TB" }, |
768 | { "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, | 767 | { "Import file \n...%1\ndoes not exist!\nNothing imported!\n","Import Datei \n...%1\nexistiert nicht!\nNichts importiert!\n" }, |
769 | { "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, | 768 | { "Import filename(*.ics/*.vcs)","Import Dateiname(*.ics/*.vcs)" }, |
770 | { "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" }, | 769 | { "When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing","Wenn ein Kalender doppelt importiert\nwird, werden doppelte Einträge ignoriert!\nSie können eine Backup Datei anlegen unter\nDatei - Speichere Kalender Backup\num den Import rückgängig machen zu können.\n" }, |
771 | { "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, | 770 | { "Not supported \non desktop!\n","Nur verfügbar auf PDA!" }, |
772 | { "Imported file successfully","Datei erfolgreich importiert" }, | 771 | { "Imported file successfully","Datei erfolgreich importiert" }, |
773 | { "Error importing file","Fehler beim Importieren der Datei" }, | 772 | { "Error importing file","Fehler beim Importieren der Datei" }, |
774 | { "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, | 773 | { "Export vcal filename(*.vcs)","Export vcal Dateiname(*.vcs)" }, |
775 | { "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" }, | 774 | { "Save file\nalready exists!\nOld save file from:\n%1\nOverwrite?\n","Zu speichernde Datei\existiert bereits!\nExist. Datei vom:\n%1\nÜberschreiben?\n" }, |
776 | { "Overwrite!","Überschreiben!" }, | 775 | { "Overwrite!","Überschreiben!" }, |
777 | { "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" }, | 776 | { "Import file \n...%1\nfrom:\n%2\nDuplicated entries\nwill not be imported!\n","Import Datei \n...%1\nvom:\n%2\nDuplizierte Einträge\nwerden nicht importiert!\n" }, |
778 | { "Load backup filename","Lade Backup Dateiname" }, | 777 | { "Load backup filename","Lade Backup Dateiname" }, |
779 | { "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, | 778 | { "Backup file\ndoes not exist!\nNothing loaded!","Backup Datei\nexistiert nicht!\nNichts geladen!" }, |
780 | { "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, | 779 | { "KO/Pi:Loaded %1","KO/Pi:Geladen %1" }, |
781 | { "Save backup filename","Speichere Backup Dateiname" }, | 780 | { "Save backup filename","Speichere Backup Dateiname" }, |
782 | { "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" }, | 781 | { "Backup file\nalready exists!\nOld backup file from:\n%1\nOverwrite?\n","Backup Datei\nexistiert bereits!\nAlte Backup Datei vom:\n%1\nÜberschreiben?\n" }, |
783 | { "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, | 782 | { "KO/Pi:Saved %1","KO/Pi:Gespeichert %1" }, |
784 | { "Details of attendee","Teilnehmerdetails" }, | 783 | { "Details of attendee","Teilnehmerdetails" }, |
785 | { "Work phone:\n","Telefon Arbeit:\n" }, | 784 | { "Work phone:\n","Telefon Arbeit:\n" }, |
786 | { "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, | 785 | { "Work mobile phone:\n","Mobiltelefon Arbeit:\n" }, |
787 | { "Home phone:\n","Telefon privat:\n" }, | 786 | { "Home phone:\n","Telefon privat:\n" }, |
788 | { "Mobile home phone:\n","Mobiltelefon privat:\n" }, | 787 | { "Mobile home phone:\n","Mobiltelefon privat:\n" }, |
789 | { "Email:\n","Email:\n" }, | 788 | { "Email:\n","Email:\n" }, |
790 | { "Alarm disabled for this item","Alarm deaktiviert für dieses Item" }, | 789 | { "Alarm disabled for this item","Alarm deaktiviert für dieses Item" }, |
791 | { "Audio Al.: ","Audio Al.: " }, | 790 | { "Audio Al.: ","Audio Al.: " }, |
792 | { "Proc.Al.: ","Proz.Al.: " }, | 791 | { "Proc.Al.: ","Proz.Al.: " }, |
793 | { "No sound set","Kein Sound definiert" }, | 792 | { "No sound set","Kein Sound definiert" }, |
794 | { "*.wav|Wav Files","*.wav|Wav Dateien" }, | 793 | { "*.wav|Wav Files","*.wav|Wav Dateien" }, |
795 | { "No program set","Kein Programm definiert" }, | 794 | { "No program set","Kein Programm definiert" }, |
796 | { "Running '%1'","Ausführen '%1'" }, | 795 | { "Running '%1'","Ausführen '%1'" }, |
@@ -1443,55 +1442,55 @@ | |||
1443 | { "male","männlich" }, | 1442 | { "male","männlich" }, |
1444 | { "female","weiblich" }, | 1443 | { "female","weiblich" }, |
1445 | { "Hide!","Verbergen!" }, | 1444 | { "Hide!","Verbergen!" }, |
1446 | { "Show!","Anzeigen!" }, | 1445 | { "Show!","Anzeigen!" }, |
1447 | { "Details","Details" }, | 1446 | { "Details","Details" }, |
1448 | { "Profession","Beruf" }, | 1447 | { "Profession","Beruf" }, |
1449 | { "Children","Kinder" }, | 1448 | { "Children","Kinder" }, |
1450 | { "Department","Abteilung" }, | 1449 | { "Department","Abteilung" }, |
1451 | { "Backup cancelled","Backup abgebrochen" }, | 1450 | { "Backup cancelled","Backup abgebrochen" }, |
1452 | { "Backup globally disabled","Backup global abgeschaltet" }, | 1451 | { "Backup globally disabled","Backup global abgeschaltet" }, |
1453 | { "Backup succesfully finished","Backup erfolgreich beendet" }, | 1452 | { "Backup succesfully finished","Backup erfolgreich beendet" }, |
1454 | { "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" }, | 1453 | { "(Hint: You can enable automatic backup in the global settings!)","(Hinweis: Sie können ein automatisches Backup in den globalen Einstellungen konfigurieren!)" }, |
1455 | { "This will <b>backup all calendar files</b> to the directory %1 %2","Das schreibt ein <b>Backup aller Kalenderdateien</b> in das Verzeichnis %1 %2" }, | 1454 | { "This will <b>backup all calendar files</b> to the directory %1 %2","Das schreibt ein <b>Backup aller Kalenderdateien</b> in das Verzeichnis %1 %2" }, |
1456 | { "Birthdays","Geburtstage" }, | 1455 | { "Birthdays","Geburtstage" }, |
1457 | { "KO/Pi import information!","KO/Pi Import Information!" }, | 1456 | { "KO/Pi import information!","KO/Pi Import Information!" }, |
1458 | { "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" }, | 1457 | { "Start this todo\nand stop all running","Starte dieses Todo\nund stoppe alle Laufenden" }, |
1459 | { "Cancel - do not start"," Abbrechen - Todo nicht starten" }, | 1458 | { "Cancel - do not start"," Abbrechen - Todo nicht starten" }, |
1460 | { "The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n"How do I change the timezone?"\nas well!","Die Zeitzone wurde geändert!\nSollen die Kalender neu geladen\nwerden num die Zeiten\nder Termine zu ändern?\nBitte lesen Sie auch\nMenu: Help->FAQ:\n"How do I change the timezone?"" }, | 1459 | { "The timezone has changed!\nShould the calendar be reloaded\nto shift the time of the events?\nPlease read Menu: Help->FAQ:\n"How do I change the timezone?"\nas well!","Die Zeitzone wurde geändert!\nSollen die Kalender neu geladen\nwerden num die Zeiten\nder Termine zu ändern?\nBitte lesen Sie auch\nMenu: Help->FAQ:\n"How do I change the timezone?"" }, |
1461 | { "Reload","Neu laden" }, | 1460 | { "Reload","Neu laden" }, |
1462 | { "Timezone settings","Zeitzoneneinstellung" }, | 1461 | { "Timezone settings","Zeitzoneneinstellung" }, |
1463 | { "Title: ","Titel: " }, | 1462 | { "Title: ","Titel: " }, |
1464 | { "Journal from: ","Journal vom: " }, | 1463 | { "Journal from: ","Journal vom: " }, |
1465 | { "Journal: %1 from ","Journal: %1 vom " }, | 1464 | { "Journal: %1 from ","Journal: %1 vom " }, |
1466 | { "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" }, | 1465 | { "<b>Click here to edit categories: </b>","<b>Klicke hier um Kategorien zu ändern: </b>" }, |
1467 | { "Selected Item","Ausgewähltes Item" }, | 1466 | { "Selected Item","Ausgewähltes Item" }, |
1468 | { "Select Date...","Wähle Datum..." }, | 1467 | { "Select Date...","Wähle Datum..." }, |
1469 | { "After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:","Nach dem Importieren/Laden/Syncen kann es neue Kategorien in den Terminen oder Todos geben, die nicht automatisch der Kategorieliste hinzugefügt werden. Bitte wählen Sie, was <b>jetzt</b> passieren soll:" }, | 1468 | { "After importing/loading/syncing there may be new categories in events or todos which are not added automatically to the category list. Please choose what to do <b>now</b>:","Nach dem Importieren/Laden/Syncen kann es neue Kategorien in den Terminen oder Todos geben, die nicht automatisch der Kategorieliste hinzugefügt werden. Bitte wählen Sie, was <b>jetzt</b> passieren soll:" }, |
1470 | { "Change category list now!","Ändere Kategorieliste jetzt!" }, | 1469 | { "Change category list now!","Ändere Kategorieliste jetzt!" }, |
1471 | { "Edit category list...","Ändere Kategorieliste..." }, | 1470 | { "Edit category list...","Ändere Kategorieliste..." }, |
1472 | { "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" }, | 1471 | { "Toolbar changes needs a restart!","Neustart benötigt für Toolbaränderungen!" }, |
1473 | { "Filepath: ","Dateipfad: " }, | 1472 | { "Filepath: ","Dateipfad: " }, |
1474 | { "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" }, | 1473 | { "You can try to reload the calendar in the Resource View!","In der Resourcenansicht können Sie erneut versuchen den Kalender zu laden!" }, |
1475 | { "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" }, | 1474 | { "<b>WARNING:</b> There is a pending suspended alarm!","<b>WARNUNG:</b> Es gibt einen laufenden Suspendalarm!" }, |
1476 | { "Pending Suspend Alarm","Laufender Suspend Alarm" }, | 1475 | { "Pending Suspend Alarm","Laufender Suspend Alarm" }, |
1477 | { "Error loading calendar %1","Fehler beim Laden von Kalender %1" }, | 1476 | { "Error loading calendar %1","Fehler beim Laden von Kalender %1" }, |
1478 | { "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" }, | 1477 | { "Calendar(s) not loaded:","Nicht geladene(r) Kalender:" }, |
1479 | { "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" }, | 1478 | { "Loding of calendar(s) failed","Laden von Kalendern fehlgeschlagen" }, |
1480 | { "Alarm Options","Alarm Einstellungen" }, | 1479 | { "Alarm Options","Alarm Einstellungen" }, |
1481 | { "Delete selected...","Lösche Ausgewählte..." }, | 1480 | { "Delete selected...","Lösche Ausgewählte..." }, |
1482 | { "None","Nichts" }, | 1481 | { "None","Nichts" }, |
1483 | { "Selection","Auswahl" }, | 1482 | { "Selection","Auswahl" }, |
1484 | { "Set categories","Setze Kategorien" }, | 1483 | { "Set categories","Setze Kategorien" }, |
1485 | { "This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!","Das fügt die ausgewählten\nEinträge dem Kalender\n%1\nhinzu und entfernt sie von\nihrem aktuellen Kalender!" }, | 1484 | { "This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!","Das fügt die ausgewählten\nEinträge dem Kalender\n%1\nhinzu und entfernt sie von\nihrem aktuellen Kalender!" }, |
1486 | { "Reset","Neu setzen" }, | 1485 | { "Reset","Neu setzen" }, |
1487 | { "Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?","Möchten Sie Kategorien zu den ausgewählten Einträgen <b>hinzufügen</b> oder die Liste <b>neu setzen</b> (d.h. vorhandene Kategorien löschen)?" }, | 1486 | { "Do you want to <b>add</b> categories to the selected items or <b>reset</b> the list (i.e. remove current categories)?","Möchten Sie Kategorien zu den ausgewählten Einträgen <b>hinzufügen</b> oder die Liste <b>neu setzen</b> (d.h. vorhandene Kategorien löschen)?" }, |
1488 | { "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" }, | 1487 | { "The file\n%1\ndoes not exist!\nShall I create it for you?","Die Datei\n%1\nexistiert nicht!\nSoll sie neu angelegt werden?" }, |
1489 | { "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" }, | 1488 | { "Sorry, cannot create the file\n%1!\nNo calendar added!","Kann leider die Datei\n%1\nnicht anlegen!\nKein Kalender hinzugefügt!" }, |
1490 | { "\nNO\n WRITEABLE\n CALENDAR\n FOUND!\n\nPlease fix your calendar settings!\n","\nKEIN\n SCHREIBBARER\n KALENDER\n GEFUNDEN!\n\nBitte korrigieren Sie\nihre Kalendereinstellungen!\n" }, | 1489 | { "\nNO\n WRITEABLE\n CALENDAR\n FOUND!\n\nPlease fix your calendar settings!\n","\nKEIN\n SCHREIBBARER\n KALENDER\n GEFUNDEN!\n\nBitte korrigieren Sie\nihre Kalendereinstellungen!\n" }, |
1490 | { "\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n","\nDie Datei\n%1\nwurde verändert!\nDatei Grösse: %2 Bytes.\nZuletzt geändert: %3\nMöchten Sie:\n\n - Speichern und die Datei überschreiben?\n - Mit Datei Synchronisieren, dann speichern?\n - Abbrechen ohne zu speichern? \n" }, | ||
1491 | { "","" }, | 1491 | { "","" }, |
1492 | { "","" }, | 1492 | { "","" }, |
1493 | { "","" }, | 1493 | { "","" }, |
1494 | { "","" }, | 1494 | { "","" }, |
1495 | { "","" }, | 1495 | { "","" }, |
1496 | { "","" }, | 1496 | { "","" }, |
1497 | { "","" }, \ No newline at end of file | ||
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 678143d..5c88abd 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -2051,97 +2051,97 @@ void CalendarView::watchSavedFile() | |||
2051 | QDateTime dt = finf.lastModified (); | 2051 | QDateTime dt = finf.lastModified (); |
2052 | if ( dt < loadedFileVersion ) { | 2052 | if ( dt < loadedFileVersion ) { |
2053 | //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1()); | 2053 | //qDebug("watch %s %s ", dt.toString().latin1(), loadedFileVersion.toString().latin1()); |
2054 | QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) ); | 2054 | QTimer::singleShot( 1000 , this, SLOT ( watchSavedFile() ) ); |
2055 | return; | 2055 | return; |
2056 | } | 2056 | } |
2057 | loadedFileVersion = dt; | 2057 | loadedFileVersion = dt; |
2058 | } | 2058 | } |
2059 | bool CalendarView::checkAllFileVersions() | 2059 | bool CalendarView::checkAllFileVersions() |
2060 | { | 2060 | { |
2061 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 2061 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
2062 | KopiCalendarFile * cal = calendars.first(); | 2062 | KopiCalendarFile * cal = calendars.first(); |
2063 | mCalendar->setDefaultCalendar( 1 ); | 2063 | mCalendar->setDefaultCalendar( 1 ); |
2064 | mCalendar->setDefaultCalendarEnabledOnly(); | 2064 | mCalendar->setDefaultCalendarEnabledOnly(); |
2065 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2065 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2066 | if ( !checkFileVersion(MainWindow::defaultFileName())) { | 2066 | if ( !checkFileVersion(MainWindow::defaultFileName())) { |
2067 | restoreCalendarSettings(); | 2067 | restoreCalendarSettings(); |
2068 | return false; | 2068 | return false; |
2069 | } | 2069 | } |
2070 | } | 2070 | } |
2071 | cal = calendars.next(); | 2071 | cal = calendars.next(); |
2072 | QDateTime storeTemp = loadedFileVersion; | 2072 | QDateTime storeTemp = loadedFileVersion; |
2073 | while ( cal ) { | 2073 | while ( cal ) { |
2074 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2074 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2075 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | 2075 | mCalendar->setDefaultCalendar( cal->mCalNumber ); |
2076 | mCalendar->setDefaultCalendarEnabledOnly(); | 2076 | mCalendar->setDefaultCalendarEnabledOnly(); |
2077 | loadedFileVersion = cal->mLoadDt.addSecs( 15 ); | 2077 | loadedFileVersion = cal->mLoadDt.addSecs( 15 ); |
2078 | if ( !checkFileVersion(cal->mFileName )) { | 2078 | if ( !checkFileVersion(cal->mFileName )) { |
2079 | loadedFileVersion = storeTemp; | 2079 | loadedFileVersion = storeTemp; |
2080 | restoreCalendarSettings(); | 2080 | restoreCalendarSettings(); |
2081 | return false; | 2081 | return false; |
2082 | } | 2082 | } |
2083 | } | 2083 | } |
2084 | cal = calendars.next(); | 2084 | cal = calendars.next(); |
2085 | } | 2085 | } |
2086 | loadedFileVersion = storeTemp; | 2086 | loadedFileVersion = storeTemp; |
2087 | return true; | 2087 | return true; |
2088 | } | 2088 | } |
2089 | bool CalendarView::checkFileVersion(QString fn) | 2089 | bool CalendarView::checkFileVersion(QString fn) |
2090 | { | 2090 | { |
2091 | QFileInfo finf ( fn ); | 2091 | QFileInfo finf ( fn ); |
2092 | if ( !finf.exists() ) | 2092 | if ( !finf.exists() ) |
2093 | return true; | 2093 | return true; |
2094 | QDateTime dt = finf.lastModified (); | 2094 | QDateTime dt = finf.lastModified (); |
2095 | qDebug("loaded file version %s %s", fn.latin1(), loadedFileVersion.toString().latin1()); | 2095 | qDebug("loaded file version %s %s", fn.latin1(), loadedFileVersion.toString().latin1()); |
2096 | qDebug("file on disk version %s %s", fn.latin1(),dt.toString().latin1()); | 2096 | qDebug("file on disk version %s %s", fn.latin1(),dt.toString().latin1()); |
2097 | if ( dt <= loadedFileVersion ) | 2097 | if ( dt <= loadedFileVersion ) |
2098 | return true; | 2098 | return true; |
2099 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file\n%1\n on disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg(fn).arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , | 2099 | int km = KMessageBox::warningYesNoCancel(this, i18n("\nThe file\n%1\non disk has changed!\nFile size: %2 bytes.\nLast modified: %3\nDo you want to:\n\n - Save and overwrite file?\n - Sync with file, then save?\n - Cancel without saving? \n").arg(KGlobal::formatMessage(fn,0)).arg( QString::number( finf.size())).arg( KGlobal::locale()->formatDateTime(finf.lastModified (), true, true)) , |
2100 | i18n("KO/Pi Warning"),i18n("Overwrite"), | 2100 | i18n("KO/Pi Warning"),i18n("Overwrite"), |
2101 | i18n("Sync+save")); | 2101 | i18n("Sync+save")); |
2102 | 2102 | ||
2103 | if ( km == KMessageBox::Cancel ) | 2103 | if ( km == KMessageBox::Cancel ) |
2104 | return false; | 2104 | return false; |
2105 | if ( km == KMessageBox::Yes ) | 2105 | if ( km == KMessageBox::Yes ) |
2106 | return true; | 2106 | return true; |
2107 | 2107 | ||
2108 | setSyncDevice("deleteaftersync" ); | 2108 | setSyncDevice("deleteaftersync" ); |
2109 | mSyncManager->mAskForPreferences = true; | 2109 | mSyncManager->mAskForPreferences = true; |
2110 | mSyncManager->mSyncAlgoPrefs = 3; | 2110 | mSyncManager->mSyncAlgoPrefs = 3; |
2111 | mSyncManager->mWriteBackFile = false; | 2111 | mSyncManager->mWriteBackFile = false; |
2112 | mSyncManager->mWriteBackExistingOnly = false; | 2112 | mSyncManager->mWriteBackExistingOnly = false; |
2113 | mSyncManager->mShowSyncSummary = false; | 2113 | mSyncManager->mShowSyncSummary = false; |
2114 | syncCalendar( fn, 3 ); | 2114 | syncCalendar( fn, 3 ); |
2115 | Event * e = getLastSyncEvent(); | 2115 | Event * e = getLastSyncEvent(); |
2116 | if ( e ) | 2116 | if ( e ) |
2117 | mCalendar->deleteEvent( e ); | 2117 | mCalendar->deleteEvent( e ); |
2118 | return true; | 2118 | return true; |
2119 | } | 2119 | } |
2120 | bool CalendarView::saveCalendars() | 2120 | bool CalendarView::saveCalendars() |
2121 | { | 2121 | { |
2122 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 2122 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
2123 | KopiCalendarFile * cal = calendars.first(); | 2123 | KopiCalendarFile * cal = calendars.first(); |
2124 | mCalendar->setDefaultCalendar( 1 ); | 2124 | mCalendar->setDefaultCalendar( 1 ); |
2125 | mCalendar->setDefaultCalendarEnabledOnly(); | 2125 | mCalendar->setDefaultCalendarEnabledOnly(); |
2126 | saveCalendar( MainWindow::defaultFileName() ); | 2126 | saveCalendar( MainWindow::defaultFileName() ); |
2127 | cal = calendars.next(); | 2127 | cal = calendars.next(); |
2128 | while ( cal ) { | 2128 | while ( cal ) { |
2129 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { | 2129 | if ( !cal->isReadOnly && !cal->mErrorOnLoad ) { |
2130 | mCalendar->setDefaultCalendar( cal->mCalNumber ); | 2130 | mCalendar->setDefaultCalendar( cal->mCalNumber ); |
2131 | mCalendar->setDefaultCalendarEnabledOnly(); | 2131 | mCalendar->setDefaultCalendarEnabledOnly(); |
2132 | if ( saveCalendar( cal->mFileName ) ) | 2132 | if ( saveCalendar( cal->mFileName ) ) |
2133 | cal->mLoadDt = QDateTime::currentDateTime(); | 2133 | cal->mLoadDt = QDateTime::currentDateTime(); |
2134 | } | 2134 | } |
2135 | cal = calendars.next(); | 2135 | cal = calendars.next(); |
2136 | } | 2136 | } |
2137 | restoreCalendarSettings(); | 2137 | restoreCalendarSettings(); |
2138 | return true; | 2138 | return true; |
2139 | } | 2139 | } |
2140 | bool CalendarView::saveCalendar( QString filename ) | 2140 | bool CalendarView::saveCalendar( QString filename ) |
2141 | { | 2141 | { |
2142 | 2142 | ||
2143 | // Store back all unsaved data into calendar object | 2143 | // Store back all unsaved data into calendar object |
2144 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); | 2144 | // qDebug("file %s %d ", filename.latin1() , mViewManager->currentView() ); |
2145 | if ( mViewManager->currentView() ) | 2145 | if ( mViewManager->currentView() ) |
2146 | mViewManager->currentView()->flushView(); | 2146 | mViewManager->currentView()->flushView(); |
2147 | 2147 | ||
diff --git a/korganizer/kofilterview.h b/korganizer/kofilterview.h index 874fc6a..4322299 100644 --- a/korganizer/kofilterview.h +++ b/korganizer/kofilterview.h | |||
@@ -1,75 +1,76 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | #ifndef KOFILTERVIEW_H | 23 | #ifndef KOFILTERVIEW_H |
24 | #define KOFILTERVIEW_H | 24 | #define KOFILTERVIEW_H |
25 | 25 | ||
26 | #include <qstring.h> | 26 | #include <qstring.h> |
27 | #include <qcheckbox.h> | 27 | #include <qcheckbox.h> |
28 | #include <qapplication.h> | ||
28 | #include <qradiobutton.h> | 29 | #include <qradiobutton.h> |
29 | #include <qlayout.h> | 30 | #include <qlayout.h> |
30 | #include <qlabel.h> | 31 | #include <qlabel.h> |
31 | #include <qdialog.h> | 32 | #include <qdialog.h> |
32 | #include <qscrollview.h> | 33 | #include <qscrollview.h> |
33 | #include <qpushbutton.h> | 34 | #include <qpushbutton.h> |
34 | #include <kconfig.h> | 35 | #include <kconfig.h> |
35 | #include "kofilterview_base.h" | 36 | #include "kofilterview_base.h" |
36 | 37 | ||
37 | #include <libkcal/calfilter.h> | 38 | #include <libkcal/calfilter.h> |
38 | 39 | ||
39 | #include <kurlrequester.h> | 40 | #include <kurlrequester.h> |
40 | #include <klineedit.h> | 41 | #include <klineedit.h> |
41 | #include <kglobal.h> | 42 | #include <kglobal.h> |
42 | #include <kmessagebox.h> | 43 | #include <kmessagebox.h> |
43 | 44 | ||
44 | class QGridLayout; | 45 | class QGridLayout; |
45 | 46 | ||
46 | using namespace KCal; | 47 | using namespace KCal; |
47 | 48 | ||
48 | class KONewCalPrefs : public QDialog | 49 | class KONewCalPrefs : public QDialog |
49 | { | 50 | { |
50 | Q_OBJECT | 51 | Q_OBJECT |
51 | public: | 52 | public: |
52 | KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : | 53 | KONewCalPrefs( QWidget *parent=0, const char *name=0 ) : |
53 | QDialog( parent, name, true ) | 54 | QDialog( parent, name, true ) |
54 | { | 55 | { |
55 | setCaption( i18n("Add new Calendar") ); | 56 | setCaption( i18n("Add new Calendar") ); |
56 | QVBoxLayout* lay = new QVBoxLayout( this ); | 57 | QVBoxLayout* lay = new QVBoxLayout( this ); |
57 | lay->setSpacing( 3 ); | 58 | lay->setSpacing( 3 ); |
58 | lay->setMargin( 3 ); | 59 | lay->setMargin( 3 ); |
59 | QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); | 60 | QLabel * lab = new QLabel( i18n("<b>Name of new calendar:</b>"), this ); |
60 | lay->addWidget( lab ); | 61 | lay->addWidget( lab ); |
61 | nameE = new KLineEdit( this ); | 62 | nameE = new KLineEdit( this ); |
62 | lay->addWidget( nameE ); | 63 | lay->addWidget( nameE ); |
63 | lab = new QLabel( i18n("<b>Local ical (*.ics) file:</b>"), this ); | 64 | lab = new QLabel( i18n("<b>Local ical (*.ics) file:</b>"), this ); |
64 | lay->addWidget( lab ); | 65 | lay->addWidget( lab ); |
65 | url = new KURLRequester ( this ); | 66 | url = new KURLRequester ( this ); |
66 | lay->addWidget( url ); | 67 | lay->addWidget( url ); |
67 | QPushButton * ok = new QPushButton( i18n("OK"), this ); | 68 | QPushButton * ok = new QPushButton( i18n("OK"), this ); |
68 | lay->addWidget( ok ); | 69 | lay->addWidget( ok ); |
69 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); | 70 | QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); |
70 | lay->addWidget( cancel ); | 71 | lay->addWidget( cancel ); |
71 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) ); | 72 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( checkValid() ) ); |
72 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); | 73 | connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); |
73 | int minwid = 220; | 74 | int minwid = 220; |
74 | if ( QApplication::desktop()->width() >= 320 ) minwid = 300; | 75 | if ( QApplication::desktop()->width() >= 320 ) minwid = 300; |
75 | setMinimumWidth( minwid ); | 76 | setMinimumWidth( minwid ); |
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 264cf28..4fc447e 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -1747,121 +1747,123 @@ void KOMonthView::updateView() | |||
1747 | //insertTodo( todo ); | 1747 | //insertTodo( todo ); |
1748 | if ( todo->hasDueDate() ) { | 1748 | if ( todo->hasDueDate() ) { |
1749 | int day = mStartDate.daysTo( todo->dtDue().date() ); | 1749 | int day = mStartDate.daysTo( todo->dtDue().date() ); |
1750 | if ( day >= 0 && day < timeSpan + 1) { | 1750 | if ( day >= 0 && day < timeSpan + 1) { |
1751 | (*cells)[day]->insertTodo( todo ); | 1751 | (*cells)[day]->insertTodo( todo ); |
1752 | } | 1752 | } |
1753 | } | 1753 | } |
1754 | } | 1754 | } |
1755 | 1755 | ||
1756 | for( i = 0; i < timeSpan+1; ++i ) { | 1756 | for( i = 0; i < timeSpan+1; ++i ) { |
1757 | (*cells)[i]->finishUpdateCell(); | 1757 | (*cells)[i]->finishUpdateCell(); |
1758 | } | 1758 | } |
1759 | processSelectionChange(); | 1759 | processSelectionChange(); |
1760 | //qApp->processEvents(); | 1760 | //qApp->processEvents(); |
1761 | for( i = 0; i < timeSpan+1; ++i ) { | 1761 | for( i = 0; i < timeSpan+1; ++i ) { |
1762 | //(*cells)[i]->repaintfinishUpdateCell(); | 1762 | //(*cells)[i]->repaintfinishUpdateCell(); |
1763 | QTimer::singleShot( 0, (*cells)[i], SLOT ( repaintfinishUpdateCell() ) ); | 1763 | QTimer::singleShot( 0, (*cells)[i], SLOT ( repaintfinishUpdateCell() ) ); |
1764 | } | 1764 | } |
1765 | setKeyBFocus(); | 1765 | setKeyBFocus(); |
1766 | #else | 1766 | #else |
1767 | // old code | 1767 | // old code |
1768 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); | 1768 | //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); |
1769 | int i; | 1769 | int i; |
1770 | for( i = 0; i < (*cells).count(); ++i ) { | 1770 | for( i = 0; i < (*cells).count(); ++i ) { |
1771 | (*cells)[i]->updateCell(); | 1771 | (*cells)[i]->updateCell(); |
1772 | } | 1772 | } |
1773 | 1773 | ||
1774 | //qDebug("KOMonthView::updateView() "); | 1774 | //qDebug("KOMonthView::updateView() "); |
1775 | processSelectionChange(); | 1775 | processSelectionChange(); |
1776 | // qDebug("---------------------------------------------------------------------+ "); | 1776 | // qDebug("---------------------------------------------------------------------+ "); |
1777 | (*cells)[0]->setFocus(); | 1777 | (*cells)[0]->setFocus(); |
1778 | #endif | 1778 | #endif |
1779 | 1779 | ||
1780 | //qDebug("update time %d ", ti.elapsed()); | 1780 | //qDebug("update time %d ", ti.elapsed()); |
1781 | } | 1781 | } |
1782 | 1782 | ||
1783 | void KOMonthView::setKeyBoardFocus() | 1783 | void KOMonthView::setKeyBoardFocus() |
1784 | { | 1784 | { |
1785 | //qDebug("KOMonthView::setKeyBoardFocus() "); | 1785 | //qDebug("KOMonthView::setKeyBoardFocus() "); |
1786 | bool shootAgain = false; | 1786 | bool shootAgain = false; |
1787 | if ( mShowWeekView ) { | 1787 | if ( mShowWeekView ) { |
1788 | shootAgain = !mWeekLabelsW[1]->hasFocus(); | 1788 | shootAgain = !mWeekLabelsW[1]->hasFocus(); |
1789 | mWeekLabelsW[1]->setFocus(); | 1789 | mWeekLabelsW[1]->setFocus(); |
1790 | } | 1790 | } |
1791 | else { | 1791 | else { |
1792 | shootAgain = !mWeekLabels[mNumWeeks]->hasFocus(); | 1792 | shootAgain = !mWeekLabels[mNumWeeks]->hasFocus(); |
1793 | mWeekLabels[mNumWeeks]->setFocus(); | 1793 | mWeekLabels[mNumWeeks]->setFocus(); |
1794 | } | 1794 | } |
1795 | if ( shootAgain ) { | 1795 | --mKBFcounter; |
1796 | QTimer::singleShot( 0, this, SLOT ( setKeyBFocus() ) ); | 1796 | if ( shootAgain && mKBFcounter > 0 ) { |
1797 | QTimer::singleShot( 50, this, SLOT ( setKeyBoardFocus() ) ); | ||
1797 | } | 1798 | } |
1798 | } | 1799 | } |
1799 | void KOMonthView::setKeyBFocus() | 1800 | void KOMonthView::setKeyBFocus() |
1800 | { | 1801 | { |
1801 | //qDebug("KOMonthView::setKeyBFocus() "); | 1802 | //qDebug("KOMonthView::setKeyBFocus() "); |
1803 | mKBFcounter = 10; | ||
1802 | QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); | 1804 | QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); |
1803 | } | 1805 | } |
1804 | void KOMonthView::resizeEvent(QResizeEvent * e) | 1806 | void KOMonthView::resizeEvent(QResizeEvent * e) |
1805 | { | 1807 | { |
1806 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); | 1808 | //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); |
1807 | if ( isVisible() ) { | 1809 | if ( isVisible() ) { |
1808 | //qDebug("KOMonthView::isVisible "); | 1810 | //qDebug("KOMonthView::isVisible "); |
1809 | slotComputeLayout(); | 1811 | slotComputeLayout(); |
1810 | } else | 1812 | } else |
1811 | mComputeLayoutTimer->start( 100 ); | 1813 | mComputeLayoutTimer->start( 100 ); |
1812 | } | 1814 | } |
1813 | 1815 | ||
1814 | void KOMonthView::slotComputeLayout() | 1816 | void KOMonthView::slotComputeLayout() |
1815 | { | 1817 | { |
1816 | mComputeLayoutTimer->stop(); | 1818 | mComputeLayoutTimer->stop(); |
1817 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); | 1819 | //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); |
1818 | computeLayout(); | 1820 | computeLayout(); |
1819 | clPending = true; | 1821 | clPending = true; |
1820 | setKeyBFocus(); | 1822 | setKeyBFocus(); |
1821 | } | 1823 | } |
1822 | void KOMonthView::computeLayoutWeek() | 1824 | void KOMonthView::computeLayoutWeek() |
1823 | { | 1825 | { |
1824 | static int lastWid = 0; | 1826 | static int lastWid = 0; |
1825 | static int lastHei = 0; | 1827 | static int lastHei = 0; |
1826 | int daysToShow; | 1828 | int daysToShow; |
1827 | bool combinedSatSun = false; | 1829 | bool combinedSatSun = false; |
1828 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { | 1830 | if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { |
1829 | daysToShow = 6; | 1831 | daysToShow = 6; |
1830 | combinedSatSun = true; | 1832 | combinedSatSun = true; |
1831 | } | 1833 | } |
1832 | int tWid = topLevelWidget()->size().width(); | 1834 | int tWid = topLevelWidget()->size().width(); |
1833 | int tHei = topLevelWidget()->size().height(); | 1835 | int tHei = topLevelWidget()->size().height(); |
1834 | 1836 | ||
1835 | int wid = width();//e | 1837 | int wid = width();//e |
1836 | int hei = height()-1-mNavigatorBar->height(); | 1838 | int hei = height()-1-mNavigatorBar->height(); |
1837 | 1839 | ||
1838 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) | 1840 | if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) |
1839 | return; | 1841 | return; |
1840 | 1842 | ||
1841 | if ( lastWid == width() && lastHei == height() ) { | 1843 | if ( lastWid == width() && lastHei == height() ) { |
1842 | //qDebug("KOListWeekView::No compute layout needed "); | 1844 | //qDebug("KOListWeekView::No compute layout needed "); |
1843 | return; | 1845 | return; |
1844 | } | 1846 | } |
1845 | lastWid = width(); | 1847 | lastWid = width(); |
1846 | lastHei = height(); | 1848 | lastHei = height(); |
1847 | 1849 | ||
1848 | 1850 | ||
1849 | if ( wid < hei ) | 1851 | if ( wid < hei ) |
1850 | daysToShow = 2; | 1852 | daysToShow = 2; |
1851 | else | 1853 | else |
1852 | daysToShow = 3; | 1854 | daysToShow = 3; |
1853 | mShowSatSunComp = true; | 1855 | mShowSatSunComp = true; |
1854 | combinedSatSun = true; | 1856 | combinedSatSun = true; |
1855 | 1857 | ||
1856 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); | 1858 | //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); |
1857 | QFontMetrics fm ( mWeekLabels[0]->font() ); | 1859 | QFontMetrics fm ( mWeekLabels[0]->font() ); |
1858 | int weeklabelwid = fm.width( "888" ); | 1860 | int weeklabelwid = fm.width( "888" ); |
1859 | wid -= weeklabelwid; | 1861 | wid -= weeklabelwid; |
1860 | 1862 | ||
1861 | int colWid = wid / daysToShow; | 1863 | int colWid = wid / daysToShow; |
1862 | int lastCol = wid - ( colWid*6 ); | 1864 | int lastCol = wid - ( colWid*6 ); |
1863 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); | 1865 | int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); |
1864 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); | 1866 | int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); |
1865 | int colModulo = wid % daysToShow; | 1867 | int colModulo = wid % daysToShow; |
1866 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; | 1868 | int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; |
1867 | //qDebug("rowmod %d ", rowModulo); | 1869 | //qDebug("rowmod %d ", rowModulo); |
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h index 0bd6b1c..a41eb54 100644 --- a/korganizer/komonthview.h +++ b/korganizer/komonthview.h | |||
@@ -233,113 +233,114 @@ public slots: | |||
233 | 233 | ||
234 | 234 | ||
235 | class KOMonthView: public KOEventView | 235 | class KOMonthView: public KOEventView |
236 | { | 236 | { |
237 | Q_OBJECT | 237 | Q_OBJECT |
238 | public: | 238 | public: |
239 | KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); | 239 | KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); |
240 | ~KOMonthView(); | 240 | ~KOMonthView(); |
241 | 241 | ||
242 | /** Returns maximum number of days supported by the komonthview */ | 242 | /** Returns maximum number of days supported by the komonthview */ |
243 | virtual int maxDatesHint(); | 243 | virtual int maxDatesHint(); |
244 | 244 | ||
245 | /** Returns number of currently shown dates. */ | 245 | /** Returns number of currently shown dates. */ |
246 | virtual int currentDateCount(); | 246 | virtual int currentDateCount(); |
247 | 247 | ||
248 | /** returns the currently selected events */ | 248 | /** returns the currently selected events */ |
249 | virtual QPtrList<Incidence> selectedIncidences(); | 249 | virtual QPtrList<Incidence> selectedIncidences(); |
250 | 250 | ||
251 | /** returns dates of the currently selected events */ | 251 | /** returns dates of the currently selected events */ |
252 | virtual DateList selectedDates(); | 252 | virtual DateList selectedDates(); |
253 | 253 | ||
254 | virtual void printPreview(CalPrinter *calPrinter, | 254 | virtual void printPreview(CalPrinter *calPrinter, |
255 | const QDate &, const QDate &); | 255 | const QDate &, const QDate &); |
256 | bool isMonthView() { return !mShowWeekView; } | 256 | bool isMonthView() { return !mShowWeekView; } |
257 | bool isUpdatePossible() { return updatePossible; } | 257 | bool isUpdatePossible() { return updatePossible; } |
258 | 258 | ||
259 | MonthViewCell * selectedCell(); | 259 | MonthViewCell * selectedCell(); |
260 | bool skipResize; | 260 | bool skipResize; |
261 | NavigatorBar* navigatorBar() { return mNavigatorBar ;} | 261 | NavigatorBar* navigatorBar() { return mNavigatorBar ;} |
262 | void clearList(); | 262 | void clearList(); |
263 | public slots: | 263 | public slots: |
264 | void incidenceHighlighted( Incidence *, MonthViewCell*, int ); | 264 | void incidenceHighlighted( Incidence *, MonthViewCell*, int ); |
265 | void nextCell(); | 265 | void nextCell(); |
266 | void prevCell(); | 266 | void prevCell(); |
267 | virtual void updateView(); | 267 | virtual void updateView(); |
268 | virtual void updateConfig(); | 268 | virtual void updateConfig(); |
269 | virtual void showDates(const QDate &start, const QDate &end); | 269 | virtual void showDates(const QDate &start, const QDate &end); |
270 | virtual void showEvents(QPtrList<Event> eventList); | 270 | virtual void showEvents(QPtrList<Event> eventList); |
271 | 271 | ||
272 | void changeEventDisplay(Event *, int); | 272 | void changeEventDisplay(Event *, int); |
273 | 273 | ||
274 | void clearSelection(); | 274 | void clearSelection(); |
275 | 275 | ||
276 | void showContextMenu( Incidence * ); | 276 | void showContextMenu( Incidence * ); |
277 | 277 | ||
278 | void setSelectedCell( MonthViewCell * ); | 278 | void setSelectedCell( MonthViewCell * ); |
279 | void setPopupCell( MonthViewCell * ); | 279 | void setPopupCell( MonthViewCell * ); |
280 | void switchView(); | 280 | void switchView(); |
281 | void setKeyBoardFocus(); | ||
282 | void setKeyBFocus(); | 281 | void setKeyBFocus(); |
283 | 282 | ||
284 | protected slots: | 283 | protected slots: |
284 | void setKeyBoardFocus(); | ||
285 | void slotNewTodo(); | 285 | void slotNewTodo(); |
286 | void slotNewEvent(); | 286 | void slotNewEvent(); |
287 | void slotEditJournal(); | 287 | void slotEditJournal(); |
288 | void slotComputeLayout(); | 288 | void slotComputeLayout(); |
289 | void selectInternalWeekNum ( int ); | 289 | void selectInternalWeekNum ( int ); |
290 | void processSelectionChange(); | 290 | void processSelectionChange(); |
291 | signals: | 291 | signals: |
292 | void nextMonth(); | 292 | void nextMonth(); |
293 | void prevMonth(); | 293 | void prevMonth(); |
294 | void selectWeekNum ( int ); | 294 | void selectWeekNum ( int ); |
295 | void selectMonth (); | 295 | void selectMonth (); |
296 | void showDaySignal( QDate ); | 296 | void showDaySignal( QDate ); |
297 | void newTodoSignal( QDateTime, bool ); | 297 | void newTodoSignal( QDateTime, bool ); |
298 | void showJournalSignal( int,QDate ); | 298 | void showJournalSignal( int,QDate ); |
299 | protected: | 299 | protected: |
300 | void resizeEvent(QResizeEvent *); | 300 | void resizeEvent(QResizeEvent *); |
301 | void viewChanged(); | 301 | void viewChanged(); |
302 | void updateDayLabels(); | 302 | void updateDayLabels(); |
303 | 303 | ||
304 | private: | 304 | private: |
305 | int mKBFcounter; | ||
305 | QTimer* mComputeLayoutTimer; | 306 | QTimer* mComputeLayoutTimer; |
306 | NavigatorBar* mNavigatorBar; | 307 | NavigatorBar* mNavigatorBar; |
307 | int currentWeek(); | 308 | int currentWeek(); |
308 | bool clPending; | 309 | bool clPending; |
309 | QWidgetStack * mWidStack; | 310 | QWidgetStack * mWidStack; |
310 | QWidget* mMonthView; | 311 | QWidget* mMonthView; |
311 | QWidget* mWeekView; | 312 | QWidget* mWeekView; |
312 | bool mShowWeekView; | 313 | bool mShowWeekView; |
313 | bool updatePossible; | 314 | bool updatePossible; |
314 | int mDaysPerWeek; | 315 | int mDaysPerWeek; |
315 | int mNumWeeks; | 316 | int mNumWeeks; |
316 | int mNumCells; | 317 | int mNumCells; |
317 | //bool mWeekStartsMonday; | 318 | //bool mWeekStartsMonday; |
318 | bool mShowSatSunComp; | 319 | bool mShowSatSunComp; |
319 | void computeLayout(); | 320 | void computeLayout(); |
320 | void computeLayoutWeek(); | 321 | void computeLayoutWeek(); |
321 | 322 | ||
322 | QPtrVector<MonthViewCell> mCells; | 323 | QPtrVector<MonthViewCell> mCells; |
323 | QPtrVector<QLabel> mDayLabels; | 324 | QPtrVector<QLabel> mDayLabels; |
324 | QPtrVector<KOWeekButton> mWeekLabels; | 325 | QPtrVector<KOWeekButton> mWeekLabels; |
325 | QPtrVector<MonthViewCell> mCellsW; | 326 | QPtrVector<MonthViewCell> mCellsW; |
326 | QPtrVector<QLabel> mDayLabelsW; | 327 | QPtrVector<QLabel> mDayLabelsW; |
327 | QPtrVector<KOWeekButton> mWeekLabelsW; | 328 | QPtrVector<KOWeekButton> mWeekLabelsW; |
328 | 329 | ||
329 | bool mShortDayLabelsM; | 330 | bool mShortDayLabelsM; |
330 | bool mShortDayLabelsW; | 331 | bool mShortDayLabelsW; |
331 | int mWidthLongDayLabel; | 332 | int mWidthLongDayLabel; |
332 | 333 | ||
333 | QDate mStartDate; | 334 | QDate mStartDate; |
334 | 335 | ||
335 | MonthViewCell *mSelectedCell; | 336 | MonthViewCell *mSelectedCell; |
336 | MonthViewCell *mPopupCell; | 337 | MonthViewCell *mPopupCell; |
337 | bool mFlagKeyPressed; | 338 | bool mFlagKeyPressed; |
338 | KOEventPopupMenu *mContextMenu; | 339 | KOEventPopupMenu *mContextMenu; |
339 | QPopupMenu *mNewItemMenu; | 340 | QPopupMenu *mNewItemMenu; |
340 | void keyPressEvent ( QKeyEvent * ) ; | 341 | void keyPressEvent ( QKeyEvent * ) ; |
341 | void keyReleaseEvent ( QKeyEvent * ) ; | 342 | void keyReleaseEvent ( QKeyEvent * ) ; |
342 | 343 | ||
343 | }; | 344 | }; |
344 | 345 | ||
345 | #endif | 346 | #endif |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 862d437..f68f032 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -1867,124 +1867,129 @@ void MainWindow::slotModifiedChanged( bool ) | |||
1867 | mSaveTimer.start( msec, true ); // 1 minute | 1867 | mSaveTimer.start( msec, true ); // 1 minute |
1868 | qDebug("KO: Saving File in %d secs!", msec/1000); | 1868 | qDebug("KO: Saving File in %d secs!", msec/1000); |
1869 | mCalendarModifiedFlag = true; | 1869 | mCalendarModifiedFlag = true; |
1870 | } | 1870 | } |
1871 | void MainWindow::saveStopTimer() | 1871 | void MainWindow::saveStopTimer() |
1872 | { | 1872 | { |
1873 | mSaveTimer.stop(); | 1873 | mSaveTimer.stop(); |
1874 | } | 1874 | } |
1875 | void MainWindow::backupAllFiles() | 1875 | void MainWindow::backupAllFiles() |
1876 | { | 1876 | { |
1877 | QDate reference ( 2000,1,1); | 1877 | QDate reference ( 2000,1,1); |
1878 | int daysTo = reference.daysTo ( QDate::currentDate() ); | 1878 | int daysTo = reference.daysTo ( QDate::currentDate() ); |
1879 | setCaption(i18n("Creating backup ... please wait ..." )); | 1879 | setCaption(i18n("Creating backup ... please wait ..." )); |
1880 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); | 1880 | qDebug("KO: Last backup was %d days ago ", daysTo - KOPrefs::instance()->mLastBackupDate); |
1881 | // we need the file path, the backup dir and the number of bups as param | 1881 | // we need the file path, the backup dir and the number of bups as param |
1882 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; | 1882 | QString bupDir = KPimGlobalPrefs::instance()->mBackupDatadir; |
1883 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) | 1883 | if ( KPimGlobalPrefs::instance()->mBackupUseDefaultDir) |
1884 | bupDir = KGlobalSettings::backupDataDir(); | 1884 | bupDir = KGlobalSettings::backupDataDir(); |
1885 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | 1885 | int retval = KApplication::createBackup( defaultFileName(), bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); |
1886 | if ( retval == 0 ) { | 1886 | if ( retval == 0 ) { |
1887 | setCaption(i18n("Backup cancelled" )); | 1887 | setCaption(i18n("Backup cancelled" )); |
1888 | qDebug("KO: Backup cancelled. Will try again tomorrow "); | 1888 | qDebug("KO: Backup cancelled. Will try again tomorrow "); |
1889 | // retval == 0 : backup skipped for today, try again tomorrow | 1889 | // retval == 0 : backup skipped for today, try again tomorrow |
1890 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; | 1890 | KOPrefs::instance()->mLastBackupDate = daysTo- KPimGlobalPrefs::instance()->mBackupDayCount+1; |
1891 | } else if ( retval == 1 ){ | 1891 | } else if ( retval == 1 ){ |
1892 | qDebug("KO: Backup created."); | 1892 | qDebug("KO: Backup created."); |
1893 | // backup ok | 1893 | // backup ok |
1894 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; | 1894 | QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; |
1895 | KopiCalendarFile * cal = calendars.first(); | 1895 | KopiCalendarFile * cal = calendars.first(); |
1896 | cal = calendars.next(); | 1896 | cal = calendars.next(); |
1897 | while ( cal ) { | 1897 | while ( cal ) { |
1898 | if ( !cal->mErrorOnLoad ) { | 1898 | if ( !cal->mErrorOnLoad ) { |
1899 | KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); | 1899 | KApplication::createBackup( cal->mFileName, bupDir, KPimGlobalPrefs::instance()->mBackupNumbers ); |
1900 | } | 1900 | } |
1901 | cal = calendars.next(); | 1901 | cal = calendars.next(); |
1902 | } | 1902 | } |
1903 | KOPrefs::instance()->mLastBackupDate = daysTo; | 1903 | KOPrefs::instance()->mLastBackupDate = daysTo; |
1904 | setCaption(i18n("Backup succesfully finished" )); | 1904 | setCaption(i18n("Backup succesfully finished" )); |
1905 | } else if ( retval == 2 ){ | 1905 | } else if ( retval == 2 ){ |
1906 | setCaption(i18n("Backup globally disabled" )); | 1906 | setCaption(i18n("Backup globally disabled" )); |
1907 | qDebug("KO: Backup globally cancelled."); | 1907 | qDebug("KO: Backup globally cancelled."); |
1908 | // backup globally cancelled | 1908 | // backup globally cancelled |
1909 | KPimGlobalPrefs::instance()->mBackupEnabled = false; | 1909 | KPimGlobalPrefs::instance()->mBackupEnabled = false; |
1910 | } | 1910 | } |
1911 | // retval == 3: do nothing, try again later | 1911 | // retval == 3: do nothing, try again later |
1912 | } | 1912 | } |
1913 | void MainWindow::save() | 1913 | void MainWindow::save() |
1914 | { | 1914 | { |
1915 | |||
1915 | if ( mView->viewManager()->journalView() ) | 1916 | if ( mView->viewManager()->journalView() ) |
1916 | mView->viewManager()->journalView()->checkModified(); | 1917 | mView->viewManager()->journalView()->checkModified(); |
1917 | if ( !mCalendarModifiedFlag ) { | 1918 | if ( !mCalendarModifiedFlag ) { |
1918 | qDebug("KO: Calendar not modified. Nothing saved."); | 1919 | qDebug("KO: Calendar not modified. Nothing saved."); |
1919 | return; | 1920 | return; |
1920 | } | 1921 | } |
1921 | if ( mSyncManager->blockSave() ) | 1922 | if ( mSyncManager->blockSave() ) |
1922 | return; | 1923 | return; |
1923 | mSyncManager->setBlockSave(true); | 1924 | mSyncManager->setBlockSave(true); |
1924 | if ( mView->checkAllFileVersions() ) { | 1925 | if ( mView->checkAllFileVersions() ) { |
1925 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ | 1926 | if ( KPimGlobalPrefs::instance()->mBackupEnabled ){ |
1926 | QDate reference ( 2000,1,1); | 1927 | QDate reference ( 2000,1,1); |
1927 | int daysTo = reference.daysTo ( QDate::currentDate() ); | 1928 | int daysTo = reference.daysTo ( QDate::currentDate() ); |
1928 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { | 1929 | if ( daysTo - KPimGlobalPrefs::instance()->mBackupDayCount >= KOPrefs::instance()->mLastBackupDate ) { |
1929 | backupAllFiles(); | 1930 | backupAllFiles(); |
1930 | } | 1931 | } |
1931 | ; // KPimGlobalPrefs::instance()->mLastBackupDate | 1932 | ; // KPimGlobalPrefs::instance()->mLastBackupDate |
1932 | } | 1933 | } |
1933 | QTime neededSaveTime = QDateTime::currentDateTime().time(); | 1934 | QTime neededSaveTime = QDateTime::currentDateTime().time(); |
1934 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | 1935 | if ( !isMinimized () ) |
1936 | setCaption(i18n("KO/Pi:Saving Data to File ..." )); | ||
1935 | qDebug("KO: Start saving data to file!"); | 1937 | qDebug("KO: Start saving data to file!"); |
1936 | mView->saveCalendars(); | 1938 | mView->saveCalendars(); |
1937 | mCalendarModifiedFlag = false; | 1939 | mCalendarModifiedFlag = false; |
1938 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); | 1940 | int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); |
1939 | qDebug("KO: Needed %d ms for saving.",msNeeded ); | 1941 | qDebug("KO: Needed %d ms for saving.",msNeeded ); |
1940 | QString savemes; | 1942 | QString savemes; |
1941 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); | 1943 | savemes.sprintf(i18n("KO/Pi:File Saved. Needed %d sec, %d ms"),(msNeeded/1000)%100,msNeeded%1000 ); |
1942 | setCaption(savemes); | 1944 | if ( !isMinimized () ) |
1945 | setCaption(savemes); | ||
1946 | else | ||
1947 | qDebug(savemes); | ||
1943 | } else | 1948 | } else |
1944 | setCaption(i18n("Saving cancelled!")); | 1949 | setCaption(i18n("Saving cancelled!")); |
1945 | mSyncManager->setBlockSave( false ); | 1950 | mSyncManager->setBlockSave( false ); |
1946 | } | 1951 | } |
1947 | 1952 | ||
1948 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) | 1953 | void MainWindow::keyReleaseEvent ( QKeyEvent * e) |
1949 | { | 1954 | { |
1950 | if ( !e->isAutoRepeat() ) { | 1955 | if ( !e->isAutoRepeat() ) { |
1951 | mFlagKeyPressed = false; | 1956 | mFlagKeyPressed = false; |
1952 | } | 1957 | } |
1953 | } | 1958 | } |
1954 | void MainWindow::keyPressEvent ( QKeyEvent * e ) | 1959 | void MainWindow::keyPressEvent ( QKeyEvent * e ) |
1955 | { | 1960 | { |
1956 | qApp->processEvents(); | 1961 | qApp->processEvents(); |
1957 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { | 1962 | if ( e->isAutoRepeat() && !mFlagKeyPressed ) { |
1958 | e->ignore(); | 1963 | e->ignore(); |
1959 | // qDebug(" ignore %d",e->isAutoRepeat() ); | 1964 | // qDebug(" ignore %d",e->isAutoRepeat() ); |
1960 | return; | 1965 | return; |
1961 | } | 1966 | } |
1962 | if (! e->isAutoRepeat() ) | 1967 | if (! e->isAutoRepeat() ) |
1963 | mFlagKeyPressed = true; | 1968 | mFlagKeyPressed = true; |
1964 | KOPrefs *p = KOPrefs::instance(); | 1969 | KOPrefs *p = KOPrefs::instance(); |
1965 | bool showSelectedDates = false; | 1970 | bool showSelectedDates = false; |
1966 | int size; | 1971 | int size; |
1967 | int pro = 0; | 1972 | int pro = 0; |
1968 | //qDebug("MainWindow::keyPressEvent "); | 1973 | //qDebug("MainWindow::keyPressEvent "); |
1969 | switch ( e->key() ) { | 1974 | switch ( e->key() ) { |
1970 | case Qt::Key_Right: | 1975 | case Qt::Key_Right: |
1971 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) | 1976 | if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) |
1972 | mView->goNextMonth(); | 1977 | mView->goNextMonth(); |
1973 | else | 1978 | else |
1974 | mView->goNext(); | 1979 | mView->goNext(); |
1975 | showSelectedDates = true; | 1980 | showSelectedDates = true; |
1976 | break; | 1981 | break; |
1977 | case Qt::Key_Left: | 1982 | case Qt::Key_Left: |
1978 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) | 1983 | if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) |
1979 | mView->goPreviousMonth(); | 1984 | mView->goPreviousMonth(); |
1980 | else | 1985 | else |
1981 | mView->goPrevious(); | 1986 | mView->goPrevious(); |
1982 | showSelectedDates = true; | 1987 | showSelectedDates = true; |
1983 | break; | 1988 | break; |
1984 | case Qt::Key_Down: | 1989 | case Qt::Key_Down: |
1985 | mView->viewManager()->agendaView()->scrollOneHourDown(); | 1990 | mView->viewManager()->agendaView()->scrollOneHourDown(); |
1986 | break; | 1991 | break; |
1987 | case Qt::Key_Up: | 1992 | case Qt::Key_Up: |
1988 | mView->viewManager()->agendaView()->scrollOneHourUp(); | 1993 | mView->viewManager()->agendaView()->scrollOneHourUp(); |
1989 | break; | 1994 | break; |
1990 | case Qt::Key_K: | 1995 | case Qt::Key_K: |