-rw-r--r-- | bin/kdepim/WhatsNew.txt | 12 | ||||
-rw-r--r-- | bin/kdepim/kaddressbook/germantranslation.txt | 2 | ||||
-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 7 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 7 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.h | 2 | ||||
-rw-r--r-- | korganizer/koeventeditor.cpp | 4 | ||||
-rw-r--r-- | korganizer/koeventviewer.cpp | 8 | ||||
-rw-r--r-- | korganizer/koincidenceeditor.cpp | 5 | ||||
-rw-r--r-- | korganizer/koincidenceeditor.h | 3 | ||||
-rw-r--r-- | korganizer/kotodoeditor.cpp | 4 | ||||
-rw-r--r-- | libkdepim/ksyncprefsdialog.cpp | 4 |
11 files changed, 50 insertions, 8 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 03bc03b..cd37aac 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,26 +1,38 @@ | |||
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.2.8 ************ | ||
4 | |||
5 | |||
6 | I forgot what I fixed... | ||
7 | |||
8 | Some minor fixes in KA/Pi and KO/Pi. | ||
9 | |||
10 | KA/Pi uses popup menu now for quick category selection in contact edit dialog. | ||
11 | |||
12 | In the Pi-syc mode of KO/Pi it is now possible to define specific resources which can be synced with the remote pi-sync server. | ||
13 | This feature must be considered as unstable - it still needs some more testing. | ||
14 | |||
3 | ********** VERSION 2.2.7 ************ | 15 | ********** VERSION 2.2.7 ************ |
4 | 16 | ||
5 | Added for Desktop Versions (Windows + Linux) the possibility to specify an email client to call if the user clicks on an emailaddress. | 17 | Added for Desktop Versions (Windows + Linux) the possibility to specify an email client to call if the user clicks on an emailaddress. |
6 | (Menu: Config->Global Settings->Extern.Applications: E-mail). | 18 | (Menu: Config->Global Settings->Extern.Applications: E-mail). |
7 | Added as default (and example) Mozilla Thunderbird settings. | 19 | Added as default (and example) Mozilla Thunderbird settings. |
8 | If the path to the binary in this Mozilla Thunderbird example is not matching your environment you can take these settings as an template and configure "User defined email client". | 20 | If the path to the binary in this Mozilla Thunderbird example is not matching your environment you can take these settings as an template and configure "User defined email client". |
9 | 21 | ||
10 | ********** VERSION 2.2.6 ************ | 22 | ********** VERSION 2.2.6 ************ |
11 | 23 | ||
12 | KO/Pi: | 24 | KO/Pi: |
13 | Made navigation in datepicker more userfriendly when using keyboard for scrolling. | 25 | Made navigation in datepicker more userfriendly when using keyboard for scrolling. |
14 | KO/Pi Alarm applet: | 26 | KO/Pi Alarm applet: |
15 | Made font size for the two popup menus with larger font configurable: | 27 | Made font size for the two popup menus with larger font configurable: |
16 | Change size with menu: | 28 | Change size with menu: |
17 | Play Beeps->Font Size | 29 | Play Beeps->Font Size |
18 | Save settings such that it will be restored after next reboot with menu: | 30 | Save settings such that it will be restored after next reboot with menu: |
19 | Play Beeps->Config->Save. | 31 | Play Beeps->Config->Save. |
20 | KA/Pi: | 32 | KA/Pi: |
21 | Big change! Needed for the upcoming Outlook sync: | 33 | Big change! Needed for the upcoming Outlook sync: |
22 | (Outlook sync available appr. end of 2005) | 34 | (Outlook sync available appr. end of 2005) |
23 | Telephone number types are now fixed in KA/Pi | 35 | Telephone number types are now fixed in KA/Pi |
24 | (but still compatible with the vCard standard, of cource) | 36 | (but still compatible with the vCard standard, of cource) |
25 | and they are compatible with the types used by the evil empire. | 37 | and they are compatible with the types used by the evil empire. |
26 | That makes syncing with OL possible and make it possible to sync better with mobile devices. | 38 | That makes syncing with OL possible and make it possible to sync better with mobile devices. |
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt index 3448dcc..e03dafb 100644 --- a/bin/kdepim/kaddressbook/germantranslation.txt +++ b/bin/kdepim/kaddressbook/germantranslation.txt | |||
@@ -808,29 +808,31 @@ | |||
808 | { "Eeek, there I am ticklish!","Huch, da bin ich kitzlig!" }, | 808 | { "Eeek, there I am ticklish!","Huch, da bin ich kitzlig!" }, |
809 | { "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, | 809 | { "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, |
810 | { "...and %1 more\ncontact(s) selected","...und noch %1 Kontakte\n mehr ausgewählt" }, | 810 | { "...and %1 more\ncontact(s) selected","...und noch %1 Kontakte\n mehr ausgewählt" }, |
811 | { "Do you really\nwant to delete the\nsetected contact(s)?\n\n","Möchten Sie wirklich\ndie ausgewählten\nKontakte löschen?\n\n" }, | 811 | { "Do you really\nwant to delete the\nsetected contact(s)?\n\n","Möchten Sie wirklich\ndie ausgewählten\nKontakte löschen?\n\n" }, |
812 | { "%1 contacts\nsuccessfully\nimported.","%1 Kontakte\nerfolgreich\nimportiert." }, | 812 | { "%1 contacts\nsuccessfully\nimported.","%1 Kontakte\nerfolgreich\nimportiert." }, |
813 | { "Import this contact?","Importiere diesen Kontakt?" }, | 813 | { "Import this contact?","Importiere diesen Kontakt?" }, |
814 | { "Import all!","Importiere alle!" }, | 814 | { "Import all!","Importiere alle!" }, |
815 | { "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" }, | 815 | { "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" }, |
816 | { "Import Format","Import Format" }, | 816 | { "Import Format","Import Format" }, |
817 | { "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." }, | 817 | { "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." }, |
818 | { "Home2","Privat2" }, | 818 | { "Home2","Privat2" }, |
819 | { "Work2","Arbeit2" }, | 819 | { "Work2","Arbeit2" }, |
820 | { "Fax (Work)","Fax (Arbeit)" }, | 820 | { "Fax (Work)","Fax (Arbeit)" }, |
821 | { "Fax (Home)","Fax (Privat)" }, | 821 | { "Fax (Home)","Fax (Privat)" }, |
822 | { "Assistent","Sekretär(in)" }, | 822 | { "Assistent","Sekretär(in)" }, |
823 | { "Company","Firma" }, | 823 | { "Company","Firma" }, |
824 | { "Mobile2","Handy2" }, | 824 | { "Mobile2","Handy2" }, |
825 | { "Callback","Rückruf" }, | 825 | { "Callback","Rückruf" }, |
826 | { "Fax (Other)","Fax (Sonst.)" }, | 826 | { "Fax (Other)","Fax (Sonst.)" }, |
827 | { "Primary","Bevorzugt" }, | 827 | { "Primary","Bevorzugt" }, |
828 | { "Mobile","Handy" }, | 828 | { "Mobile","Handy" }, |
829 | { "Unfiled","Nicht zugeordnet" }, | 829 | { "Unfiled","Nicht zugeordnet" }, |
830 | { "Format.n.:","Format.N.:" }, | 830 | { "Format.n.:","Format.N.:" }, |
831 | { "Other Phone","Sonst. Telefon" }, | 831 | { "Other Phone","Sonst. Telefon" }, |
832 | { "Pi-Sync - all calendars ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync - alle Kalender ( direktes Kx/Pi mit Kx/Pi syncen )" }, | ||
833 | { "Pi-Sync - selected calendars ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync - ausgewählte Kalender ( direktes Kx/Pi mit Kx/Pi syncen )" }, | ||
832 | { "","" }, | 834 | { "","" }, |
833 | { "","" }, | 835 | { "","" }, |
834 | { "","" }, | 836 | { "","" }, |
835 | { "","" }, | 837 | { "","" }, |
836 | { "","" }, \ No newline at end of file | 838 | { "","" }, \ No newline at end of file |
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index 767e243..2dec521 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -915,49 +915,48 @@ | |||
915 | { "5 minutes","5 Min." }, | 915 | { "5 minutes","5 Min." }, |
916 | { "1 minute","1 Min." }, | 916 | { "1 minute","1 Min." }, |
917 | { "23","23" }, | 917 | { "23","23" }, |
918 | { "Mon 15","Mon 15" }, | 918 | { "Mon 15","Mon 15" }, |
919 | { "Configure KO","Konfiguriere KO" }, | 919 | { "Configure KO","Konfiguriere KO" }, |
920 | { "Event text","Termin Text" }, | 920 | { "Event text","Termin Text" }, |
921 | { "ToDo","Todo" }, | 921 | { "ToDo","Todo" }, |
922 | { "Today","Heute" }, | 922 | { "Today","Heute" }, |
923 | { "What's Next View","What's Next Ansicht" }, | 923 | { "What's Next View","What's Next Ansicht" }, |
924 | { "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, | 924 | { "Allday Agenda view shows todos","Ganztag Agenda zeigt Todos" }, |
925 | { "Alarm","Alarm" }, | 925 | { "Alarm","Alarm" }, |
926 | { "Used %1 Client","Benutzter %1 Client" }, | 926 | { "Used %1 Client","Benutzter %1 Client" }, |
927 | { "No email client installed","Kein Email Klient installiert" }, | 927 | { "No email client installed","Kein Email Klient installiert" }, |
928 | { "Userdefined email client","Benutzerdef. Email Klient" }, | 928 | { "Userdefined email client","Benutzerdef. Email Klient" }, |
929 | { "OM/Pi email client","OM/Pi Email Klient" }, | 929 | { "OM/Pi email client","OM/Pi Email Klient" }, |
930 | { "Include in multiple ","Beziehe in multiple " }, | 930 | { "Include in multiple ","Beziehe in multiple " }, |
931 | { "calendar ","Kalender " }, | 931 | { "calendar ","Kalender " }, |
932 | { "addressbook ","Adressbuch " }, | 932 | { "addressbook ","Adressbuch " }, |
933 | { "pwmanager","PWmanager" }, | 933 | { "pwmanager","PWmanager" }, |
934 | { " sync"," Sync ein" }, | 934 | { " sync"," Sync ein" }, |
935 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, | 935 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, |
936 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, | 936 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, |
937 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, | 937 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, |
938 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, | 938 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, |
939 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, | ||
940 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, | 939 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, |
941 | { "Help...","Hilfe..." }, | 940 | { "Help...","Hilfe..." }, |
942 | { "Local file Cal:","Lokale Datei Kal:" }, | 941 | { "Local file Cal:","Lokale Datei Kal:" }, |
943 | { "Local file ABook:","Lokale Datei ABuch:" }, | 942 | { "Local file ABook:","Lokale Datei ABuch:" }, |
944 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, | 943 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, |
945 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, | 944 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, |
946 | { "Calendar:","Kalender:" }, | 945 | { "Calendar:","Kalender:" }, |
947 | { "AddressBook:","AdressBuch:" }, | 946 | { "AddressBook:","AdressBuch:" }, |
948 | { "PWManager:","PWManager:" }, | 947 | { "PWManager:","PWManager:" }, |
949 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, | 948 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, |
950 | { "ssh/scp","ssh/scp" }, | 949 | { "ssh/scp","ssh/scp" }, |
951 | { "ftp","ftp" }, | 950 | { "ftp","ftp" }, |
952 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, | 951 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, |
953 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, | 952 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, |
954 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, | 953 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, |
955 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, | 954 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, |
956 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, | 955 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, |
957 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, | 956 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, |
958 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, | 957 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, |
959 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, | 958 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, |
960 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, | 959 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Model\nautomatisch erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, |
961 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, | 960 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, |
962 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, | 961 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, |
963 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, | 962 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, |
@@ -1550,31 +1549,37 @@ | |||
1550 | { "Enable conflict detection","Schalte Konflikterkennung an" }, | 1549 | { "Enable conflict detection","Schalte Konflikterkennung an" }, |
1551 | { "Filter for the edited event","Filter für den bearbeiteten Termin" }, | 1550 | { "Filter for the edited event","Filter für den bearbeiteten Termin" }, |
1552 | { "Filter for other events","Filter für die anderen Termine" }, | 1551 | { "Filter for other events","Filter für die anderen Termine" }, |
1553 | { "Check Allday with Allday","Prüfe GanzTag mit GanzTag" }, | 1552 | { "Check Allday with Allday","Prüfe GanzTag mit GanzTag" }, |
1554 | { "Check Allday with NonAllday","Prüfe GanzTag mit NichtGanzTag" }, | 1553 | { "Check Allday with NonAllday","Prüfe GanzTag mit NichtGanzTag" }, |
1555 | { "Check NonAllday with Allday","Prüfe NichtGanzTag mit GanzTag" }, | 1554 | { "Check NonAllday with Allday","Prüfe NichtGanzTag mit GanzTag" }, |
1556 | { "Check NonAllday with NonAllday","Prüfe NichtGanzTag mit NichtGanzTag" }, | 1555 | { "Check NonAllday with NonAllday","Prüfe NichtGanzTag mit NichtGanzTag" }, |
1557 | { "Conflict detection","Konflikterkennung" }, | 1556 | { "Conflict detection","Konflikterkennung" }, |
1558 | { "Loading calendar files ... please wait","Lade Kalenderdateien ... bitte warten" }, | 1557 | { "Loading calendar files ... please wait","Lade Kalenderdateien ... bitte warten" }, |
1559 | { "Show multiday allday ev. in date nav.","Zeige Multi-Ganzt.Term.in Datums Nav." }, | 1558 | { "Show multiday allday ev. in date nav.","Zeige Multi-Ganzt.Term.in Datums Nav." }, |
1560 | { "Include events which "show as free"","Inklusive Termine mit "Zeige Zeit als frei"" }, | 1559 | { "Include events which "show as free"","Inklusive Termine mit "Zeige Zeit als frei"" }, |
1561 | { "Conflict detection checks an <b>edited event</b> with <b>other events</b> for overlapping.","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>." }, | 1560 | { "Conflict detection checks an <b>edited event</b> with <b>other events</b> for overlapping.","Konflikterkennung prüft einen <b>bearbeiteten Termin</b> auf Überschneidungen mit <b>anderen Terminen</b>." }, |
1562 | { " Yes, close "," Ja, beenden " }, | 1561 | { " Yes, close "," Ja, beenden " }, |
1563 | { "Export All Data","Exportiere alle Daten" }, | 1562 | { "Export All Data","Exportiere alle Daten" }, |
1564 | { "You can save all data\nto another file via\nFile->Export->Export All Data","Sie können alle Daten in\neine andere Datei speichern unter\nDatei->Exportiere->Exportiere alle Daten" }, | 1563 | { "You can save all data\nto another file via\nFile->Export->Export All Data","Sie können alle Daten in\neine andere Datei speichern unter\nDatei->Exportiere->Exportiere alle Daten" }, |
1565 | { "<p><b>Duration:</b> %1 days</p>","<p><b>Dauer:</b> %1 Tage</p>" }, | 1564 | { "<p><b>Duration:</b> %1 days</p>","<p><b>Dauer:</b> %1 Tage</p>" }, |
1566 | { " (Duration: %1 days)"," (Dauer: %1 Tage)" }, | 1565 | { " (Duration: %1 days)"," (Dauer: %1 Tage)" }, |
1567 | { "Autosave enabled!","Auto-Speichern angeschaltet!" }, | 1566 | { "Autosave enabled!","Auto-Speichern angeschaltet!" }, |
1568 | { "Autosave disabled! Save timer stopped!","Auto-Speichern ausgeschaltet! Speicher Timer gestoppt!" }, | 1567 | { "Autosave disabled! Save timer stopped!","Auto-Speichern ausgeschaltet! Speicher Timer gestoppt!" }, |
1569 | { "Autosave disabled!","Auto-Speichern ist ausgeschaltet!" }, | 1568 | { "Autosave disabled!","Auto-Speichern ist ausgeschaltet!" }, |
1570 | { "Yes, Save!","Ja, Speichern!" }, | 1569 | { "Yes, Save!","Ja, Speichern!" }, |
1571 | { "Calendar is modified\nbut Autosave is disabled!\nDo you want\nto save the data?","Der Kalender wurde verändert,\naber Auto-Speichern ist\nabgeschaltet. Möchten Sie\ndie Daten speichern?" }, | 1570 | { "Calendar is modified\nbut Autosave is disabled!\nDo you want\nto save the data?","Der Kalender wurde verändert,\naber Auto-Speichern ist\nabgeschaltet. Möchten Sie\ndie Daten speichern?" }, |
1572 | { "<p><b>C+ctrl</b>: Dis/enable automatic saving</p>\n","<p><b>C+ctrl</b>: Auto-Speichern ab/anschalten</p>\n" }, | 1571 | { "<p><b>C+ctrl</b>: Dis/enable automatic saving</p>\n","<p><b>C+ctrl</b>: Auto-Speichern ab/anschalten</p>\n" }, |
1573 | { "<br>The calendar contains<br><b>%1 events<br>%2 todos<br>%3 journals</b>","<br>Der Kalender enthält<br><b>%1 Termine<br>%2 Todos<br>%3 Journale</b>" }, | 1572 | { "<br>The calendar contains<br><b>%1 events<br>%2 todos<br>%3 journals</b>","<br>Der Kalender enthält<br><b>%1 Termine<br>%2 Todos<br>%3 Journale</b>" }, |
1573 | { "Enable alarm in resource settings","Schalte Alarm in Resourcenansicht wieder an" }, | ||
1574 | { "The alarm for this calendar\nis currently disabled!\nEnable it in resource settings.","Der Alarm für diesen Kalender\nist abgeschaltet.\nSchalten Sie ihn in der\nResourcenansicht ggf. an." }, | ||
1575 | { "Alarm disabled warning","Nichtaktiver Alarm" }, | ||
1576 | { "Pi-Sync - all calendars ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync - alle Kalender ( direktes Kx/Pi mit Kx/Pi syncen )" }, | ||
1577 | { "Pi-Sync - selected calendars ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync - ausgewählte Kalender ( direktes Kx/Pi mit Kx/Pi syncen )" }, | ||
1578 | { "","" }, | ||
1574 | { "","" }, | 1579 | { "","" }, |
1575 | { "","" }, | 1580 | { "","" }, |
1576 | { "","" }, | 1581 | { "","" }, |
1577 | { "","" }, | 1582 | { "","" }, |
1578 | { "","" }, | 1583 | { "","" }, |
1579 | { "","" }, | 1584 | { "","" }, |
1580 | { "","" }, | 1585 | { "","" }, |
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp index 92e5a0f..21f220c 100644 --- a/korganizer/koeditorgeneral.cpp +++ b/korganizer/koeditorgeneral.cpp | |||
@@ -122,49 +122,48 @@ void KOEditorGeneral::initHeader(QWidget *parent,QBoxLayout *topLayout) | |||
122 | headerLayout->setColStretch( 3, 10); | 122 | headerLayout->setColStretch( 3, 10); |
123 | mCalendarBox->setMaximumWidth( 64 ); | 123 | mCalendarBox->setMaximumWidth( 64 ); |
124 | } | 124 | } |
125 | else { | 125 | else { |
126 | headerLayout->addWidget(mLocationEdit,1,1); | 126 | headerLayout->addWidget(mLocationEdit,1,1); |
127 | headerLayout->addWidget(mCalendarBox,1,2); | 127 | headerLayout->addWidget(mCalendarBox,1,2); |
128 | int str = 3; | 128 | int str = 3; |
129 | if ( QApplication::desktop()->width() < 640 ) { | 129 | if ( QApplication::desktop()->width() < 640 ) { |
130 | --str; | 130 | --str; |
131 | if ( QApplication::desktop()->width() < 320 ) | 131 | if ( QApplication::desktop()->width() < 320 ) |
132 | --str; | 132 | --str; |
133 | } | 133 | } |
134 | headerLayout->setColStretch( 1, str); | 134 | headerLayout->setColStretch( 1, str); |
135 | headerLayout->setColStretch( 2, 1); | 135 | headerLayout->setColStretch( 2, 1); |
136 | } | 136 | } |
137 | 137 | ||
138 | } | 138 | } |
139 | void KOEditorGeneral::setFocusOn( int i ) | 139 | void KOEditorGeneral::setFocusOn( int i ) |
140 | { | 140 | { |
141 | mNextFocus = i; | 141 | mNextFocus = i; |
142 | QTimer::singleShot( 0, this, SLOT ( slotSetFocusOn() )); | 142 | QTimer::singleShot( 0, this, SLOT ( slotSetFocusOn() )); |
143 | } | 143 | } |
144 | void KOEditorGeneral::slotSetFocusOn() | 144 | void KOEditorGeneral::slotSetFocusOn() |
145 | { | 145 | { |
146 | mNextFocus; | ||
147 | if ( mNextFocus == 1 ) { | 146 | if ( mNextFocus == 1 ) { |
148 | mDescriptionEdit->setFocus(); | 147 | mDescriptionEdit->setFocus(); |
149 | mDescriptionEdit->setCursorPosition( mDescriptionEdit->numLines (), 333); | 148 | mDescriptionEdit->setCursorPosition( mDescriptionEdit->numLines (), 333); |
150 | } | 149 | } |
151 | if ( mNextFocus == 2 ) { | 150 | if ( mNextFocus == 2 ) { |
152 | mSummaryEdit->setFocus(); | 151 | mSummaryEdit->setFocus(); |
153 | } | 152 | } |
154 | } | 153 | } |
155 | void KOEditorGeneral::editCategories() | 154 | void KOEditorGeneral::editCategories() |
156 | { | 155 | { |
157 | // qDebug("KOEditorGeneral::editCategories() "); | 156 | // qDebug("KOEditorGeneral::editCategories() "); |
158 | KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); | 157 | KPIM::CategorySelectDialog* csd = new KPIM::CategorySelectDialog( KOPrefs::instance(), 0 ); |
159 | connect(csd,SIGNAL(categoriesSelected(const QString &)), this ,SLOT(setCategories(const QString &))); | 158 | connect(csd,SIGNAL(categoriesSelected(const QString &)), this ,SLOT(setCategories(const QString &))); |
160 | //KOGlobals::fitDialogToScreen( csd ); | 159 | //KOGlobals::fitDialogToScreen( csd ); |
161 | csd->setColorEnabled(); | 160 | csd->setColorEnabled(); |
162 | csd->setSelected( QStringList::split (",", mCategoriesLabel->text()) ); | 161 | csd->setSelected( QStringList::split (",", mCategoriesLabel->text()) ); |
163 | csd->exec(); | 162 | csd->exec(); |
164 | delete csd; | 163 | delete csd; |
165 | } | 164 | } |
166 | 165 | ||
167 | void KOEditorGeneral::showCatPopup() | 166 | void KOEditorGeneral::showCatPopup() |
168 | { | 167 | { |
169 | mCatPopup->clear(); | 168 | mCatPopup->clear(); |
170 | QStringList checkedCategories = QStringList::split (",", mCategoriesLabel->text()); | 169 | QStringList checkedCategories = QStringList::split (",", mCategoriesLabel->text()); |
@@ -334,49 +333,49 @@ void KOEditorGeneral::pickAlarmProgram() | |||
334 | bool oldState = mAlarmProgramButton->isOn(); | 333 | bool oldState = mAlarmProgramButton->isOn(); |
335 | 334 | ||
336 | QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm: ") , 0)); | 335 | QString fileName(KFileDialog::getOpenFileName(mAlarmProgram,i18n("Procedure Alarm: ") , 0)); |
337 | if (!fileName.isEmpty()) { | 336 | if (!fileName.isEmpty()) { |
338 | mAlarmProgram = fileName; | 337 | mAlarmProgram = fileName; |
339 | QToolTip::remove(mAlarmProgramButton); | 338 | QToolTip::remove(mAlarmProgramButton); |
340 | QString dispStr = i18n("Running '%1'").arg(fileName); | 339 | QString dispStr = i18n("Running '%1'").arg(fileName); |
341 | QToolTip::add(mAlarmProgramButton, dispStr); | 340 | QToolTip::add(mAlarmProgramButton, dispStr); |
342 | mAlarmSoundButton->setOn(false); | 341 | mAlarmSoundButton->setOn(false); |
343 | mAlarmProgramButton->setOn(true); | 342 | mAlarmProgramButton->setOn(true); |
344 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); | 343 | QToolTip::add(mAlarmSoundButton, i18n("No sound set")); |
345 | } else { | 344 | } else { |
346 | mAlarmProgramButton->setOn(!oldState); | 345 | mAlarmProgramButton->setOn(!oldState); |
347 | mAlarmSoundButton->setOn(oldState); | 346 | mAlarmSoundButton->setOn(oldState); |
348 | } | 347 | } |
349 | 348 | ||
350 | if (mAlarmProgramButton->isOn()) | 349 | if (mAlarmProgramButton->isOn()) |
351 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); | 350 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Proc.Al.: ") + getFittingPath(mAlarmProgram) ); |
352 | if ( mAlarmSoundButton->isOn()) | 351 | if ( mAlarmSoundButton->isOn()) |
353 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); | 352 | ((QWidget*)parent())->topLevelWidget()->setCaption(i18n("Audio Al.: ") + getFittingPath(mAlarmSound) ); |
354 | 353 | ||
355 | } | 354 | } |
356 | 355 | ||
357 | 356 | ||
358 | QString KOEditorGeneral::getFittingPath( const QString s ) | 357 | QString KOEditorGeneral::getFittingPath( const QString & s ) |
359 | { | 358 | { |
360 | int maxlen = 50; | 359 | int maxlen = 50; |
361 | if ( QApplication::desktop()->width() < 640 ) { | 360 | if ( QApplication::desktop()->width() < 640 ) { |
362 | if ( QApplication::desktop()->width() < 320 ) | 361 | if ( QApplication::desktop()->width() < 320 ) |
363 | maxlen = 22; | 362 | maxlen = 22; |
364 | else | 363 | else |
365 | maxlen = 35; | 364 | maxlen = 35; |
366 | } | 365 | } |
367 | if ( s.length() > maxlen ) { | 366 | if ( s.length() > maxlen ) { |
368 | return "..."+s.right(maxlen -3); | 367 | return "..."+s.right(maxlen -3); |
369 | } | 368 | } |
370 | return s; | 369 | return s; |
371 | } | 370 | } |
372 | 371 | ||
373 | void KOEditorGeneral::enableAlarmEdit(bool enable) | 372 | void KOEditorGeneral::enableAlarmEdit(bool enable) |
374 | { | 373 | { |
375 | if ( enable ) { | 374 | if ( enable ) { |
376 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { | 375 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { |
377 | mAlarmSoundButton->setOn( true ); | 376 | mAlarmSoundButton->setOn( true ); |
378 | if ( mAlarmSound.isEmpty() ) | 377 | if ( mAlarmSound.isEmpty() ) |
379 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 378 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
380 | else { | 379 | else { |
381 | if ( ! QFile::exists( mAlarmSound ) ) | 380 | if ( ! QFile::exists( mAlarmSound ) ) |
382 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 381 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
@@ -599,26 +598,28 @@ void KOEditorGeneral::writeIncidence(Incidence *event) | |||
599 | if (mAlarmIncrCombo->currentItem() == 1) | 598 | if (mAlarmIncrCombo->currentItem() == 1) |
600 | j = j * 60; | 599 | j = j * 60; |
601 | else if (mAlarmIncrCombo->currentItem() == 2) | 600 | else if (mAlarmIncrCombo->currentItem() == 2) |
602 | j = j * (60 * 24); | 601 | j = j * (60 * 24); |
603 | alarm->setStartOffset( j ); | 602 | alarm->setStartOffset( j ); |
604 | 603 | ||
605 | if (!mAlarmProgram.isEmpty() && mAlarmProgramButton->isOn()) { | 604 | if (!mAlarmProgram.isEmpty() && mAlarmProgramButton->isOn()) { |
606 | alarm->setProcedureAlarm(mAlarmProgram); | 605 | alarm->setProcedureAlarm(mAlarmProgram); |
607 | } | 606 | } |
608 | else if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) | 607 | else if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) |
609 | alarm->setAudioAlarm(mAlarmSound); | 608 | alarm->setAudioAlarm(mAlarmSound); |
610 | else | 609 | else |
611 | alarm->setType(Alarm::Invalid); | 610 | alarm->setType(Alarm::Invalid); |
612 | //alarm->setAudioAlarm("default"); | 611 | //alarm->setAudioAlarm("default"); |
613 | // TODO: Deal with multiple alarms | 612 | // TODO: Deal with multiple alarms |
614 | break; // For now, stop after the first alarm | 613 | break; // For now, stop after the first alarm |
615 | } | 614 | } |
616 | } else { | 615 | } else { |
617 | Alarm* alarm = event->alarms().first(); | 616 | Alarm* alarm = event->alarms().first(); |
618 | if ( alarm ) { | 617 | if ( alarm ) { |
619 | alarm->setEnabled(false); | 618 | alarm->setEnabled(false); |
620 | alarm->setType(Alarm::Invalid); | 619 | alarm->setType(Alarm::Invalid); |
621 | } | 620 | } |
622 | } | 621 | } |
623 | event->setCalID( getCalendarID() ); | 622 | int id = getCalendarID(); |
623 | event->setCalID( id ); | ||
624 | event->setAlarmEnabled( KOPrefs::instance()->getCalendar( id )->isAlarmEnabled ); | ||
624 | } | 625 | } |
diff --git a/korganizer/koeditorgeneral.h b/korganizer/koeditorgeneral.h index d8b15af..b10a5d4 100644 --- a/korganizer/koeditorgeneral.h +++ b/korganizer/koeditorgeneral.h | |||
@@ -95,31 +95,31 @@ class KOEditorGeneral : public QObject | |||
95 | 95 | ||
96 | protected: | 96 | protected: |
97 | void fillCalCombo( int setToID = 0 ); | 97 | void fillCalCombo( int setToID = 0 ); |
98 | int mNextFocus; | 98 | int mNextFocus; |
99 | //QLineEdit *mSummaryEdit; | 99 | //QLineEdit *mSummaryEdit; |
100 | //QLineEdit *mLocationEdit; | 100 | //QLineEdit *mLocationEdit; |
101 | KOLocationBox *mSummaryEdit; | 101 | KOLocationBox *mSummaryEdit; |
102 | KOLocationBox *mLocationEdit; | 102 | KOLocationBox *mLocationEdit; |
103 | QComboBox *mCalendarBox; | 103 | QComboBox *mCalendarBox; |
104 | QLabel *mAlarmBell; | 104 | QLabel *mAlarmBell; |
105 | QCheckBox *mAlarmButton; | 105 | QCheckBox *mAlarmButton; |
106 | QSpinBox *mAlarmTimeEdit; | 106 | QSpinBox *mAlarmTimeEdit; |
107 | QPushButton *mAlarmSoundButton; | 107 | QPushButton *mAlarmSoundButton; |
108 | QPushButton *mAlarmProgramButton; | 108 | QPushButton *mAlarmProgramButton; |
109 | QComboBox *mAlarmIncrCombo; | 109 | QComboBox *mAlarmIncrCombo; |
110 | KTextEdit *mDescriptionEdit; | 110 | KTextEdit *mDescriptionEdit; |
111 | QLabel *mOwnerLabel; | 111 | QLabel *mOwnerLabel; |
112 | QComboBox *mSecrecyCombo; | 112 | QComboBox *mSecrecyCombo; |
113 | QCheckBox *mCancelBox; | 113 | QCheckBox *mCancelBox; |
114 | QPushButton *mCategoriesButton; | 114 | QPushButton *mCategoriesButton; |
115 | QPushButton *mCategoriesLabel; | 115 | QPushButton *mCategoriesLabel; |
116 | 116 | ||
117 | private: | 117 | private: |
118 | QPopupMenu * mCatPopup; | 118 | QPopupMenu * mCatPopup; |
119 | QString getFittingPath( const QString ) ; | 119 | QString getFittingPath( const QString &) ; |
120 | QString mAlarmSound; | 120 | QString mAlarmSound; |
121 | QString mAlarmProgram; | 121 | QString mAlarmProgram; |
122 | QString mAlarmMessage; | 122 | QString mAlarmMessage; |
123 | }; | 123 | }; |
124 | 124 | ||
125 | #endif | 125 | #endif |
diff --git a/korganizer/koeventeditor.cpp b/korganizer/koeventeditor.cpp index 9ede543..3e87197 100644 --- a/korganizer/koeventeditor.cpp +++ b/korganizer/koeventeditor.cpp | |||
@@ -4,48 +4,49 @@ | |||
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 | 23 | ||
24 | #include <qtooltip.h> | 24 | #include <qtooltip.h> |
25 | #include <qframe.h> | 25 | #include <qframe.h> |
26 | #include <qpixmap.h> | 26 | #include <qpixmap.h> |
27 | #include <qhbox.h> | 27 | #include <qhbox.h> |
28 | #include <qtimer.h> | ||
28 | #include <qdir.h> | 29 | #include <qdir.h> |
29 | #include <qlayout.h> | 30 | #include <qlayout.h> |
30 | #include <qwidgetstack.h> | 31 | #include <qwidgetstack.h> |
31 | #include <qapplication.h> | 32 | #include <qapplication.h> |
32 | 33 | ||
33 | #include <kiconloader.h> | 34 | #include <kiconloader.h> |
34 | #include <kstandarddirs.h> | 35 | #include <kstandarddirs.h> |
35 | #include <kdebug.h> | 36 | #include <kdebug.h> |
36 | #include <klocale.h> | 37 | #include <klocale.h> |
37 | #include <kfiledialog.h> | 38 | #include <kfiledialog.h> |
38 | #include <kmessagebox.h> | 39 | #include <kmessagebox.h> |
39 | #include <libkcal/calendarresources.h> | 40 | #include <libkcal/calendarresources.h> |
40 | #include <libkcal/resourcecalendar.h> | 41 | #include <libkcal/resourcecalendar.h> |
41 | #include <kresources/resourceselectdialog.h> | 42 | #include <kresources/resourceselectdialog.h> |
42 | 43 | ||
43 | #include <libkdepim/categoryselectdialog.h> | 44 | #include <libkdepim/categoryselectdialog.h> |
44 | #include <libkcal/calendarlocal.h> | 45 | #include <libkcal/calendarlocal.h> |
45 | #include <libkcal/icalformat.h> | 46 | #include <libkcal/icalformat.h> |
46 | 47 | ||
47 | #include "koprefs.h" | 48 | #include "koprefs.h" |
48 | 49 | ||
49 | #include "koeventeditor.h" | 50 | #include "koeventeditor.h" |
50 | extern int globalFlagBlockAgenda; | 51 | extern int globalFlagBlockAgenda; |
51 | 52 | ||
@@ -228,48 +229,51 @@ bool KOEventEditor::processInput( bool emitTime ) | |||
228 | 229 | ||
229 | Event *event = 0; | 230 | Event *event = 0; |
230 | 231 | ||
231 | if (mEvent) event = mEvent; | 232 | if (mEvent) event = mEvent; |
232 | else { | 233 | else { |
233 | event = new Event; | 234 | event = new Event; |
234 | event->setOrganizer(KOPrefs::instance()->email()); | 235 | event->setOrganizer(KOPrefs::instance()->email()); |
235 | } | 236 | } |
236 | 237 | ||
237 | writeEvent(event); | 238 | writeEvent(event); |
238 | if ( emitTime ) { | 239 | if ( emitTime ) { |
239 | globalFlagBlockAgenda = 1; | 240 | globalFlagBlockAgenda = 1; |
240 | emit showAgendaView( false ); | 241 | emit showAgendaView( false ); |
241 | emit jumpToTime( event->dtStart().date() ); | 242 | emit jumpToTime( event->dtStart().date() ); |
242 | globalFlagBlockAgenda = 2; | 243 | globalFlagBlockAgenda = 2; |
243 | 244 | ||
244 | } | 245 | } |
245 | if (mEvent) { | 246 | if (mEvent) { |
246 | event->setRevision(event->revision()+1); | 247 | event->setRevision(event->revision()+1); |
247 | emit eventChanged(event); | 248 | emit eventChanged(event); |
248 | } else { | 249 | } else { |
249 | mCalendar->addEvent(event); | 250 | mCalendar->addEvent(event); |
250 | mEvent = event; | 251 | mEvent = event; |
251 | emit eventAdded(event); | 252 | emit eventAdded(event); |
253 | if ( event->isAlarmEnabled () && !event->alarmEnabled () ) { | ||
254 | QTimer::singleShot( 0, this, SLOT ( alarmWarning() ) ); | ||
255 | } | ||
252 | } | 256 | } |
253 | 257 | ||
254 | return true; | 258 | return true; |
255 | } | 259 | } |
256 | 260 | ||
257 | void KOEventEditor::deleteEvent() | 261 | void KOEventEditor::deleteEvent() |
258 | { | 262 | { |
259 | kdDebug() << "Delete event" << endl; | 263 | kdDebug() << "Delete event" << endl; |
260 | 264 | ||
261 | if (mEvent) { | 265 | if (mEvent) { |
262 | if (KOPrefs::instance()->mConfirm) { | 266 | if (KOPrefs::instance()->mConfirm) { |
263 | switch (msgItemDelete()) { | 267 | switch (msgItemDelete()) { |
264 | case KMessageBox::Continue: // OK | 268 | case KMessageBox::Continue: // OK |
265 | emit eventToBeDeleted(mEvent); | 269 | emit eventToBeDeleted(mEvent); |
266 | emit dialogClose(mEvent); | 270 | emit dialogClose(mEvent); |
267 | mCalendar->deleteEvent(mEvent); | 271 | mCalendar->deleteEvent(mEvent); |
268 | emit eventDeleted(); | 272 | emit eventDeleted(); |
269 | reject(); | 273 | reject(); |
270 | break; | 274 | break; |
271 | } | 275 | } |
272 | } | 276 | } |
273 | else { | 277 | else { |
274 | emit eventToBeDeleted(mEvent); | 278 | emit eventToBeDeleted(mEvent); |
275 | emit dialogClose(mEvent); | 279 | emit dialogClose(mEvent); |
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp index 02b54da..607e549 100644 --- a/korganizer/koeventviewer.cpp +++ b/korganizer/koeventviewer.cpp | |||
@@ -383,48 +383,52 @@ void KOEventViewer::appendEvent(Event *event, int mode ) | |||
383 | addTag("p",i18n("<b>Last recurrence was on:</b>") +" " + KGlobal::locale()->formatDate( nextd, shortDate )); | 383 | addTag("p",i18n("<b>Last recurrence was on:</b>") +" " + KGlobal::locale()->formatDate( nextd, shortDate )); |
384 | } else{ | 384 | } else{ |
385 | addTag("p",i18n("<b>Last recurrence was on:</b>") ); | 385 | addTag("p",i18n("<b>Last recurrence was on:</b>") ); |
386 | addTag("p", KGlobal::locale()->formatDate( nextd, shortDate )); | 386 | addTag("p", KGlobal::locale()->formatDate( nextd, shortDate )); |
387 | } | 387 | } |
388 | } | 388 | } |
389 | } | 389 | } |
390 | } else { | 390 | } else { |
391 | mMailSubject += i18n(" - " )+event->dtStartStr( true ); | 391 | mMailSubject += i18n(" - " )+event->dtStartStr( true ); |
392 | 392 | ||
393 | } | 393 | } |
394 | 394 | ||
395 | 395 | ||
396 | if (event->isAlarmEnabled()) { | 396 | if (event->isAlarmEnabled()) { |
397 | Alarm *alarm =event->alarms().first() ; | 397 | Alarm *alarm =event->alarms().first() ; |
398 | QDateTime t = alarm->time(); | 398 | QDateTime t = alarm->time(); |
399 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); | 399 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); |
400 | if(wideScreen ){ | 400 | if(wideScreen ){ |
401 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); | 401 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); |
402 | }else{ | 402 | }else{ |
403 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); | 403 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); |
404 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | 404 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); |
405 | } | 405 | } |
406 | //addTag("p",s); | 406 | //addTag("p",s); |
407 | if ( !(event->alarmEnabled() ) ) { | ||
408 | addTag("p", "<em>("+i18n("Enable alarm in resource settings") + ")</em>"); | ||
409 | |||
410 | } | ||
407 | } | 411 | } |
408 | 412 | ||
409 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); | 413 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); |
410 | 414 | ||
411 | formatCategories(event); | 415 | formatCategories(event); |
412 | 416 | ||
413 | formatAttendees(event); | 417 | formatAttendees(event); |
414 | 418 | ||
415 | if ( KOPrefs::instance()->mEVshowCreated ) { | 419 | if ( KOPrefs::instance()->mEVshowCreated ) { |
416 | if(wideScreen ){ | 420 | if(wideScreen ){ |
417 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 421 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
418 | }else{ | 422 | }else{ |
419 | addTag("p",i18n("<b>Created: ") +" </b>"); | 423 | addTag("p",i18n("<b>Created: ") +" </b>"); |
420 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 424 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
421 | } | 425 | } |
422 | 426 | ||
423 | 427 | ||
424 | } | 428 | } |
425 | if ( KOPrefs::instance()->mEVshowChanged ) { | 429 | if ( KOPrefs::instance()->mEVshowChanged ) { |
426 | if(wideScreen ){ | 430 | if(wideScreen ){ |
427 | addTag("p",i18n("<b>Last modified: ") +" </b>" + KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); | 431 | addTag("p",i18n("<b>Last modified: ") +" </b>" + KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); |
428 | }else{ | 432 | }else{ |
429 | addTag("p",i18n("<b>Last modified: ") +" </b>"); | 433 | addTag("p",i18n("<b>Last modified: ") +" </b>"); |
430 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); | 434 | addTag("p", KGlobal::locale()->formatDateTime( event->lastModified(), shortDate )); |
@@ -500,48 +504,52 @@ void KOEventViewer::appendTodo(Todo *event, int mode ) | |||
500 | if (event->hasStartDate()) { | 504 | if (event->hasStartDate()) { |
501 | mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer))); | 505 | mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer))); |
502 | } | 506 | } |
503 | if (event->hasDueDate()) { | 507 | if (event->hasDueDate()) { |
504 | mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); | 508 | mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); |
505 | mMailSubject += i18n(" - " )+event->dtDueStr( true ); | 509 | mMailSubject += i18n(" - " )+event->dtDueStr( true ); |
506 | } | 510 | } |
507 | if (!event->location().isEmpty()) { | 511 | if (!event->location().isEmpty()) { |
508 | addTag("p","<b>"+i18n("Location: ")+"</b>"+ deTag(event->location() ) ); | 512 | addTag("p","<b>"+i18n("Location: ")+"</b>"+ deTag(event->location() ) ); |
509 | mMailSubject += i18n(" at ") + event->location(); | 513 | mMailSubject += i18n(" at ") + event->location(); |
510 | } | 514 | } |
511 | mText.append(i18n("<p><b>Priority:</b> %2</p>") | 515 | mText.append(i18n("<p><b>Priority:</b> %2</p>") |
512 | .arg(QString::number(event->priority()))); | 516 | .arg(QString::number(event->priority()))); |
513 | 517 | ||
514 | if (event->isAlarmEnabled()) { | 518 | if (event->isAlarmEnabled()) { |
515 | Alarm *alarm =event->alarms().first() ; | 519 | Alarm *alarm =event->alarms().first() ; |
516 | QDateTime t = alarm->time(); | 520 | QDateTime t = alarm->time(); |
517 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); | 521 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); |
518 | if ( wideScreen ) { | 522 | if ( wideScreen ) { |
519 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); | 523 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"+ KGlobal::locale()->formatDateTime( t, shortDate )); |
520 | } else { | 524 | } else { |
521 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); | 525 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); |
522 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | 526 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); |
523 | } | 527 | } |
528 | if ( !(event->alarmEnabled() ) ) { | ||
529 | addTag("p", "<em>("+i18n("Enable alarm in resource settings") + ")</em>"); | ||
530 | |||
531 | } | ||
524 | } | 532 | } |
525 | 533 | ||
526 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); | 534 | addTag("p","<b>"+i18n("Access: ") + "</b>" + event->secrecyStr()); |
527 | 535 | ||
528 | formatCategories(event); | 536 | formatCategories(event); |
529 | 537 | ||
530 | formatAttendees(event); | 538 | formatAttendees(event); |
531 | 539 | ||
532 | if ( KOPrefs::instance()->mEVshowCreated ) { | 540 | if ( KOPrefs::instance()->mEVshowCreated ) { |
533 | if(wideScreen ){ | 541 | if(wideScreen ){ |
534 | 542 | ||
535 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 543 | addTag("p",i18n("<b>Created: ") +" </b>"+KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
536 | 544 | ||
537 | } else { | 545 | } else { |
538 | addTag("p",i18n("<b>Created: ") +" </b>"); | 546 | addTag("p",i18n("<b>Created: ") +" </b>"); |
539 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); | 547 | addTag("p", KGlobal::locale()->formatDateTime( event->created(), shortDate )); |
540 | } | 548 | } |
541 | } | 549 | } |
542 | if ( KOPrefs::instance()->mEVshowChanged ) { | 550 | if ( KOPrefs::instance()->mEVshowChanged ) { |
543 | if(wideScreen ){ | 551 | if(wideScreen ){ |
544 | addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); | 552 | addTag("p",i18n("<b>Last modified: ") +" </b>" +KGlobal::locale()->formatDateTime( event->lastModified(), shortDate ) ); |
545 | 553 | ||
546 | } else { | 554 | } else { |
547 | addTag("p",i18n("<b>Last modified: ") +" </b>"); | 555 | addTag("p",i18n("<b>Last modified: ") +" </b>"); |
diff --git a/korganizer/koincidenceeditor.cpp b/korganizer/koincidenceeditor.cpp index 9bc0302..236f6f9 100644 --- a/korganizer/koincidenceeditor.cpp +++ b/korganizer/koincidenceeditor.cpp | |||
@@ -69,48 +69,53 @@ KOIncidenceEditor::KOIncidenceEditor( const QString &caption, | |||
69 | // KOGlobals::fitDialogToScreen( mCategoryDialog ); | 69 | // KOGlobals::fitDialogToScreen( mCategoryDialog ); |
70 | 70 | ||
71 | //connect(mCategoryDialog,SIGNAL(editCategories()),SIGNAL(editCategories())); | 71 | //connect(mCategoryDialog,SIGNAL(editCategories()),SIGNAL(editCategories())); |
72 | 72 | ||
73 | //connect( this, SIGNAL( defaultClicked() ), SLOT( slotLoadTemplate() ) ); | 73 | //connect( this, SIGNAL( defaultClicked() ), SLOT( slotLoadTemplate() ) ); |
74 | // connect( this, SIGNAL( user1Clicked() ), SLOT( slotSaveTemplate() ) ); | 74 | // connect( this, SIGNAL( user1Clicked() ), SLOT( slotSaveTemplate() ) ); |
75 | connect( this, SIGNAL( user1Clicked() ), SLOT( slotShowIncidence() ) ); | 75 | connect( this, SIGNAL( user1Clicked() ), SLOT( slotShowIncidence() ) ); |
76 | } | 76 | } |
77 | 77 | ||
78 | KOIncidenceEditor::~KOIncidenceEditor() | 78 | KOIncidenceEditor::~KOIncidenceEditor() |
79 | { | 79 | { |
80 | //delete mCategoryDialog; | 80 | //delete mCategoryDialog; |
81 | } | 81 | } |
82 | 82 | ||
83 | void KOIncidenceEditor::setupAttendeesTab() | 83 | void KOIncidenceEditor::setupAttendeesTab() |
84 | { | 84 | { |
85 | QFrame *topFrame = addPage(i18n("Attendees")); | 85 | QFrame *topFrame = addPage(i18n("Attendees")); |
86 | 86 | ||
87 | QBoxLayout *topLayout = new QVBoxLayout(topFrame); | 87 | QBoxLayout *topLayout = new QVBoxLayout(topFrame); |
88 | 88 | ||
89 | mDetails = new KOEditorDetails(spacingHint()-2,topFrame); | 89 | mDetails = new KOEditorDetails(spacingHint()-2,topFrame); |
90 | topLayout->addWidget(mDetails); | 90 | topLayout->addWidget(mDetails); |
91 | } | 91 | } |
92 | 92 | ||
93 | void KOIncidenceEditor::alarmWarning() | ||
94 | { | ||
95 | KMessageBox::information( 0, i18n("The alarm for this calendar\nis currently disabled!\nEnable it in resource settings."), i18n("Alarm disabled warning")); | ||
96 | |||
97 | } | ||
93 | 98 | ||
94 | void KOIncidenceEditor::slotApply() | 99 | void KOIncidenceEditor::slotApply() |
95 | { | 100 | { |
96 | processInput( false ); | 101 | processInput( false ); |
97 | } | 102 | } |
98 | void KOIncidenceEditor::accept() | 103 | void KOIncidenceEditor::accept() |
99 | { | 104 | { |
100 | slotOk(); | 105 | slotOk(); |
101 | } | 106 | } |
102 | void KOIncidenceEditor::slotOk() | 107 | void KOIncidenceEditor::slotOk() |
103 | { | 108 | { |
104 | if ( processInput( false ) ) QDialog::accept(); | 109 | if ( processInput( false ) ) QDialog::accept(); |
105 | } | 110 | } |
106 | 111 | ||
107 | void KOIncidenceEditor::updateCategoryConfig() | 112 | void KOIncidenceEditor::updateCategoryConfig() |
108 | { | 113 | { |
109 | qDebug("KOIncidenceEditor::updateCategoryConfig() is dead! "); | 114 | qDebug("KOIncidenceEditor::updateCategoryConfig() is dead! "); |
110 | //mCategoryDialog->updateCategoryConfig(); | 115 | //mCategoryDialog->updateCategoryConfig(); |
111 | } | 116 | } |
112 | 117 | ||
113 | void KOIncidenceEditor::slotCancel() | 118 | void KOIncidenceEditor::slotCancel() |
114 | { | 119 | { |
115 | reject(); | 120 | reject(); |
116 | } | 121 | } |
diff --git a/korganizer/koincidenceeditor.h b/korganizer/koincidenceeditor.h index bfd6cc6..2e4bbf8 100644 --- a/korganizer/koincidenceeditor.h +++ b/korganizer/koincidenceeditor.h | |||
@@ -44,49 +44,50 @@ class KOIncidenceEditor : public KDialogBase | |||
44 | public: | 44 | public: |
45 | /** | 45 | /** |
46 | Construct new IncidenceEditor. | 46 | Construct new IncidenceEditor. |
47 | */ | 47 | */ |
48 | KOIncidenceEditor( const QString &caption, Calendar *calendar, | 48 | KOIncidenceEditor( const QString &caption, Calendar *calendar, |
49 | QWidget *parent ); | 49 | QWidget *parent ); |
50 | virtual ~KOIncidenceEditor(); | 50 | virtual ~KOIncidenceEditor(); |
51 | 51 | ||
52 | /** Initialize editor. This function creates the tab widgets. */ | 52 | /** Initialize editor. This function creates the tab widgets. */ |
53 | virtual void init() = 0; | 53 | virtual void init() = 0; |
54 | void accept(); | 54 | void accept(); |
55 | virtual void setCategories( QString )= 0; | 55 | virtual void setCategories( QString )= 0; |
56 | 56 | ||
57 | virtual void reload() = 0; | 57 | virtual void reload() = 0; |
58 | 58 | ||
59 | public slots: | 59 | public slots: |
60 | void updateCategoryConfig(); | 60 | void updateCategoryConfig(); |
61 | 61 | ||
62 | signals: | 62 | signals: |
63 | void editCategories(); | 63 | void editCategories(); |
64 | void showAgendaView( bool ); | 64 | void showAgendaView( bool ); |
65 | void dialogClose( Incidence * ); | 65 | void dialogClose( Incidence * ); |
66 | void jumpToTime( const QDate & ); | 66 | void jumpToTime( const QDate & ); |
67 | 67 | ||
68 | protected slots: | 68 | protected slots: |
69 | void alarmWarning(); | ||
69 | void slotApply(); | 70 | void slotApply(); |
70 | void slotOk(); | 71 | void slotOk(); |
71 | void slotCancel(); | 72 | void slotCancel(); |
72 | void slotShowIncidence(); | 73 | void slotShowIncidence(); |
73 | 74 | ||
74 | virtual void slotLoadTemplate(); | 75 | virtual void slotLoadTemplate(); |
75 | virtual void slotSaveTemplate(); | 76 | virtual void slotSaveTemplate(); |
76 | 77 | ||
77 | virtual void saveTemplate( const QString & ) = 0; | 78 | virtual void saveTemplate( const QString & ) = 0; |
78 | 79 | ||
79 | protected: | 80 | protected: |
80 | void setupAttendeesTab(); | 81 | void setupAttendeesTab(); |
81 | 82 | ||
82 | void createSaveTemplateDialog( SaveTemplateDialog::IncidenceType ); | 83 | void createSaveTemplateDialog( SaveTemplateDialog::IncidenceType ); |
83 | 84 | ||
84 | QString loadTemplate( Calendar *cal, const QString &type, | 85 | QString loadTemplate( Calendar *cal, const QString &type, |
85 | const QStringList &templates ); | 86 | const QStringList &templates ); |
86 | void saveAsTemplate( Incidence *, const QString &name ); | 87 | void saveAsTemplate( Incidence *, const QString &name ); |
87 | 88 | ||
88 | /** | 89 | /** |
89 | Process user input and create or update event. Returns false if input is invalid. | 90 | Process user input and create or update event. Returns false if input is invalid. |
90 | */ | 91 | */ |
91 | virtual bool processInput( bool emitTime ) { return false; } | 92 | virtual bool processInput( bool emitTime ) { return false; } |
92 | 93 | ||
diff --git a/korganizer/kotodoeditor.cpp b/korganizer/kotodoeditor.cpp index 682f83b..20a35d2 100644 --- a/korganizer/kotodoeditor.cpp +++ b/korganizer/kotodoeditor.cpp | |||
@@ -6,48 +6,49 @@ | |||
6 | This program is free software; you can redistribute it and/or modify | 6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | 7 | it under the terms of the GNU General Public License as published by |
8 | the Free Software Foundation; either version 2 of the License, or | 8 | the Free Software Foundation; either version 2 of the License, or |
9 | (at your option) any later version. | 9 | (at your option) any later version. |
10 | 10 | ||
11 | This program is distributed in the hope that it will be useful, | 11 | This program is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | GNU General Public License for more details. | 14 | GNU General Public License for more details. |
15 | 15 | ||
16 | You should have received a copy of the GNU General Public License | 16 | You should have received a copy of the GNU General Public License |
17 | along with this program; if not, write to the Free Software | 17 | along with this program; if not, write to the Free Software |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 | 19 | ||
20 | As a special exception, permission is given to link this program | 20 | As a special exception, permission is given to link this program |
21 | with any edition of Qt, and distribute the resulting executable, | 21 | with any edition of Qt, and distribute the resulting executable, |
22 | without including the source code for Qt in the source distribution. | 22 | without including the source code for Qt in the source distribution. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <qtooltip.h> | 25 | #include <qtooltip.h> |
26 | #include <qframe.h> | 26 | #include <qframe.h> |
27 | #include <qpixmap.h> | 27 | #include <qpixmap.h> |
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qhbox.h> | 29 | #include <qhbox.h> |
30 | #include <qtimer.h> | ||
30 | #include <qdir.h> | 31 | #include <qdir.h> |
31 | #include <qdatetime.h> | 32 | #include <qdatetime.h> |
32 | #include <qapplication.h> | 33 | #include <qapplication.h> |
33 | #include <qtabwidget.h> | 34 | #include <qtabwidget.h> |
34 | 35 | ||
35 | #include <kiconloader.h> | 36 | #include <kiconloader.h> |
36 | #include <klocale.h> | 37 | #include <klocale.h> |
37 | #include <kfiledialog.h> | 38 | #include <kfiledialog.h> |
38 | #include <kstandarddirs.h> | 39 | #include <kstandarddirs.h> |
39 | #include <kmessagebox.h> | 40 | #include <kmessagebox.h> |
40 | 41 | ||
41 | #include <libkdepim/categoryselectdialog.h> | 42 | #include <libkdepim/categoryselectdialog.h> |
42 | #include <libkcal/calendarlocal.h> | 43 | #include <libkcal/calendarlocal.h> |
43 | #include <libkcal/calendarresources.h> | 44 | #include <libkcal/calendarresources.h> |
44 | #include <libkcal/resourcecalendar.h> | 45 | #include <libkcal/resourcecalendar.h> |
45 | #include <libkcal/icalformat.h> | 46 | #include <libkcal/icalformat.h> |
46 | #include <kresources/resourceselectdialog.h> | 47 | #include <kresources/resourceselectdialog.h> |
47 | #include <libkdepim/kdateedit.h> | 48 | #include <libkdepim/kdateedit.h> |
48 | 49 | ||
49 | #include "koprefs.h" | 50 | #include "koprefs.h" |
50 | #include "kolocationbox.h" | 51 | #include "kolocationbox.h" |
51 | 52 | ||
52 | #include "kotodoeditor.h" | 53 | #include "kotodoeditor.h" |
53 | extern int globalFlagBlockAgenda; | 54 | extern int globalFlagBlockAgenda; |
@@ -238,48 +239,51 @@ bool KOTodoEditor::processInput( bool emitTime ) | |||
238 | 239 | ||
239 | Todo *todo = 0; | 240 | Todo *todo = 0; |
240 | 241 | ||
241 | if (mTodo) todo = mTodo; | 242 | if (mTodo) todo = mTodo; |
242 | else { | 243 | else { |
243 | todo = new Todo; | 244 | todo = new Todo; |
244 | todo->setOrganizer(KOPrefs::instance()->email()); | 245 | todo->setOrganizer(KOPrefs::instance()->email()); |
245 | } | 246 | } |
246 | 247 | ||
247 | writeTodo(todo); | 248 | writeTodo(todo); |
248 | if ( emitTime ) { | 249 | if ( emitTime ) { |
249 | globalFlagBlockAgenda = 1; | 250 | globalFlagBlockAgenda = 1; |
250 | emit showAgendaView( false ); | 251 | emit showAgendaView( false ); |
251 | if ( todo->hasDueDate() ) | 252 | if ( todo->hasDueDate() ) |
252 | emit jumpToTime( todo->dtDue().date() ); | 253 | emit jumpToTime( todo->dtDue().date() ); |
253 | globalFlagBlockAgenda = 2; | 254 | globalFlagBlockAgenda = 2; |
254 | } | 255 | } |
255 | if (mTodo) { | 256 | if (mTodo) { |
256 | todo->setRevision(todo->revision()+1); | 257 | todo->setRevision(todo->revision()+1); |
257 | emit todoChanged(todo); | 258 | emit todoChanged(todo); |
258 | } else { | 259 | } else { |
259 | mCalendar->addTodo(todo); | 260 | mCalendar->addTodo(todo); |
260 | mTodo = todo; | 261 | mTodo = todo; |
261 | emit todoAdded(todo); | 262 | emit todoAdded(todo); |
263 | if ( todo->isAlarmEnabled () && !todo->alarmEnabled () ) { | ||
264 | QTimer::singleShot( 0, this, SLOT ( alarmWarning() ) ); | ||
265 | } | ||
262 | } | 266 | } |
263 | 267 | ||
264 | return true; | 268 | return true; |
265 | } | 269 | } |
266 | 270 | ||
267 | void KOTodoEditor::deleteTodo() | 271 | void KOTodoEditor::deleteTodo() |
268 | { | 272 | { |
269 | if (mTodo) { | 273 | if (mTodo) { |
270 | if (KOPrefs::instance()->mConfirm) { | 274 | if (KOPrefs::instance()->mConfirm) { |
271 | switch (msgItemDelete()) { | 275 | switch (msgItemDelete()) { |
272 | case KMessageBox::Continue: // OK | 276 | case KMessageBox::Continue: // OK |
273 | emit todoToBeDeleted(mTodo); | 277 | emit todoToBeDeleted(mTodo); |
274 | emit dialogClose(mTodo); | 278 | emit dialogClose(mTodo); |
275 | mCalendar->deleteTodo(mTodo); | 279 | mCalendar->deleteTodo(mTodo); |
276 | emit todoDeleted(); | 280 | emit todoDeleted(); |
277 | reject(); | 281 | reject(); |
278 | break; | 282 | break; |
279 | } | 283 | } |
280 | } | 284 | } |
281 | else { | 285 | else { |
282 | emit todoToBeDeleted(mTodo); | 286 | emit todoToBeDeleted(mTodo); |
283 | emit dialogClose(mTodo); | 287 | emit dialogClose(mTodo); |
284 | mCalendar->deleteTodo(mTodo); | 288 | mCalendar->deleteTodo(mTodo); |
285 | emit todoDeleted(); | 289 | emit todoDeleted(); |
diff --git a/libkdepim/ksyncprefsdialog.cpp b/libkdepim/ksyncprefsdialog.cpp index 1f9afcb..b097277 100644 --- a/libkdepim/ksyncprefsdialog.cpp +++ b/libkdepim/ksyncprefsdialog.cpp | |||
@@ -220,51 +220,51 @@ void KSyncPrefsDialog::setupSyncAlgTab() | |||
220 | //++iii; | 220 | //++iii; |
221 | mWriteBackFuture= new QCheckBox( i18n("Write back (calendar) entries for time period only"), topFrame ); | 221 | mWriteBackFuture= new QCheckBox( i18n("Write back (calendar) entries for time period only"), topFrame ); |
222 | //topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1); | 222 | //topLayout->addMultiCellWidget(mWriteBackFuture, iii,iii,0,1); |
223 | //++iii; | 223 | //++iii; |
224 | QHGroupBox* gb3 = new QHGroupBox( i18n("Time period"), topFrame); | 224 | QHGroupBox* gb3 = new QHGroupBox( i18n("Time period"), topFrame); |
225 | connect ( mWriteBackFuture, SIGNAL( toggled ( bool ) ), gb3, SLOT ( setEnabled ( bool ) ) ); | 225 | connect ( mWriteBackFuture, SIGNAL( toggled ( bool ) ), gb3, SLOT ( setEnabled ( bool ) ) ); |
226 | new QLabel( i18n("From ") , gb3 ); | 226 | new QLabel( i18n("From ") , gb3 ); |
227 | mWriteBackPastWeeks= new QSpinBox(1,104, 1, gb3); | 227 | mWriteBackPastWeeks= new QSpinBox(1,104, 1, gb3); |
228 | new QLabel( i18n(" weeks in the past to ") , gb3 ); | 228 | new QLabel( i18n(" weeks in the past to ") , gb3 ); |
229 | mWriteBackFutureWeeks= new QSpinBox(1,104, 1, gb3); | 229 | mWriteBackFutureWeeks= new QSpinBox(1,104, 1, gb3); |
230 | new QLabel( i18n(" weeks in the future ") , gb3 ); | 230 | new QLabel( i18n(" weeks in the future ") , gb3 ); |
231 | //topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1); | 231 | //topLayout->addMultiCellWidget(mWriteBackFutureWeeks, iii,iii,1,1); |
232 | //++iii; | 232 | //++iii; |
233 | gb3->setEnabled( false ); | 233 | gb3->setEnabled( false ); |
234 | connect ( mWriteBackExisting, SIGNAL( toggled ( bool ) ), gb4, SLOT ( setDisabled ( bool ) ) ); | 234 | connect ( mWriteBackExisting, SIGNAL( toggled ( bool ) ), gb4, SLOT ( setDisabled ( bool ) ) ); |
235 | } | 235 | } |
236 | connect ( mWriteBackFile, SIGNAL( toggled ( bool ) ), gb2, SLOT ( setEnabled ( bool ) ) ); | 236 | connect ( mWriteBackFile, SIGNAL( toggled ( bool ) ), gb2, SLOT ( setEnabled ( bool ) ) ); |
237 | 237 | ||
238 | } | 238 | } |
239 | proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame); | 239 | proGr = new QButtonGroup ( 1, Qt::Horizontal, i18n("Profile kind"), topFrame); |
240 | gr = proGr; | 240 | gr = proGr; |
241 | topLayout->addMultiCellWidget(gr, iii,iii,0,1); | 241 | topLayout->addMultiCellWidget(gr, iii,iii,0,1); |
242 | ++iii; | 242 | ++iii; |
243 | mIsLocal = new QRadioButton ( i18n("Local file"), gr ); | 243 | mIsLocal = new QRadioButton ( i18n("Local file"), gr ); |
244 | mIsPi = new QRadioButton ( i18n("Pi-Sync - all resources ( direct Kx/Pi to Kx/Pi sync )"), gr ); | 244 | mIsPi = new QRadioButton ( i18n("Pi-Sync - all calendars ( direct Kx/Pi to Kx/Pi sync )"), gr ); |
245 | connect (mIsPi, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); | 245 | connect (mIsPi, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); |
246 | mIsPiSpecific = new QRadioButton ( i18n("Pi-Sync - selected resources ( direct Kx/Pi to Kx/Pi sync )"), gr ); | 246 | mIsPiSpecific = new QRadioButton ( i18n("Pi-Sync - selected calendars ( direct Kx/Pi to Kx/Pi sync )"), gr ); |
247 | connect (mIsPiSpecific, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); | 247 | connect (mIsPiSpecific, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); |
248 | mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr ); | 248 | mIsNotLocal = new QRadioButton ( i18n("Remote file (w down/upload command)"), gr ); |
249 | connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); | 249 | connect (mIsLocal, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); |
250 | mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr ); | 250 | mIsPhone = new QRadioButton ( i18n("Mobile device (cell phone)"), gr ); |
251 | connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); | 251 | connect (mIsPhone, SIGNAL( toggled(bool)), this, SLOT (kindChanged(bool) ) ); |
252 | 252 | ||
253 | QVGroupBox* gb1 = new QVGroupBox( i18n("Profile kind specific settings"), topFrame); | 253 | QVGroupBox* gb1 = new QVGroupBox( i18n("Profile kind specific settings"), topFrame); |
254 | topLayout->addMultiCellWidget(gb1, iii,iii,0,1); | 254 | topLayout->addMultiCellWidget(gb1, iii,iii,0,1); |
255 | ++iii; | 255 | ++iii; |
256 | 256 | ||
257 | // ****************************************** | 257 | // ****************************************** |
258 | // Profile kind specific settings | 258 | // Profile kind specific settings |
259 | { | 259 | { |
260 | // *** phone ******************************* | 260 | // *** phone ******************************* |
261 | QVGroupBox* topFrame = gb1; | 261 | QVGroupBox* topFrame = gb1; |
262 | phoneWidget = new QVBox( topFrame); | 262 | phoneWidget = new QVBox( topFrame); |
263 | //topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1); | 263 | //topLayout->addMultiCellWidget(phoneWidget, iii,iii,0,1); |
264 | //++iii; | 264 | //++iii; |
265 | mWriteContactToSIM = 0;//new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget ); | 265 | mWriteContactToSIM = 0;//new QCheckBox( i18n("Sync contacts with phone SIM card (If not, sync with phone memory)"), phoneWidget ); |
266 | QHBox* temphb = new QHBox( phoneWidget ); | 266 | QHBox* temphb = new QHBox( phoneWidget ); |
267 | new QLabel( i18n("I/O device: "), temphb ); | 267 | new QLabel( i18n("I/O device: "), temphb ); |
268 | mPhoneDevice = new QLineEdit( temphb); | 268 | mPhoneDevice = new QLineEdit( temphb); |
269 | button = new QPushButton( i18n("Help..."), temphb ); | 269 | button = new QPushButton( i18n("Help..."), temphb ); |
270 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) ); | 270 | connect ( button, SIGNAL( clicked()), this, SLOT ( helpDevice() ) ); |