author | zautrix <zautrix> | 2005-07-02 12:29:31 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-07-02 12:29:31 (UTC) |
commit | 7b7c582bbb9908ec65c778b70baa6b2c2aa457fc (patch) (unidiff) | |
tree | e1e1fb9e039f804d44317b5743ba5aae00fdcc9a | |
parent | 98273ae9af4d39181ace21fe3dfade141e5f8afb (diff) | |
download | kdepimpi-7b7c582bbb9908ec65c778b70baa6b2c2aa457fc.zip kdepimpi-7b7c582bbb9908ec65c778b70baa6b2c2aa457fc.tar.gz kdepimpi-7b7c582bbb9908ec65c778b70baa6b2c2aa457fc.tar.bz2 |
Z 5500 fixes
-rw-r--r-- | bin/kdepim/kaddressbook/germantranslation.txt | 2 | ||||
-rw-r--r-- | kabc/addresseeview.cpp | 26 | ||||
-rw-r--r-- | kaddressbook/addresseeeditorwidget.cpp | 2 | ||||
-rw-r--r-- | korganizer/searchdialog.cpp | 2 |
4 files changed, 18 insertions, 14 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt index c18a241..b2f2704 100644 --- a/bin/kdepim/kaddressbook/germantranslation.txt +++ b/bin/kdepim/kaddressbook/germantranslation.txt | |||
@@ -1,609 +1,609 @@ | |||
1 | { "file","Datei" }, | 1 | { "file","Datei" }, |
2 | { "Choose one file","Wähle eine Datei" }, | 2 | { "Choose one file","Wähle eine Datei" }, |
3 | { "dir","Verzeichnis" }, | 3 | { "dir","Verzeichnis" }, |
4 | { "Choose a directory with may files","Wähle Verzeichnis" }, | 4 | { "Choose a directory with may files","Wähle Verzeichnis" }, |
5 | { "ldap","ldap" }, | 5 | { "ldap","ldap" }, |
6 | { "No description available","Keine Beschreibung verfügbar" }, | 6 | { "No description available","Keine Beschreibung verfügbar" }, |
7 | { "Library files for "%1" not found in paths","Bibliothek für "%1" nicht gefunden" }, | 7 | { "Library files for "%1" not found in paths","Bibliothek für "%1" nicht gefunden" }, |
8 | { "qtopia","qtopia" }, | 8 | { "qtopia","qtopia" }, |
9 | { "Qtopia PIM Addressbook.","Qtopia PIM Adressbuch." }, | 9 | { "Qtopia PIM Addressbook.","Qtopia PIM Adressbuch." }, |
10 | { "vCard","vCard" }, | 10 | { "vCard","vCard" }, |
11 | { "vCard Format","vCard Format" }, | 11 | { "vCard Format","vCard Format" }, |
12 | { "microkabcformat_binary","microkabcformat_binary" }, | 12 | { "microkabcformat_binary","microkabcformat_binary" }, |
13 | { "Binary","Binary" }, | 13 | { "Binary","Binary" }, |
14 | { "No description available.","Keine Beschreibung verfügbar." }, | 14 | { "No description available.","Keine Beschreibung verfügbar." }, |
15 | { "Department","Abteilung" }, | 15 | { "Department","Abteilung" }, |
16 | { "Profession","Beruf" }, | 16 | { "Profession","Beruf" }, |
17 | { "Assistant's Name","Name d.Assistenten" }, | 17 | { "Assistant's Name","Name d.Assistenten" }, |
18 | { "Manager's Name","Name d.Manager's" }, | 18 | { "Manager's Name","Name d.Manager's" }, |
19 | { "Spouse's Name","Name d.Ehegatten" }, | 19 | { "Spouse's Name","Name d.Ehegatten" }, |
20 | { "Office","Büro" }, | 20 | { "Office","Büro" }, |
21 | { "IM Address","IM Adresse" }, | 21 | { "IM Address","IM Adresse" }, |
22 | { "Anniversary","Jahrestag" }, | 22 | { "Anniversary","Jahrestag" }, |
23 | { "Gender","Geschlecht" }, | 23 | { "Gender","Geschlecht" }, |
24 | { "Children","Kinder" }, | 24 | { "Children","Kinder" }, |
25 | { "FreeBusyUrl","FreeBusyUrl" }, | 25 | { "FreeBusyUrl","FreeBusyUrl" }, |
26 | { "ExternalID","ExternalID" }, | 26 | { "ExternalID","ExternalID" }, |
27 | { "Resource loaded: '%1'","Resource geladen: '%1'" }, | 27 | { "Resource loaded: '%1'","Resource geladen: '%1'" }, |
28 | { "Select View","Ansicht wählen" }, | 28 | { "Select View","Ansicht wählen" }, |
29 | { "Modify View...","Ansicht ändern..." }, | 29 | { "Modify View...","Ansicht ändern..." }, |
30 | { "Add View...","Ansicht hinzufügen..." }, | 30 | { "Add View...","Ansicht hinzufügen..." }, |
31 | { "Delete View","Ansicht löschen" }, | 31 | { "Delete View","Ansicht löschen" }, |
32 | { "Refresh View","Ansicht aktualisieren" }, | 32 | { "Refresh View","Ansicht aktualisieren" }, |
33 | { "Edit &Filters...","Bearbeite &Filter..." }, | 33 | { "Edit &Filters...","Bearbeite &Filter..." }, |
34 | { "Select Filter","Filter wählen" }, | 34 | { "Select Filter","Filter wählen" }, |
35 | { "Style:","Stil:" }, | 35 | { "Style:","Stil:" }, |
36 | { "HTML table style.","HTML tabellen stil." }, | 36 | { "HTML table style.","HTML tabellen stil." }, |
37 | { "Default Table View","Standard Tabellen Ansicht" }, | 37 | { "Default Table View","Standard Tabellen Ansicht" }, |
38 | { "Show Extension Bar","Zeige Extension Bar" }, | 38 | { "Show Extension Bar","Zeige Extension Bar" }, |
39 | { "None","Kein" }, | 39 | { "None","Kein" }, |
40 | { "Name...","Name..." }, | 40 | { "Name...","Name..." }, |
41 | { "Role:","Funktion:" }, | 41 | { "Role:","Funktion:" }, |
42 | { "Organization:","Firma:" }, | 42 | { "Organization:","Firma:" }, |
43 | { "Formatted name:","Formatt. Name:" }, | 43 | { "Formatted name:","Formatt. Name:" }, |
44 | { "Edit Phone Numbers...","Bearbeite Telefonnummern..." }, | 44 | { "Edit Phone Numbers...","Bearbeite Telefonnummern..." }, |
45 | { "Categories","Kategorien" }, | 45 | { "Categories","Kategorien" }, |
46 | { "Public","Öffentlich" }, | 46 | { "Public","Öffentlich" }, |
47 | { "Private","Privat" }, | 47 | { "Private","Privat" }, |
48 | { "Confidential","Vertraulich" }, | 48 | { "Confidential","Vertraulich" }, |
49 | { "&General","Allgemein" }, | 49 | { "&General","Allgemein" }, |
50 | { "&Edit Addresses...","B&earbeite Adressen..." }, | 50 | { "&Edit Addresses...","B&earbeite Adressen..." }, |
51 | { "Edit Email Addresses...","Bearbeite E-Mail Adressen..." }, | 51 | { "Edit Email Addresses...","Bearbeite E-Mail Adressen..." }, |
52 | { "Email:","Email:" }, | 52 | { "Email:","Email:" }, |
53 | { "URL:","URL:" }, | 53 | { "URL:","URL:" }, |
54 | { "&IM address:","&IM address:" }, | 54 | { "&IM address:","&IM address:" }, |
55 | { "&Address","&Adresse" }, | 55 | { "&Address","&Adresse" }, |
56 | { "Department:","Abteilung:" }, | 56 | { "Department:","Abteilung:" }, |
57 | { "Office:","Büro:" }, | 57 | { "Office:","Büro:" }, |
58 | { "Profession:","Beruf:" }, | 58 | { "Profession:","Beruf:" }, |
59 | { "Manager's name:","N.d.Manager's:" }, | 59 | { "Manager's name:","N.d.Manager's:" }, |
60 | { "Assistant's name:","N.d.Assistenten:" }, | 60 | { "Assistant's name:","N.d.Assistenten:" }, |
61 | { "Nick name:","Spitzname:" }, | 61 | { "Nick name:","Spitzname:" }, |
62 | { "Spouse's name:","N.d.Ehegatten:" }, | 62 | { "Spouse's name:","N.d.Ehegatten:" }, |
63 | { "Children's names:","N.d.Kinder:" }, | 63 | { "Children's names:","N.d.Kinder:" }, |
64 | { "Birthday:","Geburtstag:" }, | 64 | { "Birthday:","Geburtstag:" }, |
65 | { " Local Time","Ortszeit" }, | 65 | { " Local Time","Ortszeit" }, |
66 | { "Mon","Mo" }, | 66 | { "Mon","Mo" }, |
67 | { "Tue","Di" }, | 67 | { "Tue","Di" }, |
68 | { "Wed","Mi" }, | 68 | { "Wed","Mi" }, |
69 | { "Thu","Do" }, | 69 | { "Thu","Do" }, |
70 | { "Fri","Fr" }, | 70 | { "Fri","Fr" }, |
71 | { "Sat","Sa" }, | 71 | { "Sat","Sa" }, |
72 | { "Sun","So" }, | 72 | { "Sun","So" }, |
73 | { "January","Januar" }, | 73 | { "January","Januar" }, |
74 | { "February","Februar" }, | 74 | { "February","Februar" }, |
75 | { "March","März" }, | 75 | { "March","März" }, |
76 | { "April","April" }, | 76 | { "April","April" }, |
77 | { "May","Mai" }, | 77 | { "May","Mai" }, |
78 | { "June","Juni" }, | 78 | { "June","Juni" }, |
79 | { "July","July" }, | 79 | { "July","July" }, |
80 | { "August","August" }, | 80 | { "August","August" }, |
81 | { "September","September" }, | 81 | { "September","September" }, |
82 | { "October","October" }, | 82 | { "October","October" }, |
83 | { "November","November" }, | 83 | { "November","November" }, |
84 | { "December","Dezember" }, | 84 | { "December","Dezember" }, |
85 | { "tomorrow","Morgen" }, | 85 | { "tomorrow","Morgen" }, |
86 | { "today","Heute" }, | 86 | { "today","Heute" }, |
87 | { "yesterday","Gestern" }, | 87 | { "yesterday","Gestern" }, |
88 | { "Monday","Montag" }, | 88 | { "Monday","Montag" }, |
89 | { "Tuesday","Dienstag" }, | 89 | { "Tuesday","Dienstag" }, |
90 | { "Wednesday","Mittwoch" }, | 90 | { "Wednesday","Mittwoch" }, |
91 | { "Thursday","Donnerstag" }, | 91 | { "Thursday","Donnerstag" }, |
92 | { "Friday","Freitag" }, | 92 | { "Friday","Freitag" }, |
93 | { "Saturday","Samstag" }, | 93 | { "Saturday","Samstag" }, |
94 | { "Sunday","Sonntag" }, | 94 | { "Sunday","Sonntag" }, |
95 | { "Anniversary:","Jahrestag:" }, | 95 | { "Anniversary:","Jahrestag:" }, |
96 | { "Gender:","Geschlecht:" }, | 96 | { "Gender:","Geschlecht:" }, |
97 | { "ALIEN (gender undefined)","ALIEN (Geschlecht unbekannt)" }, | 97 | { "ALIEN (undefined)","ALIEN (undefiniert)" }, |
98 | { "female","weiblich" }, | 98 | { "female","weiblich" }, |
99 | { "male","männlich" }, | 99 | { "male","männlich" }, |
100 | { "&Details","&Details" }, | 100 | { "&Details","&Details" }, |
101 | { "Note:","Notiz:" }, | 101 | { "Note:","Notiz:" }, |
102 | { "&Notes","&Notizen" }, | 102 | { "&Notes","&Notizen" }, |
103 | { "Use geo data","Benutze geo Daten" }, | 103 | { "Use geo data","Benutze geo Daten" }, |
104 | { "Latitude:","Breitengrad:" }, | 104 | { "Latitude:","Breitengrad:" }, |
105 | { "Longitude:","Längengrad:" }, | 105 | { "Longitude:","Längengrad:" }, |
106 | { "Edit Geo Data...","Edit geo Daten..." }, | 106 | { "Edit Geo Data...","Edit geo Daten..." }, |
107 | { "Keys:","Schlüssel:" }, | 107 | { "Keys:","Schlüssel:" }, |
108 | { "Add","Hinzu" }, | 108 | { "Add","Hinzu" }, |
109 | { "Remove","Entf." }, | 109 | { "Remove","Entf." }, |
110 | { "Export","Exportiere" }, | 110 | { "Export","Exportiere" }, |
111 | { "&Misc","Verschiedenes" }, | 111 | { "&Misc","Verschiedenes" }, |
112 | { "Photo","Foto" }, | 112 | { "Photo","Foto" }, |
113 | { "Store as URL","Speichere als URL" }, | 113 | { "Store as URL","Speichere als URL" }, |
114 | { "Logo","Logo" }, | 114 | { "Logo","Logo" }, |
115 | { "&Images","B&ilder" }, | 115 | { "&Images","B&ilder" }, |
116 | { "Home","Privat" }, | 116 | { "Home","Privat" }, |
117 | { "Work","Geschäft" }, | 117 | { "Work","Geschäft" }, |
118 | { "Mobile","Handy" }, | 118 | { "Mobile","Handy" }, |
119 | { "Fax","Fax" }, | 119 | { "Fax","Fax" }, |
120 | { "Contact Editor","Bearbeite Kontakt" }, | 120 | { "Contact Editor","Bearbeite Kontakt" }, |
121 | { "&Mail...","&Mail..." }, | 121 | { "&Mail...","&Mail..." }, |
122 | { "&Print...","Drucken..." }, | 122 | { "&Print...","Drucken..." }, |
123 | { "&Save","&Speichern" }, | 123 | { "&Save","&Speichern" }, |
124 | { "&New Contact...","&Neuer Kontakt..." }, | 124 | { "&New Contact...","&Neuer Kontakt..." }, |
125 | { "Mail &vCard...","Mail &vCard..." }, | 125 | { "Mail &vCard...","Mail &vCard..." }, |
126 | { "Selected to phone","Auswahl zum Telefon" }, | 126 | { "Selected to phone","Auswahl zum Telefon" }, |
127 | { "Beam selected v&Card(s)","Beame ausgewählte v&Card(s)" }, | 127 | { "Beam selected v&Card(s)","Beame ausgewählte v&Card(s)" }, |
128 | { "&Beam personal vCard","Beame persönliche vCard" }, | 128 | { "&Beam personal vCard","Beame persönliche vCard" }, |
129 | { "&Edit Contact...","Bearbeite Kontakt..." }, | 129 | { "&Edit Contact...","Bearbeite Kontakt..." }, |
130 | { "&Exit","B&eenden" }, | 130 | { "&Exit","B&eenden" }, |
131 | { "&Copy","Kopieren" }, | 131 | { "&Copy","Kopieren" }, |
132 | { "Cu&t","Ausschneiden" }, | 132 | { "Cu&t","Ausschneiden" }, |
133 | { "&Paste","Einfügen" }, | 133 | { "&Paste","Einfügen" }, |
134 | { "Select &All","Alles auswählen" }, | 134 | { "Select &All","Alles auswählen" }, |
135 | { "&Undo","Rückgängig machen" }, | 135 | { "&Undo","Rückgängig machen" }, |
136 | { "Re&do","Wiederherstellen" }, | 136 | { "Re&do","Wiederherstellen" }, |
137 | { "&Delete Contact","Lösche Kontakt" }, | 137 | { "&Delete Contact","Lösche Kontakt" }, |
138 | { "Configure &Resources...","Konfiguriere &Resourcen..." }, | 138 | { "Configure &Resources...","Konfiguriere &Resourcen..." }, |
139 | { "&Configure %1...","Konfiguriere %1..." }, | 139 | { "&Configure %1...","Konfiguriere %1..." }, |
140 | { "Configure S&hortcuts...","Konfiguriere S&hortcuts..." }, | 140 | { "Configure S&hortcuts...","Konfiguriere S&hortcuts..." }, |
141 | { "Show Jump Bar","Zeige Jump Bar" }, | 141 | { "Show Jump Bar","Zeige Jump Bar" }, |
142 | { "Show Details","Zeige Details" }, | 142 | { "Show Details","Zeige Details" }, |
143 | { "Beam receive enabled","Beam (IR) Empfang AN" }, | 143 | { "Beam receive enabled","Beam (IR) Empfang AN" }, |
144 | { "Set Who Am I","Setze "wer bin ich"" }, | 144 | { "Set Who Am I","Setze "wer bin ich"" }, |
145 | { "Set Categories for Contacts...","Setze Kategorien für Kontakte..." }, | 145 | { "Set Categories for Contacts...","Setze Kategorien für Kontakte..." }, |
146 | { "Edit Category List...","Editiere Kategorieliste..." }, | 146 | { "Edit Category List...","Editiere Kategorieliste..." }, |
147 | { "Remove "voice"...","Entferne "voice"..." }, | 147 | { "Remove "voice"...","Entferne "voice"..." }, |
148 | { "Import from Outlook...","Importiere aus Outlook..." }, | 148 | { "Import from Outlook...","Importiere aus Outlook..." }, |
149 | { "Licence","Lizenz" }, | 149 | { "Licence","Lizenz" }, |
150 | { "Faq","Fragen + Antworten" }, | 150 | { "Faq","Fragen + Antworten" }, |
151 | { "What's New?","Was ist neu?" }, | 151 | { "What's New?","Was ist neu?" }, |
152 | { "Sync HowTo","Sync Anleitung" }, | 152 | { "Sync HowTo","Sync Anleitung" }, |
153 | { "&About KAddressBook","Über KAdressBuch" }, | 153 | { "&About KAddressBook","Über KAdressBuch" }, |
154 | { "Select Incremental Search Field","Selektiere Such Feld" }, | 154 | { "Select Incremental Search Field","Selektiere Such Feld" }, |
155 | { "Synchronize","Synchronisieren" }, | 155 | { "Synchronize","Synchronisieren" }, |
156 | { "Configure...","Konfigurieren..." }, | 156 | { "Configure...","Konfigurieren..." }, |
157 | { "Enable Pi-Sync","Aktiviere Pi-Sync" }, | 157 | { "Enable Pi-Sync","Aktiviere Pi-Sync" }, |
158 | { "Multiple sync","Multi Sync" }, | 158 | { "Multiple sync","Multi Sync" }, |
159 | { "Import CSV List...","Importiere CSV-Datei..." }, | 159 | { "Import CSV List...","Importiere CSV-Datei..." }, |
160 | { "Export CSV List...","Exportiere CSV-Datei..." }, | 160 | { "Export CSV List...","Exportiere CSV-Datei..." }, |
161 | { "Import KDE 2 Addressbook...","Importiere KDE 2 Adressbuch..." }, | 161 | { "Import KDE 2 Addressbook...","Importiere KDE 2 Adressbuch..." }, |
162 | { "Import vCard...","Importiere vCard..." }, | 162 | { "Import vCard...","Importiere vCard..." }, |
163 | { "Export vCard 3.0...","Exportiere vCard 3.0..." }, | 163 | { "Export vCard 3.0...","Exportiere vCard 3.0..." }, |
164 | { "Import Qtopia...","Importiere Qtopia..." }, | 164 | { "Import Qtopia...","Importiere Qtopia..." }, |
165 | { "Export Qtopia...","Exportiere Qtopia..." }, | 165 | { "Export Qtopia...","Exportiere Qtopia..." }, |
166 | { "Edit Contact","Bearbeite Kontakt" }, | 166 | { "Edit Contact","Bearbeite Kontakt" }, |
167 | { "Ok","Ok" }, | 167 | { "Ok","Ok" }, |
168 | { "Apply","Anwenden" }, | 168 | { "Apply","Anwenden" }, |
169 | { "Cancel","Abbrechen" }, | 169 | { "Cancel","Abbrechen" }, |
170 | { "KAddressbook/Pi","KAdressbuch/Pi" }, | 170 | { "KAddressbook/Pi","KAdressbuch/Pi" }, |
171 | { "No Filter","Kein Filter" }, | 171 | { "No Filter","Kein Filter" }, |
172 | { "Given Name","Vorname" }, | 172 | { "Given Name","Vorname" }, |
173 | { "Family Name","Nachname" }, | 173 | { "Family Name","Nachname" }, |
174 | { "Email Address","E-Mail Adresse" }, | 174 | { "Email Address","E-Mail Adresse" }, |
175 | { "All Fields","Alle Felder" }, | 175 | { "All Fields","Alle Felder" }, |
176 | { "Question","Frage" }, | 176 | { "Question","Frage" }, |
177 | { "After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as "other".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?","After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as "other".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?" }, | 177 | { "After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as "other".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?","After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as "other".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?" }, |
178 | { "No","Nein" }, | 178 | { "No","Nein" }, |
179 | { "Yes","Ja" }, | 179 | { "Yes","Ja" }, |
180 | { "Synchronization Preferences","Einstellungen der Synchronisationsprofile" }, | 180 | { "Synchronization Preferences","Einstellungen der Synchronisationsprofile" }, |
181 | { "Local device name:","Name dieses Gerätes:" }, | 181 | { "Local device name:","Name dieses Gerätes:" }, |
182 | { "New profile","Neues Profil" }, | 182 | { "New profile","Neues Profil" }, |
183 | { "Clone profile","Klone Profil" }, | 183 | { "Clone profile","Klone Profil" }, |
184 | { "Delete profile","Lösche Profil" }, | 184 | { "Delete profile","Lösche Profil" }, |
185 | { "Profile:","Profil:" }, | 185 | { "Profile:","Profil:" }, |
186 | { "Ask for every entry on conflict","Frage bei Konflikten nach"}, | 186 | { "Ask for every entry on conflict","Frage bei Konflikten nach"}, |
187 | { "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, | 187 | { "Take local entry on conflict","Nimm lokalen Eintrag beim Konflikt" }, |
188 | { "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, | 188 | { "Take newest entry on conflict","Nimm neuesten Eintrag beim Konflikt" }, |
189 | { "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" } | 189 | { "Take remote entry on conflict","Nimm fernen Eintrag beim Konflikt" } |
190 | { "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, | 190 | { "Force: Take local entry always","Erzwinge: Nimm immer lokalen Eintrag" }, |
191 | { "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, | 191 | { "Force: Take remote entry always","Erzwinge: Nimm immer fernen Eintrag" }, |
192 | { "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, | 192 | { "Show summary after sync","Zeige Zusammenfassung nach dem Synchronisieren" }, |
193 | { "Write back file","Schreibe Datei zurück" }, | 193 | { "Write back file","Schreibe Datei zurück" }, |
194 | { "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, | 194 | { "Remote file (w down/upload command)","Entfernte Datei (via down/upload Kommando)" }, |
195 | { "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, | 195 | { "Pre sync (download) command:","Bevor Sync (download) Kommando:" }, |
196 | { "Local device name:","Name dieses Gerätes:" }, | 196 | { "Local device name:","Name dieses Gerätes:" }, |
197 | { "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, | 197 | { "Ask for preferences before sync","Frage nach Synchronisationseinstellungen vor dem Syncen" }, |
198 | { "Sync preferences","Synchronisations Einstellungen" }, | 198 | { "Sync preferences","Synchronisations Einstellungen" }, |
199 | { "Profile kind","Profil Art" }, | 199 | { "Profile kind","Profil Art" }, |
200 | { "Local file","Lokale Datei" }, | 200 | { "Local file","Lokale Datei" }, |
201 | { "Local file:","Lokale Datei:" }, | 201 | { "Local file:","Lokale Datei:" }, |
202 | { "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, | 202 | { "Post sync (upload) command:","Nach Sync (upload) Kommando:" }, |
203 | { "Fill in default values for:","Setze Beispiel Werte ein für:" }, | 203 | { "Fill in default values for:","Setze Beispiel Werte ein für:" }, |
204 | { "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, | 204 | { "Hint: Use $PWD$ for placeholder of password!","Hinweis: Benutze $PWD$ als Platzhalter für ein Passwort!" }, |
205 | { "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, | 205 | { "Synchronization Preferences","Einstellungen der Synchronisationsprofile"}, |
206 | { "Device","Gerät:" }, | 206 | { "Device","Gerät:" }, |
207 | { "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, | 207 | { "Sync with file \n...%1\nfrom:\n%2\n","Sync mit Datei \n...%1\nvom:\n%2\n" }, |
208 | { "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" }, | 208 | { "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" }, |
209 | { "Synchronization successful","Synchronisation erfolgreich" }, | 209 | { "Synchronization successful","Synchronisation erfolgreich" }, |
210 | { "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, | 210 | { "Sync cancelled or failed. Nothing synced.","Sync abgebrochen oder fehlgeschlagen. Nichts wurde gesynced." }, |
211 | { "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, | 211 | { "Sync file \n...%1\ndoes not exist!\nNothing synced!\n","Sync Datei \n...%1\nexistiert nicht!\nNichts wurde gesynced!\n" }, |
212 | { "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, | 212 | { "Sync filename(*.ics/*.vcs)","Sync Dateiname(*.ics/*.vcs)" }, |
213 | { "Enter password","Passwort eingeben" }, | 213 | { "Enter password","Passwort eingeben" }, |
214 | { "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, | 214 | { "Do you really want\nto remote sync\nwith profile \n","Wollen Sie wirklich\nmit dem entfernten\nProfil syncen: \n" }, |
215 | { "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, | 215 | { "Copy remote file to local machine...","Kopiere entfernte Datei auf lokalen Rechner..." }, |
216 | { "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" }, | 216 | { "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" }, |
217 | { "Writing back file result: ","Resultat des Dateizurückschreibens: " }, | 217 | { "Writing back file result: ","Resultat des Dateizurückschreibens: " }, |
218 | { "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, | 218 | { "Syncronization sucessfully completed","Synchronisation erfolgreich abgeschlossen" }, |
219 | { "Used %1 Client","Benutzter %1 Client" }, | 219 | { "Used %1 Client","Benutzter %1 Client" }, |
220 | { "No email client installed","Kein Email Klient installiert" }, | 220 | { "No email client installed","Kein Email Klient installiert" }, |
221 | { "Userdefined email client","Benutzerdef. Email Klient" }, | 221 | { "Userdefined email client","Benutzerdef. Email Klient" }, |
222 | { "OM/Pi email client","OM/Pi Email Klient" }, | 222 | { "OM/Pi email client","OM/Pi Email Klient" }, |
223 | { "Include in multiple ","Beziehe in mehrfach " }, | 223 | { "Include in multiple ","Beziehe in mehrfach " }, |
224 | { "calendar ","Kalender " }, | 224 | { "calendar ","Kalender " }, |
225 | { "addressbook ","Adressbuch " }, | 225 | { "addressbook ","Adressbuch " }, |
226 | { "pwmanager","PWmanager" }, | 226 | { "pwmanager","PWmanager" }, |
227 | { " sync"," Sync ein" }, | 227 | { " sync"," Sync ein" }, |
228 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, | 228 | { "Write back synced data","Schreibe gesyncte Daten zurück" }, |
229 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, | 229 | { "-- Write back (on remote) existing entries only","-- Schreibe nur existierende (entfernte) Einträge zurück" }, |
230 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, | 230 | { "-- Write back (calendar) entries in future only","-- Schreibe nur zukünftige Kalender-Einträge zurück" }, |
231 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, | 231 | { "---- Max. weeks in future: ","---- Max. wochen in der Zukunft: " }, |
232 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, | 232 | { "Pi-Sync ( direct Kx/Pi to Kx/Pi sync )","Pi-Sync ( direktes Kx/Pi zu Kx/Pi sync )" }, |
233 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, | 233 | { "Mobile device (cell phone)","Mobiles Gerät (Handy)" }, |
234 | { "Help...","Hilfe..." }, | 234 | { "Help...","Hilfe..." }, |
235 | { "Local file Cal:","Lokale Datei Kal:" }, | 235 | { "Local file Cal:","Lokale Datei Kal:" }, |
236 | { "Local file ABook:","Lokale Datei ABuch:" }, | 236 | { "Local file ABook:","Lokale Datei ABuch:" }, |
237 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, | 237 | { "Local file PWMgr:","Lokale Datei PWMgr:" }, |
238 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, | 238 | { "Addressbook file (*.vcf) is used by KA/Pi","Adressbuch Datei (*.vcf) wird von KA/Pi genutzt" }, |
239 | { "Calendar:","Kalender:" }, | 239 | { "Calendar:","Kalender:" }, |
240 | { "AddressBook:","AdressBuch:" }, | 240 | { "AddressBook:","AdressBuch:" }, |
241 | { "PWManager:","PWManager:" }, | 241 | { "PWManager:","PWManager:" }, |
242 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, | 242 | { "Addressbook file is used by KA/Pi","Adressbuch Datei wird von KA/Pi genutzt" }, |
243 | { "ssh/scp","ssh/scp" }, | 243 | { "ssh/scp","ssh/scp" }, |
244 | { "ftp","ftp" }, | 244 | { "ftp","ftp" }, |
245 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, | 245 | { "Password for remote access: (could be the same for each)","Passwort für entfernten Zugriff: (kann dasselbe sein für alle)" }, |
246 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, | 246 | { "Remote IP address: (could be the same for each)","Entfernte IP Adresse: (kann dasselbe sein für alle)" }, |
247 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, | 247 | { "Remote port number: (should be different for each)","Entfernte Port Nummer: (Sollte für alle unterschiedlich sein)" }, |
248 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, | 248 | { "command for downloading remote file to local device","Kommando zum Download der entfernten Datei zum lokalen Gerät" }, |
249 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, | 249 | { "command for uploading local temp file to remote device","Kommando zum Upload der lokalen temp. Datei zum entfernten Gerät" }, |
250 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, | 250 | { "Insert device where\nphone is connected. E.g.:\n","Füge Device ein, an dem\ndas Handy angeschlossen ist. Z.B.:\n" }, |
251 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, | 251 | { "KDE-Pim sync config","KDE-Pim sync Konfig" }, |
252 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, | 252 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein,z.B.:\n" }, |
253 | { "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" }, | 253 | { "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" }, |
254 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, | 254 | { "Port number (Default: %1)","Port Nummer (Default: %1)" }, |
255 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, | 255 | { "Password to enable\naccess from remote:","Passwort um entfernten\nZugriff zuzulassen:" }, |
256 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, | 256 | { "Automatically start\nat application startup","Starte automatisch\nbeim Programmstart" }, |
257 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, | 257 | { "Automatically sync\nwith KDE-Desktop","Automatischer Sync\nmit dem KDE-Desktop" }, |
258 | { "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, | 258 | { "Enter port for Pi-Sync","Port Nummer für Pi-Sync" }, |
259 | { "Disable Pi-Sync","Schalte Pi-Sync aus" }, | 259 | { "Disable Pi-Sync","Schalte Pi-Sync aus" }, |
260 | { "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen "Multi-Syncen"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, | 260 | { "Do you really want\nto multiple sync\nwith all checked profiles?\nSyncing takes some\ntime - all profiles\nare synced twice!","Wollen Sie wirklich\nmit allen selektierten\nProfilen "Multi-Syncen"?\nDas Syncen dauert einige Zeit -\nalle Profile werden zweimal gesynct!" }, |
261 | { "KDE-Pim Sync","KDE-Pim Sync" }, | 261 | { "KDE-Pim Sync","KDE-Pim Sync" }, |
262 | { "Multiple profiles","Multi-Sync Profile" }, | 262 | { "Multiple profiles","Multi-Sync Profile" }, |
263 | { "Device: ","Gerät: " }, | 263 | { "Device: ","Gerät: " }, |
264 | { "Multiple sync started.","Multi-Sync gestartet." }, | 264 | { "Multiple sync started.","Multi-Sync gestartet." }, |
265 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile selektiert für Multi-Sync" }, | 265 | { "Nothing synced! No profiles defined for multisync!","Nichts gesynct! Keine Profile selektiert für Multi-Sync" }, |
266 | { "KDE-Pim sync config","KDE-Pim Sync Konfig" }, | 266 | { "KDE-Pim sync config","KDE-Pim Sync Konfig" }, |
267 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein, z.B.:\n" }, | 267 | { "Insert kind of connection,e.g.:\n","Füge Art der Verbindung ein, z.B.:\n" }, |
268 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Modell\nautomatisch\erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, | 268 | { "Recommended: Leave empty!\n(Such that model can\nbe auto detected)\nOr insert name of model:\n","Empfohlen: Leer lassen!\n(So dass das Modell\nautomatisch\erkannt\nwerden kann)\nOder füge Model Name ein:\n" }, |
269 | { "KO/Pi config error","KO/Pi Konfig. Fehler" }, | 269 | { "KO/Pi config error","KO/Pi Konfig. Fehler" }, |
270 | { "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, | 270 | { "Local device name undefined!\nPlease define device name!","Name dieses Gerätes undefiniert!\nBitte Namen angeben!" }, |
271 | { "Edit Address Book Filters","Editiere Addressbuch Filter" }, | 271 | { "Edit Address Book Filters","Editiere Addressbuch Filter" }, |
272 | { "&Add...","Hinzufügen..." }, | 272 | { "&Add...","Hinzufügen..." }, |
273 | { "&Edit...","B&earbeiten..." }, | 273 | { "&Edit...","B&earbeiten..." }, |
274 | { "&Remove","Entfe&rne" }, | 274 | { "&Remove","Entfe&rne" }, |
275 | { "Modify View: ","Ansicht ändern: " }, | 275 | { "Modify View: ","Ansicht ändern: " }, |
276 | { "Fields","Felder" }, | 276 | { "Fields","Felder" }, |
277 | { "Select Fields to Display","Wähle anzuzeigende Felder" }, | 277 | { "Select Fields to Display","Wähle anzuzeigende Felder" }, |
278 | { "All","Alles" }, | 278 | { "All","Alles" }, |
279 | { "Frequent","Frequent" }, | 279 | { "Frequent","Frequent" }, |
280 | { "Address","Adresse" }, | 280 | { "Address","Adresse" }, |
281 | { "Email","E-Mail" }, | 281 | { "Email","E-Mail" }, |
282 | { "Personal","Persönl." }, | 282 | { "Personal","Persönl." }, |
283 | { "Organization","Organisation" }, | 283 | { "Organization","Organisation" }, |
284 | { "Custom","Benutzerdefiniert" }, | 284 | { "Custom","Benutzerdefiniert" }, |
285 | { "&Selected\nfields:","&Selektierte\nFelder:" }, | 285 | { "&Selected\nfields:","&Selektierte\nFelder:" }, |
286 | { "Formatted Name","Format. Name" }, | 286 | { "Formatted Name","Format. Name" }, |
287 | { "Additional Names","Mittelname" }, | 287 | { "Additional Names","Mittelname" }, |
288 | { "Honorific Prefixes","Namensprefix" }, | 288 | { "Honorific Prefixes","Namensprefix" }, |
289 | { "Honorific Suffixes","Namenssuffix" }, | 289 | { "Honorific Suffixes","Namenssuffix" }, |
290 | { "Nick Name","Spitzname" }, | 290 | { "Nick Name","Spitzname" }, |
291 | { "Birthday","Geburtstag" }, | 291 | { "Birthday","Geburtstag" }, |
292 | { "Home Address Street","Privat Adresse Strasse" }, | 292 | { "Home Address Street","Privat Adresse Strasse" }, |
293 | { "Home Address Locality","Privat Adresse Stadt" }, | 293 | { "Home Address Locality","Privat Adresse Stadt" }, |
294 | { "Home Address Region","Privat Adresse Bundesland" }, | 294 | { "Home Address Region","Privat Adresse Bundesland" }, |
295 | { "Home Address Postal Code","Privat Adresse PLZ" }, | 295 | { "Home Address Postal Code","Privat Adresse PLZ" }, |
296 | { "Home Address Country","Privat Adresse Land" }, | 296 | { "Home Address Country","Privat Adresse Land" }, |
297 | { "Home Address Label","Privat Adresse Label" }, | 297 | { "Home Address Label","Privat Adresse Label" }, |
298 | { "Business Address Street","Büro Adresse Strasse" }, | 298 | { "Business Address Street","Büro Adresse Strasse" }, |
299 | { "Business Address Locality","Büro Adresse Stadt" }, | 299 | { "Business Address Locality","Büro Adresse Stadt" }, |
300 | { "Business Address Region","Büro Adresse Bundesland" }, | 300 | { "Business Address Region","Büro Adresse Bundesland" }, |
301 | { "Business Address Postal Code","Büro Adresse PLZ" }, | 301 | { "Business Address Postal Code","Büro Adresse PLZ" }, |
302 | { "Business Address Country","Büro Adresse Land" }, | 302 | { "Business Address Country","Büro Adresse Land" }, |
303 | { "Business Address Label","Büro Adresse Label" }, | 303 | { "Business Address Label","Büro Adresse Label" }, |
304 | { "Home Phone","Privat Telefon" }, | 304 | { "Home Phone","Privat Telefon" }, |
305 | { "Business Phone","Büro Telefon" }, | 305 | { "Business Phone","Büro Telefon" }, |
306 | { "Mobile Phone","Handy" }, | 306 | { "Mobile Phone","Handy" }, |
307 | { "Home Fax","Privat Fax" }, | 307 | { "Home Fax","Privat Fax" }, |
308 | { "Business Fax","Büro Fax" }, | 308 | { "Business Fax","Büro Fax" }, |
309 | { "Car Phone","Autotelefon" }, | 309 | { "Car Phone","Autotelefon" }, |
310 | { "ISDN","ISDN" }, | 310 | { "ISDN","ISDN" }, |
311 | { "Pager","Pager" }, | 311 | { "Pager","Pager" }, |
312 | { "Mail Client","Mail Klient" }, | 312 | { "Mail Client","Mail Klient" }, |
313 | { "Title","Titel" }, | 313 | { "Title","Titel" }, |
314 | { "Role","Rolle" }, | 314 | { "Role","Rolle" }, |
315 | { "Note","Notiz" }, | 315 | { "Note","Notiz" }, |
316 | { "URL","URL" }, | 316 | { "URL","URL" }, |
317 | { "Resource","Resource" }, | 317 | { "Resource","Resource" }, |
318 | { "SIP","SIP" }, | 318 | { "SIP","SIP" }, |
319 | { "Default Filter","Default Filter" }, | 319 | { "Default Filter","Default Filter" }, |
320 | { "The default filter will be activated whenever this view is displayed. This feature allows you to configure views that only interact with certain types of information based on the filter. Once the view is activated, the filter can be changed at anytime.","#The default filter will be activated whenever this view is displayed. This feature allows you to configure views that only interact with certain types of information based on the filter. Once the view is activated, the filter can be changed at anytime." }, | 320 | { "The default filter will be activated whenever this view is displayed. This feature allows you to configure views that only interact with certain types of information based on the filter. Once the view is activated, the filter can be changed at anytime.","#The default filter will be activated whenever this view is displayed. This feature allows you to configure views that only interact with certain types of information based on the filter. Once the view is activated, the filter can be changed at anytime." }, |
321 | { "No default filter","Kein default Filter" }, | 321 | { "No default filter","Kein default Filter" }, |
322 | { "Use last active filter","Nutze letzen aktiven Filter" }, | 322 | { "Use last active filter","Nutze letzen aktiven Filter" }, |
323 | { "Use filter:","Nutze Filter:" }, | 323 | { "Use filter:","Nutze Filter:" }, |
324 | { "Look & Feel","Look & Feel" }, | 324 | { "Look & Feel","Look & Feel" }, |
325 | { "Row Separator","Reihen Separator" }, | 325 | { "Row Separator","Reihen Separator" }, |
326 | { "Alternating backgrounds","Abwechselnder Hintergrund" }, | 326 | { "Alternating backgrounds","Abwechselnder Hintergrund" }, |
327 | { "Single line","Einzelne Zeile" }, | 327 | { "Single line","Einzelne Zeile" }, |
328 | { "Enable background image:","Hintergrundbild:" }, | 328 | { "Enable background image:","Hintergrundbild:" }, |
329 | { "Enable contact tooltips","Contact Tooltips" }, | 329 | { "Enable contact tooltips","Contact Tooltips" }, |
330 | { "&Enable custom Colors","Benutzerdef. Farben" }, | 330 | { "&Enable custom Colors","Benutzerdef. Farben" }, |
331 | { "&Colors","Farben" }, | 331 | { "&Colors","Farben" }, |
332 | { "If custom colors are enabled, you may choose the colors for the view below. Otherwise colors from your current KDE color scheme are used.","#If custom colors are enabled, you may choose the colors for the view below. Otherwise colors from your current KDE color scheme are used." }, | 332 | { "If custom colors are enabled, you may choose the colors for the view below. Otherwise colors from your current KDE color scheme are used.","#If custom colors are enabled, you may choose the colors for the view below. Otherwise colors from your current KDE color scheme are used." }, |
333 | { "Double click or press RETURN on a item to select a color for the related strings in the view.","#Double click or press RETURN on a item to select a color for the related strings in the view." }, | 333 | { "Double click or press RETURN on a item to select a color for the related strings in the view.","#Double click or press RETURN on a item to select a color for the related strings in the view." }, |
334 | { "&Enable custom fonts","B&enutzerdefinierte Schriften" }, | 334 | { "&Enable custom fonts","B&enutzerdefinierte Schriften" }, |
335 | { "&Text font:","Textschriftart:" }, | 335 | { "&Text font:","Textschriftart:" }, |
336 | { "&Header font:","Titelschriftart:" }, | 336 | { "&Header font:","Titelschriftart:" }, |
337 | { "If custom fonts are enabled, you may choose which fonts to use for this view below. Otherwise the default KDE font will be used, in bold style for the header and normal style for the data.","#If custom fonts are enabled, you may choose which fonts to use for this view below. Otherwise the default KDE font will be used, in bold style for the header and normal style for the data." }, | 337 | { "If custom fonts are enabled, you may choose which fonts to use for this view below. Otherwise the default KDE font will be used, in bold style for the header and normal style for the data.","#If custom fonts are enabled, you may choose which fonts to use for this view below. Otherwise the default KDE font will be used, in bold style for the header and normal style for the data." }, |
338 | { "&Fonts","Schri&ften" }, | 338 | { "&Fonts","Schri&ften" }, |
339 | { "Background Color","Hintergrundfarbe" }, | 339 | { "Background Color","Hintergrundfarbe" }, |
340 | { "Text Color","Textfarbe" }, | 340 | { "Text Color","Textfarbe" }, |
341 | { "Header Background Color","Titel Hintergrundfarbe" }, | 341 | { "Header Background Color","Titel Hintergrundfarbe" }, |
342 | { "Header Text Color","Titel Farbe" }, | 342 | { "Header Text Color","Titel Farbe" }, |
343 | { "Highlight Color","Auswahlfarbe" }, | 343 | { "Highlight Color","Auswahlfarbe" }, |
344 | { "Highlighted Text Color","Auswahltextfarbe" }, | 344 | { "Highlighted Text Color","Auswahltextfarbe" }, |
345 | { "Alternating Background Color","Abwechselnder Hintergrundfarbe" }, | 345 | { "Alternating Background Color","Abwechselnder Hintergrundfarbe" }, |
346 | { "Postal","Post" }, | 346 | { "Postal","Post" }, |
347 | { "Dr.","Dr." }, | 347 | { "Dr.","Dr." }, |
348 | { "Miss","Frl." }, | 348 | { "Miss","Frl." }, |
349 | { "Mr.","Herr" }, | 349 | { "Mr.","Herr" }, |
350 | { "Mrs.","Frau" }, | 350 | { "Mrs.","Frau" }, |
351 | { "Ms.","Fr." }, | 351 | { "Ms.","Fr." }, |
352 | { "Prof.","Prof." }, | 352 | { "Prof.","Prof." }, |
353 | { "I","I" }, | 353 | { "I","I" }, |
354 | { "II","II" }, | 354 | { "II","II" }, |
355 | { "III","III" }, | 355 | { "III","III" }, |
356 | { "Jr.","Jr." }, | 356 | { "Jr.","Jr." }, |
357 | { "Sr.","Sr." }, | 357 | { "Sr.","Sr." }, |
358 | { "Name:","Name:" }, | 358 | { "Name:","Name:" }, |
359 | { "Documents","Dokumente" }, | 359 | { "Documents","Dokumente" }, |
360 | { "Files","Dateien" }, | 360 | { "Files","Dateien" }, |
361 | { "All Files","Alle Dateien" }, | 361 | { "All Files","Alle Dateien" }, |
362 | { "Name","Name" }, | 362 | { "Name","Name" }, |
363 | { "Size","Größe" }, | 363 | { "Size","Größe" }, |
364 | { "Date","Datum" }, | 364 | { "Date","Datum" }, |
365 | { "Mime Type","Mime Typ" }, | 365 | { "Mime Type","Mime Typ" }, |
366 | { "Geo Data Input","Geo Dateneingabe" }, | 366 | { "Geo Data Input","Geo Dateneingabe" }, |
367 | { "Sexagesimal","Sexagesimal" }, | 367 | { "Sexagesimal","Sexagesimal" }, |
368 | { "North","Nord" }, | 368 | { "North","Nord" }, |
369 | { "South","Süd" }, | 369 | { "South","Süd" }, |
370 | { "East","Ost" }, | 370 | { "East","Ost" }, |
371 | { "West","West" }, | 371 | { "West","West" }, |
372 | { "Undefined","Unbestimmt" }, | 372 | { "Undefined","Unbestimmt" }, |
373 | { "Edit Address","Bearbeite Adresse" }, | 373 | { "Edit Address","Bearbeite Adresse" }, |
374 | { "Street:","Strasse:" }, | 374 | { "Street:","Strasse:" }, |
375 | { "Post office box:","Postfach:" }, | 375 | { "Post office box:","Postfach:" }, |
376 | { "Locality:","Stadt:" }, | 376 | { "Locality:","Stadt:" }, |
377 | { "Region:","Region:" }, | 377 | { "Region:","Region:" }, |
378 | { "Postal code:","PLZ:" }, | 378 | { "Postal code:","PLZ:" }, |
379 | { "Country:","Staat:" }, | 379 | { "Country:","Staat:" }, |
380 | { "This is the preferred address","Dies ist die bevorzugte Adresse" }, | 380 | { "This is the preferred address","Dies ist die bevorzugte Adresse" }, |
381 | { "New...","Neu..." }, | 381 | { "New...","Neu..." }, |
382 | { "Change Type","Ändere Art" }, | 382 | { "Change Type","Ändere Art" }, |
383 | { "Edit Address Type","Ändere Address Art" }, | 383 | { "Edit Address Type","Ändere Address Art" }, |
384 | { "Address Types","Address Art" }, | 384 | { "Address Types","Address Art" }, |
385 | { "Domestic","Inland" }, | 385 | { "Domestic","Inland" }, |
386 | { "International","International" }, | 386 | { "International","International" }, |
387 | { "Parcel","Paket" }, | 387 | { "Parcel","Paket" }, |
388 | { "Edit Contact Name","Ändere Kontakt Name" }, | 388 | { "Edit Contact Name","Ändere Kontakt Name" }, |
389 | { "Honorific prefixes:","Namensprefixes:" }, | 389 | { "Honorific prefixes:","Namensprefixes:" }, |
390 | { "Given name:","Vorname:" }, | 390 | { "Given name:","Vorname:" }, |
391 | { "Additional names:","Mittelnamen:" }, | 391 | { "Additional names:","Mittelnamen:" }, |
392 | { "Family names:","Nachname:" }, | 392 | { "Family names:","Nachname:" }, |
393 | { "Honorific suffixes:","Namenssuffixe:" }, | 393 | { "Honorific suffixes:","Namenssuffixe:" }, |
394 | { "Parse name automatically","Setze Namen automatisch" }, | 394 | { "Parse name automatically","Setze Namen automatisch" }, |
395 | { "Edit Phone Numbers","Bearbeite Telefonnummern" }, | 395 | { "Edit Phone Numbers","Bearbeite Telefonnummern" }, |
396 | { "Number","Nummer" }, | 396 | { "Number","Nummer" }, |
397 | { "Type","Typ" }, | 397 | { "Type","Typ" }, |
398 | { "Edit Phone Number","Bearbeite Telefonnummer" }, | 398 | { "Edit Phone Number","Bearbeite Telefonnummer" }, |
399 | { "Number:","Nummer:" }, | 399 | { "Number:","Nummer:" }, |
400 | { "This is the preferred phone number","Dies ist die bevorzugte Telefonnummer" }, | 400 | { "This is the preferred phone number","Dies ist die bevorzugte Telefonnummer" }, |
401 | { "Types","Typen" }, | 401 | { "Types","Typen" }, |
402 | { "Messenger","Messenger" }, | 402 | { "Messenger","Messenger" }, |
403 | { "Other","Anderes" }, | 403 | { "Other","Anderes" }, |
404 | { "Video","Video" }, | 404 | { "Video","Video" }, |
405 | { "Mailbox","Mailbox" }, | 405 | { "Mailbox","Mailbox" }, |
406 | { "Modem","Modem" }, | 406 | { "Modem","Modem" }, |
407 | { "Car","Auto" }, | 407 | { "Car","Auto" }, |
408 | { "PCS","PCS" }, | 408 | { "PCS","PCS" }, |
409 | { "Category","Kategorie" }, | 409 | { "Category","Kategorie" }, |
410 | { "Select Categories","Wähle Kategorien" }, | 410 | { "Select Categories","Wähle Kategorien" }, |
411 | { " &Deselect All "," &Deselektiere alle " }, | 411 | { " &Deselect All "," &Deselektiere alle " }, |
412 | { " &Edit Categories "," B&earbeite Kategorien " }, | 412 | { " &Edit Categories "," B&earbeite Kategorien " }, |
413 | { "&OK","&OK" }, | 413 | { "&OK","&OK" }, |
414 | { "&Cancel","Abbre&chen" }, | 414 | { "&Cancel","Abbre&chen" }, |
415 | { "Configure","Konfiguriere" }, | 415 | { "Configure","Konfiguriere" }, |
416 | { "Default","Voreinstellungen" }, | 416 | { "Default","Voreinstellungen" }, |
417 | { "Addressbook","Adressbuch" }, | 417 | { "Addressbook","Adressbuch" }, |
418 | { "Details view font","Schriftart Detailansicht" }, | 418 | { "Details view font","Schriftart Detailansicht" }, |
419 | { "phone:123","phone:123" }, | 419 | { "phone:123","phone:123" }, |
420 | { "Search only after <return> key pressed","Suche nur nach <return> Taste" }, | 420 | { "Search only after <return> key pressed","Suche nur nach <return> Taste" }, |
421 | { "Show edit dialog on single click","Zeige Edit Dialog bei Einzelklick" }, | 421 | { "Show edit dialog on single click","Zeige Edit Dialog bei Einzelklick" }, |
422 | { "Automatic name parsing for new contacts","Automa. Name Parsen für neue Kontakte" }, | 422 | { "Automatic name parsing for new contacts","Automa. Name Parsen für neue Kontakte" }, |
423 | { "Display List and Details at once (restart)","Zeige Liste und Details zusammen(neustart)" }, | 423 | { "Display List and Details at once (restart)","Zeige Liste und Details zusammen(neustart)" }, |
424 | { "Show exit confirmation","Vor dem Beenden nachfragen" }, | 424 | { "Show exit confirmation","Vor dem Beenden nachfragen" }, |
425 | { "General","Allgemein" }, | 425 | { "General","Allgemein" }, |
426 | { "Extensions (restart)","Extensions (restart)" }, | 426 | { "Extensions (restart)","Extensions (restart)" }, |
427 | { "Description","Beschreibungen" }, | 427 | { "Description","Beschreibungen" }, |
428 | { "Extensions","Extensions" }, | 428 | { "Extensions","Extensions" }, |
429 | { "Prefixes","Prefixe" }, | 429 | { "Prefixes","Prefixe" }, |
430 | { "Inclusions","Inclusions" }, | 430 | { "Inclusions","Inclusions" }, |
431 | { "Suffixes","Suffixe" }, | 431 | { "Suffixes","Suffixe" }, |
432 | { "Default formatted name:","Default format. Name:" }, | 432 | { "Default formatted name:","Default format. Name:" }, |
433 | { "Empty","Leer" }, | 433 | { "Empty","Leer" }, |
434 | { "Simple Name","Einfacher Name" }, | 434 | { "Simple Name","Einfacher Name" }, |
435 | { "Full Name","Voller Name" }, | 435 | { "Full Name","Voller Name" }, |
436 | { "Reverse Name","Namen umdrehen" }, | 436 | { "Reverse Name","Namen umdrehen" }, |
437 | { "Contact","Kontakt" }, | 437 | { "Contact","Kontakt" }, |
438 | { "Global","Allgemein" }, | 438 | { "Global","Allgemein" }, |
439 | { "Phone","Telefon" }, | 439 | { "Phone","Telefon" }, |
440 | { "SMS","SMS" }, | 440 | { "SMS","SMS" }, |
441 | { "Language:(needs restart)","Sprache:(Neustart)" }, | 441 | { "Language:(needs restart)","Sprache:(Neustart)" }, |
442 | { "English","English" }, | 442 | { "English","English" }, |
443 | { "German","Deutsch" }, | 443 | { "German","Deutsch" }, |
444 | { "French","Französisch" }, | 444 | { "French","Französisch" }, |
445 | { "Italian","Italienisch" }, | 445 | { "Italian","Italienisch" }, |
446 | { "User defined (usertranslation.txt)","Benutzerdef. (usertranslation.txt)" }, | 446 | { "User defined (usertranslation.txt)","Benutzerdef. (usertranslation.txt)" }, |
447 | { "Time Format(nr):","Zeit Format(nr):" }, | 447 | { "Time Format(nr):","Zeit Format(nr):" }, |
448 | { "24:00","24:00" }, | 448 | { "24:00","24:00" }, |
449 | { "12:00am","12:00am" }, | 449 | { "12:00am","12:00am" }, |
450 | { "Week starts on Sunday","Woche beginnt Sonntags" }, | 450 | { "Week starts on Sunday","Woche beginnt Sonntags" }, |
451 | { "Locale","Locale" }, | 451 | { "Locale","Locale" }, |
452 | { "Date Format:","Datums Format:" }, | 452 | { "Date Format:","Datums Format:" }, |
453 | { "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, | 453 | { "24.03.2004 (%d.%m.%Y|%A %d %B %Y)","24.03.2004 (%d.%m.%Y|%A %d %B %Y)" }, |
454 | { "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, | 454 | { "03.24.2004 (%m.%d.%Y|%A %B %d %Y)","03.24.2004 (%m.%d.%Y|%A %B %d %Y)" }, |
455 | { "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, | 455 | { "2004-03-24 (%Y-%m-%d|%A %Y %B %d)","2004-03-24 (%Y-%m-%d|%A %Y %B %d)" }, |
456 | { "User defined","Benutzerdefiniert" }, | 456 | { "User defined","Benutzerdefiniert" }, |
457 | { "User long date:","Format langes Datum:" }, | 457 | { "User long date:","Format langes Datum:" }, |
458 | { "User short date:","Format kurzes Datum:" }, | 458 | { "User short date:","Format kurzes Datum:" }, |
459 | { "Daylight start:","Sommerzeit Start:" }, | 459 | { "Daylight start:","Sommerzeit Start:" }, |
460 | { "Daylight end:","Sommerzeit Ende:" }, | 460 | { "Daylight end:","Sommerzeit Ende:" }, |
461 | { "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, | 461 | { "Actual start and end is the\nsunday before this date.","Tatsächlicher Beginn/Ende ist der\nSonntag vor diesem Datum!" }, |
462 | { "Monday 19 April 2004: %A %d %B %Y","Monday 19 April 2004: %A %d %B %Y" }, | 462 | { "Monday 19 April 2004: %A %d %B %Y","Monday 19 April 2004: %A %d %B %Y" }, |
463 | { "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, | 463 | { "Mon 19.04.04: %a %d.%m.%y","Mon 19.04.04: %a %d.%m.%y" }, |
464 | { "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, | 464 | { "Mon, 19.Apr.04: %a, %d.%b.%y","Mon, 19.Apr.04: %a, %d.%b.%y" }, |
465 | { "Date Format","Datums Format" }, | 465 | { "Date Format","Datums Format" }, |
466 | { "Timezone:","Zeitzone:" }, | 466 | { "Timezone:","Zeitzone:" }, |
467 | { "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, | 467 | { "The year in the date is ignored.","Das Jahr vom Datum wird ignoriert." }, |
468 | { "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, | 468 | { "Timezone has daylight saving","Zeitzone hat Sommerzeit" }, |
469 | { "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, | 469 | { "Add 30 min to selected Timezone","Addiere 30 min zur Zeitzone" }, |
470 | { "Used Mail Client","Benutzter Mail Client" }, | 470 | { "Used Mail Client","Benutzter Mail Client" }, |
471 | { "Channel:","Channel:" }, | 471 | { "Channel:","Channel:" }, |
472 | { "Message:","Message:" }, | 472 | { "Message:","Message:" }, |
473 | { "Parameters:","Parameter:" }, | 473 | { "Parameters:","Parameter:" }, |
474 | { "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, | 474 | { "HINT: Delimiter=; Name=%1,Email=%2","Hinweis: Begrenzer=; Name=%1,Email=%2" }, |
475 | { "extra Message:","extra Message:" }, | 475 | { "extra Message:","extra Message:" }, |
476 | { "extra Parameters:","extra Parameter:" }, | 476 | { "extra Parameters:","extra Parameter:" }, |
477 | { "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, | 477 | { "HINT: Emails=%1,Attachments=%2","Hinweis: Emails=%1,Attachments=%2" }, |
478 | { "External Apps.","Externe Appl." }, | 478 | { "External Apps.","Externe Appl." }, |
479 | { "Used %1 Client","Benutzer %1 Client" }, | 479 | { "Used %1 Client","Benutzer %1 Client" }, |
480 | { "No email client installed","Keine Email Client installiert" }, | 480 | { "No email client installed","Keine Email Client installiert" }, |
481 | { "Userdefined email client","Benutzerdef. Email Client" }, | 481 | { "Userdefined email client","Benutzerdef. Email Client" }, |
482 | { "OM/Pi email client","OM/Pi Email Client" }, | 482 | { "OM/Pi email client","OM/Pi Email Client" }, |
483 | { "Close KA/Pi?","Schließe KA/Pi?" }, | 483 | { "Close KA/Pi?","Schließe KA/Pi?" }, |
484 | { "\nChanges will be saved!","\nÄnderungen werden gespeichert!" }, | 484 | { "\nChanges will be saved!","\nÄnderungen werden gespeichert!" }, |
485 | { "Yes!","Ja!" }, | 485 | { "Yes!","Ja!" }, |
486 | { "There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. ","#There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. " }, | 486 | { "There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. ","#There was an error while attempting to save\n the address book. Please check that some \nother application is not using it. " }, |
487 | { "Saving addressbook ... ","Speichere Adressbuch ... " }, | 487 | { "Saving addressbook ... ","Speichere Adressbuch ... " }, |
488 | { "Addressbook saved!","Adressbuch gespeichert!" }, | 488 | { "Addressbook saved!","Adressbuch gespeichert!" }, |
489 | { "Default Table View","Default Tabellenansicht" }, | 489 | { "Default Table View","Default Tabellenansicht" }, |
490 | { "Merge and Remove","Zusammenfügen/entfernen" }, | 490 | { "Merge and Remove","Zusammenfügen/entfernen" }, |
491 | { "Merge","Zusammenfügen" }, | 491 | { "Merge","Zusammenfügen" }, |
492 | { "Merge Contacts Editor","Contact-Zusammenfüge-Editor" }, | 492 | { "Merge Contacts Editor","Contact-Zusammenfüge-Editor" }, |
493 | { "New List...","Neue Liste..." }, | 493 | { "New List...","Neue Liste..." }, |
494 | { "Rename List...","Ändere Namen..." }, | 494 | { "Rename List...","Ändere Namen..." }, |
495 | { "Remove List","Lösche Liste" }, | 495 | { "Remove List","Lösche Liste" }, |
496 | { "Add Contact","Kontakt hinzu" }, | 496 | { "Add Contact","Kontakt hinzu" }, |
497 | { "Change Email...","Ändere Email..." }, | 497 | { "Change Email...","Ändere Email..." }, |
498 | { "Remove Contact","Entferne Kontakt" }, | 498 | { "Remove Contact","Entferne Kontakt" }, |
499 | { "Use Preferred","Nutze Preferred" }, | 499 | { "Use Preferred","Nutze Preferred" }, |
500 | { "Distribution List Editor","Distribution List Editor" }, | 500 | { "Distribution List Editor","Distribution List Editor" }, |
501 | { "Choose which contacts to export","Wähle Kontakte zum Exportieren" }, | 501 | { "Choose which contacts to export","Wähle Kontakte zum Exportieren" }, |
502 | { "Which contacts do you want to export?","Welche Kontakte sollen exportiert werden?" }, | 502 | { "Which contacts do you want to export?","Welche Kontakte sollen exportiert werden?" }, |
503 | { "Contact Selection","Kontaktauswahl" }, | 503 | { "Contact Selection","Kontaktauswahl" }, |
504 | { "&All","&Alle" }, | 504 | { "&All","&Alle" }, |
505 | { "Export the entire address book","Exportiere das komplette Addressbuch" }, | 505 | { "Export the entire address book","Exportiere das komplette Addressbuch" }, |
506 | { "&Selected","Au&sgewählte" }, | 506 | { "&Selected","Au&sgewählte" }, |
507 | { "Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected.","###Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected." }, | 507 | { "Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected.","###Only export contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected." }, |
508 | { "By matching &filter","Zutreffender &Filter" }, | 508 | { "By matching &filter","Zutreffender &Filter" }, |
509 | { "Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters","###Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters" }, | 509 | { "Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters","###Only export contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters" }, |
510 | { "By Cate&gories","Kategorien" }, | 510 | { "By Cate&gories","Kategorien" }, |
511 | { "Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories.","###Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories." }, | 511 | { "Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories.","###Only export contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories." }, |
512 | { "Select a filter to decide which contacts to export.","Wähle Filter zum Export aus." }, | 512 | { "Select a filter to decide which contacts to export.","Wähle Filter zum Export aus." }, |
513 | { "Check the categories whose members you want to export.","Wähle die Kategorien zum Export aus." }, | 513 | { "Check the categories whose members you want to export.","Wähle die Kategorien zum Export aus." }, |
514 | { "Sorting","Sortieren" }, | 514 | { "Sorting","Sortieren" }, |
515 | { "Criterion:","Merkmal:" }, | 515 | { "Criterion:","Merkmal:" }, |
516 | { "Order:","Reihenfolge:" }, | 516 | { "Order:","Reihenfolge:" }, |
517 | { "Ascending","Aufsteigend" }, | 517 | { "Ascending","Aufsteigend" }, |
518 | { "Descending","Absteigend" }, | 518 | { "Descending","Absteigend" }, |
519 | { "Save file","Datei speichern" }, | 519 | { "Save file","Datei speichern" }, |
520 | { "Error","Fehler" }, | 520 | { "Error","Fehler" }, |
521 | { "Unable to export contacts.","Exportieren der Kontakte geht nicht." }, | 521 | { "Unable to export contacts.","Exportieren der Kontakte geht nicht." }, |
522 | { "\nNo unsaved changes detected!\nNothing will be saved!","\nKeine ungespeicherten\nÄnderungen erkannt!\nNichts wird gespeichert!" }, | 522 | { "\nNo unsaved changes detected!\nNothing will be saved!","\nKeine ungespeicherten\nÄnderungen erkannt!\nNichts wird gespeichert!" }, |
523 | { "Manage new categories...","Verwalte neue Kategorien..." }, | 523 | { "Manage new categories...","Verwalte neue Kategorien..." }, |
524 | { "&File","Datei" }, | 524 | { "&File","Datei" }, |
525 | { "&Edit","Bearbeite" }, | 525 | { "&Edit","Bearbeite" }, |
526 | { "&View","Ansichten" }, | 526 | { "&View","Ansichten" }, |
527 | { "&Settings","Konfiguration" }, | 527 | { "&Settings","Konfiguration" }, |
528 | { "&Change selected","Ändere Selekt." }, | 528 | { "&Change selected","Ändere Selekt." }, |
529 | { "&Help","Hilfe" }, | 529 | { "&Help","Hilfe" }, |
530 | { "Remove sync info","Entferne Sync Info" }, | 530 | { "Remove sync info","Entferne Sync Info" }, |
531 | { "For all profiles","Für alle Profile" }, | 531 | { "For all profiles","Für alle Profile" }, |
532 | { "&Change","Ändere" }, | 532 | { "&Change","Ändere" }, |
533 | { "Import xml (Qtopia)...","Importiere xml (Qtopia)..." }, | 533 | { "Import xml (Qtopia)...","Importiere xml (Qtopia)..." }, |
534 | { "Export xml (Qtopia)...","Exportiere xml (Qtopia)..." }, | 534 | { "Export xml (Qtopia)...","Exportiere xml (Qtopia)..." }, |
535 | { "Export to phone","Exportiere aufs Handy..." }, | 535 | { "Export to phone","Exportiere aufs Handy..." }, |
536 | { "Which contacts do you want to select?","Welche Kontakte möchten Sie wählen?" }, | 536 | { "Which contacts do you want to select?","Welche Kontakte möchten Sie wählen?" }, |
537 | { "&Modify","Ändere" }, | 537 | { "&Modify","Ändere" }, |
538 | { "Choose which contacts to select","Bitte Kontakte auswählen!" }, | 538 | { "Choose which contacts to select","Bitte Kontakte auswählen!" }, |
539 | { "After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nKontakten geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " }, | 539 | { "After importing/loading/syncing\nthere may be new categories in\naddressees\nwhich are not in the category list.\nPlease choose what to do:\n ","Nach dem Importieren/Laden/Syncen\nkann es neue Kategorien in den \nKontakten geben, die nicht\nin der Kategorieliste enthalten sind.\nBitte wählen Sie, was passieren soll:\n " }, |
540 | { "Manage new Categories","Verwalte neue Kategorien" }, | 540 | { "Manage new Categories","Verwalte neue Kategorien" }, |
541 | { "Add to category list","Füge zur Kategorieliste hinzu" }, | 541 | { "Add to category list","Füge zur Kategorieliste hinzu" }, |
542 | { "Remove from addressees","Entferne von den Kontakten" }, | 542 | { "Remove from addressees","Entferne von den Kontakten" }, |
543 | { "New categories not in list:","Kategorien, die nicht in der Liste sind:" }, | 543 | { "New categories not in list:","Kategorien, die nicht in der Liste sind:" }, |
544 | { "A&dd","Hinzufügen" }, | 544 | { "A&dd","Hinzufügen" }, |
545 | { "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, | 545 | { "Please read Help-Sync Howto\nto know what settings to use.","Bitte lese Hilfe-Sync Howto\num zu erfahren welche Einstellungen\ndie richtigen sind." }, |
546 | { "NOTE: This will remove all old\ncontact data on phone!","ACHTUNG: Das löscht alle alten\nKontakt Daten auf dem Handy!" }, | 546 | { "NOTE: This will remove all old\ncontact data on phone!","ACHTUNG: Das löscht alle alten\nKontakt Daten auf dem Handy!" }, |
547 | { "Export to mobile phone!","Exportiere auf das Handy!" }, | 547 | { "Export to mobile phone!","Exportiere auf das Handy!" }, |
548 | { "Export to phone options","Export ans Handy Optionen" }, | 548 | { "Export to phone options","Export ans Handy Optionen" }, |
549 | { "Writing to phone...","Sende Daten ans Handy..." }, | 549 | { "Writing to phone...","Sende Daten ans Handy..." }, |
550 | { " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, | 550 | { " This may take 1-3 minutes!"," Das kann 1-3 Minuten dauern!" }, |
551 | { "Retry","Nochmal versuchen" }, | 551 | { "Retry","Nochmal versuchen" }, |
552 | { "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, | 552 | { "KDE/Pim phone access","KDE/Pim Handy Zugriff" }, |
553 | { "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, | 553 | { "Error accessing device!\nPlease turn on connection\nand retry!","Fehler beim Zugriff auf das Gerät!\nBitte die Verbindung aktivieren\nund nochmal versuchen!" }, |
554 | { "Error exporting to phone!","Fehler beim Export auf das Handy!" }, | 554 | { "Error exporting to phone!","Fehler beim Export auf das Handy!" }, |
555 | { "&Print View","Drucke Ansicht" }, | 555 | { "&Print View","Drucke Ansicht" }, |
556 | { "&Print Details","Drucke Details" }, | 556 | { "&Print Details","Drucke Details" }, |
557 | { "Beam v&Card(s)...","Beame v&Card(s)..." }, | 557 | { "Beam v&Card(s)...","Beame v&Card(s)..." }, |
558 | { "Set formatted name...","Setze formatierten Namen..." }, | 558 | { "Set formatted name...","Setze formatierten Namen..." }, |
559 | { "Kde Sync HowTo","Kde Sync HowTo" }, | 559 | { "Kde Sync HowTo","Kde Sync HowTo" }, |
560 | { "Multi Sync HowTo","Multi Sync HowTo" }, | 560 | { "Multi Sync HowTo","Multi Sync HowTo" }, |
561 | { "&Beam","&Beame" }, | 561 | { "&Beam","&Beame" }, |
562 | { "Edit Email Addresses","Editiere Email Adressen" }, | 562 | { "Edit Email Addresses","Editiere Email Adressen" }, |
563 | { "Email address:","Email Adresse:" }, | 563 | { "Email address:","Email Adresse:" }, |
564 | { "Change","Ändere" }, | 564 | { "Change","Ändere" }, |
565 | { "Set Standard","Setze Standard" }, | 565 | { "Set Standard","Setze Standard" }, |
566 | { "New Contact","Neuer Contact" }, | 566 | { "New Contact","Neuer Contact" }, |
567 | { "Undo %1","Rückgängig %1" }, | 567 | { "Undo %1","Rückgängig %1" }, |
568 | { "Redo","Wiederholen" }, | 568 | { "Redo","Wiederholen" }, |
569 | { "Saving ... please wait! ","Am Speichern ... bitte warten! " }, | 569 | { "Saving ... please wait! ","Am Speichern ... bitte warten! " }, |
570 | { "CSV Import Dialog","CSV Import Dialog" }, | 570 | { "CSV Import Dialog","CSV Import Dialog" }, |
571 | { "File to import:","Datei zum Import:" }, | 571 | { "File to import:","Datei zum Import:" }, |
572 | { "Delimiter","Trennzeichen" }, | 572 | { "Delimiter","Trennzeichen" }, |
573 | { "Comma","Komma" }, | 573 | { "Comma","Komma" }, |
574 | { "Semicolon","Semikolon" }, | 574 | { "Semicolon","Semikolon" }, |
575 | { "Tabulator","Tabulator" }, | 575 | { "Tabulator","Tabulator" }, |
576 | { "Space","Leerzeichen" }, | 576 | { "Space","Leerzeichen" }, |
577 | { "1","1" }, | 577 | { "1","1" }, |
578 | { """,""" }, | 578 | { """,""" }, |
579 | { "'","'" }, | 579 | { "'","'" }, |
580 | { "Start at line:","Beginne mit Zeile:" }, | 580 | { "Start at line:","Beginne mit Zeile:" }, |
581 | { "Textquote:","Textquote:" }, | 581 | { "Textquote:","Textquote:" }, |
582 | { "Ignore duplicate delimiters","Ignoriere doppelte Trennzeichen" }, | 582 | { "Ignore duplicate delimiters","Ignoriere doppelte Trennzeichen" }, |
583 | { "Import KDE 2 Addressbook","Importiere KDE 2 Addressbook" }, | 583 | { "Import KDE 2 Addressbook","Importiere KDE 2 Addressbook" }, |
584 | { "Override previously imported entries?","Überschreibe bereits importierte Einträge?" }, | 584 | { "Override previously imported entries?","Überschreibe bereits importierte Einträge?" }, |
585 | { "Select vCard to Import","Selektiere zu importierende vCard" }, | 585 | { "Select vCard to Import","Selektiere zu importierende vCard" }, |
586 | { "Information","Information" }, | 586 | { "Information","Information" }, |
587 | { "contacts successfully imported.","Kontakte erfolgreich importiert." }, | 587 | { "contacts successfully imported.","Kontakte erfolgreich importiert." }, |
588 | { "Import xml file","Importiere xml Datei" }, | 588 | { "Import xml file","Importiere xml Datei" }, |
589 | { "Choose contact selection","Wähle Kontakt Auswahl" }, | 589 | { "Choose contact selection","Wähle Kontakt Auswahl" }, |
590 | { "Select the entire address book","Wähle das ganze Adressbuch" }, | 590 | { "Select the entire address book","Wähle das ganze Adressbuch" }, |
591 | { "Only contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected.","Nur in KA/Pi selektierte Kontate.\nDiese Option ist nicht verfügbar\nwhen keine Kontakte selektiert sind." }, | 591 | { "Only contacts selected in KAddressBook.\nThis option is disabled if no contacts are selected.","Nur in KA/Pi selektierte Kontate.\nDiese Option ist nicht verfügbar\nwhen keine Kontakte selektiert sind." }, |
592 | { "Only contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters","Nur Kontakte die auf den Filter zutreffen.\nDiese Option ist nicht verfügbar, wenn keine Filter definiert sind." }, | 592 | { "Only contacts matching the selected filter.\nThis option is disabled if you haven't defined any filters","Nur Kontakte die auf den Filter zutreffen.\nDiese Option ist nicht verfügbar, wenn keine Filter definiert sind." }, |
593 | { "Only contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories.","Nur Kontakte die Mitglieder der Kategirien sind,\die links selektiert sind.\nDiese Option ist nicht verfügbar, wenn es keine Kategirien gibt." }, | 593 | { "Only contacts who are members of a category that is checked on the list to the left.\nThis option is disabled if you have no categories.","Nur Kontakte die Mitglieder der Kategirien sind,\die links selektiert sind.\nDiese Option ist nicht verfügbar, wenn es keine Kategirien gibt." }, |
594 | { "Select a filter to decide which contacts to select.","Selektiere einen Filter um festzulegen welche Kontakte ausgewählt werden sollen." }, | 594 | { "Select a filter to decide which contacts to select.","Selektiere einen Filter um festzulegen welche Kontakte ausgewählt werden sollen." }, |
595 | { "Check the categories whose members you want to select.","Setzte die Kategorien, dessen Mitglieder Sie auswählen möchten." }, | 595 | { "Check the categories whose members you want to select.","Setzte die Kategorien, dessen Mitglieder Sie auswählen möchten." }, |
596 | { "I/O device: ","I/O device: " }, | 596 | { "I/O device: ","I/O device: " }, |
597 | { "Connection: ","Connection: " }, | 597 | { "Connection: ","Connection: " }, |
598 | { "Model(opt.): ","Model(opt.): " }, | 598 | { "Model(opt.): ","Model(opt.): " }, |
599 | { "Exporting to phone...","Exportiere aufs Handy..." }, | 599 | { "Exporting to phone...","Exportiere aufs Handy..." }, |
600 | { "Error exporting to phone","Fehler beim Export aufs Handy" }, | 600 | { "Error exporting to phone","Fehler beim Export aufs Handy" }, |
601 | { "contacts successfully exported.","Kontakte erfolgreich exportiert." }, | 601 | { "contacts successfully exported.","Kontakte erfolgreich exportiert." }, |
602 | { "Do you want to remove<br>all existing entries from<br>%1<br>before exporting.?","Wollen Sie<br>alle existieren Einträge von<br>%1<br>vor dem Export entfernen?" }, | 602 | { "Do you want to remove<br>all existing entries from<br>%1<br>before exporting.?","Wollen Sie<br>alle existieren Einträge von<br>%1<br>vor dem Export entfernen?" }, |
603 | { "Set formatted name","Setze formatierten Namen" }, | 603 | { "Set formatted name","Setze formatierten Namen" }, |
604 | { "You can set the formatted name\nfor a list of contacts in one go.","Sie können den formatierten Namen für\nein Liste von Kontakten auf einmal setzen." }, | 604 | { "You can set the formatted name\nfor a list of contacts in one go.","Sie können den formatierten Namen für\nein Liste von Kontakten auf einmal setzen." }, |
605 | { "Set formatted name to:","Setze formatierten Name auf:" }, | 605 | { "Set formatted name to:","Setze formatierten Name auf:" }, |
606 | { "Simple: James Bond","Einfach: James Bond" }, | 606 | { "Simple: James Bond","Einfach: James Bond" }, |
607 | { "Full: Mr. James 007 Bond I","Voll: Mr. James 007 Bond I" }, | 607 | { "Full: Mr. James 007 Bond I","Voll: Mr. James 007 Bond I" }, |
608 | { "Reverse: Bond, James","Umgekehrt: Bond, James" }, | 608 | { "Reverse: Bond, James","Umgekehrt: Bond, James" }, |
609 | { "Organization: MI6","Organisation: MI6" }, | 609 | { "Organization: MI6","Organisation: MI6" }, |
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp index 2691d9a..f3cfb23 100644 --- a/kabc/addresseeview.cpp +++ b/kabc/addresseeview.cpp | |||
@@ -1,680 +1,684 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of libkdepim. | 2 | This file is part of libkdepim. |
3 | 3 | ||
4 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> | 4 | Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> |
5 | 5 | ||
6 | This library is free software; you can redistribute it and/or | 6 | This library is free software; you can redistribute it and/or |
7 | modify it under the terms of the GNU Library General Public | 7 | modify it under the terms of the GNU Library General Public |
8 | License as published by the Free Software Foundation; either | 8 | License as published by the Free Software Foundation; either |
9 | version 2 of the License, or (at your option) any later version. | 9 | version 2 of the License, or (at your option) any later version. |
10 | 10 | ||
11 | This library is distributed in the hope that it will be useful, | 11 | This library 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 GNU | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | Library General Public License for more details. | 14 | Library General Public License for more details. |
15 | 15 | ||
16 | You should have received a copy of the GNU Library General Public License | 16 | You should have received a copy of the GNU Library General Public License |
17 | along with this library; see the file COPYING.LIB. If not, write to | 17 | along with this library; see the file COPYING.LIB. If not, write to |
18 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 18 | the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
19 | Boston, MA 02111-1307, USA. | 19 | Boston, MA 02111-1307, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <kabc/address.h> | 22 | #include <kabc/address.h> |
23 | #include <kabc/addressee.h> | 23 | #include <kabc/addressee.h> |
24 | #include <kabc/phonenumber.h> | 24 | #include <kabc/phonenumber.h> |
25 | #include <kglobal.h> | 25 | #include <kglobal.h> |
26 | //US#include <kglobalsettings.h> | 26 | //US#include <kglobalsettings.h> |
27 | #include <kiconloader.h> | 27 | #include <kiconloader.h> |
28 | #include <klocale.h> | 28 | #include <klocale.h> |
29 | //US #include <kstringhandler.h> | 29 | //US #include <kstringhandler.h> |
30 | #include <qscrollview.h> | 30 | #include <qscrollview.h> |
31 | #include <qregexp.h> | 31 | #include <qregexp.h> |
32 | #include <qfile.h> | 32 | #include <qfile.h> |
33 | #include <qvbox.h> | 33 | #include <qvbox.h> |
34 | #include <qlabel.h> | 34 | #include <qlabel.h> |
35 | #include <qwidget.h> | 35 | #include <qwidget.h> |
36 | #include <qlayout.h> | 36 | #include <qlayout.h> |
37 | #include <qapplication.h> | 37 | #include <qapplication.h> |
38 | #include <qpushbutton.h> | 38 | #include <qpushbutton.h> |
39 | #ifdef DESKTOP_VERSION | 39 | #ifdef DESKTOP_VERSION |
40 | #include <qpaintdevicemetrics.h> | 40 | #include <qpaintdevicemetrics.h> |
41 | #include <qprinter.h> | 41 | #include <qprinter.h> |
42 | #include <qpainter.h> | 42 | #include <qpainter.h> |
43 | #endif | 43 | #endif |
44 | 44 | ||
45 | 45 | ||
46 | #include <qstylesheet.h> | 46 | #include <qstylesheet.h> |
47 | #include "externalapphandler.h" | 47 | #include "externalapphandler.h" |
48 | #include <kabc/addresseeview.h> | 48 | #include <kabc/addresseeview.h> |
49 | 49 | ||
50 | 50 | ||
51 | //US #ifndef DESKTOP_VERSION | 51 | //US #ifndef DESKTOP_VERSION |
52 | //US #include <qtopia/qcopenvelope_qws.h> | 52 | //US #include <qtopia/qcopenvelope_qws.h> |
53 | //US #include <qpe/qpeapplication.h> | 53 | //US #include <qpe/qpeapplication.h> |
54 | //US #endif | 54 | //US #endif |
55 | 55 | ||
56 | //US static int kphoneInstalled = 0; | 56 | //US static int kphoneInstalled = 0; |
57 | 57 | ||
58 | using namespace KABC; | 58 | using namespace KABC; |
59 | bool AddresseeView::sFullDetailsMode = false; | 59 | bool AddresseeView::sFullDetailsMode = false; |
60 | 60 | ||
61 | AddresseeView::AddresseeView( QWidget *parent, const char *name ) | 61 | AddresseeView::AddresseeView( QWidget *parent, const char *name ) |
62 | : QTextBrowser( parent, name ) | 62 | : QTextBrowser( parent, name ) |
63 | 63 | ||
64 | 64 | ||
65 | { | 65 | { |
66 | //US setWrapPolicy( QTextEdit::AtWordBoundary ); | 66 | //US setWrapPolicy( QTextEdit::AtWordBoundary ); |
67 | setLinkUnderline( false ); | 67 | setLinkUnderline( false ); |
68 | // setVScrollBarMode( QScrollView::AlwaysOff ); | 68 | // setVScrollBarMode( QScrollView::AlwaysOff ); |
69 | //setHScrollBarMode( QScrollView::AlwaysOff ); | 69 | //setHScrollBarMode( QScrollView::AlwaysOff ); |
70 | 70 | ||
71 | //US QStyleSheet *sheet = styleSheet(); | 71 | //US QStyleSheet *sheet = styleSheet(); |
72 | //US QStyleSheetItem *link = sheet->item( "a" ); | 72 | //US QStyleSheetItem *link = sheet->item( "a" ); |
73 | //US link->setColor( KGlobalSettings::linkColor() ); | 73 | //US link->setColor( KGlobalSettings::linkColor() ); |
74 | 74 | ||
75 | 75 | ||
76 | } | 76 | } |
77 | void AddresseeView::printMe() | 77 | void AddresseeView::printMe() |
78 | { | 78 | { |
79 | #ifdef DESKTOP_VERSION | 79 | #ifdef DESKTOP_VERSION |
80 | QPrinter printer; | 80 | QPrinter printer; |
81 | if (!printer.setup() ) | 81 | if (!printer.setup() ) |
82 | return; | 82 | return; |
83 | QPainter p; | 83 | QPainter p; |
84 | p.begin ( &printer ); | 84 | p.begin ( &printer ); |
85 | QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); | 85 | QPaintDeviceMetrics m = QPaintDeviceMetrics ( &printer ); |
86 | float dx, dy; | 86 | float dx, dy; |
87 | int wid = (m.width() * 9)/10; | 87 | int wid = (m.width() * 9)/10; |
88 | dx = (float) wid/(float)contentsWidth (); | 88 | dx = (float) wid/(float)contentsWidth (); |
89 | dy = (float)(m.height()) / (float)contentsHeight (); | 89 | dy = (float)(m.height()) / (float)contentsHeight (); |
90 | float scale; | 90 | float scale; |
91 | // scale to fit the width or height of the paper | 91 | // scale to fit the width or height of the paper |
92 | if ( dx < dy ) | 92 | if ( dx < dy ) |
93 | scale = dx; | 93 | scale = dx; |
94 | else | 94 | else |
95 | scale = dy; | 95 | scale = dy; |
96 | p.translate( m.width()/10,0 ); | 96 | p.translate( m.width()/10,0 ); |
97 | p.scale( scale, scale ); | 97 | p.scale( scale, scale ); |
98 | drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); | 98 | drawContents ( &p, 0,0, contentsWidth (), contentsHeight () ); |
99 | p.end(); | 99 | p.end(); |
100 | #endif | 100 | #endif |
101 | } | 101 | } |
102 | void AddresseeView::setSource(const QString& n) | 102 | void AddresseeView::setSource(const QString& n) |
103 | { | 103 | { |
104 | //qDebug("********AddresseeView::setSource %s", n.latin1()); | 104 | //qDebug("********AddresseeView::setSource %s", n.latin1()); |
105 | 105 | ||
106 | if ( n == "allDetails" ) { | 106 | if ( n == "allDetails" ) { |
107 | sFullDetailsMode = true; | 107 | sFullDetailsMode = true; |
108 | setAddressee( mCurrentContact ); | 108 | setAddressee( mCurrentContact ); |
109 | } else if ( n == "notAllDetails" ) { | 109 | } else if ( n == "notAllDetails" ) { |
110 | sFullDetailsMode = false; | 110 | sFullDetailsMode = false; |
111 | setAddressee( mCurrentContact ); | 111 | setAddressee( mCurrentContact ); |
112 | } else if ( n.left( 6 ) == "mailto" ) | 112 | } else if ( n.left( 6 ) == "mailto" ) |
113 | ExternalAppHandler::instance()->mailToOneContact( n.mid(7) ); | 113 | ExternalAppHandler::instance()->mailToOneContact( n.mid(7) ); |
114 | else if ( n.left( 7 ) == "phoneto" ) | 114 | else if ( n.left( 7 ) == "phoneto" ) |
115 | ExternalAppHandler::instance()->callByPhone( n.mid(8) ); | 115 | ExternalAppHandler::instance()->callByPhone( n.mid(8) ); |
116 | else if ( n.left( 5 ) == "faxto" ) | 116 | else if ( n.left( 5 ) == "faxto" ) |
117 | ExternalAppHandler::instance()->callByFax( n.mid(6) ); | 117 | ExternalAppHandler::instance()->callByFax( n.mid(6) ); |
118 | else if ( n.left( 5 ) == "smsto" ) | 118 | else if ( n.left( 5 ) == "smsto" ) |
119 | ExternalAppHandler::instance()->callBySMS( n.mid(6) ); | 119 | ExternalAppHandler::instance()->callBySMS( n.mid(6) ); |
120 | else if ( n.left( 7 ) == "pagerto" ) | 120 | else if ( n.left( 7 ) == "pagerto" ) |
121 | ExternalAppHandler::instance()->callByPager( n.mid(8) ); | 121 | ExternalAppHandler::instance()->callByPager( n.mid(8) ); |
122 | else if ( n.left( 5 ) == "sipto" ) | 122 | else if ( n.left( 5 ) == "sipto" ) |
123 | ExternalAppHandler::instance()->callBySIP( n.mid(6) ); | 123 | ExternalAppHandler::instance()->callBySIP( n.mid(6) ); |
124 | 124 | ||
125 | } | 125 | } |
126 | void AddresseeView::setAddressee( const KABC::Addressee& mAddressee ) | 126 | void AddresseeView::setAddressee( const KABC::Addressee& mAddressee ) |
127 | { | 127 | { |
128 | bool kemailAvail = ExternalAppHandler::instance()->isEmailAppAvailable(); | 128 | bool kemailAvail = ExternalAppHandler::instance()->isEmailAppAvailable(); |
129 | // mAddressee = addr; | 129 | // mAddressee = addr; |
130 | // clear view | 130 | // clear view |
131 | //setText( QString::null ); | 131 | //setText( QString::null ); |
132 | mCurrentContact = mAddressee; | 132 | mCurrentContact = mAddressee; |
133 | if ( mAddressee.isEmpty() ) { | 133 | if ( mAddressee.isEmpty() ) { |
134 | setText( QString::null); | 134 | setText( QString::null); |
135 | return; | 135 | return; |
136 | } | 136 | } |
137 | #if 0 | 137 | #if 0 |
138 | QString name = ( mAddressee.assembledName().isEmpty() ? | 138 | QString name = ( mAddressee.assembledName().isEmpty() ? |
139 | mAddressee.formattedName() : mAddressee.assembledName() ); | 139 | mAddressee.formattedName() : mAddressee.assembledName() ); |
140 | #endif | 140 | #endif |
141 | 141 | ||
142 | QString name = mAddressee.realName(); | 142 | QString name = mAddressee.realName(); |
143 | 143 | ||
144 | QString dynamicPart; | 144 | QString dynamicPart; |
145 | 145 | ||
146 | dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(),true ); | 146 | dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(),true ); |
147 | QStringList emails = mAddressee.emails(); | 147 | QStringList emails = mAddressee.emails(); |
148 | QStringList::ConstIterator emailIt; | 148 | QStringList::ConstIterator emailIt; |
149 | QString type = i18n( "Email" ); | 149 | QString type = i18n( "Email" ); |
150 | emailIt = emails.begin(); | 150 | emailIt = emails.begin(); |
151 | if ( emailIt != emails.end() ) { | 151 | if ( emailIt != emails.end() ) { |
152 | if ( kemailAvail ) { | 152 | if ( kemailAvail ) { |
153 | dynamicPart += QString( | 153 | dynamicPart += QString( |
154 | "<tr><td align=\"right\"><b>%1</b></td>" | 154 | "<tr><td align=\"right\"><b>%1</b></td>" |
155 | "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) | 155 | "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) |
156 | .arg( type ) | 156 | .arg( type ) |
157 | .arg( name ) | 157 | .arg( name ) |
158 | .arg( *emailIt ) | 158 | .arg( *emailIt ) |
159 | .arg( *emailIt ); | 159 | .arg( *emailIt ); |
160 | ++emailIt; | 160 | ++emailIt; |
161 | } else { | 161 | } else { |
162 | dynamicPart += QString( | 162 | dynamicPart += QString( |
163 | "<tr><td align=\"right\"><b>%1</b></td>" | 163 | "<tr><td align=\"right\"><b>%1</b></td>" |
164 | "<td align=\"left\">%2</td></tr>" ) | 164 | "<td align=\"left\">%2</td></tr>" ) |
165 | .arg( type ) | 165 | .arg( type ) |
166 | .arg( *emailIt ); | 166 | .arg( *emailIt ); |
167 | ++emailIt; | 167 | ++emailIt; |
168 | } | 168 | } |
169 | } | 169 | } |
170 | if ( mAddressee.birthday().date().isValid() ) { | 170 | if ( mAddressee.birthday().date().isValid() ) { |
171 | dynamicPart += QString( | 171 | dynamicPart += QString( |
172 | "<tr><td align=\"right\"><b>%1</b></td>" | 172 | "<tr><td align=\"right\"><b>%1</b></td>" |
173 | "<td align=\"left\">%2</td></tr>" ) | 173 | "<td align=\"left\">%2</td></tr>" ) |
174 | .arg( i18n ("Birthday") ) | 174 | .arg( i18n ("Birthday") ) |
175 | .arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) ); | 175 | .arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) ); |
176 | } | 176 | } |
177 | dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(), false ); | 177 | dynamicPart += getPhoneNumbers( mAddressee.phoneNumbers(), false ); |
178 | 178 | ||
179 | for ( ; emailIt != emails.end(); ++emailIt ) { | 179 | for ( ; emailIt != emails.end(); ++emailIt ) { |
180 | if ( kemailAvail ) { | 180 | if ( kemailAvail ) { |
181 | dynamicPart += QString( | 181 | dynamicPart += QString( |
182 | "<tr><td align=\"right\"><b>%1</b></td>" | 182 | "<tr><td align=\"right\"><b>%1</b></td>" |
183 | "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) | 183 | "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" ) |
184 | .arg( type ) | 184 | .arg( type ) |
185 | .arg( name ) | 185 | .arg( name ) |
186 | .arg( *emailIt ) | 186 | .arg( *emailIt ) |
187 | .arg( *emailIt ); | 187 | .arg( *emailIt ); |
188 | } else { | 188 | } else { |
189 | dynamicPart += QString( | 189 | dynamicPart += QString( |
190 | "<tr><td align=\"right\"><b>%1</b></td>" | 190 | "<tr><td align=\"right\"><b>%1</b></td>" |
191 | "<td align=\"left\">%2</td></tr>" ) | 191 | "<td align=\"left\">%2</td></tr>" ) |
192 | .arg( type ) | 192 | .arg( type ) |
193 | .arg( *emailIt ); | 193 | .arg( *emailIt ); |
194 | } | 194 | } |
195 | } | 195 | } |
196 | 196 | ||
197 | 197 | ||
198 | 198 | ||
199 | KABC::Address::List addresses = mAddressee.addresses(); | 199 | KABC::Address::List addresses = mAddressee.addresses(); |
200 | KABC::Address::List::ConstIterator addrIt; | 200 | KABC::Address::List::ConstIterator addrIt; |
201 | for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) { | 201 | for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) { |
202 | if ( true /*(*addrIt).label().isEmpty()*/ ) { | 202 | if ( true /*(*addrIt).label().isEmpty()*/ ) { |
203 | QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace(); | 203 | QString formattedAddress = (*addrIt).formattedAddress().stripWhiteSpace(); |
204 | //US formattedAddress = formattedAddress.replace( '\n', "<br>" ); | 204 | //US formattedAddress = formattedAddress.replace( '\n', "<br>" ); |
205 | //qDebug("adresss %s ",formattedAddress.latin1() ); | 205 | //qDebug("adresss %s ",formattedAddress.latin1() ); |
206 | formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" ); | 206 | formattedAddress = formattedAddress.replace( QRegExp("\n"), "<br>" ); |
207 | //qDebug("AddresseeView::setAddressee has to be verified."); | 207 | //qDebug("AddresseeView::setAddressee has to be verified."); |
208 | 208 | ||
209 | dynamicPart += QString( | 209 | dynamicPart += QString( |
210 | "<tr><td align=\"right\"><b>%1</b></td>" | 210 | "<tr><td align=\"right\"><b>%1</b></td>" |
211 | "<td align=\"left\">%2</td></tr>" ) | 211 | "<td align=\"left\">%2</td></tr>" ) |
212 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) | 212 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) |
213 | .arg( formattedAddress ); | 213 | .arg( formattedAddress ); |
214 | } else { | 214 | } else { |
215 | 215 | ||
216 | dynamicPart += QString( | 216 | dynamicPart += QString( |
217 | "<tr><td align=\"right\"><b>%1</b></td>" | 217 | "<tr><td align=\"right\"><b>%1</b></td>" |
218 | "<td align=\"left\">%2</td></tr>" ) | 218 | "<td align=\"left\">%2</td></tr>" ) |
219 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) | 219 | .arg( KABC::Address::typeLabel( (*addrIt).type() ) ) |
220 | //US .arg( (*addrIt).label().replace( '\n', "<br>" ) ); | 220 | //US .arg( (*addrIt).label().replace( '\n', "<br>" ) ); |
221 | .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ ); | 221 | .arg( (*addrIt).label() /*replace( QRegExp("\n"), "<br>" )*/ ); |
222 | 222 | ||
223 | } | 223 | } |
224 | } | 224 | } |
225 | 225 | ||
226 | 226 | ||
227 | QString notes; | 227 | QString notes; |
228 | if ( sFullDetailsMode ) { | 228 | if ( sFullDetailsMode ) { |
229 | notes = QString( | 229 | notes = QString( |
230 | "<tr><td align=\"right\"><b>%1</b></td>" | 230 | "<tr><td align=\"right\"><b>%1</b></td>" |
231 | "<td align=\"left\"><a href=\"notAllDetails\">%4</a></td></tr>" ) | 231 | "<td align=\"left\"><a href=\"notAllDetails\">%4</a></td></tr>" ) |
232 | .arg( i18n("Details") ) | 232 | .arg( i18n("Details") ) |
233 | .arg( i18n("Hide!") ); | 233 | .arg( i18n("Hide!") ); |
234 | 234 | ||
235 | QString tempX = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); | 235 | QString tempX = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); |
236 | if ( !tempX.isEmpty() ) { | 236 | if ( !tempX.isEmpty() ) { |
237 | notes += QString( | 237 | if ( tempX == "male" || tempX == "female" ) { |
238 | "<tr><td align=\"right\"><b>%1</b></td>" | 238 | notes += QString( |
239 | "<td align=\"left\">%2</td></tr>" ) | 239 | "<tr><td align=\"right\"><b>%1</b></td>" |
240 | .arg( i18n( "" ) ) | 240 | "<td align=\"left\">%2</td></tr>" ) |
241 | .arg( i18n(tempX) ); | 241 | .arg( i18n( "" ) ) |
242 | .arg( i18n(tempX) ); | ||
243 | } | ||
242 | } | 244 | } |
243 | 245 | ||
244 | 246 | ||
245 | tempX = mAddressee.secrecy().asString(); | 247 | tempX = mAddressee.secrecy().asString(); |
246 | 248 | ||
247 | notes += QString( | 249 | notes += QString( |
248 | "<tr><td align=\"right\"><b>%1</b></td>" | 250 | "<tr><td align=\"right\"><b>%1</b></td>" |
249 | "<td align=\"left\">%2</td></tr>" ) | 251 | "<td align=\"left\">%2</td></tr>" ) |
250 | .arg( "" ) | 252 | .arg( "" ) |
251 | .arg( tempX ); | 253 | .arg( tempX ); |
252 | 254 | ||
253 | 255 | ||
254 | tempX = mAddressee.categories().join(" - "); | 256 | tempX = mAddressee.categories().join(" - "); |
255 | if ( !tempX.isEmpty() ) { | 257 | if ( !tempX.isEmpty() ) { |
256 | notes += QString( | 258 | notes += QString( |
257 | "<tr><td align=\"right\"><b>%1</b></td>" | 259 | "<tr><td align=\"right\"><b>%1</b></td>" |
258 | "<td align=\"left\">%2</td></tr>" ) | 260 | "<td align=\"left\">%2</td></tr>" ) |
259 | .arg( i18n( "Category" ) ) | 261 | .arg( i18n( "Category" ) ) |
260 | .arg( tempX ); | 262 | .arg( tempX ); |
261 | } | 263 | } |
262 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Profession" ); | 264 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Profession" ); |
263 | if ( !tempX.isEmpty() ) { | 265 | if ( !tempX.isEmpty() ) { |
264 | notes += QString( | 266 | notes += QString( |
265 | "<tr><td align=\"right\"><b>%1</b></td>" | 267 | "<tr><td align=\"right\"><b>%1</b></td>" |
266 | "<td align=\"left\">%2</td></tr>" ) | 268 | "<td align=\"left\">%2</td></tr>" ) |
267 | .arg( i18n( "Profession" ) ) | 269 | .arg( i18n( "Profession" ) ) |
268 | .arg( tempX ); | 270 | .arg( tempX ); |
269 | } | 271 | } |
270 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Office" ); | 272 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Office" ); |
271 | if ( !tempX.isEmpty() ) { | 273 | if ( !tempX.isEmpty() ) { |
272 | notes += QString( | 274 | notes += QString( |
273 | "<tr><td align=\"right\"><b>%1</b></td>" | 275 | "<tr><td align=\"right\"><b>%1</b></td>" |
274 | "<td align=\"left\">%2</td></tr>" ) | 276 | "<td align=\"left\">%2</td></tr>" ) |
275 | .arg( i18n( "Office" ) ) | 277 | .arg( i18n( "Office" ) ) |
276 | .arg( tempX ); | 278 | .arg( tempX ); |
277 | } | 279 | } |
278 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Department" ); | 280 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Department" ); |
279 | if ( !tempX.isEmpty() ) { | 281 | if ( !tempX.isEmpty() ) { |
280 | notes += QString( | 282 | notes += QString( |
281 | "<tr><td align=\"right\"><b>%1</b></td>" | 283 | "<tr><td align=\"right\"><b>%1</b></td>" |
282 | "<td align=\"left\">%2</td></tr>" ) | 284 | "<td align=\"left\">%2</td></tr>" ) |
283 | .arg( i18n( "Department" ) ) | 285 | .arg( i18n( "Department" ) ) |
284 | .arg( tempX ); | 286 | .arg( tempX ); |
285 | } | 287 | } |
286 | 288 | ||
287 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" ); | 289 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" ); |
288 | if ( !tempX.isEmpty() ) { | 290 | if ( !tempX.isEmpty() ) { |
289 | notes += QString( | 291 | notes += QString( |
290 | "<tr><td align=\"right\"><b>%1</b></td>" | 292 | "<tr><td align=\"right\"><b>%1</b></td>" |
291 | "<td align=\"left\">%2</td></tr>" ) | 293 | "<td align=\"left\">%2</td></tr>" ) |
292 | .arg( i18n( "Manager" ) ) | 294 | .arg( i18n( "Manager" ) ) |
293 | .arg( tempX ); | 295 | .arg( tempX ); |
294 | } | 296 | } |
295 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" ); | 297 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" ); |
296 | if ( !tempX.isEmpty() ) { | 298 | if ( !tempX.isEmpty() ) { |
297 | notes += QString( | 299 | notes += QString( |
298 | "<tr><td align=\"right\"><b>%1</b></td>" | 300 | "<tr><td align=\"right\"><b>%1</b></td>" |
299 | "<td align=\"left\">%2</td></tr>" ) | 301 | "<td align=\"left\">%2</td></tr>" ) |
300 | .arg( i18n( "Assistant" ) ) | 302 | .arg( i18n( "Assistant" ) ) |
301 | .arg( tempX ); | 303 | .arg( tempX ); |
302 | } | 304 | } |
303 | if ( !mAddressee.url().url().isEmpty() ) { | 305 | if ( !mAddressee.url().url().isEmpty() ) { |
304 | notes += QString( | 306 | notes += QString( |
305 | "<tr><td align=\"right\"><b>%1</b></td>" | 307 | "<tr><td align=\"right\"><b>%1</b></td>" |
306 | "<td align=\"left\">%2</td></tr>" ) | 308 | "<td align=\"left\">%2</td></tr>" ) |
307 | .arg( i18n( "Homepage" ) ) | 309 | .arg( i18n( "Homepage" ) ) |
308 | .arg( mAddressee.url().url() ); | 310 | .arg( mAddressee.url().url() ); |
309 | } | 311 | } |
310 | tempX = mAddressee.nickName(); | 312 | tempX = mAddressee.nickName(); |
311 | if ( !tempX.isEmpty() ) { | 313 | if ( !tempX.isEmpty() ) { |
312 | notes += QString( | 314 | notes += QString( |
313 | "<tr><td align=\"right\"><b>%1</b></td>" | 315 | "<tr><td align=\"right\"><b>%1</b></td>" |
314 | "<td align=\"left\">%2</td></tr>" ) | 316 | "<td align=\"left\">%2</td></tr>" ) |
315 | .arg( i18n( "Nickname" ) ) | 317 | .arg( i18n( "Nickname" ) ) |
316 | .arg( tempX ); | 318 | .arg( tempX ); |
317 | } | 319 | } |
318 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" ); | 320 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" ); |
319 | if ( !tempX.isEmpty() ) { | 321 | if ( !tempX.isEmpty() ) { |
320 | notes += QString( | 322 | notes += QString( |
321 | "<tr><td align=\"right\"><b>%1</b></td>" | 323 | "<tr><td align=\"right\"><b>%1</b></td>" |
322 | "<td align=\"left\">%2</td></tr>" ) | 324 | "<td align=\"left\">%2</td></tr>" ) |
323 | .arg( i18n( "Messanger" ) ) | 325 | .arg( i18n( "Messanger" ) ) |
324 | .arg( tempX ); | 326 | .arg( tempX ); |
325 | } | 327 | } |
326 | 328 | ||
327 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Anniversary" ); | 329 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Anniversary" ); |
328 | if ( !tempX.isEmpty() ) { | 330 | if ( !tempX.isEmpty() ) { |
329 | QDate dt = KGlobal::locale()->readDate( tempX, "%Y-%m-%d"); | 331 | QDate dt = KGlobal::locale()->readDate( tempX, "%Y-%m-%d"); |
330 | tempX = KGlobal::locale()->formatDate(dt, true); | 332 | if ( dt.isValid () ) { |
331 | notes += QString( | 333 | tempX = KGlobal::locale()->formatDate(dt, true); |
332 | "<tr><td align=\"right\"><b>%1</b></td>" | 334 | notes += QString( |
333 | "<td align=\"left\">%2</td></tr>" ) | 335 | "<tr><td align=\"right\"><b>%1</b></td>" |
334 | .arg( i18n( "Anniversary" ) ) | 336 | "<td align=\"left\">%2</td></tr>" ) |
335 | .arg( tempX ); | 337 | .arg( i18n( "Anniversary" ) ) |
338 | .arg( tempX ); | ||
339 | } | ||
336 | } | 340 | } |
337 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ); | 341 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ); |
338 | if ( !tempX.isEmpty() ) { | 342 | if ( !tempX.isEmpty() ) { |
339 | notes += QString( | 343 | notes += QString( |
340 | "<tr><td align=\"right\"><b>%1</b></td>" | 344 | "<tr><td align=\"right\"><b>%1</b></td>" |
341 | "<td align=\"left\">%2</td></tr>" ) | 345 | "<td align=\"left\">%2</td></tr>" ) |
342 | .arg( i18n( "Spouse" ) ) | 346 | .arg( i18n( "Spouse" ) ) |
343 | .arg( tempX ); | 347 | .arg( tempX ); |
344 | } | 348 | } |
345 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Children" ); | 349 | tempX = mAddressee.custom( "KADDRESSBOOK", "X-Children" ); |
346 | if ( !tempX.isEmpty() ) { | 350 | if ( !tempX.isEmpty() ) { |
347 | notes += QString( | 351 | notes += QString( |
348 | "<tr><td align=\"right\"><b>%1</b></td>" | 352 | "<tr><td align=\"right\"><b>%1</b></td>" |
349 | "<td align=\"left\">%2</td></tr>" ) | 353 | "<td align=\"left\">%2</td></tr>" ) |
350 | .arg( i18n( "Children" ) ) | 354 | .arg( i18n( "Children" ) ) |
351 | .arg( tempX ); | 355 | .arg( tempX ); |
352 | } | 356 | } |
353 | 357 | ||
354 | if ( !mAddressee.note().isEmpty() ) { | 358 | if ( !mAddressee.note().isEmpty() ) { |
355 | notes += QString( | 359 | notes += QString( |
356 | "<tr>" | 360 | "<tr>" |
357 | "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label | 361 | "<td align=\"right\" valign=\"top\"><b>%1</b></td>" // note label |
358 | "<td align=\"left\">%2</td>" // note | 362 | "<td align=\"left\">%2</td>" // note |
359 | "</tr>" ).arg( i18n( "Notes" ) ) | 363 | "</tr>" ).arg( i18n( "Notes" ) ) |
360 | //US .arg( mAddressee.note().replace( '\n', "<br>" ) ); | 364 | //US .arg( mAddressee.note().replace( '\n', "<br>" ) ); |
361 | .arg( mAddressee.note().replace( QRegExp("\n"), "<br>" ) ); | 365 | .arg( mAddressee.note().replace( QRegExp("\n"), "<br>" ) ); |
362 | //qDebug("AddresseeView::setAddressee has to be verified."); | 366 | //qDebug("AddresseeView::setAddressee has to be verified."); |
363 | } | 367 | } |
364 | } else { | 368 | } else { |
365 | notes = QString( | 369 | notes = QString( |
366 | "<tr><td align=\"right\"><b>%1</b></td>" | 370 | "<tr><td align=\"right\"><b>%1</b></td>" |
367 | "<td align=\"left\"><a href=\"allDetails\">%4</a></td></tr>" ) | 371 | "<td align=\"left\"><a href=\"allDetails\">%4</a></td></tr>" ) |
368 | .arg( i18n("Details") ) | 372 | .arg( i18n("Details") ) |
369 | .arg( i18n("Show!") ); | 373 | .arg( i18n("Show!") ); |
370 | 374 | ||
371 | 375 | ||
372 | } | 376 | } |
373 | 377 | ||
374 | QString aRole = ""; | 378 | QString aRole = ""; |
375 | QString aOrga = ""; | 379 | QString aOrga = ""; |
376 | if ( true /*!mAddressee.role().isEmpty()*/ ) { | 380 | if ( true /*!mAddressee.role().isEmpty()*/ ) { |
377 | aRole = "<tr>" | 381 | aRole = "<tr>" |
378 | "<td align=\"left\">" + mAddressee.role() + "</td>" | 382 | "<td align=\"left\">" + mAddressee.role() + "</td>" |
379 | "</tr>"; | 383 | "</tr>"; |
380 | } | 384 | } |
381 | if ( true /*!mAddressee.organization().isEmpty()*/ ) { | 385 | if ( true /*!mAddressee.organization().isEmpty()*/ ) { |
382 | aOrga = "<tr>" | 386 | aOrga = "<tr>" |
383 | "<td align=\"left\">" + mAddressee.organization() + "</td>" | 387 | "<td align=\"left\">" + mAddressee.organization() + "</td>" |
384 | "</tr>"; | 388 | "</tr>"; |
385 | } | 389 | } |
386 | mText = ""; | 390 | mText = ""; |
387 | QString picString = ""; | 391 | QString picString = ""; |
388 | KABC::Picture picture = mAddressee.photo(); | 392 | KABC::Picture picture = mAddressee.photo(); |
389 | bool picAvailintern = false; | 393 | bool picAvailintern = false; |
390 | bool picAvailUrl = false; | 394 | bool picAvailUrl = false; |
391 | if (! picture.undefined() ) { | 395 | if (! picture.undefined() ) { |
392 | picAvailintern = (picture.isIntern() && !picture.data().isNull()); | 396 | picAvailintern = (picture.isIntern() && !picture.data().isNull()); |
393 | picAvailUrl = !picture.isIntern() && QFile::exists(picture.url() ); | 397 | picAvailUrl = !picture.isIntern() && QFile::exists(picture.url() ); |
394 | } | 398 | } |
395 | if ( picAvailUrl || picAvailintern || QApplication::desktop()->width() > 320 ) { | 399 | if ( picAvailUrl || picAvailintern || QApplication::desktop()->width() > 320 ) { |
396 | picString = "<img src=\"myimage\" width=\"50\" height=\"70\">"; | 400 | picString = "<img src=\"myimage\" width=\"50\" height=\"70\">"; |
397 | if ( picAvailintern ) { | 401 | if ( picAvailintern ) { |
398 | QMimeSourceFactory::defaultFactory()->setImage( "myimage", picture.data() ); | 402 | QMimeSourceFactory::defaultFactory()->setImage( "myimage", picture.data() ); |
399 | } else { | 403 | } else { |
400 | if ( picAvailUrl ) { | 404 | if ( picAvailUrl ) { |
401 | QMimeSourceFactory::defaultFactory()->setPixmap( "myimage", QPixmap( picture.url() )); | 405 | QMimeSourceFactory::defaultFactory()->setPixmap( "myimage", QPixmap( picture.url() )); |
402 | } else { | 406 | } else { |
403 | if ( !mAddressee.custom( "KADDRESSBOOK", "X-Children" ).isEmpty() ) { | 407 | if ( !mAddressee.custom( "KADDRESSBOOK", "X-Children" ).isEmpty() ) { |
404 | static bool setDefaultImageChildren = false; | 408 | static bool setDefaultImageChildren = false; |
405 | if ( !setDefaultImageChildren ) { | 409 | if ( !setDefaultImageChildren ) { |
406 | QMimeSourceFactory::defaultFactory()->setPixmap( "familyIcon", KGlobal::iconLoader()->loadIcon( "ic_kids", KIcon::Desktop, 128 ) ); | 410 | QMimeSourceFactory::defaultFactory()->setPixmap( "familyIcon", KGlobal::iconLoader()->loadIcon( "ic_kids", KIcon::Desktop, 128 ) ); |
407 | setDefaultImageChildren = true; | 411 | setDefaultImageChildren = true; |
408 | } | 412 | } |
409 | picString = "<img src=\"familyIcon\" width=\"64\" height=\"64\">"; | 413 | picString = "<img src=\"familyIcon\" width=\"64\" height=\"64\">"; |
410 | 414 | ||
411 | } else if ( !mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ).isEmpty() ) { | 415 | } else if ( !mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ).isEmpty() ) { |
412 | static bool setDefaultImagepouses = false; | 416 | static bool setDefaultImagepouses = false; |
413 | if ( !setDefaultImagepouses ) { | 417 | if ( !setDefaultImagepouses ) { |
414 | QMimeSourceFactory::defaultFactory()->setPixmap( "SpousesIcon", KGlobal::iconLoader()->loadIcon( "ic_family", KIcon::Desktop, 128 ) ); | 418 | QMimeSourceFactory::defaultFactory()->setPixmap( "SpousesIcon", KGlobal::iconLoader()->loadIcon( "ic_family", KIcon::Desktop, 128 ) ); |
415 | setDefaultImagepouses = true; | 419 | setDefaultImagepouses = true; |
416 | } | 420 | } |
417 | picString = "<img src=\"SpousesIcon\" width=\"64\" height=\"64\">"; | 421 | picString = "<img src=\"SpousesIcon\" width=\"64\" height=\"64\">"; |
418 | } else { | 422 | } else { |
419 | QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); | 423 | QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); |
420 | if ( gen == "male" ) { | 424 | if ( gen == "male" ) { |
421 | static bool setDefaultImageMale = false; | 425 | static bool setDefaultImageMale = false; |
422 | if ( !setDefaultImageMale ) { | 426 | if ( !setDefaultImageMale ) { |
423 | QMimeSourceFactory::defaultFactory()->setPixmap( "MaleIcon", KGlobal::iconLoader()->loadIcon( "ic_male", KIcon::Desktop, 128 ) ); | 427 | QMimeSourceFactory::defaultFactory()->setPixmap( "MaleIcon", KGlobal::iconLoader()->loadIcon( "ic_male", KIcon::Desktop, 128 ) ); |
424 | setDefaultImageMale = true; | 428 | setDefaultImageMale = true; |
425 | } | 429 | } |
426 | picString = "<img src=\"MaleIcon\" width=\"64\" height=\"64\">"; | 430 | picString = "<img src=\"MaleIcon\" width=\"64\" height=\"64\">"; |
427 | 431 | ||
428 | } else if ( gen == "female" ) { | 432 | } else if ( gen == "female" ) { |
429 | static bool setDefaultImageFemale = false; | 433 | static bool setDefaultImageFemale = false; |
430 | if ( !setDefaultImageFemale ) { | 434 | if ( !setDefaultImageFemale ) { |
431 | QMimeSourceFactory::defaultFactory()->setPixmap( "FemaleIcon", KGlobal::iconLoader()->loadIcon( "ic_female", KIcon::Desktop, 128 ) ); | 435 | QMimeSourceFactory::defaultFactory()->setPixmap( "FemaleIcon", KGlobal::iconLoader()->loadIcon( "ic_female", KIcon::Desktop, 128 ) ); |
432 | setDefaultImageFemale = true; | 436 | setDefaultImageFemale = true; |
433 | } | 437 | } |
434 | picString = "<img src=\"FemaleIcon\" width=\"64\" height=\"64\">"; | 438 | picString = "<img src=\"FemaleIcon\" width=\"64\" height=\"64\">"; |
435 | 439 | ||
436 | } else { | 440 | } else { |
437 | static bool setDefaultImage = false; | 441 | static bool setDefaultImage = false; |
438 | if ( !setDefaultImage ) { | 442 | if ( !setDefaultImage ) { |
439 | //qDebug("Setting default pixmap "); | 443 | //qDebug("Setting default pixmap "); |
440 | QMimeSourceFactory::defaultFactory()->setPixmap( "defaultIcon", KGlobal::iconLoader()->loadIcon( "ic_penguin", KIcon::Desktop, 128 ) ); | 444 | QMimeSourceFactory::defaultFactory()->setPixmap( "defaultIcon", KGlobal::iconLoader()->loadIcon( "ic_penguin", KIcon::Desktop, 128 ) ); |
441 | setDefaultImage = true; | 445 | setDefaultImage = true; |
442 | } | 446 | } |
443 | picString = "<img src=\"defaultIcon\" width=\"64\" height=\"64\">"; | 447 | picString = "<img src=\"defaultIcon\" width=\"64\" height=\"64\">"; |
444 | } | 448 | } |
445 | } | 449 | } |
446 | } | 450 | } |
447 | } | 451 | } |
448 | mText = QString::fromLatin1( | 452 | mText = QString::fromLatin1( |
449 | "<html>" | 453 | "<html>" |
450 | "<body text=\"%1\" bgcolor=\"%2\">" // text and background color | 454 | "<body text=\"%1\" bgcolor=\"%2\">" // text and background color |
451 | "<table>" | 455 | "<table>" |
452 | "<tr>" | 456 | "<tr>" |
453 | "<td rowspan=\"3\" align=\"right\" valign=\"top\">" | 457 | "<td rowspan=\"3\" align=\"right\" valign=\"top\">" |
454 | "%3" | 458 | "%3" |
455 | "</td>" | 459 | "</td>" |
456 | "<td align=\"left\"><font size=\"+2\"><b>%4</b></font></td>" // name | 460 | "<td align=\"left\"><font size=\"+2\"><b>%4</b></font></td>" // name |
457 | "</tr>" | 461 | "</tr>" |
458 | "%5" // role | 462 | "%5" // role |
459 | "%6" // organization | 463 | "%6" // organization |
460 | "<td colspan=\"2\"> </td>" | 464 | "<td colspan=\"2\"> </td>" |
461 | "%7" // dynamic part | 465 | "%7" // dynamic part |
462 | "%8" // notes | 466 | "%8" // notes |
463 | "</table>" | 467 | "</table>" |
464 | "</body>" | 468 | "</body>" |
465 | "</html>") | 469 | "</html>") |
466 | //US | 470 | //US |
467 | .arg( /*KGlobalSettings::textColor().name()*/ "black" ) | 471 | .arg( /*KGlobalSettings::textColor().name()*/ "black" ) |
468 | //US | 472 | //US |
469 | .arg( /*KGlobalSettings::baseColor().name()*/ "white" ) | 473 | .arg( /*KGlobalSettings::baseColor().name()*/ "white" ) |
470 | .arg( picString ) | 474 | .arg( picString ) |
471 | .arg( name ) | 475 | .arg( name ) |
472 | .arg( aRole ) | 476 | .arg( aRole ) |
473 | .arg( aOrga ) | 477 | .arg( aOrga ) |
474 | .arg( dynamicPart ) | 478 | .arg( dynamicPart ) |
475 | .arg( notes ); | 479 | .arg( notes ); |
476 | 480 | ||
477 | } else { // no picture! | 481 | } else { // no picture! |
478 | 482 | ||
479 | mText = "<table width=\"100%\">\n"; | 483 | mText = "<table width=\"100%\">\n"; |
480 | //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; | 484 | //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; |
481 | #ifdef DESKTOP_VERSION | 485 | #ifdef DESKTOP_VERSION |
482 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h1>"; | 486 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h1>"; |
483 | mText += "<font color=\"#FFFFFF\">" + name +"</font></h1>"; | 487 | mText += "<font color=\"#FFFFFF\">" + name +"</font></h1>"; |
484 | #else | 488 | #else |
485 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h3>"; | 489 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h3>"; |
486 | mText += "<font color=\"#FFFFFF\"> " + name +"</font></h3>"; | 490 | mText += "<font color=\"#FFFFFF\"> " + name +"</font></h3>"; |
487 | #endif | 491 | #endif |
488 | 492 | ||
489 | mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; | 493 | mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; |
490 | 494 | ||
491 | mText += "<table><td colspan=\"2\"> </td>"; | 495 | mText += "<table><td colspan=\"2\"> </td>"; |
492 | /* | 496 | /* |
493 | mText += QString("<tr><td align=\"right\"><b2>%1</b2></td>" | 497 | mText += QString("<tr><td align=\"right\"><b2>%1</b2></td>" |
494 | "<td align=\"left\"><b>%2</b></td></tr>" ) | 498 | "<td align=\"left\"><b>%2</b></td></tr>" ) |
495 | .arg( i18n(" ") ) | 499 | .arg( i18n(" ") ) |
496 | .arg( name ); | 500 | .arg( name ); |
497 | */ | 501 | */ |
498 | if ( ! mAddressee.role().isEmpty() ) | 502 | if ( ! mAddressee.role().isEmpty() ) |
499 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" | 503 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" |
500 | "<td align=\"left\">%2</td></tr>" ) | 504 | "<td align=\"left\">%2</td></tr>" ) |
501 | .arg( i18n(" ") ) | 505 | .arg( i18n(" ") ) |
502 | .arg( mAddressee.role()); | 506 | .arg( mAddressee.role()); |
503 | if ( ! mAddressee.organization().isEmpty() ) | 507 | if ( ! mAddressee.organization().isEmpty() ) |
504 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" | 508 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" |
505 | "<td align=\"left\">%2</td></tr>" ) | 509 | "<td align=\"left\">%2</td></tr>" ) |
506 | .arg( i18n(" ") ) | 510 | .arg( i18n(" ") ) |
507 | .arg( mAddressee.organization()); | 511 | .arg( mAddressee.organization()); |
508 | mText += dynamicPart; | 512 | mText += dynamicPart; |
509 | mText += notes; | 513 | mText += notes; |
510 | mText += "</table>"; | 514 | mText += "</table>"; |
511 | 515 | ||
512 | } | 516 | } |
513 | 517 | ||
514 | // at last display it... | 518 | // at last display it... |
515 | setText( mText ); | 519 | setText( mText ); |
516 | 520 | ||
517 | } | 521 | } |
518 | 522 | ||
519 | QString AddresseeView::getPhoneNumbers( KABC::PhoneNumber::List phones ,bool preferred ) | 523 | QString AddresseeView::getPhoneNumbers( KABC::PhoneNumber::List phones ,bool preferred ) |
520 | { | 524 | { |
521 | ExternalAppHandler* eah = ExternalAppHandler::instance(); | 525 | ExternalAppHandler* eah = ExternalAppHandler::instance(); |
522 | bool kphoneAvail = eah->isPhoneAppAvailable(); | 526 | bool kphoneAvail = eah->isPhoneAppAvailable(); |
523 | bool kfaxAvail = eah->isFaxAppAvailable(); | 527 | bool kfaxAvail = eah->isFaxAppAvailable(); |
524 | bool ksmsAvail = eah->isSMSAppAvailable(); | 528 | bool ksmsAvail = eah->isSMSAppAvailable(); |
525 | bool kpagerAvail = eah->isPagerAppAvailable(); | 529 | bool kpagerAvail = eah->isPagerAppAvailable(); |
526 | bool ksipAvail = eah->isSIPAppAvailable(); | 530 | bool ksipAvail = eah->isSIPAppAvailable(); |
527 | QString dynamicPart; | 531 | QString dynamicPart; |
528 | KABC::PhoneNumber::List::ConstIterator phoneIt; | 532 | KABC::PhoneNumber::List::ConstIterator phoneIt; |
529 | QString extension; | 533 | QString extension; |
530 | int phonetype; | 534 | int phonetype; |
531 | QString sms; | 535 | QString sms; |
532 | for ( phoneIt = phones.begin(); phoneIt != phones.end(); ++phoneIt ) { | 536 | for ( phoneIt = phones.begin(); phoneIt != phones.end(); ++phoneIt ) { |
533 | phonetype = (*phoneIt).type(); | 537 | phonetype = (*phoneIt).type(); |
534 | if ( ((phonetype & KABC::PhoneNumber::Pref) == 0 ) == preferred ) | 538 | if ( ((phonetype & KABC::PhoneNumber::Pref) == 0 ) == preferred ) |
535 | continue; | 539 | continue; |
536 | if (ksmsAvail && | 540 | if (ksmsAvail && |
537 | ( | 541 | ( |
538 | ((phonetype & KABC::PhoneNumber::Car) == KABC::PhoneNumber::Car) || | 542 | ((phonetype & KABC::PhoneNumber::Car) == KABC::PhoneNumber::Car) || |
539 | ((phonetype & KABC::PhoneNumber::Cell) == KABC::PhoneNumber::Cell) | 543 | ((phonetype & KABC::PhoneNumber::Cell) == KABC::PhoneNumber::Cell) |
540 | ) | 544 | ) |
541 | ) | 545 | ) |
542 | { | 546 | { |
543 | sms = QString("<a href=\"smsto:%1 \">(sms)</a>" ) | 547 | sms = QString("<a href=\"smsto:%1 \">(sms)</a>" ) |
544 | .arg( (*phoneIt).number() ); | 548 | .arg( (*phoneIt).number() ); |
545 | 549 | ||
546 | } | 550 | } |
547 | else | 551 | else |
548 | sms = ""; | 552 | sms = ""; |
549 | 553 | ||
550 | extension = QString::null; | 554 | extension = QString::null; |
551 | if ((phonetype & KABC::PhoneNumber::Fax) == KABC::PhoneNumber::Fax) { | 555 | if ((phonetype & KABC::PhoneNumber::Fax) == KABC::PhoneNumber::Fax) { |
552 | if (kfaxAvail) extension = "faxto:"; | 556 | if (kfaxAvail) extension = "faxto:"; |
553 | } | 557 | } |
554 | else if ((phonetype & KABC::PhoneNumber::Pager) == KABC::PhoneNumber::Pager) { | 558 | else if ((phonetype & KABC::PhoneNumber::Pager) == KABC::PhoneNumber::Pager) { |
555 | if (kpagerAvail) extension = "pagerto:"; | 559 | if (kpagerAvail) extension = "pagerto:"; |
556 | } | 560 | } |
557 | else if ((phonetype & KABC::PhoneNumber::Sip) == KABC::PhoneNumber::Sip) { | 561 | else if ((phonetype & KABC::PhoneNumber::Sip) == KABC::PhoneNumber::Sip) { |
558 | if (ksipAvail) extension = "sipto:"; | 562 | if (ksipAvail) extension = "sipto:"; |
559 | } | 563 | } |
560 | else if (kphoneAvail) { | 564 | else if (kphoneAvail) { |
561 | extension = "phoneto:"; | 565 | extension = "phoneto:"; |
562 | } | 566 | } |
563 | else | 567 | else |
564 | extension = QString::null; | 568 | extension = QString::null; |
565 | 569 | ||
566 | if ( !extension.isEmpty() ) { | 570 | if ( !extension.isEmpty() ) { |
567 | dynamicPart += QString( | 571 | dynamicPart += QString( |
568 | "<tr><td align=\"right\"><b>%1</b></td>" | 572 | "<tr><td align=\"right\"><b>%1</b></td>" |
569 | "<td align=\"left\"><a href=\"%2%3 \">%4</a> %5</td></tr>" ) | 573 | "<td align=\"left\"><a href=\"%2%3 \">%4</a> %5</td></tr>" ) |
570 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) | 574 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) |
571 | .arg( extension ) | 575 | .arg( extension ) |
572 | .arg( (*phoneIt).number() ) | 576 | .arg( (*phoneIt).number() ) |
573 | .arg( (*phoneIt).number() ) | 577 | .arg( (*phoneIt).number() ) |
574 | .arg( sms ); | 578 | .arg( sms ); |
575 | 579 | ||
576 | } else { | 580 | } else { |
577 | dynamicPart += QString( | 581 | dynamicPart += QString( |
578 | "<tr><td align=\"right\"><b>%1</b></td>" | 582 | "<tr><td align=\"right\"><b>%1</b></td>" |
579 | "<td align=\"left\">%2 %3</td></tr>" ) | 583 | "<td align=\"left\">%2 %3</td></tr>" ) |
580 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) | 584 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) |
581 | .arg( (*phoneIt).number() ) | 585 | .arg( (*phoneIt).number() ) |
582 | .arg( sms ); | 586 | .arg( sms ); |
583 | } | 587 | } |
584 | } | 588 | } |
585 | return dynamicPart; | 589 | return dynamicPart; |
586 | } | 590 | } |
587 | /* | 591 | /* |
588 | KABC::Addressee AddresseeView::addressee() const | 592 | KABC::Addressee AddresseeView::addressee() const |
589 | { | 593 | { |
590 | return mAddressee; | 594 | return mAddressee; |
591 | } | 595 | } |
592 | */ | 596 | */ |
593 | void AddresseeView::addTag(const QString & tag,const QString & text) | 597 | void AddresseeView::addTag(const QString & tag,const QString & text) |
594 | { | 598 | { |
595 | if ( text.isEmpty() ) | 599 | if ( text.isEmpty() ) |
596 | return; | 600 | return; |
597 | int number=text.contains("\n"); | 601 | int number=text.contains("\n"); |
598 | QString str = "<" + tag + ">"; | 602 | QString str = "<" + tag + ">"; |
599 | QString tmpText=text; | 603 | QString tmpText=text; |
600 | QString tmpStr=str; | 604 | QString tmpStr=str; |
601 | if(number !=-1) | 605 | if(number !=-1) |
602 | { | 606 | { |
603 | if (number > 0) { | 607 | if (number > 0) { |
604 | int pos=0; | 608 | int pos=0; |
605 | QString tmp; | 609 | QString tmp; |
606 | for(int i=0;i<=number;i++) { | 610 | for(int i=0;i<=number;i++) { |
607 | pos=tmpText.find("\n"); | 611 | pos=tmpText.find("\n"); |
608 | tmp=tmpText.left(pos); | 612 | tmp=tmpText.left(pos); |
609 | tmpText=tmpText.right(tmpText.length()-pos-1); | 613 | tmpText=tmpText.right(tmpText.length()-pos-1); |
610 | tmpStr+=tmp+"<br>"; | 614 | tmpStr+=tmp+"<br>"; |
611 | } | 615 | } |
612 | } | 616 | } |
613 | else tmpStr += tmpText; | 617 | else tmpStr += tmpText; |
614 | tmpStr+="</" + tag + ">"; | 618 | tmpStr+="</" + tag + ">"; |
615 | mText.append(tmpStr); | 619 | mText.append(tmpStr); |
616 | } | 620 | } |
617 | else | 621 | else |
618 | { | 622 | { |
619 | str += text + "</" + tag + ">"; | 623 | str += text + "</" + tag + ">"; |
620 | mText.append(str); | 624 | mText.append(str); |
621 | } | 625 | } |
622 | } | 626 | } |
623 | 627 | ||
624 | AddresseeChooser::AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent, const char *name ) : KDialogBase(parent,name, | 628 | AddresseeChooser::AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent, const char *name ) : KDialogBase(parent,name, |
625 | true ,i18n("Conflict! Please choose Adressee!"),Ok|User1|Close,Close, false) | 629 | true ,i18n("Conflict! Please choose Adressee!"),Ok|User1|Close,Close, false) |
626 | { | 630 | { |
627 | findButton( Close )->setText( i18n("Cancel Sync")); | 631 | findButton( Close )->setText( i18n("Cancel Sync")); |
628 | findButton( Ok )->setText( i18n("Remote")); | 632 | findButton( Ok )->setText( i18n("Remote")); |
629 | findButton( User1 )->setText( i18n("Local")); | 633 | findButton( User1 )->setText( i18n("Local")); |
630 | QWidget* topframe = new QWidget( this ); | 634 | QWidget* topframe = new QWidget( this ); |
631 | setMainWidget( topframe ); | 635 | setMainWidget( topframe ); |
632 | QBoxLayout* bl; | 636 | QBoxLayout* bl; |
633 | if ( QApplication::desktop()->width() < 640 ) { | 637 | if ( QApplication::desktop()->width() < 640 ) { |
634 | bl = new QVBoxLayout( topframe ); | 638 | bl = new QVBoxLayout( topframe ); |
635 | } else { | 639 | } else { |
636 | bl = new QHBoxLayout( topframe ); | 640 | bl = new QHBoxLayout( topframe ); |
637 | } | 641 | } |
638 | QVBox* subframe = new QVBox( topframe ); | 642 | QVBox* subframe = new QVBox( topframe ); |
639 | bl->addWidget(subframe ); | 643 | bl->addWidget(subframe ); |
640 | QLabel* lab = new QLabel( i18n("Local Addressee"), subframe ); | 644 | QLabel* lab = new QLabel( i18n("Local Addressee"), subframe ); |
641 | if ( takeloc ) | 645 | if ( takeloc ) |
642 | lab->setBackgroundColor(Qt::green.light() ); | 646 | lab->setBackgroundColor(Qt::green.light() ); |
643 | AddresseeView * av = new AddresseeView( subframe ); | 647 | AddresseeView * av = new AddresseeView( subframe ); |
644 | av->setAddressee( loc ); | 648 | av->setAddressee( loc ); |
645 | subframe = new QVBox( topframe ); | 649 | subframe = new QVBox( topframe ); |
646 | bl->addWidget(subframe ); | 650 | bl->addWidget(subframe ); |
647 | lab = new QLabel( i18n("Remote Addressee"), subframe ); | 651 | lab = new QLabel( i18n("Remote Addressee"), subframe ); |
648 | if ( !takeloc ) | 652 | if ( !takeloc ) |
649 | lab->setBackgroundColor(Qt::green.light() ); | 653 | lab->setBackgroundColor(Qt::green.light() ); |
650 | av = new AddresseeView( subframe ); | 654 | av = new AddresseeView( subframe ); |
651 | av->setAddressee( rem ); | 655 | av->setAddressee( rem ); |
652 | QObject::connect(findButton( Ok ),SIGNAL(clicked()),this, SLOT(slot_remote())); | 656 | QObject::connect(findButton( Ok ),SIGNAL(clicked()),this, SLOT(slot_remote())); |
653 | QObject::connect(this,SIGNAL(user1Clicked()),this, SLOT(slot_local())); | 657 | QObject::connect(this,SIGNAL(user1Clicked()),this, SLOT(slot_local())); |
654 | #ifndef DESKTOP_VERSION | 658 | #ifndef DESKTOP_VERSION |
655 | showMaximized(); | 659 | showMaximized(); |
656 | #else | 660 | #else |
657 | resize ( 640, 400 ); | 661 | resize ( 640, 400 ); |
658 | #endif | 662 | #endif |
659 | } | 663 | } |
660 | 664 | ||
661 | int AddresseeChooser::executeD( bool local ) | 665 | int AddresseeChooser::executeD( bool local ) |
662 | { | 666 | { |
663 | mSyncResult = 3; | 667 | mSyncResult = 3; |
664 | if ( local ) | 668 | if ( local ) |
665 | findButton( User1 )->setFocus(); | 669 | findButton( User1 )->setFocus(); |
666 | else | 670 | else |
667 | findButton( Ok )->setFocus(); | 671 | findButton( Ok )->setFocus(); |
668 | exec(); | 672 | exec(); |
669 | return mSyncResult; | 673 | return mSyncResult; |
670 | } | 674 | } |
671 | void AddresseeChooser::slot_remote() | 675 | void AddresseeChooser::slot_remote() |
672 | { | 676 | { |
673 | mSyncResult = 2; | 677 | mSyncResult = 2; |
674 | accept(); | 678 | accept(); |
675 | } | 679 | } |
676 | void AddresseeChooser::slot_local() | 680 | void AddresseeChooser::slot_local() |
677 | { | 681 | { |
678 | mSyncResult = 1; | 682 | mSyncResult = 1; |
679 | accept(); | 683 | accept(); |
680 | } | 684 | } |
diff --git a/kaddressbook/addresseeeditorwidget.cpp b/kaddressbook/addresseeeditorwidget.cpp index 5334a0e..29abd6f 100644 --- a/kaddressbook/addresseeeditorwidget.cpp +++ b/kaddressbook/addresseeeditorwidget.cpp | |||
@@ -197,1025 +197,1025 @@ void AddresseeEditorWidget::setupTab1() | |||
197 | layout->addWidget( mRoleEdit, 1, 1 ); | 197 | layout->addWidget( mRoleEdit, 1, 1 ); |
198 | 198 | ||
199 | // Organization | 199 | // Organization |
200 | label = new QLabel( i18n( "Organization:" ), tab1 ); | 200 | label = new QLabel( i18n( "Organization:" ), tab1 ); |
201 | mOrgEdit = new KLineEdit( tab1 ); | 201 | mOrgEdit = new KLineEdit( tab1 ); |
202 | label->setBuddy( mOrgEdit ); | 202 | label->setBuddy( mOrgEdit ); |
203 | connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ), | 203 | connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ), |
204 | SLOT( textChanged( const QString& ) ) ); | 204 | SLOT( textChanged( const QString& ) ) ); |
205 | layout->addWidget( label, 2, 0 ); | 205 | layout->addWidget( label, 2, 0 ); |
206 | layout->addWidget( mOrgEdit, 2, 1 ); | 206 | layout->addWidget( mOrgEdit, 2, 1 ); |
207 | 207 | ||
208 | // File as (formatted name) | 208 | // File as (formatted name) |
209 | label = new QLabel( i18n( "Formatted name:" ), tab1 ); | 209 | label = new QLabel( i18n( "Formatted name:" ), tab1 ); |
210 | mFormattedNameLabel = new KSqueezedTextLabel( tab1 ); | 210 | mFormattedNameLabel = new KSqueezedTextLabel( tab1 ); |
211 | layout->addWidget( label, 3, 0 ); | 211 | layout->addWidget( label, 3, 0 ); |
212 | layout->addWidget( mFormattedNameLabel, 3, 1 ); | 212 | layout->addWidget( mFormattedNameLabel, 3, 1 ); |
213 | /* LR | 213 | /* LR |
214 | // Left hand separator. This separator doesn't go all the way | 214 | // Left hand separator. This separator doesn't go all the way |
215 | // across so the dialog still flows from top to bottom | 215 | // across so the dialog still flows from top to bottom |
216 | bar = new KSeparator( KSeparator::HLine, tab1 ); | 216 | bar = new KSeparator( KSeparator::HLine, tab1 ); |
217 | layout->addMultiCellWidget( bar, 4, 4, 0, 2 ); | 217 | layout->addMultiCellWidget( bar, 4, 4, 0, 2 ); |
218 | */ | 218 | */ |
219 | ////////////////////////////////////// | 219 | ////////////////////////////////////// |
220 | 220 | ||
221 | /* LR | 221 | /* LR |
222 | // Phone numbers (upper right) | 222 | // Phone numbers (upper right) |
223 | label = new QLabel( tab1 ); | 223 | label = new QLabel( tab1 ); |
224 | //US loadIcon call is ambiguous. Add one more parameter | 224 | //US loadIcon call is ambiguous. Add one more parameter |
225 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); | 225 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); |
226 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); | 226 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); |
227 | //US layout->addMultiCellWidget( label, 0, 1, 3, 3 ); | 227 | //US layout->addMultiCellWidget( label, 0, 1, 3, 3 ); |
228 | layout->addMultiCellWidget( label, 5, 6, 0, 0 ); | 228 | layout->addMultiCellWidget( label, 5, 6, 0, 0 ); |
229 | */ | 229 | */ |
230 | mPhoneEditWidget = new PhoneEditWidget( tab1 ); | 230 | mPhoneEditWidget = new PhoneEditWidget( tab1 ); |
231 | connect( mPhoneEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); | 231 | connect( mPhoneEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); |
232 | //US layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 ); | 232 | //US layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 ); |
233 | int iii; | 233 | int iii; |
234 | #ifndef DESKTOP_VERSION | 234 | #ifndef DESKTOP_VERSION |
235 | iii = 7; | 235 | iii = 7; |
236 | #else | 236 | #else |
237 | iii = 8; | 237 | iii = 8; |
238 | #endif | 238 | #endif |
239 | layout->addMultiCellWidget( mPhoneEditWidget, 4, iii, 0, 1 ); | 239 | layout->addMultiCellWidget( mPhoneEditWidget, 4, iii, 0, 1 ); |
240 | ++iii; | 240 | ++iii; |
241 | /* LR | 241 | /* LR |
242 | bar = new KSeparator( KSeparator::HLine, tab1 ); | 242 | bar = new KSeparator( KSeparator::HLine, tab1 ); |
243 | //US layout->addMultiCellWidget( bar, 4, 4, 3, 6 ); | 243 | //US layout->addMultiCellWidget( bar, 4, 4, 3, 6 ); |
244 | layout->addMultiCellWidget( bar, 9, 9, 0, 2 ); | 244 | layout->addMultiCellWidget( bar, 9, 9, 0, 2 ); |
245 | */ | 245 | */ |
246 | /*US | 246 | /*US |
247 | ////////////////////////////////////// | 247 | ////////////////////////////////////// |
248 | // Addresses (lower left) | 248 | // Addresses (lower left) |
249 | label = new QLabel( tab1 ); | 249 | label = new QLabel( tab1 ); |
250 | //US loadIcon call is ambiguous. Add one more parameter | 250 | //US loadIcon call is ambiguous. Add one more parameter |
251 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop ) ); | 251 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop ) ); |
252 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); | 252 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); |
253 | layout->addMultiCellWidget( label, 5, 6, 0, 0 ); | 253 | layout->addMultiCellWidget( label, 5, 6, 0, 0 ); |
254 | 254 | ||
255 | mAddressEditWidget = new AddressEditWidget( tab1 ); | 255 | mAddressEditWidget = new AddressEditWidget( tab1 ); |
256 | connect( mAddressEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); | 256 | connect( mAddressEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); |
257 | layout->addMultiCellWidget( mAddressEditWidget, 5, 9, 1, 2 ); | 257 | layout->addMultiCellWidget( mAddressEditWidget, 5, 9, 1, 2 ); |
258 | 258 | ||
259 | ////////////////////////////////////// | 259 | ////////////////////////////////////// |
260 | // Email / Web (lower right) | 260 | // Email / Web (lower right) |
261 | label = new QLabel( tab1 ); | 261 | label = new QLabel( tab1 ); |
262 | //US loadIcon call is ambiguous. Add one more parameter | 262 | //US loadIcon call is ambiguous. Add one more parameter |
263 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop) ); | 263 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop) ); |
264 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop, 0) ); | 264 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop, 0) ); |
265 | layout->addMultiCellWidget( label, 5, 6, 3, 3 ); | 265 | layout->addMultiCellWidget( label, 5, 6, 3, 3 ); |
266 | 266 | ||
267 | mEmailWidget = new EmailEditWidget( tab1 ); | 267 | mEmailWidget = new EmailEditWidget( tab1 ); |
268 | connect( mEmailWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); | 268 | connect( mEmailWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); |
269 | layout->addMultiCellWidget( mEmailWidget, 5, 6, 4, 6 ); | 269 | layout->addMultiCellWidget( mEmailWidget, 5, 6, 4, 6 ); |
270 | 270 | ||
271 | // add the separator | 271 | // add the separator |
272 | bar = new KSeparator( KSeparator::HLine, tab1 ); | 272 | bar = new KSeparator( KSeparator::HLine, tab1 ); |
273 | layout->addMultiCellWidget( bar, 7, 7, 3, 6 ); | 273 | layout->addMultiCellWidget( bar, 7, 7, 3, 6 ); |
274 | 274 | ||
275 | label = new QLabel( tab1 ); | 275 | label = new QLabel( tab1 ); |
276 | //US loadIcon call is ambiguous. Add one more parameter | 276 | //US loadIcon call is ambiguous. Add one more parameter |
277 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop) ); | 277 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop) ); |
278 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop, 0) ); | 278 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop, 0) ); |
279 | layout->addMultiCellWidget( label, 8, 9, 3, 3 ); | 279 | layout->addMultiCellWidget( label, 8, 9, 3, 3 ); |
280 | 280 | ||
281 | label = new QLabel( i18n( "URL:" ), tab1 ); | 281 | label = new QLabel( i18n( "URL:" ), tab1 ); |
282 | mURLEdit = new KLineEdit( tab1 ); | 282 | mURLEdit = new KLineEdit( tab1 ); |
283 | connect( mURLEdit, SIGNAL( textChanged( const QString& ) ), | 283 | connect( mURLEdit, SIGNAL( textChanged( const QString& ) ), |
284 | SLOT( textChanged( const QString& ) ) ); | 284 | SLOT( textChanged( const QString& ) ) ); |
285 | label->setBuddy( mURLEdit ); | 285 | label->setBuddy( mURLEdit ); |
286 | layout->addWidget( label, 8, 4 ); | 286 | layout->addWidget( label, 8, 4 ); |
287 | layout->addMultiCellWidget( mURLEdit, 8, 8, 5, 6 ); | 287 | layout->addMultiCellWidget( mURLEdit, 8, 8, 5, 6 ); |
288 | 288 | ||
289 | label = new QLabel( i18n( "&IM address:" ), tab1 ); | 289 | label = new QLabel( i18n( "&IM address:" ), tab1 ); |
290 | mIMAddressEdit = new KLineEdit( tab1 ); | 290 | mIMAddressEdit = new KLineEdit( tab1 ); |
291 | connect( mIMAddressEdit, SIGNAL( textChanged( const QString& ) ), | 291 | connect( mIMAddressEdit, SIGNAL( textChanged( const QString& ) ), |
292 | SLOT( textChanged( const QString& ) ) ); | 292 | SLOT( textChanged( const QString& ) ) ); |
293 | label->setBuddy( mIMAddressEdit ); | 293 | label->setBuddy( mIMAddressEdit ); |
294 | layout->addWidget( label, 9, 4 ); | 294 | layout->addWidget( label, 9, 4 ); |
295 | layout->addMultiCellWidget( mIMAddressEdit, 9, 9, 5, 6 ); | 295 | layout->addMultiCellWidget( mIMAddressEdit, 9, 9, 5, 6 ); |
296 | 296 | ||
297 | layout->addColSpacing( 6, 50 ); | 297 | layout->addColSpacing( 6, 50 ); |
298 | 298 | ||
299 | bar = new KSeparator( KSeparator::HLine, tab1 ); | 299 | bar = new KSeparator( KSeparator::HLine, tab1 ); |
300 | layout->addMultiCellWidget( bar, 10, 10, 0, 6 ); | 300 | layout->addMultiCellWidget( bar, 10, 10, 0, 6 ); |
301 | */ | 301 | */ |
302 | /////////////////////////////////////// | 302 | /////////////////////////////////////// |
303 | QHBox *categoryBox = new QHBox( tab1 ,"cato"); | 303 | QHBox *categoryBox = new QHBox( tab1 ,"cato"); |
304 | categoryBox->setSpacing( KDialogBase::spacingHint() ); | 304 | categoryBox->setSpacing( KDialogBase::spacingHint() ); |
305 | categoryBox->setMargin( KDialogBase::marginHintSmall() ); | 305 | categoryBox->setMargin( KDialogBase::marginHintSmall() ); |
306 | 306 | ||
307 | // Categories | 307 | // Categories |
308 | button = new QPushButton( i18n( "Categories" ), categoryBox ); | 308 | button = new QPushButton( i18n( "Categories" ), categoryBox ); |
309 | connect( button, SIGNAL( clicked() ), SLOT( categoryButtonClicked() ) ); | 309 | connect( button, SIGNAL( clicked() ), SLOT( categoryButtonClicked() ) ); |
310 | 310 | ||
311 | mCategoryEdit = new KLineEdit( categoryBox ); | 311 | mCategoryEdit = new KLineEdit( categoryBox ); |
312 | mCategoryEdit->setReadOnly( true ); | 312 | mCategoryEdit->setReadOnly( true ); |
313 | connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), | 313 | connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), |
314 | SLOT( textChanged( const QString& ) ) ); | 314 | SLOT( textChanged( const QString& ) ) ); |
315 | 315 | ||
316 | mSecrecyWidget = new SecrecyWidget( categoryBox ); | 316 | mSecrecyWidget = new SecrecyWidget( categoryBox ); |
317 | connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 317 | connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
318 | 318 | ||
319 | //US layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 ); | 319 | //US layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 ); |
320 | layout->addMultiCellWidget( categoryBox, iii, iii, 0, 1 ); | 320 | layout->addMultiCellWidget( categoryBox, iii, iii, 0, 1 ); |
321 | 321 | ||
322 | // Build the layout and add to the tab widget | 322 | // Build the layout and add to the tab widget |
323 | layout->activate(); // required | 323 | layout->activate(); // required |
324 | 324 | ||
325 | mTabWidget->addTab( tab1, i18n( "&General" ) ); | 325 | mTabWidget->addTab( tab1, i18n( "&General" ) ); |
326 | } | 326 | } |
327 | 327 | ||
328 | 328 | ||
329 | void AddresseeEditorWidget::setupTab1_1() | 329 | void AddresseeEditorWidget::setupTab1_1() |
330 | { | 330 | { |
331 | // This is the Address tab | 331 | // This is the Address tab |
332 | QWidget *tab1_1 = new QWidget( mTabWidget ); | 332 | QWidget *tab1_1 = new QWidget( mTabWidget ); |
333 | 333 | ||
334 | //US QGridLayout *layout = new QGridLayout( tab1_1, 11, 7 ); | 334 | //US QGridLayout *layout = new QGridLayout( tab1_1, 11, 7 ); |
335 | QGridLayout *layout = new QGridLayout( tab1_1, 7, 2 ); | 335 | QGridLayout *layout = new QGridLayout( tab1_1, 7, 2 ); |
336 | layout->setMargin( KDialogBase::marginHintSmall() ); | 336 | layout->setMargin( KDialogBase::marginHintSmall() ); |
337 | layout->setSpacing( KDialogBase::spacingHintSmall() ); | 337 | layout->setSpacing( KDialogBase::spacingHintSmall() ); |
338 | 338 | ||
339 | QLabel *label; | 339 | QLabel *label; |
340 | KSeparator* bar; | 340 | KSeparator* bar; |
341 | QPushButton *button; | 341 | QPushButton *button; |
342 | 342 | ||
343 | /*US | 343 | /*US |
344 | ////////////////////////////////// | 344 | ////////////////////////////////// |
345 | // Upper left group (person info) | 345 | // Upper left group (person info) |
346 | 346 | ||
347 | // Person icon | 347 | // Person icon |
348 | label = new QLabel( tab1 ); | 348 | label = new QLabel( tab1 ); |
349 | //US ambiguous call. Add one more parameter | 349 | //US ambiguous call. Add one more parameter |
350 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); | 350 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); |
351 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); | 351 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); |
352 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); | 352 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); |
353 | 353 | ||
354 | // First name | 354 | // First name |
355 | button = new QPushButton( i18n( "Name..." ), tab1 ); | 355 | button = new QPushButton( i18n( "Name..." ), tab1 ); |
356 | QToolTip::add( button, i18n( "Edit the contact's name" ) ); | 356 | QToolTip::add( button, i18n( "Edit the contact's name" ) ); |
357 | mNameEdit = new KLineEdit( tab1, "mNameEdit" ); | 357 | mNameEdit = new KLineEdit( tab1, "mNameEdit" ); |
358 | connect( mNameEdit, SIGNAL( textChanged( const QString& ) ), | 358 | connect( mNameEdit, SIGNAL( textChanged( const QString& ) ), |
359 | SLOT( nameTextChanged( const QString& ) ) ); | 359 | SLOT( nameTextChanged( const QString& ) ) ); |
360 | connect( button, SIGNAL( clicked() ), SLOT( nameButtonClicked() ) ); | 360 | connect( button, SIGNAL( clicked() ), SLOT( nameButtonClicked() ) ); |
361 | 361 | ||
362 | #ifndef KAB_EMBEDDED | 362 | #ifndef KAB_EMBEDDED |
363 | mNameLabel = new KSqueezedTextLabel( tab1 ); | 363 | mNameLabel = new KSqueezedTextLabel( tab1 ); |
364 | mNameLabel->hide(); | 364 | mNameLabel->hide(); |
365 | #else //KAB_EMBEDDED | 365 | #else //KAB_EMBEDDED |
366 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); | 366 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); |
367 | #endif //KAB_EMBEDDED | 367 | #endif //KAB_EMBEDDED |
368 | 368 | ||
369 | layout->addWidget( button, 0, 1 ); | 369 | layout->addWidget( button, 0, 1 ); |
370 | layout->addWidget( mNameEdit, 0, 2 ); | 370 | layout->addWidget( mNameEdit, 0, 2 ); |
371 | 371 | ||
372 | #ifndef KAB_EMBEDDED | 372 | #ifndef KAB_EMBEDDED |
373 | layout->addWidget( mNameLabel, 0, 2 ); | 373 | layout->addWidget( mNameLabel, 0, 2 ); |
374 | #else //KAB_EMBEDDED | 374 | #else //KAB_EMBEDDED |
375 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); | 375 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); |
376 | #endif //KAB_EMBEDDED | 376 | #endif //KAB_EMBEDDED |
377 | 377 | ||
378 | label = new QLabel( i18n( "Role:" ), tab1 ); | 378 | label = new QLabel( i18n( "Role:" ), tab1 ); |
379 | mRoleEdit = new KLineEdit( tab1 ); | 379 | mRoleEdit = new KLineEdit( tab1 ); |
380 | connect( mRoleEdit, SIGNAL( textChanged( const QString& ) ), | 380 | connect( mRoleEdit, SIGNAL( textChanged( const QString& ) ), |
381 | SLOT( textChanged( const QString& ) ) ); | 381 | SLOT( textChanged( const QString& ) ) ); |
382 | label->setBuddy( mRoleEdit ); | 382 | label->setBuddy( mRoleEdit ); |
383 | layout->addWidget( label, 1, 1 ); | 383 | layout->addWidget( label, 1, 1 ); |
384 | layout->addWidget( mRoleEdit, 1, 2 ); | 384 | layout->addWidget( mRoleEdit, 1, 2 ); |
385 | 385 | ||
386 | // Organization | 386 | // Organization |
387 | label = new QLabel( i18n( "Organization:" ), tab1 ); | 387 | label = new QLabel( i18n( "Organization:" ), tab1 ); |
388 | mOrgEdit = new KLineEdit( tab1 ); | 388 | mOrgEdit = new KLineEdit( tab1 ); |
389 | label->setBuddy( mOrgEdit ); | 389 | label->setBuddy( mOrgEdit ); |
390 | connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ), | 390 | connect( mOrgEdit, SIGNAL( textChanged( const QString& ) ), |
391 | SLOT( textChanged( const QString& ) ) ); | 391 | SLOT( textChanged( const QString& ) ) ); |
392 | layout->addWidget( label, 2, 1 ); | 392 | layout->addWidget( label, 2, 1 ); |
393 | layout->addWidget( mOrgEdit, 2, 2 ); | 393 | layout->addWidget( mOrgEdit, 2, 2 ); |
394 | 394 | ||
395 | // File as (formatted name) | 395 | // File as (formatted name) |
396 | label = new QLabel( i18n( "Formatted name:" ), tab1 ); | 396 | label = new QLabel( i18n( "Formatted name:" ), tab1 ); |
397 | #ifndef KAB_EMBEDDED | 397 | #ifndef KAB_EMBEDDED |
398 | mFormattedNameLabel = new KSqueezedTextLabel( tab1 ); | 398 | mFormattedNameLabel = new KSqueezedTextLabel( tab1 ); |
399 | #else //KAB_EMBEDDED | 399 | #else //KAB_EMBEDDED |
400 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); | 400 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); |
401 | #endif //KAB_EMBEDDED | 401 | #endif //KAB_EMBEDDED |
402 | layout->addWidget( label, 3, 1 ); | 402 | layout->addWidget( label, 3, 1 ); |
403 | #ifndef KAB_EMBEDDED | 403 | #ifndef KAB_EMBEDDED |
404 | layout->addWidget( mFormattedNameLabel, 3, 2 ); | 404 | layout->addWidget( mFormattedNameLabel, 3, 2 ); |
405 | #else //KAB_EMBEDDED | 405 | #else //KAB_EMBEDDED |
406 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); | 406 | qDebug("AddresseeEditorWidget::setupTab1 has to be changed"); |
407 | #endif //KAB_EMBEDDED | 407 | #endif //KAB_EMBEDDED |
408 | 408 | ||
409 | // Left hand separator. This separator doesn't go all the way | 409 | // Left hand separator. This separator doesn't go all the way |
410 | // across so the dialog still flows from top to bottom | 410 | // across so the dialog still flows from top to bottom |
411 | bar = new KSeparator( KSeparator::HLine, tab1 ); | 411 | bar = new KSeparator( KSeparator::HLine, tab1 ); |
412 | layout->addMultiCellWidget( bar, 4, 4, 0, 2 ); | 412 | layout->addMultiCellWidget( bar, 4, 4, 0, 2 ); |
413 | 413 | ||
414 | ////////////////////////////////////// | 414 | ////////////////////////////////////// |
415 | // Phone numbers (upper right) | 415 | // Phone numbers (upper right) |
416 | label = new QLabel( tab1 ); | 416 | label = new QLabel( tab1 ); |
417 | //US loadIcon call is ambiguous. Add one more parameter | 417 | //US loadIcon call is ambiguous. Add one more parameter |
418 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); | 418 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); |
419 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); | 419 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); |
420 | layout->addMultiCellWidget( label, 0, 1, 3, 3 ); | 420 | layout->addMultiCellWidget( label, 0, 1, 3, 3 ); |
421 | 421 | ||
422 | mPhoneEditWidget = new PhoneEditWidget( tab1 ); | 422 | mPhoneEditWidget = new PhoneEditWidget( tab1 ); |
423 | connect( mPhoneEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); | 423 | connect( mPhoneEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); |
424 | layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 ); | 424 | layout->addMultiCellWidget( mPhoneEditWidget, 0, 3, 4, 6 ); |
425 | 425 | ||
426 | bar = new KSeparator( KSeparator::HLine, tab1 ); | 426 | bar = new KSeparator( KSeparator::HLine, tab1 ); |
427 | layout->addMultiCellWidget( bar, 4, 4, 3, 6 ); | 427 | layout->addMultiCellWidget( bar, 4, 4, 3, 6 ); |
428 | */ | 428 | */ |
429 | ////////////////////////////////////// | 429 | ////////////////////////////////////// |
430 | // Addresses (lower left) | 430 | // Addresses (lower left) |
431 | /* LR | 431 | /* LR |
432 | label = new QLabel( tab1_1 ); | 432 | label = new QLabel( tab1_1 ); |
433 | //US loadIcon call is ambiguous. Add one more parameter | 433 | //US loadIcon call is ambiguous. Add one more parameter |
434 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop ) ); | 434 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop ) ); |
435 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); | 435 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "gohome", KIcon::Desktop, 0 ) ); |
436 | //US layout->addMultiCellWidget( label, 5, 6, 0, 0 ); | 436 | //US layout->addMultiCellWidget( label, 5, 6, 0, 0 ); |
437 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); | 437 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); |
438 | */ | 438 | */ |
439 | 439 | ||
440 | mAddressEditWidget = new AddressEditWidget( tab1_1 ); | 440 | mAddressEditWidget = new AddressEditWidget( tab1_1 ); |
441 | connect( mAddressEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); | 441 | connect( mAddressEditWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); |
442 | //US layout->addMultiCellWidget( mAddressEditWidget, 5, 9, 1, 2 ); | 442 | //US layout->addMultiCellWidget( mAddressEditWidget, 5, 9, 1, 2 ); |
443 | layout->addMultiCellWidget( mAddressEditWidget, 0, 4, 0, 1 ); | 443 | layout->addMultiCellWidget( mAddressEditWidget, 0, 4, 0, 1 ); |
444 | 444 | ||
445 | //US | 445 | //US |
446 | /* LR | 446 | /* LR |
447 | bar = new KSeparator( KSeparator::HLine, tab1_1 ); | 447 | bar = new KSeparator( KSeparator::HLine, tab1_1 ); |
448 | layout->addMultiCellWidget( bar, 5, 5, 0, 3 ); | 448 | layout->addMultiCellWidget( bar, 5, 5, 0, 3 ); |
449 | */ | 449 | */ |
450 | 450 | ||
451 | ////////////////////////////////////// | 451 | ////////////////////////////////////// |
452 | // Email / Web (lower right) | 452 | // Email / Web (lower right) |
453 | /* LR | 453 | /* LR |
454 | label = new QLabel( tab1_1 ); | 454 | label = new QLabel( tab1_1 ); |
455 | //US loadIcon call is ambiguous. Add one more parameter | 455 | //US loadIcon call is ambiguous. Add one more parameter |
456 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop) ); | 456 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop) ); |
457 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop, 0) ); | 457 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "email", KIcon::Desktop, 0) ); |
458 | //US layout->addMultiCellWidget( label, 5, 6, 3, 3 ); | 458 | //US layout->addMultiCellWidget( label, 5, 6, 3, 3 ); |
459 | layout->addMultiCellWidget( label, 6, 7, 0, 0 ); | 459 | layout->addMultiCellWidget( label, 6, 7, 0, 0 ); |
460 | */ | 460 | */ |
461 | mEmailWidget = new EmailEditWidget( tab1_1 ); | 461 | mEmailWidget = new EmailEditWidget( tab1_1 ); |
462 | connect( mEmailWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); | 462 | connect( mEmailWidget, SIGNAL( modified() ), SLOT( emitModified() ) ); |
463 | //US layout->addMultiCellWidget( mEmailWidget, 5, 6, 4, 6 ); | 463 | //US layout->addMultiCellWidget( mEmailWidget, 5, 6, 4, 6 ); |
464 | layout->addMultiCellWidget( mEmailWidget, 5, 6, 0, 1 ); | 464 | layout->addMultiCellWidget( mEmailWidget, 5, 6, 0, 1 ); |
465 | 465 | ||
466 | /* LR | 466 | /* LR |
467 | // add the separator | 467 | // add the separator |
468 | bar = new KSeparator( KSeparator::HLine, tab1_1 ); | 468 | bar = new KSeparator( KSeparator::HLine, tab1_1 ); |
469 | //US layout->addMultiCellWidget( bar, 7, 7, 3, 6 ); | 469 | //US layout->addMultiCellWidget( bar, 7, 7, 3, 6 ); |
470 | layout->addMultiCellWidget( bar, 8, 8, 0, 3 ); | 470 | layout->addMultiCellWidget( bar, 8, 8, 0, 3 ); |
471 | 471 | ||
472 | label = new QLabel( tab1_1 ); | 472 | label = new QLabel( tab1_1 ); |
473 | //US loadIcon call is ambiguous. Add one more parameter | 473 | //US loadIcon call is ambiguous. Add one more parameter |
474 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop) ); | 474 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop) ); |
475 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop, 0) ); | 475 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "homepage", KIcon::Desktop, 0) ); |
476 | //US layout->addMultiCellWidget( label, 8, 9, 3, 3 ); | 476 | //US layout->addMultiCellWidget( label, 8, 9, 3, 3 ); |
477 | layout->addMultiCellWidget( label, 9, 10, 0, 0 ); | 477 | layout->addMultiCellWidget( label, 9, 10, 0, 0 ); |
478 | */ | 478 | */ |
479 | label = new QLabel( i18n( "URL:" ), tab1_1 ); | 479 | label = new QLabel( i18n( "URL:" ), tab1_1 ); |
480 | mURLEdit = new KLineEdit( tab1_1 ); | 480 | mURLEdit = new KLineEdit( tab1_1 ); |
481 | connect( mURLEdit, SIGNAL( textChanged( const QString& ) ), | 481 | connect( mURLEdit, SIGNAL( textChanged( const QString& ) ), |
482 | SLOT( textChanged( const QString& ) ) ); | 482 | SLOT( textChanged( const QString& ) ) ); |
483 | label->setBuddy( mURLEdit ); | 483 | label->setBuddy( mURLEdit ); |
484 | //US layout->addWidget( label, 8, 4 ); | 484 | //US layout->addWidget( label, 8, 4 ); |
485 | layout->addWidget( label, 7,0 ); | 485 | layout->addWidget( label, 7,0 ); |
486 | //US layout->addMultiCellWidget( mURLEdit, 8, 8, 5, 6 ); | 486 | //US layout->addMultiCellWidget( mURLEdit, 8, 8, 5, 6 ); |
487 | layout->addWidget( mURLEdit, 7, 1); | 487 | layout->addWidget( mURLEdit, 7, 1); |
488 | 488 | ||
489 | label = new QLabel( i18n( "&IM address:" ), tab1_1 ); | 489 | label = new QLabel( i18n( "&IM address:" ), tab1_1 ); |
490 | mIMAddressEdit = new KLineEdit( tab1_1 ); | 490 | mIMAddressEdit = new KLineEdit( tab1_1 ); |
491 | connect( mIMAddressEdit, SIGNAL( textChanged( const QString& ) ), | 491 | connect( mIMAddressEdit, SIGNAL( textChanged( const QString& ) ), |
492 | SLOT( textChanged( const QString& ) ) ); | 492 | SLOT( textChanged( const QString& ) ) ); |
493 | label->setBuddy( mIMAddressEdit ); | 493 | label->setBuddy( mIMAddressEdit ); |
494 | //US layout->addWidget( label, 9, 4 ); | 494 | //US layout->addWidget( label, 9, 4 ); |
495 | layout->addWidget( label, 8, 0 ); | 495 | layout->addWidget( label, 8, 0 ); |
496 | //US layout->addMultiCellWidget( mIMAddressEdit, 9, 9, 5, 6 ); | 496 | //US layout->addMultiCellWidget( mIMAddressEdit, 9, 9, 5, 6 ); |
497 | layout->addWidget( mIMAddressEdit, 8,1 ); | 497 | layout->addWidget( mIMAddressEdit, 8,1 ); |
498 | 498 | ||
499 | //US layout->addColSpacing( 6, 50 ); | 499 | //US layout->addColSpacing( 6, 50 ); |
500 | 500 | ||
501 | //US bar = new KSeparator( KSeparator::HLine, tab1_1 ); | 501 | //US bar = new KSeparator( KSeparator::HLine, tab1_1 ); |
502 | //US layout->addMultiCellWidget( bar, 10, 10, 0, 6 ); | 502 | //US layout->addMultiCellWidget( bar, 10, 10, 0, 6 ); |
503 | 503 | ||
504 | /*US | 504 | /*US |
505 | /////////////////////////////////////// | 505 | /////////////////////////////////////// |
506 | QHBox *categoryBox = new QHBox( tab1 ); | 506 | QHBox *categoryBox = new QHBox( tab1 ); |
507 | categoryBox->setSpacing( KDialogBase::spacingHintSmall() ); | 507 | categoryBox->setSpacing( KDialogBase::spacingHintSmall() ); |
508 | 508 | ||
509 | // Categories | 509 | // Categories |
510 | button = new QPushButton( i18n( "Categories" ), categoryBox ); | 510 | button = new QPushButton( i18n( "Categories" ), categoryBox ); |
511 | connect( button, SIGNAL( clicked() ), SLOT( categoryButtonClicked() ) ); | 511 | connect( button, SIGNAL( clicked() ), SLOT( categoryButtonClicked() ) ); |
512 | 512 | ||
513 | mCategoryEdit = new KLineEdit( categoryBox ); | 513 | mCategoryEdit = new KLineEdit( categoryBox ); |
514 | mCategoryEdit->setReadOnly( true ); | 514 | mCategoryEdit->setReadOnly( true ); |
515 | connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), | 515 | connect( mCategoryEdit, SIGNAL( textChanged( const QString& ) ), |
516 | SLOT( textChanged( const QString& ) ) ); | 516 | SLOT( textChanged( const QString& ) ) ); |
517 | 517 | ||
518 | mSecrecyWidget = new SecrecyWidget( categoryBox ); | 518 | mSecrecyWidget = new SecrecyWidget( categoryBox ); |
519 | connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 519 | connect( mSecrecyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
520 | 520 | ||
521 | layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 ); | 521 | layout->addMultiCellWidget( categoryBox, 11, 11, 0, 6 ); |
522 | */ | 522 | */ |
523 | // Build the layout and add to the tab widget | 523 | // Build the layout and add to the tab widget |
524 | layout->activate(); // required | 524 | layout->activate(); // required |
525 | 525 | ||
526 | mTabWidget->addTab( tab1_1, i18n( "&Address" ) ); | 526 | mTabWidget->addTab( tab1_1, i18n( "&Address" ) ); |
527 | } | 527 | } |
528 | 528 | ||
529 | 529 | ||
530 | 530 | ||
531 | void AddresseeEditorWidget::setupTab2() | 531 | void AddresseeEditorWidget::setupTab2() |
532 | { | 532 | { |
533 | // This is the Details tab | 533 | // This is the Details tab |
534 | QWidget *tab2 = new QWidget( mTabWidget ); | 534 | QWidget *tab2 = new QWidget( mTabWidget ); |
535 | 535 | ||
536 | QGridLayout *layout = new QGridLayout( tab2, 8, 3 ); | 536 | QGridLayout *layout = new QGridLayout( tab2, 8, 3 ); |
537 | layout->setMargin( KDialogBase::marginHintSmall() ); | 537 | layout->setMargin( KDialogBase::marginHintSmall() ); |
538 | layout->setSpacing( KDialogBase::spacingHintSmall() ); | 538 | layout->setSpacing( KDialogBase::spacingHintSmall() ); |
539 | 539 | ||
540 | QLabel *label; | 540 | QLabel *label; |
541 | KSeparator* bar; | 541 | KSeparator* bar; |
542 | 542 | ||
543 | /////////////////////// | 543 | /////////////////////// |
544 | // Office info | 544 | // Office info |
545 | 545 | ||
546 | // Department | 546 | // Department |
547 | label = new QLabel( tab2 ); | 547 | label = new QLabel( tab2 ); |
548 | //US loadIcon call is ambiguous. Add one more parameter | 548 | //US loadIcon call is ambiguous. Add one more parameter |
549 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop ) ); | 549 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop ) ); |
550 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop, 0 ) ); | 550 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop, 0 ) ); |
551 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); | 551 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); |
552 | 552 | ||
553 | label = new QLabel( i18n( "Department:" ), tab2 ); | 553 | label = new QLabel( i18n( "Department:" ), tab2 ); |
554 | layout->addWidget( label, 0, 1 ); | 554 | layout->addWidget( label, 0, 1 ); |
555 | mDepartmentEdit = new KLineEdit( tab2 ); | 555 | mDepartmentEdit = new KLineEdit( tab2 ); |
556 | connect( mDepartmentEdit, SIGNAL( textChanged( const QString& ) ), | 556 | connect( mDepartmentEdit, SIGNAL( textChanged( const QString& ) ), |
557 | SLOT( textChanged( const QString& ) ) ); | 557 | SLOT( textChanged( const QString& ) ) ); |
558 | label->setBuddy( mDepartmentEdit ); | 558 | label->setBuddy( mDepartmentEdit ); |
559 | layout->addWidget( mDepartmentEdit, 0, 2 ); | 559 | layout->addWidget( mDepartmentEdit, 0, 2 ); |
560 | 560 | ||
561 | label = new QLabel( i18n( "Office:" ), tab2 ); | 561 | label = new QLabel( i18n( "Office:" ), tab2 ); |
562 | layout->addWidget( label, 1, 1 ); | 562 | layout->addWidget( label, 1, 1 ); |
563 | mOfficeEdit = new KLineEdit( tab2 ); | 563 | mOfficeEdit = new KLineEdit( tab2 ); |
564 | connect( mOfficeEdit, SIGNAL( textChanged( const QString& ) ), | 564 | connect( mOfficeEdit, SIGNAL( textChanged( const QString& ) ), |
565 | SLOT( textChanged( const QString& ) ) ); | 565 | SLOT( textChanged( const QString& ) ) ); |
566 | label->setBuddy( mOfficeEdit ); | 566 | label->setBuddy( mOfficeEdit ); |
567 | layout->addWidget( mOfficeEdit, 1, 2 ); | 567 | layout->addWidget( mOfficeEdit, 1, 2 ); |
568 | 568 | ||
569 | label = new QLabel( i18n( "Profession:" ), tab2 ); | 569 | label = new QLabel( i18n( "Profession:" ), tab2 ); |
570 | layout->addWidget( label, 2, 1 ); | 570 | layout->addWidget( label, 2, 1 ); |
571 | mProfessionEdit = new KLineEdit( tab2 ); | 571 | mProfessionEdit = new KLineEdit( tab2 ); |
572 | connect( mProfessionEdit, SIGNAL( textChanged( const QString& ) ), | 572 | connect( mProfessionEdit, SIGNAL( textChanged( const QString& ) ), |
573 | SLOT( textChanged( const QString& ) ) ); | 573 | SLOT( textChanged( const QString& ) ) ); |
574 | label->setBuddy( mProfessionEdit ); | 574 | label->setBuddy( mProfessionEdit ); |
575 | layout->addWidget( mProfessionEdit, 2, 2 ); | 575 | layout->addWidget( mProfessionEdit, 2, 2 ); |
576 | 576 | ||
577 | label = new QLabel( i18n( "Manager\'s name:" ), tab2 ); | 577 | label = new QLabel( i18n( "Manager\'s name:" ), tab2 ); |
578 | //US layout->addWidget( label, 0, 3 ); | 578 | //US layout->addWidget( label, 0, 3 ); |
579 | layout->addWidget( label, 3, 1 ); | 579 | layout->addWidget( label, 3, 1 ); |
580 | mManagerEdit = new KLineEdit( tab2 ); | 580 | mManagerEdit = new KLineEdit( tab2 ); |
581 | connect( mManagerEdit, SIGNAL( textChanged( const QString& ) ), | 581 | connect( mManagerEdit, SIGNAL( textChanged( const QString& ) ), |
582 | SLOT( textChanged( const QString& ) ) ); | 582 | SLOT( textChanged( const QString& ) ) ); |
583 | label->setBuddy( mManagerEdit ); | 583 | label->setBuddy( mManagerEdit ); |
584 | //US layout->addMultiCellWidget( mManagerEdit, 0, 0, 4, 5 ); | 584 | //US layout->addMultiCellWidget( mManagerEdit, 0, 0, 4, 5 ); |
585 | layout->addWidget( mManagerEdit, 3, 2 ); | 585 | layout->addWidget( mManagerEdit, 3, 2 ); |
586 | 586 | ||
587 | label = new QLabel( i18n( "Assistant's name:" ), tab2 ); | 587 | label = new QLabel( i18n( "Assistant's name:" ), tab2 ); |
588 | //US layout->addWidget( label, 1, 3 ); | 588 | //US layout->addWidget( label, 1, 3 ); |
589 | layout->addWidget( label, 4, 1 ); | 589 | layout->addWidget( label, 4, 1 ); |
590 | mAssistantEdit = new KLineEdit( tab2 ); | 590 | mAssistantEdit = new KLineEdit( tab2 ); |
591 | connect( mAssistantEdit, SIGNAL( textChanged( const QString& ) ), | 591 | connect( mAssistantEdit, SIGNAL( textChanged( const QString& ) ), |
592 | SLOT( textChanged( const QString& ) ) ); | 592 | SLOT( textChanged( const QString& ) ) ); |
593 | label->setBuddy( mAssistantEdit ); | 593 | label->setBuddy( mAssistantEdit ); |
594 | //US layout->addMultiCellWidget( mAssistantEdit, 1, 1, 4, 5 ); | 594 | //US layout->addMultiCellWidget( mAssistantEdit, 1, 1, 4, 5 ); |
595 | layout->addWidget( mAssistantEdit, 4, 2 ); | 595 | layout->addWidget( mAssistantEdit, 4, 2 ); |
596 | 596 | ||
597 | bar = new KSeparator( KSeparator::HLine, tab2 ); | 597 | bar = new KSeparator( KSeparator::HLine, tab2 ); |
598 | //US layout->addMultiCellWidget( bar, 3, 3, 0, 5 ); | 598 | //US layout->addMultiCellWidget( bar, 3, 3, 0, 5 ); |
599 | layout->addMultiCellWidget( bar, 5, 5, 0, 2 ); | 599 | layout->addMultiCellWidget( bar, 5, 5, 0, 2 ); |
600 | 600 | ||
601 | ///////////////////////////////////////////////// | 601 | ///////////////////////////////////////////////// |
602 | // Personal info | 602 | // Personal info |
603 | 603 | ||
604 | //label = new QLabel( tab2 ); | 604 | //label = new QLabel( tab2 ); |
605 | //US loadIcon call is ambiguous. Add one more parameter | 605 | //US loadIcon call is ambiguous. Add one more parameter |
606 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); | 606 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); |
607 | //label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); | 607 | //label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); |
608 | //US layout->addMultiCellWidget( label, 4, 5, 0, 0 ); | 608 | //US layout->addMultiCellWidget( label, 4, 5, 0, 0 ); |
609 | //layout->addMultiCellWidget( label, 6, 7, 0, 0 ); | 609 | //layout->addMultiCellWidget( label, 6, 7, 0, 0 ); |
610 | 610 | ||
611 | 611 | ||
612 | int iii = 6; | 612 | int iii = 6; |
613 | 613 | ||
614 | if ( QApplication::desktop()->width() == 640 ) { | 614 | if ( QApplication::desktop()->width() == 640 ) { |
615 | QHBox * nbox = new QHBox ( tab2 ); | 615 | QHBox * nbox = new QHBox ( tab2 ); |
616 | label = new QLabel( i18n( "Nick name:" )+" ", nbox ); | 616 | label = new QLabel( i18n( "Nick name:" )+" ", nbox ); |
617 | mNicknameEdit = new KLineEdit( nbox ); | 617 | mNicknameEdit = new KLineEdit( nbox ); |
618 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), | 618 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), |
619 | SLOT( textChanged( const QString& ) ) ); | 619 | SLOT( textChanged( const QString& ) ) ); |
620 | label->setBuddy( mNicknameEdit ); | 620 | label->setBuddy( mNicknameEdit ); |
621 | 621 | ||
622 | label = new QLabel( " "+i18n( "Spouse's name:" )+" ", nbox ); | 622 | label = new QLabel( " "+i18n( "Spouse's name:" )+" ", nbox ); |
623 | mSpouseEdit = new KLineEdit( nbox ); | 623 | mSpouseEdit = new KLineEdit( nbox ); |
624 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), | 624 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), |
625 | SLOT( textChanged( const QString& ) ) ); | 625 | SLOT( textChanged( const QString& ) ) ); |
626 | label->setBuddy( mSpouseEdit ); | 626 | label->setBuddy( mSpouseEdit ); |
627 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); | 627 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); |
628 | ++iii; | 628 | ++iii; |
629 | 629 | ||
630 | } else { | 630 | } else { |
631 | label = new QLabel( i18n( "Nick name:" ), tab2 ); | 631 | label = new QLabel( i18n( "Nick name:" ), tab2 ); |
632 | layout->addWidget( label, iii, 1 ); | 632 | layout->addWidget( label, iii, 1 ); |
633 | mNicknameEdit = new KLineEdit( tab2 ); | 633 | mNicknameEdit = new KLineEdit( tab2 ); |
634 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), | 634 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), |
635 | SLOT( textChanged( const QString& ) ) ); | 635 | SLOT( textChanged( const QString& ) ) ); |
636 | label->setBuddy( mNicknameEdit ); | 636 | label->setBuddy( mNicknameEdit ); |
637 | layout->addWidget( mNicknameEdit, iii, 2 ); | 637 | layout->addWidget( mNicknameEdit, iii, 2 ); |
638 | ++iii; | 638 | ++iii; |
639 | 639 | ||
640 | label = new QLabel( i18n( "Spouse's name:" ), tab2 ); | 640 | label = new QLabel( i18n( "Spouse's name:" ), tab2 ); |
641 | layout->addWidget( label, iii, 1 ); | 641 | layout->addWidget( label, iii, 1 ); |
642 | mSpouseEdit = new KLineEdit( tab2 ); | 642 | mSpouseEdit = new KLineEdit( tab2 ); |
643 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), | 643 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), |
644 | SLOT( textChanged( const QString& ) ) ); | 644 | SLOT( textChanged( const QString& ) ) ); |
645 | label->setBuddy( mSpouseEdit ); | 645 | label->setBuddy( mSpouseEdit ); |
646 | layout->addWidget( mSpouseEdit, iii, 2 ); | 646 | layout->addWidget( mSpouseEdit, iii, 2 ); |
647 | ++iii; | 647 | ++iii; |
648 | } | 648 | } |
649 | 649 | ||
650 | label = new QLabel( i18n( "Children's names:" ), tab2 ); | 650 | label = new QLabel( i18n( "Children's names:" ), tab2 ); |
651 | layout->addWidget( label, iii, 1 ); | 651 | layout->addWidget( label, iii, 1 ); |
652 | mChildEdit = new KLineEdit( tab2 ); | 652 | mChildEdit = new KLineEdit( tab2 ); |
653 | connect( mChildEdit, SIGNAL( textChanged( const QString& ) ), | 653 | connect( mChildEdit, SIGNAL( textChanged( const QString& ) ), |
654 | SLOT( textChanged( const QString& ) ) ); | 654 | SLOT( textChanged( const QString& ) ) ); |
655 | label->setBuddy( mChildEdit ); | 655 | label->setBuddy( mChildEdit ); |
656 | layout->addWidget( mChildEdit, iii, 2 ); | 656 | layout->addWidget( mChildEdit, iii, 2 ); |
657 | ++iii; | 657 | ++iii; |
658 | if ( QApplication::desktop()->width() == 640 ) { | 658 | if ( QApplication::desktop()->width() == 640 ) { |
659 | QHBox * nbox = new QHBox ( tab2 ); | 659 | QHBox * nbox = new QHBox ( tab2 ); |
660 | label = new QLabel( i18n( "Birthday:" )+" ", nbox ); | 660 | label = new QLabel( i18n( "Birthday:" )+" ", nbox ); |
661 | mBirthdayPicker = new KDateEdit( nbox ); | 661 | mBirthdayPicker = new KDateEdit( nbox ); |
662 | //mBirthdayPicker->toggleDateFormat(); | 662 | //mBirthdayPicker->toggleDateFormat(); |
663 | mBirthdayPicker->setHandleInvalid( true ); | 663 | mBirthdayPicker->setHandleInvalid( true ); |
664 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), | 664 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), |
665 | SLOT( dateChanged( QDate ) ) ); | 665 | SLOT( dateChanged( QDate ) ) ); |
666 | 666 | ||
667 | label->setBuddy( mBirthdayPicker ); | 667 | label->setBuddy( mBirthdayPicker ); |
668 | 668 | ||
669 | label = new QLabel( " "+i18n( "Anniversary:" )+" ", nbox ); | 669 | label = new QLabel( " "+i18n( "Anniversary:" )+" ", nbox ); |
670 | mAnniversaryPicker = new KDateEdit( nbox ); | 670 | mAnniversaryPicker = new KDateEdit( nbox ); |
671 | mAnniversaryPicker->setHandleInvalid( true ); | 671 | mAnniversaryPicker->setHandleInvalid( true ); |
672 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), | 672 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), |
673 | SLOT( dateChanged( QDate ) ) ); | 673 | SLOT( dateChanged( QDate ) ) ); |
674 | 674 | ||
675 | label->setBuddy( mAnniversaryPicker ); | 675 | label->setBuddy( mAnniversaryPicker ); |
676 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); | 676 | layout->addMultiCellWidget( nbox, iii, iii, 1, 2 ); |
677 | ++iii; | 677 | ++iii; |
678 | 678 | ||
679 | } else { | 679 | } else { |
680 | 680 | ||
681 | label = new QLabel( i18n( "Birthday:" ), tab2 ); | 681 | label = new QLabel( i18n( "Birthday:" ), tab2 ); |
682 | layout->addWidget( label, iii, 1 ); | 682 | layout->addWidget( label, iii, 1 ); |
683 | mBirthdayPicker = new KDateEdit( tab2 ); | 683 | mBirthdayPicker = new KDateEdit( tab2 ); |
684 | //mBirthdayPicker->toggleDateFormat(); | 684 | //mBirthdayPicker->toggleDateFormat(); |
685 | mBirthdayPicker->setHandleInvalid( true ); | 685 | mBirthdayPicker->setHandleInvalid( true ); |
686 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), | 686 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), |
687 | SLOT( dateChanged( QDate ) ) ); | 687 | SLOT( dateChanged( QDate ) ) ); |
688 | 688 | ||
689 | label->setBuddy( mBirthdayPicker ); | 689 | label->setBuddy( mBirthdayPicker ); |
690 | layout->addWidget( mBirthdayPicker, iii, 2 ); | 690 | layout->addWidget( mBirthdayPicker, iii, 2 ); |
691 | ++iii; | 691 | ++iii; |
692 | 692 | ||
693 | label = new QLabel( i18n( "Anniversary:" ), tab2 ); | 693 | label = new QLabel( i18n( "Anniversary:" ), tab2 ); |
694 | layout->addWidget( label, iii, 1 ); | 694 | layout->addWidget( label, iii, 1 ); |
695 | mAnniversaryPicker = new KDateEdit( tab2 ); | 695 | mAnniversaryPicker = new KDateEdit( tab2 ); |
696 | mAnniversaryPicker->setHandleInvalid( true ); | 696 | mAnniversaryPicker->setHandleInvalid( true ); |
697 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), | 697 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), |
698 | SLOT( dateChanged( QDate ) ) ); | 698 | SLOT( dateChanged( QDate ) ) ); |
699 | 699 | ||
700 | label->setBuddy( mAnniversaryPicker ); | 700 | label->setBuddy( mAnniversaryPicker ); |
701 | layout->addWidget( mAnniversaryPicker, iii, 2 ); | 701 | layout->addWidget( mAnniversaryPicker, iii, 2 ); |
702 | ++iii; | 702 | ++iii; |
703 | 703 | ||
704 | } | 704 | } |
705 | 705 | ||
706 | label = new QLabel( i18n( "Gender:" ), tab2 ); | 706 | label = new QLabel( i18n( "Gender:" ), tab2 ); |
707 | layout->addWidget( label, iii, 1 ); | 707 | layout->addWidget( label, iii, 1 ); |
708 | mGenderBox = new QComboBox ( tab2 ); | 708 | mGenderBox = new QComboBox ( tab2 ); |
709 | mGenderBox->insertItem ( i18n( "ALIEN (gender undefined)" )); | 709 | mGenderBox->insertItem ( i18n( "ALIEN (undefined)" )); |
710 | mGenderBox->insertItem ( i18n( "female" )); | 710 | mGenderBox->insertItem ( i18n( "female" )); |
711 | mGenderBox->insertItem ( i18n( "male" )); | 711 | mGenderBox->insertItem ( i18n( "male" )); |
712 | connect( mGenderBox, SIGNAL( activated ( const QString & ) ), | 712 | connect( mGenderBox, SIGNAL( activated ( const QString & ) ), |
713 | SLOT( textChanged( const QString& ) ) ); | 713 | SLOT( textChanged( const QString& ) ) ); |
714 | label->setBuddy( mGenderBox ); | 714 | label->setBuddy( mGenderBox ); |
715 | layout->addWidget( mGenderBox, iii, 2 ); | 715 | layout->addWidget( mGenderBox, iii, 2 ); |
716 | ++iii; | 716 | ++iii; |
717 | // Build the layout and add to the tab widget | 717 | // Build the layout and add to the tab widget |
718 | layout->activate(); // required | 718 | layout->activate(); // required |
719 | 719 | ||
720 | mTabWidget->addTab( tab2, i18n( "&Details" ) ); | 720 | mTabWidget->addTab( tab2, i18n( "&Details" ) ); |
721 | } | 721 | } |
722 | 722 | ||
723 | void AddresseeEditorWidget::setupTab2_1() | 723 | void AddresseeEditorWidget::setupTab2_1() |
724 | { | 724 | { |
725 | // This is the Details tab | 725 | // This is the Details tab |
726 | QWidget *tab2_2 = new QWidget( mTabWidget ); | 726 | QWidget *tab2_2 = new QWidget( mTabWidget ); |
727 | 727 | ||
728 | QGridLayout *layout = new QGridLayout( tab2_2, 1, 2 ); | 728 | QGridLayout *layout = new QGridLayout( tab2_2, 1, 2 ); |
729 | layout->setMargin( KDialogBase::marginHintSmall() ); | 729 | layout->setMargin( KDialogBase::marginHintSmall() ); |
730 | layout->setSpacing( KDialogBase::spacingHintSmall() ); | 730 | layout->setSpacing( KDialogBase::spacingHintSmall() ); |
731 | 731 | ||
732 | QLabel *label; | 732 | QLabel *label; |
733 | KSeparator* bar; | 733 | KSeparator* bar; |
734 | 734 | ||
735 | /*US | 735 | /*US |
736 | /////////////////////// | 736 | /////////////////////// |
737 | // Office info | 737 | // Office info |
738 | 738 | ||
739 | // Department | 739 | // Department |
740 | label = new QLabel( tab2 ); | 740 | label = new QLabel( tab2 ); |
741 | //US loadIcon call is ambiguous. Add one more parameter | 741 | //US loadIcon call is ambiguous. Add one more parameter |
742 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop ) ); | 742 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop ) ); |
743 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop, 0 ) ); | 743 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "folder", KIcon::Desktop, 0 ) ); |
744 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); | 744 | layout->addMultiCellWidget( label, 0, 1, 0, 0 ); |
745 | 745 | ||
746 | label = new QLabel( i18n( "Department:" ), tab2 ); | 746 | label = new QLabel( i18n( "Department:" ), tab2 ); |
747 | layout->addWidget( label, 0, 1 ); | 747 | layout->addWidget( label, 0, 1 ); |
748 | mDepartmentEdit = new KLineEdit( tab2 ); | 748 | mDepartmentEdit = new KLineEdit( tab2 ); |
749 | connect( mDepartmentEdit, SIGNAL( textChanged( const QString& ) ), | 749 | connect( mDepartmentEdit, SIGNAL( textChanged( const QString& ) ), |
750 | SLOT( textChanged( const QString& ) ) ); | 750 | SLOT( textChanged( const QString& ) ) ); |
751 | label->setBuddy( mDepartmentEdit ); | 751 | label->setBuddy( mDepartmentEdit ); |
752 | layout->addWidget( mDepartmentEdit, 0, 2 ); | 752 | layout->addWidget( mDepartmentEdit, 0, 2 ); |
753 | 753 | ||
754 | label = new QLabel( i18n( "Office:" ), tab2 ); | 754 | label = new QLabel( i18n( "Office:" ), tab2 ); |
755 | layout->addWidget( label, 1, 1 ); | 755 | layout->addWidget( label, 1, 1 ); |
756 | mOfficeEdit = new KLineEdit( tab2 ); | 756 | mOfficeEdit = new KLineEdit( tab2 ); |
757 | connect( mOfficeEdit, SIGNAL( textChanged( const QString& ) ), | 757 | connect( mOfficeEdit, SIGNAL( textChanged( const QString& ) ), |
758 | SLOT( textChanged( const QString& ) ) ); | 758 | SLOT( textChanged( const QString& ) ) ); |
759 | label->setBuddy( mOfficeEdit ); | 759 | label->setBuddy( mOfficeEdit ); |
760 | layout->addWidget( mOfficeEdit, 1, 2 ); | 760 | layout->addWidget( mOfficeEdit, 1, 2 ); |
761 | 761 | ||
762 | label = new QLabel( i18n( "Profession:" ), tab2 ); | 762 | label = new QLabel( i18n( "Profession:" ), tab2 ); |
763 | layout->addWidget( label, 2, 1 ); | 763 | layout->addWidget( label, 2, 1 ); |
764 | mProfessionEdit = new KLineEdit( tab2 ); | 764 | mProfessionEdit = new KLineEdit( tab2 ); |
765 | connect( mProfessionEdit, SIGNAL( textChanged( const QString& ) ), | 765 | connect( mProfessionEdit, SIGNAL( textChanged( const QString& ) ), |
766 | SLOT( textChanged( const QString& ) ) ); | 766 | SLOT( textChanged( const QString& ) ) ); |
767 | label->setBuddy( mProfessionEdit ); | 767 | label->setBuddy( mProfessionEdit ); |
768 | layout->addWidget( mProfessionEdit, 2, 2 ); | 768 | layout->addWidget( mProfessionEdit, 2, 2 ); |
769 | 769 | ||
770 | label = new QLabel( i18n( "Manager\'s name:" ), tab2 ); | 770 | label = new QLabel( i18n( "Manager\'s name:" ), tab2 ); |
771 | layout->addWidget( label, 0, 3 ); | 771 | layout->addWidget( label, 0, 3 ); |
772 | mManagerEdit = new KLineEdit( tab2 ); | 772 | mManagerEdit = new KLineEdit( tab2 ); |
773 | connect( mManagerEdit, SIGNAL( textChanged( const QString& ) ), | 773 | connect( mManagerEdit, SIGNAL( textChanged( const QString& ) ), |
774 | SLOT( textChanged( const QString& ) ) ); | 774 | SLOT( textChanged( const QString& ) ) ); |
775 | label->setBuddy( mManagerEdit ); | 775 | label->setBuddy( mManagerEdit ); |
776 | layout->addMultiCellWidget( mManagerEdit, 0, 0, 4, 5 ); | 776 | layout->addMultiCellWidget( mManagerEdit, 0, 0, 4, 5 ); |
777 | 777 | ||
778 | label = new QLabel( i18n( "Assistant's name:" ), tab2 ); | 778 | label = new QLabel( i18n( "Assistant's name:" ), tab2 ); |
779 | layout->addWidget( label, 1, 3 ); | 779 | layout->addWidget( label, 1, 3 ); |
780 | mAssistantEdit = new KLineEdit( tab2 ); | 780 | mAssistantEdit = new KLineEdit( tab2 ); |
781 | connect( mAssistantEdit, SIGNAL( textChanged( const QString& ) ), | 781 | connect( mAssistantEdit, SIGNAL( textChanged( const QString& ) ), |
782 | SLOT( textChanged( const QString& ) ) ); | 782 | SLOT( textChanged( const QString& ) ) ); |
783 | label->setBuddy( mAssistantEdit ); | 783 | label->setBuddy( mAssistantEdit ); |
784 | layout->addMultiCellWidget( mAssistantEdit, 1, 1, 4, 5 ); | 784 | layout->addMultiCellWidget( mAssistantEdit, 1, 1, 4, 5 ); |
785 | 785 | ||
786 | bar = new KSeparator( KSeparator::HLine, tab2 ); | 786 | bar = new KSeparator( KSeparator::HLine, tab2 ); |
787 | layout->addMultiCellWidget( bar, 3, 3, 0, 5 ); | 787 | layout->addMultiCellWidget( bar, 3, 3, 0, 5 ); |
788 | 788 | ||
789 | ///////////////////////////////////////////////// | 789 | ///////////////////////////////////////////////// |
790 | // Personal info | 790 | // Personal info |
791 | 791 | ||
792 | label = new QLabel( tab2 ); | 792 | label = new QLabel( tab2 ); |
793 | //US loadIcon call is ambiguous. Add one more parameter | 793 | //US loadIcon call is ambiguous. Add one more parameter |
794 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); | 794 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop ) ); |
795 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); | 795 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "personal", KIcon::Desktop, 0 ) ); |
796 | layout->addMultiCellWidget( label, 4, 5, 0, 0 ); | 796 | layout->addMultiCellWidget( label, 4, 5, 0, 0 ); |
797 | 797 | ||
798 | label = new QLabel( i18n( "Nick name:" ), tab2 ); | 798 | label = new QLabel( i18n( "Nick name:" ), tab2 ); |
799 | layout->addWidget( label, 4, 1 ); | 799 | layout->addWidget( label, 4, 1 ); |
800 | mNicknameEdit = new KLineEdit( tab2 ); | 800 | mNicknameEdit = new KLineEdit( tab2 ); |
801 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), | 801 | connect( mNicknameEdit, SIGNAL( textChanged( const QString& ) ), |
802 | SLOT( textChanged( const QString& ) ) ); | 802 | SLOT( textChanged( const QString& ) ) ); |
803 | label->setBuddy( mNicknameEdit ); | 803 | label->setBuddy( mNicknameEdit ); |
804 | layout->addWidget( mNicknameEdit, 4, 2 ); | 804 | layout->addWidget( mNicknameEdit, 4, 2 ); |
805 | 805 | ||
806 | label = new QLabel( i18n( "Spouse's name:" ), tab2 ); | 806 | label = new QLabel( i18n( "Spouse's name:" ), tab2 ); |
807 | layout->addWidget( label, 5, 1 ); | 807 | layout->addWidget( label, 5, 1 ); |
808 | mSpouseEdit = new KLineEdit( tab2 ); | 808 | mSpouseEdit = new KLineEdit( tab2 ); |
809 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), | 809 | connect( mSpouseEdit, SIGNAL( textChanged( const QString& ) ), |
810 | SLOT( textChanged( const QString& ) ) ); | 810 | SLOT( textChanged( const QString& ) ) ); |
811 | label->setBuddy( mSpouseEdit ); | 811 | label->setBuddy( mSpouseEdit ); |
812 | layout->addWidget( mSpouseEdit, 5, 2 ); | 812 | layout->addWidget( mSpouseEdit, 5, 2 ); |
813 | 813 | ||
814 | label = new QLabel( i18n( "Birthday:" ), tab2 ); | 814 | label = new QLabel( i18n( "Birthday:" ), tab2 ); |
815 | layout->addWidget( label, 4, 3 ); | 815 | layout->addWidget( label, 4, 3 ); |
816 | mBirthdayPicker = new KDateEdit( tab2 ); | 816 | mBirthdayPicker = new KDateEdit( tab2 ); |
817 | mBirthdayPicker->setHandleInvalid( true ); | 817 | mBirthdayPicker->setHandleInvalid( true ); |
818 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), | 818 | connect( mBirthdayPicker, SIGNAL( dateChanged( QDate ) ), |
819 | SLOT( dateChanged( QDate ) ) ); | 819 | SLOT( dateChanged( QDate ) ) ); |
820 | connect( mBirthdayPicker, SIGNAL( invalidDateEntered() ), | 820 | connect( mBirthdayPicker, SIGNAL( invalidDateEntered() ), |
821 | SLOT( invalidDate() ) ); | 821 | SLOT( invalidDate() ) ); |
822 | connect( mBirthdayPicker, SIGNAL( textChanged( const QString& ) ), | 822 | connect( mBirthdayPicker, SIGNAL( textChanged( const QString& ) ), |
823 | SLOT( emitModified() ) ); | 823 | SLOT( emitModified() ) ); |
824 | label->setBuddy( mBirthdayPicker ); | 824 | label->setBuddy( mBirthdayPicker ); |
825 | layout->addWidget( mBirthdayPicker, 4, 4 ); | 825 | layout->addWidget( mBirthdayPicker, 4, 4 ); |
826 | 826 | ||
827 | label = new QLabel( i18n( "Anniversary:" ), tab2 ); | 827 | label = new QLabel( i18n( "Anniversary:" ), tab2 ); |
828 | layout->addWidget( label, 5, 3 ); | 828 | layout->addWidget( label, 5, 3 ); |
829 | mAnniversaryPicker = new KDateEdit( tab2 ); | 829 | mAnniversaryPicker = new KDateEdit( tab2 ); |
830 | mAnniversaryPicker->setHandleInvalid( true ); | 830 | mAnniversaryPicker->setHandleInvalid( true ); |
831 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), | 831 | connect( mAnniversaryPicker, SIGNAL( dateChanged( QDate ) ), |
832 | SLOT( dateChanged( QDate ) ) ); | 832 | SLOT( dateChanged( QDate ) ) ); |
833 | connect( mAnniversaryPicker, SIGNAL( invalidDateEntered() ), | 833 | connect( mAnniversaryPicker, SIGNAL( invalidDateEntered() ), |
834 | SLOT( invalidDate() ) ); | 834 | SLOT( invalidDate() ) ); |
835 | connect( mAnniversaryPicker, SIGNAL( textChanged( const QString& ) ), | 835 | connect( mAnniversaryPicker, SIGNAL( textChanged( const QString& ) ), |
836 | SLOT( emitModified() ) ); | 836 | SLOT( emitModified() ) ); |
837 | label->setBuddy( mAnniversaryPicker ); | 837 | label->setBuddy( mAnniversaryPicker ); |
838 | layout->addWidget( mAnniversaryPicker, 5, 4 ); | 838 | layout->addWidget( mAnniversaryPicker, 5, 4 ); |
839 | 839 | ||
840 | bar = new KSeparator( KSeparator::HLine, tab2 ); | 840 | bar = new KSeparator( KSeparator::HLine, tab2 ); |
841 | layout->addMultiCellWidget( bar, 6, 6, 0, 5 ); | 841 | layout->addMultiCellWidget( bar, 6, 6, 0, 5 ); |
842 | */ | 842 | */ |
843 | ////////////////////////////////////// | 843 | ////////////////////////////////////// |
844 | // Notes | 844 | // Notes |
845 | label = new QLabel( i18n( "Note:" ), tab2_2 ); | 845 | label = new QLabel( i18n( "Note:" ), tab2_2 ); |
846 | label->setAlignment( Qt::AlignTop | Qt::AlignLeft ); | 846 | label->setAlignment( Qt::AlignTop | Qt::AlignLeft ); |
847 | //US layout->addWidget( label, 7, 0 ); | 847 | //US layout->addWidget( label, 7, 0 ); |
848 | layout->addWidget( label, 0, 0 ); | 848 | layout->addWidget( label, 0, 0 ); |
849 | #ifndef KAB_EMBEDDED | 849 | #ifndef KAB_EMBEDDED |
850 | mNoteEdit = new QTextEdit( tab2_2 ); | 850 | mNoteEdit = new QTextEdit( tab2_2 ); |
851 | mNoteEdit->setWordWrap( QTextEdit::WidgetWidth ); | 851 | mNoteEdit->setWordWrap( QTextEdit::WidgetWidth ); |
852 | mNoteEdit->setMinimumSize( mNoteEdit->sizeHint() ); | 852 | mNoteEdit->setMinimumSize( mNoteEdit->sizeHint() ); |
853 | #else //KAB_EMBEDDED | 853 | #else //KAB_EMBEDDED |
854 | mNoteEdit = new QMultiLineEdit( tab2_2 ); | 854 | mNoteEdit = new QMultiLineEdit( tab2_2 ); |
855 | mNoteEdit->setWordWrap( QMultiLineEdit::WidgetWidth ); | 855 | mNoteEdit->setWordWrap( QMultiLineEdit::WidgetWidth ); |
856 | mNoteEdit->setMinimumSize( mNoteEdit->sizeHint() ); | 856 | mNoteEdit->setMinimumSize( mNoteEdit->sizeHint() ); |
857 | #endif //KAB_EMBEDDED | 857 | #endif //KAB_EMBEDDED |
858 | 858 | ||
859 | connect( mNoteEdit, SIGNAL( textChanged() ), SLOT( emitModified() ) ); | 859 | connect( mNoteEdit, SIGNAL( textChanged() ), SLOT( emitModified() ) ); |
860 | label->setBuddy( mNoteEdit ); | 860 | label->setBuddy( mNoteEdit ); |
861 | //US layout->addMultiCellWidget( mNoteEdit, 7, 7, 1, 5 ); | 861 | //US layout->addMultiCellWidget( mNoteEdit, 7, 7, 1, 5 ); |
862 | layout->addWidget( mNoteEdit, 1, 0); | 862 | layout->addWidget( mNoteEdit, 1, 0); |
863 | 863 | ||
864 | // Build the layout and add to the tab widget | 864 | // Build the layout and add to the tab widget |
865 | layout->activate(); // required | 865 | layout->activate(); // required |
866 | 866 | ||
867 | mTabWidget->addTab( tab2_2, i18n( "&Notes" ) ); | 867 | mTabWidget->addTab( tab2_2, i18n( "&Notes" ) ); |
868 | } | 868 | } |
869 | 869 | ||
870 | 870 | ||
871 | 871 | ||
872 | void AddresseeEditorWidget::setupTab3() | 872 | void AddresseeEditorWidget::setupTab3() |
873 | { | 873 | { |
874 | // This is the Misc tab | 874 | // This is the Misc tab |
875 | QWidget *tab3 = new QWidget( mTabWidget ); | 875 | QWidget *tab3 = new QWidget( mTabWidget ); |
876 | 876 | ||
877 | QGridLayout *layout = new QGridLayout( tab3, 1, 1 ); | 877 | QGridLayout *layout = new QGridLayout( tab3, 1, 1 ); |
878 | layout->setMargin( KDialogBase::marginHintSmall() ); | 878 | layout->setMargin( KDialogBase::marginHintSmall() ); |
879 | layout->setSpacing( KDialogBase::spacingHintSmall() ); | 879 | layout->setSpacing( KDialogBase::spacingHintSmall() ); |
880 | //US layout->setColStretch( 2, 1 ); | 880 | //US layout->setColStretch( 2, 1 ); |
881 | 881 | ||
882 | ////////////////////////////////////// | 882 | ////////////////////////////////////// |
883 | // Geo | 883 | // Geo |
884 | mGeoWidget = new GeoWidget( tab3 ); | 884 | mGeoWidget = new GeoWidget( tab3 ); |
885 | // mGeoWidget->setMinimumSize( mGeoWidget->sizeHint() ); | 885 | // mGeoWidget->setMinimumSize( mGeoWidget->sizeHint() ); |
886 | connect( mGeoWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 886 | connect( mGeoWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
887 | layout->addWidget( mGeoWidget, 0, 0 ); | 887 | layout->addWidget( mGeoWidget, 0, 0 ); |
888 | /*US | 888 | /*US |
889 | ////////////////////////////////////// | 889 | ////////////////////////////////////// |
890 | // Sound | 890 | // Sound |
891 | #ifndef KAB_EMBEDDED | 891 | #ifndef KAB_EMBEDDED |
892 | mSoundWidget = new SoundWidget( tab3 ); | 892 | mSoundWidget = new SoundWidget( tab3 ); |
893 | mSoundWidget->setMinimumSize( mSoundWidget->sizeHint() ); | 893 | mSoundWidget->setMinimumSize( mSoundWidget->sizeHint() ); |
894 | connect( mSoundWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 894 | connect( mSoundWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
895 | layout->addWidget( mSoundWidget, 0, 1, Qt::AlignTop ); | 895 | layout->addWidget( mSoundWidget, 0, 1, Qt::AlignTop ); |
896 | #else //KAB_EMBEDDED | 896 | #else //KAB_EMBEDDED |
897 | qDebug("AddresseeEditorWidget::setupTab2 sound part is not supported = has to be changed"); | 897 | qDebug("AddresseeEditorWidget::setupTab2 sound part is not supported = has to be changed"); |
898 | #endif //KAB_EMBEDDED | 898 | #endif //KAB_EMBEDDED |
899 | 899 | ||
900 | ////////////////////////////////////// | 900 | ////////////////////////////////////// |
901 | // Images | 901 | // Images |
902 | mImageWidget = new ImageWidget( tab3 ); | 902 | mImageWidget = new ImageWidget( tab3 ); |
903 | mImageWidget->setMinimumSize( mImageWidget->sizeHint() ); | 903 | mImageWidget->setMinimumSize( mImageWidget->sizeHint() ); |
904 | connect( mImageWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 904 | connect( mImageWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
905 | layout->addWidget( mImageWidget, 1, 0, Qt::AlignTop ); | 905 | layout->addWidget( mImageWidget, 1, 0, Qt::AlignTop ); |
906 | */ | 906 | */ |
907 | //US | 907 | //US |
908 | /* | 908 | /* |
909 | KSeparator* bar = new KSeparator( KSeparator::HLine, tab3 ); | 909 | KSeparator* bar = new KSeparator( KSeparator::HLine, tab3 ); |
910 | layout->addMultiCellWidget( bar, 1, 1, 0, 0 ); | 910 | layout->addMultiCellWidget( bar, 1, 1, 0, 0 ); |
911 | */ | 911 | */ |
912 | ////////////////////////////////////// | 912 | ////////////////////////////////////// |
913 | // Keys | 913 | // Keys |
914 | mKeyWidget = new KeyWidget( tab3 ); | 914 | mKeyWidget = new KeyWidget( tab3 ); |
915 | //mKeyWidget->setMinimumSize( mKeyWidget->sizeHint() ); | 915 | //mKeyWidget->setMinimumSize( mKeyWidget->sizeHint() ); |
916 | connect( mKeyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 916 | connect( mKeyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
917 | //US layout->addWidget( mKeyWidget, 1, 1, Qt::AlignTop ); | 917 | //US layout->addWidget( mKeyWidget, 1, 1, Qt::AlignTop ); |
918 | layout->addWidget( mKeyWidget, 1, 0 ); | 918 | layout->addWidget( mKeyWidget, 1, 0 ); |
919 | 919 | ||
920 | mTabWidget->addTab( tab3, i18n( "&Misc" ) ); | 920 | mTabWidget->addTab( tab3, i18n( "&Misc" ) ); |
921 | } | 921 | } |
922 | 922 | ||
923 | void AddresseeEditorWidget::setupTab3_1() | 923 | void AddresseeEditorWidget::setupTab3_1() |
924 | { | 924 | { |
925 | // This is the Misc tab | 925 | // This is the Misc tab |
926 | QWidget *tab3 = new QWidget( mTabWidget ); | 926 | QWidget *tab3 = new QWidget( mTabWidget ); |
927 | 927 | ||
928 | //US QGridLayout *layout = new QGridLayout( tab3, 2, 3 ); | 928 | //US QGridLayout *layout = new QGridLayout( tab3, 2, 3 ); |
929 | QGridLayout *layout = new QGridLayout( tab3, 1, 1 ); | 929 | QGridLayout *layout = new QGridLayout( tab3, 1, 1 ); |
930 | layout->setMargin( KDialogBase::marginHint() ); | 930 | layout->setMargin( KDialogBase::marginHint() ); |
931 | layout->setSpacing( KDialogBase::spacingHint() ); | 931 | layout->setSpacing( KDialogBase::spacingHint() ); |
932 | //US layout->setColStretch( 2, 1 ); | 932 | //US layout->setColStretch( 2, 1 ); |
933 | 933 | ||
934 | /*US | 934 | /*US |
935 | ////////////////////////////////////// | 935 | ////////////////////////////////////// |
936 | // Geo | 936 | // Geo |
937 | mGeoWidget = new GeoWidget( tab3 ); | 937 | mGeoWidget = new GeoWidget( tab3 ); |
938 | mGeoWidget->setMinimumSize( mGeoWidget->sizeHint() ); | 938 | mGeoWidget->setMinimumSize( mGeoWidget->sizeHint() ); |
939 | connect( mGeoWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 939 | connect( mGeoWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
940 | layout->addWidget( mGeoWidget, 0, 0, Qt::AlignTop ); | 940 | layout->addWidget( mGeoWidget, 0, 0, Qt::AlignTop ); |
941 | */ | 941 | */ |
942 | ////////////////////////////////////// | 942 | ////////////////////////////////////// |
943 | // Sound | 943 | // Sound |
944 | #ifndef KAB_EMBEDDED | 944 | #ifndef KAB_EMBEDDED |
945 | mSoundWidget = new SoundWidget( tab3 ); | 945 | mSoundWidget = new SoundWidget( tab3 ); |
946 | mSoundWidget->setMinimumSize( mSoundWidget->sizeHint() ); | 946 | mSoundWidget->setMinimumSize( mSoundWidget->sizeHint() ); |
947 | connect( mSoundWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 947 | connect( mSoundWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
948 | layout->addWidget( mSoundWidget, 0, 1, Qt::AlignTop ); | 948 | layout->addWidget( mSoundWidget, 0, 1, Qt::AlignTop ); |
949 | #else //KAB_EMBEDDED | 949 | #else //KAB_EMBEDDED |
950 | //US qDebug("AddresseeEditorWidget::setupTab2 sound part is not supported = has to be changed"); | 950 | //US qDebug("AddresseeEditorWidget::setupTab2 sound part is not supported = has to be changed"); |
951 | #endif //KAB_EMBEDDED | 951 | #endif //KAB_EMBEDDED |
952 | 952 | ||
953 | ////////////////////////////////////// | 953 | ////////////////////////////////////// |
954 | // Images | 954 | // Images |
955 | mImageWidget = new ImageWidget( tab3 ); | 955 | mImageWidget = new ImageWidget( tab3 ); |
956 | mImageWidget->setMinimumSize( mImageWidget->sizeHint() ); | 956 | mImageWidget->setMinimumSize( mImageWidget->sizeHint() ); |
957 | connect( mImageWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 957 | connect( mImageWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
958 | layout->addWidget( mImageWidget, 0, 0, Qt::AlignTop ); | 958 | layout->addWidget( mImageWidget, 0, 0, Qt::AlignTop ); |
959 | /*US | 959 | /*US |
960 | ////////////////////////////////////// | 960 | ////////////////////////////////////// |
961 | // Keys | 961 | // Keys |
962 | mKeyWidget = new KeyWidget( tab3 ); | 962 | mKeyWidget = new KeyWidget( tab3 ); |
963 | mKeyWidget->setMinimumSize( mKeyWidget->sizeHint() ); | 963 | mKeyWidget->setMinimumSize( mKeyWidget->sizeHint() ); |
964 | connect( mKeyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); | 964 | connect( mKeyWidget, SIGNAL( changed() ), SLOT( emitModified() ) ); |
965 | layout->addWidget( mKeyWidget, 1, 1, Qt::AlignTop ); | 965 | layout->addWidget( mKeyWidget, 1, 1, Qt::AlignTop ); |
966 | */ | 966 | */ |
967 | mTabWidget->addTab( tab3, i18n( "&Images" ) ); | 967 | mTabWidget->addTab( tab3, i18n( "&Images" ) ); |
968 | } | 968 | } |
969 | 969 | ||
970 | 970 | ||
971 | void AddresseeEditorWidget::load() | 971 | void AddresseeEditorWidget::load() |
972 | { | 972 | { |
973 | 973 | ||
974 | // Block signals in case anything tries to emit modified | 974 | // Block signals in case anything tries to emit modified |
975 | // CS: This doesn't seem to work. | 975 | // CS: This doesn't seem to work. |
976 | bool block = signalsBlocked(); | 976 | bool block = signalsBlocked(); |
977 | blockSignals( true ); | 977 | blockSignals( true ); |
978 | mBlockSignals = true; // used for internal signal blocking | 978 | mBlockSignals = true; // used for internal signal blocking |
979 | 979 | ||
980 | mNameEdit->setText( mAddressee.assembledName() ); | 980 | mNameEdit->setText( mAddressee.assembledName() ); |
981 | 981 | ||
982 | if ( mAddressee.formattedName().isEmpty() ) { | 982 | if ( mAddressee.formattedName().isEmpty() ) { |
983 | //US KConfig config( "kaddressbookrc" ); | 983 | //US KConfig config( "kaddressbookrc" ); |
984 | KConfig config( locateLocal("config", "kabcrc") ); | 984 | KConfig config( locateLocal("config", "kabcrc") ); |
985 | config.setGroup( "General" ); | 985 | config.setGroup( "General" ); |
986 | mFormattedNameType = config.readNumEntry( "FormattedNameType", 1 ); | 986 | mFormattedNameType = config.readNumEntry( "FormattedNameType", 1 ); |
987 | mAddressee.setFormattedName( NameEditDialog::formattedName( mAddressee, mFormattedNameType ) ); | 987 | mAddressee.setFormattedName( NameEditDialog::formattedName( mAddressee, mFormattedNameType ) ); |
988 | } else {; | 988 | } else {; |
989 | if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::SimpleName ) ) | 989 | if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::SimpleName ) ) |
990 | mFormattedNameType = NameEditDialog::SimpleName; | 990 | mFormattedNameType = NameEditDialog::SimpleName; |
991 | else if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::FullName ) ) | 991 | else if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::FullName ) ) |
992 | mFormattedNameType = NameEditDialog::FullName; | 992 | mFormattedNameType = NameEditDialog::FullName; |
993 | else if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::ReverseName ) ) | 993 | else if ( mAddressee.formattedName() == NameEditDialog::formattedName( mAddressee, NameEditDialog::ReverseName ) ) |
994 | mFormattedNameType = NameEditDialog::ReverseName; | 994 | mFormattedNameType = NameEditDialog::ReverseName; |
995 | else | 995 | else |
996 | mFormattedNameType = NameEditDialog::CustomName; | 996 | mFormattedNameType = NameEditDialog::CustomName; |
997 | } | 997 | } |
998 | 998 | ||
999 | mFormattedNameLabel->setText( mAddressee.formattedName() ); | 999 | mFormattedNameLabel->setText( mAddressee.formattedName() ); |
1000 | 1000 | ||
1001 | mAConfig->setUid( mAddressee.uid() ); | 1001 | mAConfig->setUid( mAddressee.uid() ); |
1002 | if ( mAConfig->automaticNameParsing() ) { | 1002 | if ( mAConfig->automaticNameParsing() ) { |
1003 | mNameLabel->hide(); | 1003 | mNameLabel->hide(); |
1004 | mNameEdit->show(); | 1004 | mNameEdit->show(); |
1005 | } else { | 1005 | } else { |
1006 | mNameEdit->hide(); | 1006 | mNameEdit->hide(); |
1007 | mNameLabel->setText( mNameEdit->text() ); | 1007 | mNameLabel->setText( mNameEdit->text() ); |
1008 | mNameLabel->show(); | 1008 | mNameLabel->show(); |
1009 | } | 1009 | } |
1010 | 1010 | ||
1011 | mRoleEdit->setText( mAddressee.role() ); | 1011 | mRoleEdit->setText( mAddressee.role() ); |
1012 | mOrgEdit->setText( mAddressee.organization() ); | 1012 | mOrgEdit->setText( mAddressee.organization() ); |
1013 | 1013 | ||
1014 | //US mURLEdit->setURL( mAddressee.url().url() ); | 1014 | //US mURLEdit->setURL( mAddressee.url().url() ); |
1015 | mURLEdit->setText( mAddressee.url().prettyURL() ); | 1015 | mURLEdit->setText( mAddressee.url().prettyURL() ); |
1016 | //US?? mURLEdit->home( false ); | 1016 | //US?? mURLEdit->home( false ); |
1017 | 1017 | ||
1018 | // mNoteEdit->setText( mAddressee.note() ); | 1018 | // mNoteEdit->setText( mAddressee.note() ); |
1019 | mNoteEdit->setText( mAddressee.note() ); | 1019 | mNoteEdit->setText( mAddressee.note() ); |
1020 | mEmailWidget->setEmails( mAddressee.emails() ); | 1020 | mEmailWidget->setEmails( mAddressee.emails() ); |
1021 | mPhoneEditWidget->setPhoneNumbers( mAddressee.phoneNumbers() ); | 1021 | mPhoneEditWidget->setPhoneNumbers( mAddressee.phoneNumbers() ); |
1022 | mAddressEditWidget->setAddresses( mAddressee, mAddressee.addresses() ); | 1022 | mAddressEditWidget->setAddresses( mAddressee, mAddressee.addresses() ); |
1023 | mBirthdayPicker->setDate( mAddressee.birthday().date() ); | 1023 | mBirthdayPicker->setDate( mAddressee.birthday().date() ); |
1024 | 1024 | ||
1025 | //US mAnniversaryPicker->setDate( QDate::fromString( mAddressee.custom( | 1025 | //US mAnniversaryPicker->setDate( QDate::fromString( mAddressee.custom( |
1026 | //US "KADDRESSBOOK", "X-Anniversary" ), Qt::ISODate) ); | 1026 | //US "KADDRESSBOOK", "X-Anniversary" ), Qt::ISODate) ); |
1027 | QDate dt = KGlobal::locale()->readDate( mAddressee.custom("KADDRESSBOOK", "X-Anniversary" ), | 1027 | QDate dt = KGlobal::locale()->readDate( mAddressee.custom("KADDRESSBOOK", "X-Anniversary" ), |
1028 | "%Y-%m-%d"); // = Qt::ISODate | 1028 | "%Y-%m-%d"); // = Qt::ISODate |
1029 | mAnniversaryPicker->setDate( dt ); | 1029 | mAnniversaryPicker->setDate( dt ); |
1030 | 1030 | ||
1031 | 1031 | ||
1032 | mNicknameEdit->setText( mAddressee.nickName() ); | 1032 | mNicknameEdit->setText( mAddressee.nickName() ); |
1033 | mCategoryEdit->setText( mAddressee.categories().join( "," ) ); | 1033 | mCategoryEdit->setText( mAddressee.categories().join( "," ) ); |
1034 | 1034 | ||
1035 | mGeoWidget->setGeo( mAddressee.geo() ); | 1035 | mGeoWidget->setGeo( mAddressee.geo() ); |
1036 | mImageWidget->setPhoto( mAddressee.photo() ); | 1036 | mImageWidget->setPhoto( mAddressee.photo() ); |
1037 | mImageWidget->setLogo( mAddressee.logo() ); | 1037 | mImageWidget->setLogo( mAddressee.logo() ); |
1038 | mKeyWidget->setKeys( mAddressee.keys() ); | 1038 | mKeyWidget->setKeys( mAddressee.keys() ); |
1039 | mSecrecyWidget->setSecrecy( mAddressee.secrecy() ); | 1039 | mSecrecyWidget->setSecrecy( mAddressee.secrecy() ); |
1040 | #ifndef KAB_EMBEDDED | 1040 | #ifndef KAB_EMBEDDED |
1041 | mSoundWidget->setSound( mAddressee.sound() ); | 1041 | mSoundWidget->setSound( mAddressee.sound() ); |
1042 | #else //KAB_EMBEDDED | 1042 | #else //KAB_EMBEDDED |
1043 | //US qDebug("AddresseeEditorWidget::load has to be changed 2"); | 1043 | //US qDebug("AddresseeEditorWidget::load has to be changed 2"); |
1044 | #endif //KAB_EMBEDDED | 1044 | #endif //KAB_EMBEDDED |
1045 | 1045 | ||
1046 | // Load customs | 1046 | // Load customs |
1047 | mIMAddressEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" ) ); | 1047 | mIMAddressEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-IMAddress" ) ); |
1048 | mSpouseEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ) ); | 1048 | mSpouseEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-SpousesName" ) ); |
1049 | mChildEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Children" ) ); | 1049 | mChildEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Children" ) ); |
1050 | mManagerEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" ) ); | 1050 | mManagerEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-ManagersName" ) ); |
1051 | mAssistantEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" ) ); | 1051 | mAssistantEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-AssistantsName" ) ); |
1052 | mDepartmentEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Department" ) ); | 1052 | mDepartmentEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Department" ) ); |
1053 | mOfficeEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Office" ) ); | 1053 | mOfficeEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Office" ) ); |
1054 | mProfessionEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Profession" ) ); | 1054 | mProfessionEdit->setText( mAddressee.custom( "KADDRESSBOOK", "X-Profession" ) ); |
1055 | QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); | 1055 | QString gen = mAddressee.custom( "KADDRESSBOOK", "X-Gender" ); |
1056 | if ( gen == "female" ) | 1056 | if ( gen == "female" ) |
1057 | mGenderBox->setCurrentItem ( 1 ); | 1057 | mGenderBox->setCurrentItem ( 1 ); |
1058 | else if ( gen == "male" ) | 1058 | else if ( gen == "male" ) |
1059 | mGenderBox->setCurrentItem ( 2 ); | 1059 | mGenderBox->setCurrentItem ( 2 ); |
1060 | else | 1060 | else |
1061 | mGenderBox->setCurrentItem ( 0 ); | 1061 | mGenderBox->setCurrentItem ( 0 ); |
1062 | blockSignals( block ); | 1062 | blockSignals( block ); |
1063 | mBlockSignals = false; | 1063 | mBlockSignals = false; |
1064 | 1064 | ||
1065 | mDirty = false; | 1065 | mDirty = false; |
1066 | } | 1066 | } |
1067 | 1067 | ||
1068 | void AddresseeEditorWidget::save() | 1068 | void AddresseeEditorWidget::save() |
1069 | { | 1069 | { |
1070 | if ( !dirty() ) { | 1070 | if ( !dirty() ) { |
1071 | return; | 1071 | return; |
1072 | } | 1072 | } |
1073 | 1073 | ||
1074 | mAddressee.setRevision( QDateTime::currentDateTime() ); | 1074 | mAddressee.setRevision( QDateTime::currentDateTime() ); |
1075 | 1075 | ||
1076 | mAddressee.setRole( mRoleEdit->text() ); | 1076 | mAddressee.setRole( mRoleEdit->text() ); |
1077 | mAddressee.setOrganization( mOrgEdit->text() ); | 1077 | mAddressee.setOrganization( mOrgEdit->text() ); |
1078 | mAddressee.setUrl( KURL( mURLEdit->text() ) ); | 1078 | mAddressee.setUrl( KURL( mURLEdit->text() ) ); |
1079 | mAddressee.setNote( mNoteEdit->text() ); | 1079 | mAddressee.setNote( mNoteEdit->text() ); |
1080 | if ( mBirthdayPicker->inputIsValid() ) { | 1080 | if ( mBirthdayPicker->inputIsValid() ) { |
1081 | QDate da = mBirthdayPicker->date(); | 1081 | QDate da = mBirthdayPicker->date(); |
1082 | mAddressee.setBirthday( QDateTime( da ) ); | 1082 | mAddressee.setBirthday( QDateTime( da ) ); |
1083 | //qDebug("bday %s ",da.toString().latin1()); | 1083 | //qDebug("bday %s ",da.toString().latin1()); |
1084 | } | 1084 | } |
1085 | else { | 1085 | else { |
1086 | mAddressee.setBirthday( QDateTime() ); | 1086 | mAddressee.setBirthday( QDateTime() ); |
1087 | mBirthdayPicker->clear(); | 1087 | mBirthdayPicker->clear(); |
1088 | } | 1088 | } |
1089 | mAddressee.setNickName( mNicknameEdit->text() ); | 1089 | mAddressee.setNickName( mNicknameEdit->text() ); |
1090 | mAddressee.setCategories( QStringList::split( ",", mCategoryEdit->text() ) ); | 1090 | mAddressee.setCategories( QStringList::split( ",", mCategoryEdit->text() ) ); |
1091 | 1091 | ||
1092 | mAddressee.setGeo( mGeoWidget->geo() ); | 1092 | mAddressee.setGeo( mGeoWidget->geo() ); |
1093 | mAddressee.setPhoto( mImageWidget->photo() ); | 1093 | mAddressee.setPhoto( mImageWidget->photo() ); |
1094 | mAddressee.setLogo( mImageWidget->logo() ); | 1094 | mAddressee.setLogo( mImageWidget->logo() ); |
1095 | mAddressee.setKeys( mKeyWidget->keys() ); | 1095 | mAddressee.setKeys( mKeyWidget->keys() ); |
1096 | #ifndef KAB_EMBEDDED | 1096 | #ifndef KAB_EMBEDDED |
1097 | mAddressee.setSound( mSoundWidget->sound() ); | 1097 | mAddressee.setSound( mSoundWidget->sound() ); |
1098 | #else //KAB_EMBEDDED | 1098 | #else //KAB_EMBEDDED |
1099 | //US qDebug("AddresseeEditorWidget::save sound not supported"); | 1099 | //US qDebug("AddresseeEditorWidget::save sound not supported"); |
1100 | #endif //KAB_EMBEDDED | 1100 | #endif //KAB_EMBEDDED |
1101 | mAddressee.setSecrecy( mSecrecyWidget->secrecy() ); | 1101 | mAddressee.setSecrecy( mSecrecyWidget->secrecy() ); |
1102 | 1102 | ||
1103 | // save custom fields | 1103 | // save custom fields |
1104 | mAddressee.insertCustom( "KADDRESSBOOK", "X-IMAddress", mIMAddressEdit->text() ); | 1104 | mAddressee.insertCustom( "KADDRESSBOOK", "X-IMAddress", mIMAddressEdit->text() ); |
1105 | mAddressee.insertCustom( "KADDRESSBOOK", "X-SpousesName", mSpouseEdit->text() ); | 1105 | mAddressee.insertCustom( "KADDRESSBOOK", "X-SpousesName", mSpouseEdit->text() ); |
1106 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Children", mChildEdit->text() ); | 1106 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Children", mChildEdit->text() ); |
1107 | mAddressee.insertCustom( "KADDRESSBOOK", "X-ManagersName", mManagerEdit->text() ); | 1107 | mAddressee.insertCustom( "KADDRESSBOOK", "X-ManagersName", mManagerEdit->text() ); |
1108 | mAddressee.insertCustom( "KADDRESSBOOK", "X-AssistantsName", mAssistantEdit->text() ); | 1108 | mAddressee.insertCustom( "KADDRESSBOOK", "X-AssistantsName", mAssistantEdit->text() ); |
1109 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Department", mDepartmentEdit->text() ); | 1109 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Department", mDepartmentEdit->text() ); |
1110 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Office", mOfficeEdit->text() ); | 1110 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Office", mOfficeEdit->text() ); |
1111 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Profession", mProfessionEdit->text() ); | 1111 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Profession", mProfessionEdit->text() ); |
1112 | if ( mAnniversaryPicker->inputIsValid() ) { | 1112 | if ( mAnniversaryPicker->inputIsValid() ) { |
1113 | QString dt = KGlobal::locale()->formatDate(mAnniversaryPicker->date(), true, KLocale::ISODate); | 1113 | QString dt = KGlobal::locale()->formatDate(mAnniversaryPicker->date(), true, KLocale::ISODate); |
1114 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); | 1114 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Anniversary", dt); |
1115 | } | 1115 | } |
1116 | else { | 1116 | else { |
1117 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Anniversary" ); | 1117 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Anniversary" ); |
1118 | mAnniversaryPicker->clear(); | 1118 | mAnniversaryPicker->clear(); |
1119 | } | 1119 | } |
1120 | int gen = mGenderBox->currentItem (); | 1120 | int gen = mGenderBox->currentItem (); |
1121 | if ( gen == 1 ) | 1121 | if ( gen == 1 ) |
1122 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); | 1122 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "female"); |
1123 | else if ( gen == 2 ) | 1123 | else if ( gen == 2 ) |
1124 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); | 1124 | mAddressee.insertCustom( "KADDRESSBOOK", "X-Gender", "male"); |
1125 | else | 1125 | else |
1126 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Gender" ); | 1126 | mAddressee.removeCustom( "KADDRESSBOOK", "X-Gender" ); |
1127 | 1127 | ||
1128 | // Save the email addresses | 1128 | // Save the email addresses |
1129 | QStringList emails = mAddressee.emails(); | 1129 | QStringList emails = mAddressee.emails(); |
1130 | QStringList::Iterator iter; | 1130 | QStringList::Iterator iter; |
1131 | for ( iter = emails.begin(); iter != emails.end(); ++iter ) | 1131 | for ( iter = emails.begin(); iter != emails.end(); ++iter ) |
1132 | mAddressee.removeEmail( *iter ); | 1132 | mAddressee.removeEmail( *iter ); |
1133 | 1133 | ||
1134 | emails = mEmailWidget->emails(); | 1134 | emails = mEmailWidget->emails(); |
1135 | bool first = true; | 1135 | bool first = true; |
1136 | for ( iter = emails.begin(); iter != emails.end(); ++iter ) { | 1136 | for ( iter = emails.begin(); iter != emails.end(); ++iter ) { |
1137 | mAddressee.insertEmail( *iter, first ); | 1137 | mAddressee.insertEmail( *iter, first ); |
1138 | first = false; | 1138 | first = false; |
1139 | } | 1139 | } |
1140 | 1140 | ||
1141 | // Save the phone numbers | 1141 | // Save the phone numbers |
1142 | KABC::PhoneNumber::List phoneNumbers; | 1142 | KABC::PhoneNumber::List phoneNumbers; |
1143 | KABC::PhoneNumber::List::Iterator phoneIter; | 1143 | KABC::PhoneNumber::List::Iterator phoneIter; |
1144 | phoneNumbers = mAddressee.phoneNumbers(); | 1144 | phoneNumbers = mAddressee.phoneNumbers(); |
1145 | for ( phoneIter = phoneNumbers.begin(); phoneIter != phoneNumbers.end(); | 1145 | for ( phoneIter = phoneNumbers.begin(); phoneIter != phoneNumbers.end(); |
1146 | ++phoneIter ) | 1146 | ++phoneIter ) |
1147 | mAddressee.removePhoneNumber( *phoneIter ); | 1147 | mAddressee.removePhoneNumber( *phoneIter ); |
1148 | 1148 | ||
1149 | phoneNumbers = mPhoneEditWidget->phoneNumbers(); | 1149 | phoneNumbers = mPhoneEditWidget->phoneNumbers(); |
1150 | for ( phoneIter = phoneNumbers.begin(); phoneIter != phoneNumbers.end(); | 1150 | for ( phoneIter = phoneNumbers.begin(); phoneIter != phoneNumbers.end(); |
1151 | ++phoneIter ) | 1151 | ++phoneIter ) |
1152 | mAddressee.insertPhoneNumber( *phoneIter ); | 1152 | mAddressee.insertPhoneNumber( *phoneIter ); |
1153 | 1153 | ||
1154 | // Save the addresses | 1154 | // Save the addresses |
1155 | KABC::Address::List addresses; | 1155 | KABC::Address::List addresses; |
1156 | KABC::Address::List::Iterator addressIter; | 1156 | KABC::Address::List::Iterator addressIter; |
1157 | addresses = mAddressee.addresses(); | 1157 | addresses = mAddressee.addresses(); |
1158 | for ( addressIter = addresses.begin(); addressIter != addresses.end(); | 1158 | for ( addressIter = addresses.begin(); addressIter != addresses.end(); |
1159 | ++addressIter ) | 1159 | ++addressIter ) |
1160 | mAddressee.removeAddress( *addressIter ); | 1160 | mAddressee.removeAddress( *addressIter ); |
1161 | 1161 | ||
1162 | addresses = mAddressEditWidget->addresses(); | 1162 | addresses = mAddressEditWidget->addresses(); |
1163 | for ( addressIter = addresses.begin(); addressIter != addresses.end(); | 1163 | for ( addressIter = addresses.begin(); addressIter != addresses.end(); |
1164 | ++addressIter ) | 1164 | ++addressIter ) |
1165 | mAddressee.insertAddress( *addressIter ); | 1165 | mAddressee.insertAddress( *addressIter ); |
1166 | mDirty = false; | 1166 | mDirty = false; |
1167 | } | 1167 | } |
1168 | 1168 | ||
1169 | bool AddresseeEditorWidget::dirty() | 1169 | bool AddresseeEditorWidget::dirty() |
1170 | { | 1170 | { |
1171 | 1171 | ||
1172 | if ( ! mDirty ) { | 1172 | if ( ! mDirty ) { |
1173 | if ( mBirthdayPicker->inputIsValid() ) { | 1173 | if ( mBirthdayPicker->inputIsValid() ) { |
1174 | QDate da = mBirthdayPicker->date(); | 1174 | QDate da = mBirthdayPicker->date(); |
1175 | if ( !(da == mAddressee.birthday().date())) | 1175 | if ( !(da == mAddressee.birthday().date())) |
1176 | mDirty = true; | 1176 | mDirty = true; |
1177 | } | 1177 | } |
1178 | else { | 1178 | else { |
1179 | mBirthdayPicker->clear(); | 1179 | mBirthdayPicker->clear(); |
1180 | } | 1180 | } |
1181 | if ( mAnniversaryPicker->inputIsValid() ) { | 1181 | if ( mAnniversaryPicker->inputIsValid() ) { |
1182 | QDate da = mAnniversaryPicker->date(); | 1182 | QDate da = mAnniversaryPicker->date(); |
1183 | if ( da != KGlobal::locale()->readDate( mAddressee.custom("KADDRESSBOOK", "X-Anniversary" ), | 1183 | if ( da != KGlobal::locale()->readDate( mAddressee.custom("KADDRESSBOOK", "X-Anniversary" ), |
1184 | "%Y-%m-%d")) | 1184 | "%Y-%m-%d")) |
1185 | mDirty = true; | 1185 | mDirty = true; |
1186 | } | 1186 | } |
1187 | else { | 1187 | else { |
1188 | mAnniversaryPicker->clear(); | 1188 | mAnniversaryPicker->clear(); |
1189 | } | 1189 | } |
1190 | } | 1190 | } |
1191 | return mDirty; | 1191 | return mDirty; |
1192 | } | 1192 | } |
1193 | 1193 | ||
1194 | void AddresseeEditorWidget::nameTextChanged( const QString &text ) | 1194 | void AddresseeEditorWidget::nameTextChanged( const QString &text ) |
1195 | { | 1195 | { |
1196 | if ( mBlockSignals ) | 1196 | if ( mBlockSignals ) |
1197 | return; | 1197 | return; |
1198 | // use the addressee class to parse the name for us | 1198 | // use the addressee class to parse the name for us |
1199 | mAConfig->setUid( mAddressee.uid() ); | 1199 | mAConfig->setUid( mAddressee.uid() ); |
1200 | if ( mAConfig->automaticNameParsing() ) { | 1200 | if ( mAConfig->automaticNameParsing() ) { |
1201 | if ( !mAddressee.formattedName().isEmpty() ) { | 1201 | if ( !mAddressee.formattedName().isEmpty() ) { |
1202 | QString fn = mAddressee.formattedName(); | 1202 | QString fn = mAddressee.formattedName(); |
1203 | mAddressee.setNameFromString( text ); | 1203 | mAddressee.setNameFromString( text ); |
1204 | mAddressee.setFormattedName( fn ); | 1204 | mAddressee.setFormattedName( fn ); |
1205 | } else { | 1205 | } else { |
1206 | // use extra addressee to avoid a formatted name assignment | 1206 | // use extra addressee to avoid a formatted name assignment |
1207 | Addressee addr; | 1207 | Addressee addr; |
1208 | addr.setNameFromString( text ); | 1208 | addr.setNameFromString( text ); |
1209 | mAddressee.setPrefix( addr.prefix() ); | 1209 | mAddressee.setPrefix( addr.prefix() ); |
1210 | mAddressee.setGivenName( addr.givenName() ); | 1210 | mAddressee.setGivenName( addr.givenName() ); |
1211 | mAddressee.setAdditionalName( addr.additionalName() ); | 1211 | mAddressee.setAdditionalName( addr.additionalName() ); |
1212 | mAddressee.setFamilyName( addr.familyName() ); | 1212 | mAddressee.setFamilyName( addr.familyName() ); |
1213 | mAddressee.setSuffix( addr.suffix() ); | 1213 | mAddressee.setSuffix( addr.suffix() ); |
1214 | } | 1214 | } |
1215 | } | 1215 | } |
1216 | nameBoxChanged(); | 1216 | nameBoxChanged(); |
1217 | 1217 | ||
1218 | 1218 | ||
1219 | emitModified(); | 1219 | emitModified(); |
1220 | } | 1220 | } |
1221 | 1221 | ||
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp index 72359df..d0865c3 100644 --- a/korganizer/searchdialog.cpp +++ b/korganizer/searchdialog.cpp | |||
@@ -1,617 +1,617 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 1998 Preston Brown | 3 | Copyright (c) 1998 Preston Brown |
4 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> | 4 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> |
5 | 5 | ||
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 <qlayout.h> | 25 | #include <qlayout.h> |
26 | #include <qcheckbox.h> | 26 | #include <qcheckbox.h> |
27 | #include <qgroupbox.h> | 27 | #include <qgroupbox.h> |
28 | #include <qlabel.h> | 28 | #include <qlabel.h> |
29 | #include <qlistview.h> | 29 | #include <qlistview.h> |
30 | #include <qwhatsthis.h> | 30 | #include <qwhatsthis.h> |
31 | #include <qlineedit.h> | 31 | #include <qlineedit.h> |
32 | #include <qpushbutton.h> | 32 | #include <qpushbutton.h> |
33 | #include <qhbuttongroup.h> | 33 | #include <qhbuttongroup.h> |
34 | #include <klocale.h> | 34 | #include <klocale.h> |
35 | #include <kmessagebox.h> | 35 | #include <kmessagebox.h> |
36 | 36 | ||
37 | #include <libkdepim/kdateedit.h> | 37 | #include <libkdepim/kdateedit.h> |
38 | 38 | ||
39 | #include "koglobals.h" | 39 | #include "koglobals.h" |
40 | #include "koprefs.h" | 40 | #include "koprefs.h" |
41 | #include "klineedit.h" | 41 | #include "klineedit.h" |
42 | 42 | ||
43 | #include "calendarview.h" | 43 | #include "calendarview.h" |
44 | #include "koviewmanager.h" | 44 | #include "koviewmanager.h" |
45 | #include "searchdialog.h" | 45 | #include "searchdialog.h" |
46 | 46 | ||
47 | SearchDialog::SearchDialog(Calendar *calendar,CalendarView *parent) | 47 | SearchDialog::SearchDialog(Calendar *calendar,CalendarView *parent) |
48 | : QVBox( 0 ) | 48 | : QVBox( 0 ) |
49 | 49 | ||
50 | { | 50 | { |
51 | mCalendar = calendar; | 51 | mCalendar = calendar; |
52 | QFrame *topFrame = new QFrame( this ) ;//plainPage(); | 52 | QFrame *topFrame = new QFrame( this ) ;//plainPage(); |
53 | QVBoxLayout *layout = new QVBoxLayout(topFrame,KDialog::marginHint(),KDialog::spacingHint()); | 53 | QVBoxLayout *layout = new QVBoxLayout(topFrame,KDialog::marginHint(),KDialog::spacingHint()); |
54 | 54 | ||
55 | // Search expression | 55 | // Search expression |
56 | QHBoxLayout *subLayout = new QHBoxLayout(); | 56 | QHBoxLayout *subLayout = new QHBoxLayout(); |
57 | layout->addLayout(subLayout); | 57 | layout->addLayout(subLayout); |
58 | /* | 58 | /* |
59 | searchLabel = new QLabel(topFrame); | 59 | searchLabel = new QLabel(topFrame); |
60 | searchLabel->setText(i18n("Search for:")); | 60 | searchLabel->setText(i18n("Search for:")); |
61 | subLayout->addWidget(searchLabel); | 61 | subLayout->addWidget(searchLabel); |
62 | */ | 62 | */ |
63 | QPushButton *OkButton = new QPushButton( i18n("Search for:"), topFrame ); | 63 | QPushButton *OkButton = new QPushButton( i18n("Search for:"), topFrame ); |
64 | //OkButton->setDefault( true ); | 64 | //OkButton->setDefault( true ); |
65 | connect(OkButton,SIGNAL(clicked()),SLOT(doSearch())); | 65 | connect(OkButton,SIGNAL(clicked()),SLOT(doSearch())); |
66 | subLayout->addWidget(OkButton); | 66 | subLayout->addWidget(OkButton); |
67 | searchEdit = new KLineEdit(topFrame); | 67 | searchEdit = new KLineEdit(topFrame); |
68 | subLayout->addWidget(searchEdit); | 68 | subLayout->addWidget(searchEdit); |
69 | 69 | ||
70 | mAddItems = new QRadioButton( "+ ", topFrame ); | 70 | mAddItems = new QRadioButton( "+ ", topFrame ); |
71 | mSubItems = new QRadioButton( "- ", topFrame ); | 71 | mSubItems = new QRadioButton( "- ", topFrame ); |
72 | mRefineItems = new QRadioButton( "< ", topFrame ); | 72 | mRefineItems = new QRadioButton( "< ", topFrame ); |
73 | subLayout->addWidget( mAddItems ); | 73 | subLayout->addWidget( mAddItems ); |
74 | subLayout->addWidget( mSubItems ); | 74 | subLayout->addWidget( mSubItems ); |
75 | subLayout->addWidget( mRefineItems ); | 75 | subLayout->addWidget( mRefineItems ); |
76 | QFont fo ( mAddItems->font() ); | 76 | QFont fo ( mAddItems->font() ); |
77 | fo.setBold( true ); | 77 | fo.setBold( true ); |
78 | fo.setPointSize( fo.pointSize() + 2 ); | 78 | fo.setPointSize( fo.pointSize() + 2 ); |
79 | mAddItems->setFont( fo ); | 79 | mAddItems->setFont( fo ); |
80 | mSubItems->setFont( fo ); | 80 | mSubItems->setFont( fo ); |
81 | mRefineItems->setFont( fo ); | 81 | mRefineItems->setFont( fo ); |
82 | connect( mAddItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_add( bool ))); | 82 | connect( mAddItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_add( bool ))); |
83 | connect( mSubItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_sub( bool ))); | 83 | connect( mSubItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_sub( bool ))); |
84 | connect( mRefineItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_refine( bool ))); | 84 | connect( mRefineItems , SIGNAL( toggled ( bool ) ),this,SLOT(slot_refine( bool ))); |
85 | 85 | ||
86 | QPushButton *togButton = new QPushButton( "", topFrame ); | 86 | QPushButton *togButton = new QPushButton( "", topFrame ); |
87 | subLayout->addWidget(togButton); | 87 | subLayout->addWidget(togButton); |
88 | connect(togButton,SIGNAL(clicked()),SLOT(toggleCheckboxes())); | 88 | connect(togButton,SIGNAL(clicked()),SLOT(toggleCheckboxes())); |
89 | togButton->setPixmap(SmallIcon("1updownarrow")); | 89 | togButton->setPixmap(SmallIcon("1updownarrow")); |
90 | togButton->setMinimumWidth( togButton->sizeHint().height() ); | 90 | togButton->setMinimumWidth( togButton->sizeHint().height() ); |
91 | 91 | ||
92 | searchEdit->setText("*"); // Find all events by default | 92 | searchEdit->setText("*"); // Find all events by default |
93 | searchEdit->setFocus(); | 93 | searchEdit->setFocus(); |
94 | connect(searchEdit, SIGNAL(textChanged ( const QString & )),this,SLOT(searchTextChanged( const QString & ))); | 94 | connect(searchEdit, SIGNAL(textChanged ( const QString & )),this,SLOT(searchTextChanged( const QString & ))); |
95 | connect(searchEdit, SIGNAL( returnPressed () ),this,SLOT(doSearch())); | 95 | connect(searchEdit, SIGNAL( returnPressed () ),this,SLOT(doSearch())); |
96 | // Subjects to search | 96 | // Subjects to search |
97 | // QGroupBox *subjectGroup = new QGroupBox(1,Vertical,i18n("Search In"), | 97 | // QGroupBox *subjectGroup = new QGroupBox(1,Vertical,i18n("Search In"), |
98 | // topFrame); | 98 | // topFrame); |
99 | 99 | ||
100 | incidenceGroup = new QHBox( topFrame ); | 100 | incidenceGroup = new QHBox( topFrame ); |
101 | layout->addWidget(incidenceGroup); | 101 | layout->addWidget(incidenceGroup); |
102 | 102 | ||
103 | mSearchEvent = new QCheckBox(i18n("Events"),incidenceGroup); | 103 | mSearchEvent = new QCheckBox(i18n("Events"),incidenceGroup); |
104 | //mSearchEvent->setChecked(true); | 104 | //mSearchEvent->setChecked(true); |
105 | mSearchTodo = new QCheckBox(i18n("Todos"),incidenceGroup); | 105 | mSearchTodo = new QCheckBox(i18n("Todos"),incidenceGroup); |
106 | mSearchJournal = new QCheckBox(i18n("Journals"),incidenceGroup); | 106 | mSearchJournal = new QCheckBox(i18n("Journals"),incidenceGroup); |
107 | 107 | ||
108 | subjectGroup = new QHBox( topFrame ); | 108 | subjectGroup = new QHBox( topFrame ); |
109 | layout->addWidget(subjectGroup); | 109 | layout->addWidget(subjectGroup); |
110 | 110 | ||
111 | mSummaryCheck = new QCheckBox(i18n("Summary/Loc."),subjectGroup); | 111 | mSummaryCheck = new QCheckBox(i18n("Summary/Loc."),subjectGroup); |
112 | mSummaryCheck->setChecked(true); | 112 | mSummaryCheck->setChecked(true); |
113 | mDescriptionCheck = new QCheckBox(i18n("Details"),subjectGroup); | 113 | mDescriptionCheck = new QCheckBox(i18n("Details"),subjectGroup); |
114 | mCategoryCheck = new QCheckBox(i18n("Categories"),subjectGroup); | 114 | mCategoryCheck = new QCheckBox(i18n("Categories"),subjectGroup); |
115 | 115 | ||
116 | attendeeGroup = new QHBox( topFrame ); | 116 | attendeeGroup = new QHBox( topFrame ); |
117 | layout->addWidget(attendeeGroup ); | 117 | layout->addWidget(attendeeGroup ); |
118 | new QLabel( i18n("Attendee:"),attendeeGroup ); | 118 | new QLabel( i18n("Attendee:"),attendeeGroup ); |
119 | mSearchAName = new QCheckBox(i18n("Name"),attendeeGroup ); | 119 | mSearchAName = new QCheckBox(i18n("Name"),attendeeGroup ); |
120 | mSearchAEmail = new QCheckBox(i18n("Email"), attendeeGroup ); | 120 | mSearchAEmail = new QCheckBox(i18n("Email"), attendeeGroup ); |
121 | // Date range | 121 | // Date range |
122 | // QGroupBox *rangeGroup = new QGroupBox(1,Horizontal,i18n("Date Range"), | 122 | // QGroupBox *rangeGroup = new QGroupBox(1,Horizontal,i18n("Date Range"), |
123 | // topFrame); | 123 | // topFrame); |
124 | // layout->addWidget(rangeGroup); | 124 | // layout->addWidget(rangeGroup); |
125 | 125 | ||
126 | QWidget *rangeWidget = new QWidget(topFrame); | 126 | QWidget *rangeWidget = new QWidget(topFrame); |
127 | QHBoxLayout *rangeLayout = new QHBoxLayout(rangeWidget,0,KDialog::spacingHint()); | 127 | QHBoxLayout *rangeLayout = new QHBoxLayout(rangeWidget,0,KDialog::spacingHint()-3); |
128 | rangeLayout->addWidget(new QLabel(i18n("From:"),rangeWidget)); | 128 | rangeLayout->addWidget(new QLabel(i18n("From:"),rangeWidget)); |
129 | mStartDate = new KDateEdit(rangeWidget); | 129 | mStartDate = new KDateEdit(rangeWidget); |
130 | rangeLayout->addWidget(mStartDate); | 130 | rangeLayout->addWidget(mStartDate); |
131 | rangeLayout->addWidget(new QLabel(i18n("To:"),rangeWidget)); | 131 | rangeLayout->addWidget(new QLabel(i18n("To:"),rangeWidget)); |
132 | mEndDate = new KDateEdit(rangeWidget); | 132 | mEndDate = new KDateEdit(rangeWidget); |
133 | mEndDate->setDate(QDate::currentDate().addDays(365)); | 133 | mEndDate->setDate(QDate::currentDate().addDays(365)); |
134 | rangeLayout->addWidget(mEndDate); | 134 | rangeLayout->addWidget(mEndDate); |
135 | QToolButton *wt = QWhatsThis::whatsThisButton ( rangeWidget ); | 135 | QToolButton *wt = QWhatsThis::whatsThisButton ( rangeWidget ); |
136 | rangeLayout->addWidget( (QWidget*)wt ); | 136 | rangeLayout->addWidget( (QWidget*)wt ); |
137 | layout->addWidget(rangeWidget); | 137 | layout->addWidget(rangeWidget); |
138 | // Results list view | 138 | // Results list view |
139 | listView = new KOListView(mCalendar,topFrame); | 139 | listView = new KOListView(mCalendar,topFrame); |
140 | layout->addWidget(listView); | 140 | layout->addWidget(listView); |
141 | listView->showCompletedTodos(); | 141 | listView->showCompletedTodos(); |
142 | //layout->setStretchFactor( listView, 333 ); | 142 | //layout->setStretchFactor( listView, 333 ); |
143 | //listView->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Expanding) ); | 143 | //listView->setSizePolicy( QSizePolicy( QSizePolicy::Preferred ,QSizePolicy::Expanding) ); |
144 | //listView->setMaximumHeight( 50 ); | 144 | //listView->setMaximumHeight( 50 ); |
145 | listView->readSettings(KOGlobals::config(),"SearchListView Layout"); | 145 | listView->readSettings(KOGlobals::config(),"SearchListView Layout"); |
146 | connect(searchEdit,SIGNAL(scrollDOWN()),SLOT(setFocusToList())); | 146 | connect(searchEdit,SIGNAL(scrollDOWN()),SLOT(setFocusToList())); |
147 | 147 | ||
148 | setCaption( i18n("KO/Pi Find: ")); | 148 | setCaption( i18n("KO/Pi Find: ")); |
149 | #ifdef DESKTOP_VERSION | 149 | #ifdef DESKTOP_VERSION |
150 | OkButton = new QPushButton( i18n("Close"), this ); | 150 | OkButton = new QPushButton( i18n("Close"), this ); |
151 | connect(OkButton,SIGNAL(clicked()),SLOT(hide())); | 151 | connect(OkButton,SIGNAL(clicked()),SLOT(hide())); |
152 | #endif | 152 | #endif |
153 | } | 153 | } |
154 | 154 | ||
155 | SearchDialog::~SearchDialog() | 155 | SearchDialog::~SearchDialog() |
156 | { | 156 | { |
157 | 157 | ||
158 | } | 158 | } |
159 | void SearchDialog::slot_add( bool b ) | 159 | void SearchDialog::slot_add( bool b ) |
160 | { | 160 | { |
161 | if ( b ) { | 161 | if ( b ) { |
162 | if ( mSubItems->isOn() ) mSubItems->toggle(); | 162 | if ( mSubItems->isOn() ) mSubItems->toggle(); |
163 | if ( mRefineItems->isOn() ) mRefineItems->toggle(); | 163 | if ( mRefineItems->isOn() ) mRefineItems->toggle(); |
164 | setCaption( i18n("Matching items will be added to list")); | 164 | setCaption( i18n("Matching items will be added to list")); |
165 | } else | 165 | } else |
166 | setCaption( i18n("List will be cleared before search")); | 166 | setCaption( i18n("List will be cleared before search")); |
167 | } | 167 | } |
168 | void SearchDialog::slot_sub( bool b) | 168 | void SearchDialog::slot_sub( bool b) |
169 | { | 169 | { |
170 | if ( b ) { | 170 | if ( b ) { |
171 | if ( mRefineItems->isOn() ) mRefineItems->toggle(); | 171 | if ( mRefineItems->isOn() ) mRefineItems->toggle(); |
172 | if ( mAddItems->isOn() ) mAddItems->toggle(); | 172 | if ( mAddItems->isOn() ) mAddItems->toggle(); |
173 | setCaption( i18n("Matching items will be removed from list")); | 173 | setCaption( i18n("Matching items will be removed from list")); |
174 | } else | 174 | } else |
175 | setCaption( i18n("List will be cleared before search")); | 175 | setCaption( i18n("List will be cleared before search")); |
176 | } | 176 | } |
177 | void SearchDialog::slot_refine( bool b) | 177 | void SearchDialog::slot_refine( bool b) |
178 | { | 178 | { |
179 | if ( b ) { | 179 | if ( b ) { |
180 | if ( mSubItems->isOn() ) mSubItems->toggle(); | 180 | if ( mSubItems->isOn() ) mSubItems->toggle(); |
181 | if ( mAddItems->isOn() ) mAddItems->toggle(); | 181 | if ( mAddItems->isOn() ) mAddItems->toggle(); |
182 | setCaption( i18n("Search on displayed list only")); | 182 | setCaption( i18n("Search on displayed list only")); |
183 | } else | 183 | } else |
184 | setCaption( i18n("List will be cleared before search")); | 184 | setCaption( i18n("List will be cleared before search")); |
185 | } | 185 | } |
186 | void SearchDialog::toggleCheckboxes() | 186 | void SearchDialog::toggleCheckboxes() |
187 | { | 187 | { |
188 | if ( incidenceGroup->isVisible() ) { | 188 | if ( incidenceGroup->isVisible() ) { |
189 | incidenceGroup->hide() ; | 189 | incidenceGroup->hide() ; |
190 | subjectGroup->hide() ; | 190 | subjectGroup->hide() ; |
191 | attendeeGroup->hide() ; | 191 | attendeeGroup->hide() ; |
192 | } else { | 192 | } else { |
193 | incidenceGroup->show() ; | 193 | incidenceGroup->show() ; |
194 | subjectGroup->show() ; | 194 | subjectGroup->show() ; |
195 | attendeeGroup->show() ; | 195 | attendeeGroup->show() ; |
196 | } | 196 | } |
197 | } | 197 | } |
198 | void SearchDialog::raiseAndSelect() | 198 | void SearchDialog::raiseAndSelect() |
199 | { | 199 | { |
200 | 200 | ||
201 | static int currentState = 0; | 201 | static int currentState = 0; |
202 | 202 | ||
203 | if ( !mSearchJournal->isChecked() && !mSearchTodo->isChecked() && !mSearchEvent->isChecked() ) | 203 | if ( !mSearchJournal->isChecked() && !mSearchTodo->isChecked() && !mSearchEvent->isChecked() ) |
204 | currentState = 0; | 204 | currentState = 0; |
205 | int newState = 0; | 205 | int newState = 0; |
206 | if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { | 206 | if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { |
207 | newState = VIEW_J_VIEW; | 207 | newState = VIEW_J_VIEW; |
208 | } | 208 | } |
209 | else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { | 209 | else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { |
210 | newState = VIEW_T_VIEW; | 210 | newState = VIEW_T_VIEW; |
211 | } | 211 | } |
212 | else { | 212 | else { |
213 | newState = VIEW_A_VIEW; | 213 | newState = VIEW_A_VIEW; |
214 | } | 214 | } |
215 | if ( newState != currentState ) { | 215 | if ( newState != currentState ) { |
216 | if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { | 216 | if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) { |
217 | if ( ! mSearchJournal->isChecked() ) { | 217 | if ( ! mSearchJournal->isChecked() ) { |
218 | mSearchJournal->setChecked( true ); | 218 | mSearchJournal->setChecked( true ); |
219 | mSearchTodo->setChecked( false ); | 219 | mSearchTodo->setChecked( false ); |
220 | mSearchEvent->setChecked( false ); | 220 | mSearchEvent->setChecked( false ); |
221 | mSummaryCheck->setChecked( true ); | 221 | mSummaryCheck->setChecked( true ); |
222 | mDescriptionCheck->setChecked( true ); | 222 | mDescriptionCheck->setChecked( true ); |
223 | 223 | ||
224 | } | 224 | } |
225 | } | 225 | } |
226 | else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { | 226 | else if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) { |
227 | if ( ! mSearchTodo->isChecked() ) { | 227 | if ( ! mSearchTodo->isChecked() ) { |
228 | mSearchTodo->setChecked( true ); | 228 | mSearchTodo->setChecked( true ); |
229 | mSearchJournal->setChecked( false ); | 229 | mSearchJournal->setChecked( false ); |
230 | mSearchEvent->setChecked( false ); | 230 | mSearchEvent->setChecked( false ); |
231 | } | 231 | } |
232 | } | 232 | } |
233 | else { | 233 | else { |
234 | if ( ! mSearchEvent->isChecked() ) { | 234 | if ( ! mSearchEvent->isChecked() ) { |
235 | mSearchEvent->setChecked( true ); | 235 | mSearchEvent->setChecked( true ); |
236 | mSearchJournal->setChecked( false ); | 236 | mSearchJournal->setChecked( false ); |
237 | mSearchTodo->setChecked( false ); | 237 | mSearchTodo->setChecked( false ); |
238 | } | 238 | } |
239 | } | 239 | } |
240 | } | 240 | } |
241 | currentState = newState; | 241 | currentState = newState; |
242 | raise(); | 242 | raise(); |
243 | } | 243 | } |
244 | void SearchDialog::setFocusToList() | 244 | void SearchDialog::setFocusToList() |
245 | { | 245 | { |
246 | listView->resetFocus(); | 246 | listView->resetFocus(); |
247 | } | 247 | } |
248 | void SearchDialog::accept() | 248 | void SearchDialog::accept() |
249 | { | 249 | { |
250 | doSearch(); | 250 | doSearch(); |
251 | } | 251 | } |
252 | void SearchDialog::updateList() | 252 | void SearchDialog::updateList() |
253 | { | 253 | { |
254 | //listView->updateList(); | 254 | //listView->updateList(); |
255 | if ( isVisible() ) { | 255 | if ( isVisible() ) { |
256 | updateView(); | 256 | updateView(); |
257 | //qDebug("SearchDialog::updated "); | 257 | //qDebug("SearchDialog::updated "); |
258 | } | 258 | } |
259 | else { | 259 | else { |
260 | listView->clear(); | 260 | listView->clear(); |
261 | //qDebug("SearchDialog::cleared "); | 261 | //qDebug("SearchDialog::cleared "); |
262 | 262 | ||
263 | } | 263 | } |
264 | } | 264 | } |
265 | void SearchDialog::searchTextChanged( const QString &_text ) | 265 | void SearchDialog::searchTextChanged( const QString &_text ) |
266 | { | 266 | { |
267 | #if 0 | 267 | #if 0 |
268 | enableButton( KDialogBase::User1, !_text.isEmpty() ); | 268 | enableButton( KDialogBase::User1, !_text.isEmpty() ); |
269 | #endif | 269 | #endif |
270 | } | 270 | } |
271 | 271 | ||
272 | void SearchDialog::doSearch() | 272 | void SearchDialog::doSearch() |
273 | { | 273 | { |
274 | QRegExp re; | 274 | QRegExp re; |
275 | re.setWildcard(true); // most people understand these better. | 275 | re.setWildcard(true); // most people understand these better. |
276 | re.setCaseSensitive(false); | 276 | re.setCaseSensitive(false); |
277 | QString st = searchEdit->text(); | 277 | QString st = searchEdit->text(); |
278 | if ( st.right(1) != "*") | 278 | if ( st.right(1) != "*") |
279 | st += "*"; | 279 | st += "*"; |
280 | re.setPattern(st); | 280 | re.setPattern(st); |
281 | if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) { | 281 | if (!mSearchEvent->isChecked() && !mSearchTodo->isChecked() && !mSearchJournal->isChecked() ) { |
282 | KMessageBox::sorry(this, | 282 | KMessageBox::sorry(this, |
283 | i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals")); | 283 | i18n("Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals")); |
284 | return; | 284 | return; |
285 | } | 285 | } |
286 | if (!re.isValid() ) { | 286 | if (!re.isValid() ) { |
287 | KMessageBox::sorry(this, | 287 | KMessageBox::sorry(this, |
288 | i18n("Invalid search expression,\ncannot perform " | 288 | i18n("Invalid search expression,\ncannot perform " |
289 | "the search.\nPlease enter a search expression\n" | 289 | "the search.\nPlease enter a search expression\n" |
290 | "using the wildcard characters\n '*' and '?'" | 290 | "using the wildcard characters\n '*' and '?'" |
291 | "where needed.")); | 291 | "where needed.")); |
292 | return; | 292 | return; |
293 | } | 293 | } |
294 | search(re); | 294 | search(re); |
295 | listView->setStartDate( mStartDate->date() ); | 295 | listView->setStartDate( mStartDate->date() ); |
296 | listView->showEvents(mMatchedEvents); | 296 | listView->showEvents(mMatchedEvents); |
297 | listView->addTodos(mMatchedTodos); | 297 | listView->addTodos(mMatchedTodos); |
298 | listView->addJournals(mMatchedJournals); | 298 | listView->addJournals(mMatchedJournals); |
299 | if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) { | 299 | if (mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() == 0) { |
300 | setCaption(i18n("No items found. Use '*' and '?' where needed.")); | 300 | setCaption(i18n("No items found. Use '*' and '?' where needed.")); |
301 | } else { | 301 | } else { |
302 | QString mess; | 302 | QString mess; |
303 | mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() ); | 303 | mess = mess.sprintf( i18n("%d item(s) found."), mMatchedEvents.count()+ mMatchedJournals.count() + mMatchedTodos.count() ); |
304 | setCaption( i18n("KO/Pi Find: ") + mess); | 304 | setCaption( i18n("KO/Pi Find: ") + mess); |
305 | 305 | ||
306 | } | 306 | } |
307 | searchEdit->setFocus(); | 307 | searchEdit->setFocus(); |
308 | } | 308 | } |
309 | void SearchDialog::updateConfig() | 309 | void SearchDialog::updateConfig() |
310 | { | 310 | { |
311 | listView->updateConfig(); | 311 | listView->updateConfig(); |
312 | } | 312 | } |
313 | void SearchDialog::updateView() | 313 | void SearchDialog::updateView() |
314 | { | 314 | { |
315 | //qDebug("SearchDialog::updateView() %d ", isVisible()); | 315 | //qDebug("SearchDialog::updateView() %d ", isVisible()); |
316 | QRegExp re; | 316 | QRegExp re; |
317 | re.setWildcard(true); // most people understand these better. | 317 | re.setWildcard(true); // most people understand these better. |
318 | re.setCaseSensitive(false); | 318 | re.setCaseSensitive(false); |
319 | QString st = searchEdit->text(); | 319 | QString st = searchEdit->text(); |
320 | if ( st.right(1) != "*") | 320 | if ( st.right(1) != "*") |
321 | st += "*"; | 321 | st += "*"; |
322 | re.setPattern(st); | 322 | re.setPattern(st); |
323 | mMatchedEvents.clear(); | 323 | mMatchedEvents.clear(); |
324 | mMatchedTodos.clear(); | 324 | mMatchedTodos.clear(); |
325 | mMatchedJournals.clear(); | 325 | mMatchedJournals.clear(); |
326 | if (re.isValid()) { | 326 | if (re.isValid()) { |
327 | search(re); | 327 | search(re); |
328 | } | 328 | } |
329 | listView->setStartDate( mStartDate->date() ); | 329 | listView->setStartDate( mStartDate->date() ); |
330 | listView->showEvents(mMatchedEvents); | 330 | listView->showEvents(mMatchedEvents); |
331 | listView->addTodos(mMatchedTodos); | 331 | listView->addTodos(mMatchedTodos); |
332 | listView->addJournals(mMatchedJournals); | 332 | listView->addJournals(mMatchedJournals); |
333 | } | 333 | } |
334 | 334 | ||
335 | void SearchDialog::search(const QRegExp &re) | 335 | void SearchDialog::search(const QRegExp &re) |
336 | { | 336 | { |
337 | QPtrList<Event> events; | 337 | QPtrList<Event> events; |
338 | if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { | 338 | if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { |
339 | if ( mRefineItems->isChecked() ) events = mMatchedEvents; | 339 | if ( mRefineItems->isChecked() ) events = mMatchedEvents; |
340 | mMatchedEvents.clear(); | 340 | mMatchedEvents.clear(); |
341 | } | 341 | } |
342 | if ( mSearchEvent->isChecked() ) { | 342 | if ( mSearchEvent->isChecked() ) { |
343 | if ( !mRefineItems->isChecked() ) | 343 | if ( !mRefineItems->isChecked() ) |
344 | events = mCalendar->events( mStartDate->date(), | 344 | events = mCalendar->events( mStartDate->date(), |
345 | mEndDate->date(), | 345 | mEndDate->date(), |
346 | false /*mInclusiveCheck->isChecked()*/ ); | 346 | false /*mInclusiveCheck->isChecked()*/ ); |
347 | 347 | ||
348 | 348 | ||
349 | Event *ev; | 349 | Event *ev; |
350 | for(ev=events.first();ev;ev=events.next()) { | 350 | for(ev=events.first();ev;ev=events.next()) { |
351 | if (mSummaryCheck->isChecked()) { | 351 | if (mSummaryCheck->isChecked()) { |
352 | #if QT_VERSION >= 0x030000 | 352 | #if QT_VERSION >= 0x030000 |
353 | if (re.search(ev->summary()) != -1) | 353 | if (re.search(ev->summary()) != -1) |
354 | #else | 354 | #else |
355 | if (re.match(ev->summary()) != -1) | 355 | if (re.match(ev->summary()) != -1) |
356 | #endif | 356 | #endif |
357 | { | 357 | { |
358 | if ( mSubItems->isChecked() ) | 358 | if ( mSubItems->isChecked() ) |
359 | mMatchedEvents.remove(ev); | 359 | mMatchedEvents.remove(ev); |
360 | else { | 360 | else { |
361 | if ( !mMatchedEvents.contains( ev ) ) | 361 | if ( !mMatchedEvents.contains( ev ) ) |
362 | mMatchedEvents.append(ev); | 362 | mMatchedEvents.append(ev); |
363 | } | 363 | } |
364 | continue; | 364 | continue; |
365 | } | 365 | } |
366 | #if QT_VERSION >= 0x030000 | 366 | #if QT_VERSION >= 0x030000 |
367 | if (re.search(ev->location()) != -1) | 367 | if (re.search(ev->location()) != -1) |
368 | #else | 368 | #else |
369 | if (re.match(ev->location()) != -1) | 369 | if (re.match(ev->location()) != -1) |
370 | #endif | 370 | #endif |
371 | { | 371 | { |
372 | if ( mSubItems->isChecked() ) | 372 | if ( mSubItems->isChecked() ) |
373 | mMatchedEvents.remove(ev); | 373 | mMatchedEvents.remove(ev); |
374 | else{ | 374 | else{ |
375 | if ( !mMatchedEvents.contains( ev ) ) | 375 | if ( !mMatchedEvents.contains( ev ) ) |
376 | mMatchedEvents.append(ev); | 376 | mMatchedEvents.append(ev); |
377 | } | 377 | } |
378 | continue; | 378 | continue; |
379 | } | 379 | } |
380 | } | 380 | } |
381 | if (mDescriptionCheck->isChecked()) { | 381 | if (mDescriptionCheck->isChecked()) { |
382 | #if QT_VERSION >= 0x030000 | 382 | #if QT_VERSION >= 0x030000 |
383 | if (re.search(ev->description()) != -1) | 383 | if (re.search(ev->description()) != -1) |
384 | #else | 384 | #else |
385 | if (re.match(ev->description()) != -1) | 385 | if (re.match(ev->description()) != -1) |
386 | #endif | 386 | #endif |
387 | { | 387 | { |
388 | if ( mSubItems->isChecked() ) | 388 | if ( mSubItems->isChecked() ) |
389 | mMatchedEvents.remove(ev); | 389 | mMatchedEvents.remove(ev); |
390 | else{ | 390 | else{ |
391 | if ( !mMatchedEvents.contains( ev ) ) | 391 | if ( !mMatchedEvents.contains( ev ) ) |
392 | mMatchedEvents.append(ev); | 392 | mMatchedEvents.append(ev); |
393 | } | 393 | } |
394 | continue; | 394 | continue; |
395 | } | 395 | } |
396 | } | 396 | } |
397 | if (mCategoryCheck->isChecked()) { | 397 | if (mCategoryCheck->isChecked()) { |
398 | #if QT_VERSION >= 0x030000 | 398 | #if QT_VERSION >= 0x030000 |
399 | if (re.search(ev->categoriesStr()) != -1) | 399 | if (re.search(ev->categoriesStr()) != -1) |
400 | #else | 400 | #else |
401 | if (re.match(ev->categoriesStr()) != -1) | 401 | if (re.match(ev->categoriesStr()) != -1) |
402 | #endif | 402 | #endif |
403 | { | 403 | { |
404 | 404 | ||
405 | if ( mSubItems->isChecked() ) | 405 | if ( mSubItems->isChecked() ) |
406 | mMatchedEvents.remove(ev); | 406 | mMatchedEvents.remove(ev); |
407 | else{ | 407 | else{ |
408 | if ( !mMatchedEvents.contains( ev ) ) | 408 | if ( !mMatchedEvents.contains( ev ) ) |
409 | mMatchedEvents.append(ev); | 409 | mMatchedEvents.append(ev); |
410 | } | 410 | } |
411 | continue; | 411 | continue; |
412 | } | 412 | } |
413 | } | 413 | } |
414 | if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) { | 414 | if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) { |
415 | QPtrList<Attendee> tmpAList = ev->attendees(); | 415 | QPtrList<Attendee> tmpAList = ev->attendees(); |
416 | Attendee *a; | 416 | Attendee *a; |
417 | for (a = tmpAList.first(); a; a = tmpAList.next()) { | 417 | for (a = tmpAList.first(); a; a = tmpAList.next()) { |
418 | if (mSearchAName->isChecked()) { | 418 | if (mSearchAName->isChecked()) { |
419 | #if QT_VERSION >= 0x030000 | 419 | #if QT_VERSION >= 0x030000 |
420 | if (re.search(a->name()) != -1) | 420 | if (re.search(a->name()) != -1) |
421 | #else | 421 | #else |
422 | if (re.match(a->name()) != -1) | 422 | if (re.match(a->name()) != -1) |
423 | #endif | 423 | #endif |
424 | { | 424 | { |
425 | if ( mSubItems->isChecked() ) | 425 | if ( mSubItems->isChecked() ) |
426 | mMatchedEvents.remove(ev); | 426 | mMatchedEvents.remove(ev); |
427 | else{ | 427 | else{ |
428 | if ( !mMatchedEvents.contains( ev ) ) | 428 | if ( !mMatchedEvents.contains( ev ) ) |
429 | mMatchedEvents.append(ev); | 429 | mMatchedEvents.append(ev); |
430 | } | 430 | } |
431 | break; | 431 | break; |
432 | } | 432 | } |
433 | } | 433 | } |
434 | if (mSearchAEmail->isChecked()) { | 434 | if (mSearchAEmail->isChecked()) { |
435 | #if QT_VERSION >= 0x030000 | 435 | #if QT_VERSION >= 0x030000 |
436 | if (re.search(a->email()) != -1) | 436 | if (re.search(a->email()) != -1) |
437 | #else | 437 | #else |
438 | if (re.match(a->email()) != -1) | 438 | if (re.match(a->email()) != -1) |
439 | #endif | 439 | #endif |
440 | { | 440 | { |
441 | if ( mSubItems->isChecked() ) | 441 | if ( mSubItems->isChecked() ) |
442 | mMatchedEvents.remove(ev); | 442 | mMatchedEvents.remove(ev); |
443 | else{ | 443 | else{ |
444 | if ( !mMatchedEvents.contains( ev ) ) | 444 | if ( !mMatchedEvents.contains( ev ) ) |
445 | mMatchedEvents.append(ev); | 445 | mMatchedEvents.append(ev); |
446 | } | 446 | } |
447 | break; | 447 | break; |
448 | } | 448 | } |
449 | } | 449 | } |
450 | } | 450 | } |
451 | } | 451 | } |
452 | } | 452 | } |
453 | } | 453 | } |
454 | QPtrList<Todo> todos; | 454 | QPtrList<Todo> todos; |
455 | 455 | ||
456 | if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { | 456 | if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { |
457 | if ( mRefineItems->isChecked() ) todos = mMatchedTodos ; | 457 | if ( mRefineItems->isChecked() ) todos = mMatchedTodos ; |
458 | mMatchedTodos.clear(); | 458 | mMatchedTodos.clear(); |
459 | } | 459 | } |
460 | 460 | ||
461 | if ( mSearchTodo->isChecked() ) { | 461 | if ( mSearchTodo->isChecked() ) { |
462 | if ( !mRefineItems->isChecked() ) todos = mCalendar->todos( ); | 462 | if ( !mRefineItems->isChecked() ) todos = mCalendar->todos( ); |
463 | Todo *tod; | 463 | Todo *tod; |
464 | for(tod=todos.first();tod;tod=todos.next()) { | 464 | for(tod=todos.first();tod;tod=todos.next()) { |
465 | if (mSummaryCheck->isChecked()) { | 465 | if (mSummaryCheck->isChecked()) { |
466 | #if QT_VERSION >= 0x030000 | 466 | #if QT_VERSION >= 0x030000 |
467 | if (re.search(tod->summary()) != -1) | 467 | if (re.search(tod->summary()) != -1) |
468 | #else | 468 | #else |
469 | if (re.match(tod->summary()) != -1) | 469 | if (re.match(tod->summary()) != -1) |
470 | #endif | 470 | #endif |
471 | { | 471 | { |
472 | if ( mSubItems->isChecked() ) | 472 | if ( mSubItems->isChecked() ) |
473 | mMatchedTodos.remove(tod); | 473 | mMatchedTodos.remove(tod); |
474 | else if (!mMatchedTodos.contains( tod )) | 474 | else if (!mMatchedTodos.contains( tod )) |
475 | mMatchedTodos.append(tod); | 475 | mMatchedTodos.append(tod); |
476 | continue; | 476 | continue; |
477 | } | 477 | } |
478 | } | 478 | } |
479 | if (mDescriptionCheck->isChecked()) { | 479 | if (mDescriptionCheck->isChecked()) { |
480 | #if QT_VERSION >= 0x030000 | 480 | #if QT_VERSION >= 0x030000 |
481 | if (re.search(tod->description()) != -1) | 481 | if (re.search(tod->description()) != -1) |
482 | #else | 482 | #else |
483 | if (re.match(tod->description()) != -1) | 483 | if (re.match(tod->description()) != -1) |
484 | #endif | 484 | #endif |
485 | { | 485 | { |
486 | if ( mSubItems->isChecked() ) | 486 | if ( mSubItems->isChecked() ) |
487 | mMatchedTodos.remove(tod); | 487 | mMatchedTodos.remove(tod); |
488 | else if (!mMatchedTodos.contains( tod )) | 488 | else if (!mMatchedTodos.contains( tod )) |
489 | mMatchedTodos.append(tod); | 489 | mMatchedTodos.append(tod); |
490 | continue; | 490 | continue; |
491 | } | 491 | } |
492 | } | 492 | } |
493 | if (mCategoryCheck->isChecked()) { | 493 | if (mCategoryCheck->isChecked()) { |
494 | #if QT_VERSION >= 0x030000 | 494 | #if QT_VERSION >= 0x030000 |
495 | if (re.search(tod->categoriesStr()) != -1) | 495 | if (re.search(tod->categoriesStr()) != -1) |
496 | #else | 496 | #else |
497 | if (re.match(tod->categoriesStr()) != -1) | 497 | if (re.match(tod->categoriesStr()) != -1) |
498 | #endif | 498 | #endif |
499 | { | 499 | { |
500 | if ( mSubItems->isChecked() ) | 500 | if ( mSubItems->isChecked() ) |
501 | mMatchedTodos.remove(tod); | 501 | mMatchedTodos.remove(tod); |
502 | else if (!mMatchedTodos.contains( tod )) | 502 | else if (!mMatchedTodos.contains( tod )) |
503 | mMatchedTodos.append(tod); | 503 | mMatchedTodos.append(tod); |
504 | continue; | 504 | continue; |
505 | } | 505 | } |
506 | } | 506 | } |
507 | if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) { | 507 | if ( mSearchAName->isChecked() || mSearchAEmail->isChecked() ) { |
508 | QPtrList<Attendee> tmpAList = tod->attendees(); | 508 | QPtrList<Attendee> tmpAList = tod->attendees(); |
509 | Attendee *a; | 509 | Attendee *a; |
510 | for (a = tmpAList.first(); a; a = tmpAList.next()) { | 510 | for (a = tmpAList.first(); a; a = tmpAList.next()) { |
511 | if (mSearchAName->isChecked()) { | 511 | if (mSearchAName->isChecked()) { |
512 | #if QT_VERSION >= 0x030000 | 512 | #if QT_VERSION >= 0x030000 |
513 | if (re.search(a->name()) != -1) | 513 | if (re.search(a->name()) != -1) |
514 | #else | 514 | #else |
515 | if (re.match(a->name()) != -1) | 515 | if (re.match(a->name()) != -1) |
516 | #endif | 516 | #endif |
517 | { | 517 | { |
518 | if ( mSubItems->isChecked() ) | 518 | if ( mSubItems->isChecked() ) |
519 | mMatchedTodos.remove(tod); | 519 | mMatchedTodos.remove(tod); |
520 | else if (!mMatchedTodos.contains( tod )) | 520 | else if (!mMatchedTodos.contains( tod )) |
521 | mMatchedTodos.append(tod); | 521 | mMatchedTodos.append(tod); |
522 | break; | 522 | break; |
523 | } | 523 | } |
524 | } | 524 | } |
525 | if (mSearchAEmail->isChecked()) { | 525 | if (mSearchAEmail->isChecked()) { |
526 | #if QT_VERSION >= 0x030000 | 526 | #if QT_VERSION >= 0x030000 |
527 | if (re.search(a->email()) != -1) | 527 | if (re.search(a->email()) != -1) |
528 | #else | 528 | #else |
529 | if (re.match(a->email()) != -1) | 529 | if (re.match(a->email()) != -1) |
530 | #endif | 530 | #endif |
531 | { | 531 | { |
532 | if ( mSubItems->isChecked() ) | 532 | if ( mSubItems->isChecked() ) |
533 | mMatchedTodos.remove(tod); | 533 | mMatchedTodos.remove(tod); |
534 | else if (!mMatchedTodos.contains( tod )) | 534 | else if (!mMatchedTodos.contains( tod )) |
535 | mMatchedTodos.append(tod); | 535 | mMatchedTodos.append(tod); |
536 | break; | 536 | break; |
537 | } | 537 | } |
538 | } | 538 | } |
539 | } | 539 | } |
540 | } | 540 | } |
541 | } | 541 | } |
542 | } | 542 | } |
543 | 543 | ||
544 | QPtrList<Journal> journals; | 544 | QPtrList<Journal> journals; |
545 | if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { | 545 | if ( !mAddItems->isChecked() && !mSubItems->isChecked() ) { |
546 | if ( mRefineItems->isChecked() ) journals = mMatchedJournals ; | 546 | if ( mRefineItems->isChecked() ) journals = mMatchedJournals ; |
547 | mMatchedJournals.clear(); | 547 | mMatchedJournals.clear(); |
548 | } | 548 | } |
549 | if (mSearchJournal->isChecked() ) { | 549 | if (mSearchJournal->isChecked() ) { |
550 | if ( ! mRefineItems->isChecked() ) journals = mCalendar->journals(); | 550 | if ( ! mRefineItems->isChecked() ) journals = mCalendar->journals(); |
551 | Journal* journ; | 551 | Journal* journ; |
552 | 552 | ||
553 | for(journ=journals.first();journ;journ=journals.next()) { | 553 | for(journ=journals.first();journ;journ=journals.next()) { |
554 | if ( journ->dtStart().date() <= mEndDate->date() | 554 | if ( journ->dtStart().date() <= mEndDate->date() |
555 | &&journ->dtStart().date() >= mStartDate->date()) { | 555 | &&journ->dtStart().date() >= mStartDate->date()) { |
556 | if (mDescriptionCheck->isChecked()) { | 556 | if (mDescriptionCheck->isChecked()) { |
557 | #if QT_VERSION >= 0x030000 | 557 | #if QT_VERSION >= 0x030000 |
558 | if (re.search(journ->description()) != -1) | 558 | if (re.search(journ->description()) != -1) |
559 | #else | 559 | #else |
560 | if (re.match(journ->description()) != -1) | 560 | if (re.match(journ->description()) != -1) |
561 | #endif | 561 | #endif |
562 | { | 562 | { |
563 | if ( mSubItems->isChecked() ) | 563 | if ( mSubItems->isChecked() ) |
564 | mMatchedJournals.remove(journ); | 564 | mMatchedJournals.remove(journ); |
565 | else if (!mMatchedJournals.contains( journ )) | 565 | else if (!mMatchedJournals.contains( journ )) |
566 | mMatchedJournals.append(journ); | 566 | mMatchedJournals.append(journ); |
567 | continue; | 567 | continue; |
568 | } | 568 | } |
569 | } | 569 | } |
570 | if (mSummaryCheck->isChecked()) { | 570 | if (mSummaryCheck->isChecked()) { |
571 | #if QT_VERSION >= 0x030000 | 571 | #if QT_VERSION >= 0x030000 |
572 | if (re.search(journ->summary()) != -1) | 572 | if (re.search(journ->summary()) != -1) |
573 | #else | 573 | #else |
574 | if (re.match(journ->summary()) != -1) | 574 | if (re.match(journ->summary()) != -1) |
575 | #endif | 575 | #endif |
576 | { | 576 | { |
577 | if ( mSubItems->isChecked() ) | 577 | if ( mSubItems->isChecked() ) |
578 | mMatchedJournals.remove(journ); | 578 | mMatchedJournals.remove(journ); |
579 | else if (!mMatchedJournals.contains( journ )) | 579 | else if (!mMatchedJournals.contains( journ )) |
580 | mMatchedJournals.append(journ); | 580 | mMatchedJournals.append(journ); |
581 | continue; | 581 | continue; |
582 | } | 582 | } |
583 | } | 583 | } |
584 | } | 584 | } |
585 | } | 585 | } |
586 | } | 586 | } |
587 | if ( mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() < 1 ) { | 587 | if ( mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() < 1 ) { |
588 | qDebug("count %d ", mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() ); | 588 | qDebug("count %d ", mMatchedEvents.count() + mMatchedJournals.count() + mMatchedTodos.count() ); |
589 | if ( mRefineItems->isChecked() ) | 589 | if ( mRefineItems->isChecked() ) |
590 | mRefineItems->setChecked( false ); | 590 | mRefineItems->setChecked( false ); |
591 | else if ( mSubItems->isChecked() ) | 591 | else if ( mSubItems->isChecked() ) |
592 | mSubItems->setChecked( false ); | 592 | mSubItems->setChecked( false ); |
593 | } | 593 | } |
594 | } | 594 | } |
595 | 595 | ||
596 | void SearchDialog::keyPressEvent ( QKeyEvent *e) | 596 | void SearchDialog::keyPressEvent ( QKeyEvent *e) |
597 | { | 597 | { |
598 | switch ( e->key() ) { | 598 | switch ( e->key() ) { |
599 | case Qt::Key_Escape: | 599 | case Qt::Key_Escape: |
600 | close(); | 600 | close(); |
601 | break; | 601 | break; |
602 | case Qt::Key_F: | 602 | case Qt::Key_F: |
603 | if ( e->state() == Qt::ControlButton ) { | 603 | if ( e->state() == Qt::ControlButton ) { |
604 | 604 | ||
605 | } | 605 | } |
606 | break; | 606 | break; |
607 | case Qt::Key_Return: | 607 | case Qt::Key_Return: |
608 | case Qt::Key_Enter: | 608 | case Qt::Key_Enter: |
609 | doSearch(); | 609 | doSearch(); |
610 | break; | 610 | break; |
611 | 611 | ||
612 | default: | 612 | default: |
613 | e->ignore(); | 613 | e->ignore(); |
614 | } | 614 | } |
615 | } | 615 | } |
616 | 616 | ||
617 | //mMatchedJournals; | 617 | //mMatchedJournals; |