summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt8
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt3
-rw-r--r--korganizer/calendarview.cpp2
-rw-r--r--korganizer/kofilterview.h1
-rw-r--r--korganizer/komonthview.cpp8
-rw-r--r--korganizer/komonthview.h3
-rw-r--r--korganizer/mainwindow.cpp9
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 @@
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.12 ************
4
5KO/Pi:
6Many small usability fixes, e.g. rearranged the popup menus such that they are better to use on the Zaurus.
7Fixed a problem with the month view when file was saved but KO/Pi was not the active window.
8Fixed some problems in the resource config dialog (e.g. added a warning if you set all calendars to read-only).
9Fixed some other small problems.
10
3********** VERSION 2.1.11 ************ 11********** VERSION 2.1.11 ************
4 12
5KO/Pi: 13KO/Pi:
6Because we can have many calendars now in KO/Pi we can have more than one journal entry per day. 14Because 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. 15Added features to handle (and add ) more than one journal entry per day.
8Added option for a journal title. 16Added option for a journal title.
9 17
10Added info about the calendar, the item belongs to, to the event/todo/journal viewer. 18Added info about the calendar, the item belongs to, to the event/todo/journal viewer.
11Fixed a problem of the alarm of completed recurring todos. 19Fixed a problem of the alarm of completed recurring todos.
12Added to the event/todo editor to set quickly the category of an item. 20Added to the event/todo editor to set quickly the category of an item.
13 21
14 22
15Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet. 23Fixed some problems when calling KO/Pi or KA/Pi from the alarm applet.
16 24
17Added KA/Pi multi sync to the multi sync called from the alarm applet. 25Added 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
21KO/Pi: 29KO/Pi:
22Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file. 30Importing Birthdays will now create another file resource "Birthdays" and import the birthday data from KA/Pi into that file.
23When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted. 31When a multidayevent is selected in monthview all occurences of this event in the monthview are now hightlighted.
24Fixed a bug in searching for a small timerange, i.e. one day. 32Fixed a bug in searching for a small timerange, i.e. one day.
25 33
26KA/Pi: 34KA/Pi:
27Fixed two problems in csv export. 35Fixed two problems in csv export.
28Fixed problems when calling the contact selection dialog from KO/Pi or OM/Pi. 36Fixed 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
32KO/Pi: 40KO/Pi:
33Fixed some problems of the new search options in the search dialog. 41Fixed some problems of the new search options in the search dialog.
34Fixed some problems in the new resource config options. 42Fixed some problems in the new resource config options.
35Changed 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. 43Changed 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.
36Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown: 44Fixed a problem creating new events in the agenda view if at the day/time is already an agenda item shown:
37Now 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. 45Now 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
39Fixed a problem in recurrence range in syncing with DTM. 47Fixed a problem in recurrence range in syncing with DTM.
40 48
41KA/Pi: 49KA/Pi:
42Made it posiible to show in the contact overview the details of all data available for that contact( e.g. office, spouse, children, nickname ...) 50Made 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
44PwM/Pi: 52PwM/Pi:
45Added "sec" to the timeout config settings to make it clear the timeout values are seconds. 53Added "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
49KO/Pi: 57KO/Pi:
50Added info about the completion state of a todo in the ListView/Searchdialog. 58Added 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}
2059bool CalendarView::checkAllFileVersions() 2059bool 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}
2089bool CalendarView::checkFileVersion(QString fn) 2089bool 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}
2120bool CalendarView::saveCalendars() 2120bool 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}
2140bool CalendarView::saveCalendar( QString filename ) 2140bool 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
44class QGridLayout; 45class QGridLayout;
45 46
46using namespace KCal; 47using namespace KCal;
47 48
48class KONewCalPrefs : public QDialog 49class 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
1783void KOMonthView::setKeyBoardFocus() 1783void 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}
1799void KOMonthView::setKeyBFocus() 1800void 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}
1804void KOMonthView::resizeEvent(QResizeEvent * e) 1806void 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
1814void KOMonthView::slotComputeLayout() 1816void 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}
1822void KOMonthView::computeLayoutWeek() 1824void 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
235class KOMonthView: public KOEventView 235class 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}
1871void MainWindow::saveStopTimer() 1871void MainWindow::saveStopTimer()
1872{ 1872{
1873 mSaveTimer.stop(); 1873 mSaveTimer.stop();
1874} 1874}
1875void MainWindow::backupAllFiles() 1875void 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}
1913void MainWindow::save() 1913void 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
1948void MainWindow::keyReleaseEvent ( QKeyEvent * e) 1953void MainWindow::keyReleaseEvent ( QKeyEvent * e)
1949{ 1954{
1950 if ( !e->isAutoRepeat() ) { 1955 if ( !e->isAutoRepeat() ) {
1951 mFlagKeyPressed = false; 1956 mFlagKeyPressed = false;
1952 } 1957 }
1953} 1958}
1954void MainWindow::keyPressEvent ( QKeyEvent * e ) 1959void 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: