summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt16
-rw-r--r--kabc/phonenumber.cpp30
-rw-r--r--kaddressbook/emaileditwidget.cpp2
-rw-r--r--kaddressbook/phoneeditwidget.cpp27
-rw-r--r--korganizer/mainwindow.cpp16
5 files changed, 63 insertions, 28 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index 1a045f3..f8f8b96 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1012,31 +1012,31 @@
1012{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" }, 1012{ "<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n","<p><b>shift+S</b>: Mache Todo zum <b>S</b>ubtodo</p>\n" },
1013{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" }, 1013{ "<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n","<p><b>shift+U</b>: <b>U</b>nparent Todo (Mache Sub-Todo zum Toplevel Todo)</p>\n" },
1014{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" }, 1014{ "<p><h3>In todo view:</h3></p>\n","<p><h3>In Todo Anzige:</h3></p>\n" },
1015{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" }, 1015{ "<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n","<p><b>ctrl+up/down</b>: Scrolle kleine Todo Ansicht</p>\n" },
1016{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" }, 1016{ "<p><b>up/down</b>: Scroll agenda view</p>\n","<p><b>up/down</b>: Scrolle Agenda Ansicht</p>\n" },
1017{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" }, 1017{ "<p><h3>In agenda view:</h3></p>\n","<p><h3>In Agenda Ansicht:</h3></p>\n" },
1018{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" }, 1018{ "<p><b>del,backspace</b>: Delete selected item</p>\n","<p><b>del,backspace</b>: Lösche selektiertes Item</p>\n" },
1019{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" }, 1019{ "<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n","<p><b>left</b>: Vorh. Woche | <b>left+ctrl</b>: Vorh. Monat</p>\n" },
1020{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" }, 1020{ "<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n","<p><b>right</b>: Nächste Woche | <b>right+ctrl</b>: Nächste Woche</p>\n" },
1021{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" }, 1021{ "<p><b>B</b>: Edit description (details) of selected item</p>\n","<p><b>B</b>: Editiere Beschreibung (Details) des selektierten Items</p>\n" },
1022{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" }, 1022{ "<p><b>C</b>: Show current time in agenda view</p>\n","<p><b>C</b>: Zeige aktuelle Zeit in Agenda Ansicht</p>\n" },
1023{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" }, 1023{ "<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n","<p><b>+,-</b> : Zoom rein/raus Agenda | <b>A</b>: Wechsle Ganztag Agenda Höhe</p>\n" },
1024{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X</b>: Zeige/verstecke Datumsnavigator</p>\n" }, 1024{ "<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n","<p><b>S+ctrl</b>: Füge Sub-Todo hinzu | <b>X+ctrl</b>: Zeige/verstecke Datumsnavigator</p>\n" },
1025{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" }, 1025{ "<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n","<p><b>T</b>: Gehe zu Heute | <b>T+ctrl</b>: Neues Todo</p>\n" },
1026{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" }, 1026{ "<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n","<p><b>E</b>: Editiere selektiertes Item |<b> E+ctrl</b>: Neuer Termin</p>\n" },
1027{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" }, 1027{ "<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n","<p><b>D</b>: Ein-Tages Ansicht | <b>M</b>: Monatsansicht</p>\n" },
1028{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" }, 1028{ "<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n","<p><b>Z,Y</b>: Arbeitswochenansicht | <b>U</b>: Wochenansicht</p>\n" },
1029{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" }, 1029{ "<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n","<p><b>V</b>: Todo Ansicht | <b>L</b>: Termin Listen Ansicht</p>\n" },
1030{ "<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ","<p><b>N</b>: Nächste-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " }, 1030{ "<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ","<p><b>X</b>: Nächste-X-Tage Ansicht | <b>W</b>: What's Next Ansicht\n " },
1031{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" }, 1031{ "<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n","<p><b>1-0</b> (+<b>ctrl</b>): Selektiere Filter 1-10 (11-20)</p>\n" },
1032{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" }, 1032{ "<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n","<p><b>O</b>: Filter An/Aus | <b>J</b>: Journal Ansicht</p>\n" },
1033{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" }, 1033{ "<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n","<p><b>F</b>: Zeige/verstecke Filter Ansicht |<b>F+ctrl</b>: Editiere Filter </p>\n" },
1034{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" }, 1034{ "<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n","<p><b>Space</b>: Zeige fullscreen | <b>P</b>: Datums Picker</p>\n" },
1035{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" }, 1035{ "<p><b>I</b>: Show info for selected event/todo</p>\n","<p><b>I</b>: Zeige Info (Details) für selektiertes Item</p>\n" },
1036{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" }, 1036{ "<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n","<p><b>H</b>: Dieser Hilfe Dialog | <b>S</b>: Such Dialog</p>\n" },
1037{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" }, 1037{ "<p><h2>KO/Pi key shortcuts:</h2></p>\n","<p><h2>KO/Pi Tastatur Kurzbefehle:</h2></p>\n" },
1038{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" }, 1038{ "After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n","Nachdem etwas geändert wurde, werden die\nDaten automatisch in die Datei abgespeichert\n~/kdepim/apps/korganizer/mycalendar.ics\nnach (konfigurierbar) drei Minuten.\nAus Sicherheitsgründen wird noch einmal\nnach 10 Min. abgespeichert, wenn keine\nÄnderungen vorgenommen wurden. Die \nDaten werden automatisch gespeichert,\nwenn KO/Pi beendet wird.\nSie können eine Backup-Datei erstellen im\nMenu: Datei - Speichere Kalender Backup\n" },
1039{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" }, 1039{ "Auto Saving in KOrganizer/Pi","Auto Speichern in KOrganizer/Pi" },
1040{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" }, 1040{ "\nhttp://sourceforge.net/projects/kdepimpi\n","\nhttp://sourceforge.net/projects/kdepimpi\n" },
1041{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" }, 1041{ "\nor report them in the bugtracker on\n","\noder trage sie in dem Bugtracker ein auf\n" },
1042{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" }, 1042{ "\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n","\nBitte melde fehlerhaftes Verhalten an\nlutz@pi-sync.info\n" },
@@ -1317,15 +1317,27 @@
1317{ "Print","Drucke" }, 1317{ "Print","Drucke" },
1318{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." }, 1318{ "Print selected event / todo...","Drucke ausgewählten Termin / Todo..." },
1319{ "There is nothing selected!","Es ist nichts ausgewählt!" }, 1319{ "There is nothing selected!","Es ist nichts ausgewählt!" },
1320{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " }, 1320{ "\n\nDo you really want to print this item?","\n\nMöchten Sie wirklich diesen Eintrag ausdrucken? " },
1321{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" }, 1321{ "KO/Pi Print Confirmation","KO/Pi Druckbestätigung" },
1322{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" }, 1322{ "This prints the view as you see it.\n(With the complete content, of course.)\nYou may change the print layout by resizing the view.\nPrint unscaled may print several pages\ndepending on the amount of data.\nPrint scaled down will print all on one page.\nPrint scaled up/down will print all on one page,\nbut will scale up the text to page boundaries,\nif the text is smaller than the page.\nYou can select page geometry setup in the next dialog.\n","Dies druckt die Ansicht wie man sie sieht.\n(Mit dem kompletten Inhalt natürlich.)\nMan kann das Layout ändern durch ändern der Fenstergröße.\nDrucke unskaliert druckt ggf. mehrere Seiten\nabhängig von der Menge der Daten.\nDrucke runterskaliert um auf eine Seite zu passen\ndruckt alles auf eine Seite.\nDrucke hoch/runterskaliert um genau auf eine Seite zu passen\nvergrößert den Text gegebenenfalls.\nDas Seitenlayout kann im nächsten Dialog gewählt werden.\n" },
1323{ "KO/Pi Printout","KO/Pi Ausdruck" }, 1323{ "KO/Pi Printout","KO/Pi Ausdruck" },
1324{ "Print unscaled","Drucke unskaliert" }, 1324{ "Print unscaled","Drucke unskaliert" },
1325{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." }, 1325{ "Print scaled down to fit one page","Drucke runterskaliert um auf eine Seite zu passen." },
1326{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." }, 1326{ "Print scaled up/down to fit one page","Drucke hoch/runterskaliert um genau auf eine Seite zu passen." },
1327{ "Printout Mode","Druck Modus" }, 1327{ "Printout Mode","Druck Modus" },
1328{ "Filter menu icon","Filtermenu Icon" }, 1328{ "Filter menu icon","Filtermenu Icon" },
1329{ "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" },
1330{ "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" },
1331{ "","" },
1332{ "","" },
1333{ "","" },
1334{ "","" },
1335{ "","" },
1336{ "","" },
1337{ "","" },
1338{ "","" },
1339{ "","" },
1340{ "","" },
1329{ "","" }, 1341{ "","" },
1330{ "","" }, 1342{ "","" },
1331{ "","" }, \ No newline at end of file 1343{ "","" }, \ No newline at end of file
diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp
index abb3b3b..041effc 100644
--- a/kabc/phonenumber.cpp
+++ b/kabc/phonenumber.cpp
@@ -175,65 +175,61 @@ QString PhoneNumber::label( int type )
175 175
176QString PhoneNumber::typeLabel( int type ) 176QString PhoneNumber::typeLabel( int type )
177{ 177{
178 QString typeString; 178 QString typeString;
179 179
180 if ((type & Home) == Home) 180 if ((type & Home) == Home)
181 typeString += i18n("Home"); 181 typeString += i18n("Home");
182 else if ((type & Work) == Work) 182 else if ((type & Work) == Work)
183 typeString += i18n("Work"); 183 typeString += i18n("Work");
184 184
185 if (!typeString.isEmpty()) 185 if (!typeString.isEmpty())
186 typeString += " "; 186 typeString += " ";
187
188 if ((type & Cell) == Cell) 187 if ((type & Cell) == Cell)
189 typeString += i18n("Mobile"); 188 typeString += i18n("Mobile") +" ";
190 else if ((type & Fax) == Fax) 189 if ((type & Sip) == Sip)
190 typeString += i18n("SIP")+" ";
191 if ((type & Car) == Car)
192 typeString += i18n("Car")+" ";
193
194 if ((type & Fax) == Fax)
191 typeString += i18n("Fax"); 195 typeString += i18n("Fax");
192 else if ((type & Msg) == Msg) 196 else if ((type & Msg) == Msg)
193 typeString += i18n("Messenger"); 197 typeString += i18n("Messenger");
194 else if ((type & Voice) == Voice) {
195// add nothing in case of the Voice flag
196// typeString += i18n("Voice");
197 }
198 else if ((type & Video) == Video) 198 else if ((type & Video) == Video)
199 typeString += i18n("Video"); 199 typeString += i18n("Video");
200 else if ((type & Bbs) == Bbs) 200 else if ((type & Bbs) == Bbs)
201 typeString += i18n("Mailbox"); 201 typeString += i18n("Mailbox");
202 else if ((type & Modem) == Modem) 202 else if ((type & Modem) == Modem)
203 typeString += i18n("Modem"); 203 typeString += i18n("Modem");
204 else if ((type & Car) == Car)
205 typeString += i18n("Car");
206 else if ((type & Isdn) == Isdn) 204 else if ((type & Isdn) == Isdn)
207 typeString += i18n("ISDN"); 205 typeString += i18n("ISDN");
208 else if ((type & Pcs) == Pcs) 206 else if ((type & Pcs) == Pcs)
209 typeString += i18n("PCS"); 207 typeString += i18n("PCS");
210 else if ((type & Pager) == Pager) 208 else if ((type & Pager) == Pager)
211 typeString += i18n("Pager"); 209 typeString += i18n("Pager");
212 else if ((type & Sip) == Sip)
213 typeString += i18n("SIP");
214
215 // add the prefered flag 210 // add the prefered flag
216 if (!typeString.isEmpty())
217 typeString += " ";
218 /* 211 /*
219 if ((type & Pref) == Pref) 212 if ((type & Pref) == Pref)
220 typeString += i18n("(p)"); 213 typeString += i18n("(p)");
221 */ 214 */
222 //if we still have no match, return "other" 215 //if we still have no match, return "other"
223 if (typeString.isEmpty()) 216 if (typeString.isEmpty()) {
217 if ((type & Voice) == Voice)
218 return i18n("Voice");
219 else
224 return i18n("Other"); 220 return i18n("Other");
221 }
225 222
226 223 return typeString.stripWhiteSpace();
227 return typeString;
228} 224}
229 225
230QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone ) 226QDataStream &KABC::operator<<( QDataStream &s, const PhoneNumber &phone )
231{ 227{
232 return s << phone.mId << phone.mType << phone.mNumber; 228 return s << phone.mId << phone.mType << phone.mNumber;
233} 229}
234 230
235QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone ) 231QDataStream &KABC::operator>>( QDataStream &s, PhoneNumber &phone )
236{ 232{
237 s >> phone.mId >> phone.mType >> phone.mNumber; 233 s >> phone.mId >> phone.mType >> phone.mNumber;
238 234
239 return s; 235 return s;
diff --git a/kaddressbook/emaileditwidget.cpp b/kaddressbook/emaileditwidget.cpp
index 0e01b02..e72face 100644
--- a/kaddressbook/emaileditwidget.cpp
+++ b/kaddressbook/emaileditwidget.cpp
@@ -180,24 +180,25 @@ EmailEditDialog::EmailEditDialog( const QStringList &list, QWidget *parent,
180qDebug("EmailEditDialog::EmailEditDialog has to be changed (lowPrio)"); 180qDebug("EmailEditDialog::EmailEditDialog has to be changed (lowPrio)");
181//US must be fixed !!! 181//US must be fixed !!!
182/* 182/*
183 if ( items.remove( "" ) > 0 ) 183 if ( items.remove( "" ) > 0 )
184 mChanged = true; 184 mChanged = true;
185 else 185 else
186 mChanged = false; 186 mChanged = false;
187*/ 187*/
188 188
189 mEmailListBox->insertStringList( items ); 189 mEmailListBox->insertStringList( items );
190 // set default state 190 // set default state
191 selectionChanged( -1 ); 191 selectionChanged( -1 );
192 mEmailEdit->setFocus();
192 193
193#ifndef KAB_EMBEDDED 194#ifndef KAB_EMBEDDED
194 KAcceleratorManager::manage( this ); 195 KAcceleratorManager::manage( this );
195#else //KAB_EMBEDDED 196#else //KAB_EMBEDDED
196//US qDebug("EmailEditDialog::EmailEditDialog has to be changed"); 197//US qDebug("EmailEditDialog::EmailEditDialog has to be changed");
197#endif //KAB_EMBEDDED 198#endif //KAB_EMBEDDED
198 199
199} 200}
200 201
201EmailEditDialog::~EmailEditDialog() 202EmailEditDialog::~EmailEditDialog()
202{ 203{
203} 204}
@@ -216,24 +217,25 @@ void EmailEditDialog::add()
216{ 217{
217 mEmailListBox->insertItem( mEmailEdit->text() ); 218 mEmailListBox->insertItem( mEmailEdit->text() );
218 219
219 mEmailEdit->clear(); 220 mEmailEdit->clear();
220 mEmailEdit->setFocus(); 221 mEmailEdit->setFocus();
221 222
222 mChanged = true; 223 mChanged = true;
223} 224}
224 225
225void EmailEditDialog::edit() 226void EmailEditDialog::edit()
226{ 227{
227 mEmailEdit->setText( mEmailListBox->currentText() ); 228 mEmailEdit->setText( mEmailListBox->currentText() );
229 mEmailListBox->removeItem( mEmailListBox->currentItem() );
228 mEmailEdit->setFocus(); 230 mEmailEdit->setFocus();
229} 231}
230 232
231void EmailEditDialog::remove() 233void EmailEditDialog::remove()
232{ 234{
233 QString address = mEmailListBox->currentText(); 235 QString address = mEmailListBox->currentText();
234 236
235 QString text = i18n( "<qt>Are you sure that you want to remove the email address <b>%1</b>?</qt>" ).arg( address ); 237 QString text = i18n( "<qt>Are you sure that you want to remove the email address <b>%1</b>?</qt>" ).arg( address );
236 QString caption = i18n( "Confirm Remove" ); 238 QString caption = i18n( "Confirm Remove" );
237 239
238 if ( KMessageBox::questionYesNo( this, text, caption ) == KMessageBox::Yes ) { 240 if ( KMessageBox::questionYesNo( this, text, caption ) == KMessageBox::Yes ) {
239 mEmailListBox->removeItem( mEmailListBox->currentItem() ); 241 mEmailListBox->removeItem( mEmailListBox->currentItem() );
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp
index 19bb676..a435959 100644
--- a/kaddressbook/phoneeditwidget.cpp
+++ b/kaddressbook/phoneeditwidget.cpp
@@ -204,25 +204,26 @@ KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers()
204 if ( !(*it).number().isEmpty() ) 204 if ( !(*it).number().isEmpty() )
205 retList.append( *it ); 205 retList.append( *it );
206 206
207 return retList; 207 return retList;
208} 208}
209 209
210void PhoneEditWidget::edit() 210void PhoneEditWidget::edit()
211{ 211{
212 PhoneEditDialog dlg( mPhoneList, this ); 212 PhoneEditDialog dlg( mPhoneList, this );
213 213
214 if ( dlg.exec() ) { 214 if ( dlg.exec() ) {
215 if ( dlg.changed() ) { 215 if ( dlg.changed() ) {
216 mPhoneList = dlg.phoneNumbers(); 216 KABC::PhoneNumber::List list = dlg.phoneNumbers();
217 setPhoneNumbers( list );
217 updateCombos(); 218 updateCombos();
218 updateLineEdits(); 219 updateLineEdits();
219 emit modified(); 220 emit modified();
220 } 221 }
221 } 222 }
222} 223}
223 224
224void PhoneEditWidget::updatePrefEdit() 225void PhoneEditWidget::updatePrefEdit()
225{ 226{
226 updateEdit( mPrefCombo ); 227 updateEdit( mPrefCombo );
227} 228}
228 229
@@ -330,24 +331,27 @@ public:
330 331
331 KABC::PhoneNumber phoneNumber() { return mPhoneNumber; } 332 KABC::PhoneNumber phoneNumber() { return mPhoneNumber; }
332 333
333private: 334private:
334 void makeText(); 335 void makeText();
335 336
336 KABC::PhoneNumber mPhoneNumber; 337 KABC::PhoneNumber mPhoneNumber;
337}; 338};
338 339
339PhoneViewItem::PhoneViewItem( QListView *parent, const KABC::PhoneNumber &number ) 340PhoneViewItem::PhoneViewItem( QListView *parent, const KABC::PhoneNumber &number )
340 : QListViewItem( parent ), mPhoneNumber( number ) 341 : QListViewItem( parent ), mPhoneNumber( number )
341{ 342{
343#ifdef DESKTOP_VERSION
344 setRenameEnabled ( 0, true );
345#endif
342 makeText(); 346 makeText();
343} 347}
344 348
345void PhoneViewItem::makeText() 349void PhoneViewItem::makeText()
346{ 350{
347 /** 351 /**
348 * Will be used in future versions of kaddressbook/libkabc 352 * Will be used in future versions of kaddressbook/libkabc
349 353
350 setText( 0, mPhoneNumber.country() ); 354 setText( 0, mPhoneNumber.country() );
351 setText( 1, mPhoneNumber.region() ); 355 setText( 1, mPhoneNumber.region() );
352 setText( 2, mPhoneNumber.number() ); 356 setText( 2, mPhoneNumber.number() );
353 setText( 3, mPhoneNumber.typeLabel() ); 357 setText( 3, mPhoneNumber.typeLabel() );
@@ -397,28 +401,45 @@ PhoneEditDialog::PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *
397} 401}
398 402
399PhoneEditDialog::~PhoneEditDialog() 403PhoneEditDialog::~PhoneEditDialog()
400{ 404{
401} 405}
402 406
403void PhoneEditDialog::slotAddPhoneNumber() 407void PhoneEditDialog::slotAddPhoneNumber()
404{ 408{
405 KABC::PhoneNumber tmp( "", 0 ); 409 KABC::PhoneNumber tmp( "", 0 );
406 PhoneTypeDialog dlg( tmp, this ); 410 PhoneTypeDialog dlg( tmp, this );
407 411
408 if ( dlg.exec() ) { 412 if ( dlg.exec() ) {
413 QListViewItem* i = mListView->firstChild();
409 KABC::PhoneNumber phoneNumber = dlg.phoneNumber(); 414 KABC::PhoneNumber phoneNumber = dlg.phoneNumber();
415 bool insert = true;
416 while ( i ) {
417 PhoneViewItem* p = ( PhoneViewItem* ) i;
418 KABC::PhoneNumber pn = p->phoneNumber();
419 if ( (pn.type() | KABC::PhoneNumber::Pref) == (phoneNumber.type() | KABC::PhoneNumber::Pref) ) {
420 if ( p->text(0).isEmpty()) {
421 p->setPhoneNumber( phoneNumber );
422 mPhoneNumberList.remove( pn );
423 mPhoneNumberList.append( phoneNumber );
424 insert = false;
425 break;
426 }
427 }
428 i = i->nextSibling();
429 }
430 if ( insert ) {
410 mPhoneNumberList.append( phoneNumber ); 431 mPhoneNumberList.append( phoneNumber );
411 new PhoneViewItem( mListView, phoneNumber ); 432 new PhoneViewItem( mListView, phoneNumber );
412 433 }
413 mChanged = true; 434 mChanged = true;
414 } 435 }
415} 436}
416 437
417void PhoneEditDialog::slotRemovePhoneNumber() 438void PhoneEditDialog::slotRemovePhoneNumber()
418{ 439{
419 PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() ); 440 PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() );
420 if ( !item ) 441 if ( !item )
421 return; 442 return;
422 443
423 mPhoneNumberList.remove( item->phoneNumber() ); 444 mPhoneNumberList.remove( item->phoneNumber() );
424 QListViewItem *currItem = mListView->currentItem(); 445 QListViewItem *currItem = mListView->currentItem();
@@ -495,24 +516,26 @@ PhoneTypeDialog::PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber,
495 516
496 KABC::PhoneNumber::TypeList::Iterator it; 517 KABC::PhoneNumber::TypeList::Iterator it;
497 for ( it = mTypeList.begin(); it != mTypeList.end(); ++it ) 518 for ( it = mTypeList.begin(); it != mTypeList.end(); ++it )
498 new QCheckBox( KABC::PhoneNumber::typeLabel( *it ), mGroup ); 519 new QCheckBox( KABC::PhoneNumber::typeLabel( *it ), mGroup );
499 520
500 for ( int i = 0; i < mGroup->count(); ++i ) { 521 for ( int i = 0; i < mGroup->count(); ++i ) {
501 int type = mPhoneNumber.type(); 522 int type = mPhoneNumber.type();
502 QCheckBox *box = (QCheckBox*)mGroup->find( i ); 523 QCheckBox *box = (QCheckBox*)mGroup->find( i );
503 box->setChecked( type & mTypeList[ i ] ); 524 box->setChecked( type & mTypeList[ i ] );
504 } 525 }
505 526
506 mPreferredBox->setChecked( mPhoneNumber.type() & KABC::PhoneNumber::Pref ); 527 mPreferredBox->setChecked( mPhoneNumber.type() & KABC::PhoneNumber::Pref );
528 mNumber->setFocus();
529 mNumber->setSelection( 0, 1024);
507} 530}
508 531
509KABC::PhoneNumber PhoneTypeDialog::phoneNumber() 532KABC::PhoneNumber PhoneTypeDialog::phoneNumber()
510{ 533{
511 mPhoneNumber.setNumber( mNumber->text() ); 534 mPhoneNumber.setNumber( mNumber->text() );
512 535
513 int type = 0; 536 int type = 0;
514 for ( int i = 0; i < mGroup->count(); ++i ) { 537 for ( int i = 0; i < mGroup->count(); ++i ) {
515 QCheckBox *box = (QCheckBox*)mGroup->find( i ); 538 QCheckBox *box = (QCheckBox*)mGroup->find( i );
516 if ( box->isChecked() ) 539 if ( box->isChecked() )
517 type += mTypeList[ i ]; 540 type += mTypeList[ i ];
518 } 541 }
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 09a0880..d98915b 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1430,37 +1430,39 @@ void MainWindow::about()
1430#ifdef DESKTOP_VERSION 1430#ifdef DESKTOP_VERSION
1431 i18n("Desktop Edition\n") + 1431 i18n("Desktop Edition\n") +
1432#else 1432#else
1433 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + 1433 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") +
1434#endif 1434#endif
1435 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") ); 1435 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") );
1436} 1436}
1437void MainWindow::keyBindings() 1437void MainWindow::keyBindings()
1438{ 1438{
1439 QString cap = i18n("KO/Pi Keys + Colors"); 1439 QString cap = i18n("KO/Pi Keys + Colors");
1440 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1440 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1441 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1441 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1442 i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") +
1443 i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") +
1442 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1444 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1443 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1445 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1444 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1446 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1445 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1447 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1446 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1448 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1447 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1449 i18n("<p><b>X</b>: Next X days view| <b>W</b>: What's next view\n ")+
1448 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1450 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1449 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1451 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1450 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1452 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1451 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ 1453 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+
1452 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1454 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1453 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1455 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1454 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1456 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X+ctrl</b>: Toggle datenavigator</p>\n")+
1455 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1457 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1456 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1458 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1457 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1459 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1458 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1460 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1459 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1461 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1460 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1462 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1461 i18n("<p><h3>In agenda view:</h3></p>\n") + 1463 i18n("<p><h3>In agenda view:</h3></p>\n") +
1462 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1464 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1463 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1465 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1464 i18n("<p><h3>In todo view:</h3></p>\n") + 1466 i18n("<p><h3>In todo view:</h3></p>\n") +
1465 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1467 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1466 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1468 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
@@ -1891,48 +1893,48 @@ void MainWindow::keyPressEvent ( QKeyEvent * e )
1891 showSelectedDates = true; 1893 showSelectedDates = true;
1892 break; 1894 break;
1893 case Qt::Key_H : 1895 case Qt::Key_H :
1894 keyBindings(); 1896 keyBindings();
1895 break; 1897 break;
1896 case Qt::Key_W: 1898 case Qt::Key_W:
1897 mView->viewManager()->showWhatsNextView(); 1899 mView->viewManager()->showWhatsNextView();
1898 break; 1900 break;
1899 case Qt::Key_L: 1901 case Qt::Key_L:
1900 mView->viewManager()->showListView(); 1902 mView->viewManager()->showListView();
1901 break; 1903 break;
1902 case Qt::Key_N: 1904 case Qt::Key_N:
1903 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton)
1904 mView->viewManager()->showNextView(); 1905 mView->viewManager()->showNextView();
1905 else {
1906 mView->viewManager()->showNextXView();
1907 showSelectedDates = true;
1908 }
1909 break; 1906 break;
1910 case Qt::Key_V: 1907 case Qt::Key_V:
1911 mView->viewManager()->showTodoView(); 1908 mView->viewManager()->showTodoView();
1912 break; 1909 break;
1913 case Qt::Key_C: 1910 case Qt::Key_C:
1914 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); 1911 mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
1915 break; 1912 break;
1916 case Qt::Key_P: 1913 case Qt::Key_P:
1917 mView->showDatePicker( ); 1914 mView->showDatePicker( );
1918 break; 1915 break;
1919 case Qt::Key_F: 1916 case Qt::Key_F:
1920 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1917 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
1921 mView->editFilters(); 1918 mView->editFilters();
1922 else 1919 else
1923 mView->toggleFilter(); 1920 mView->toggleFilter();
1924 break; 1921 break;
1925 case Qt::Key_X: 1922 case Qt::Key_X:
1923 if ( e->state() == Qt::ControlButton )
1926 mView->toggleDateNavigatorWidget(); 1924 mView->toggleDateNavigatorWidget();
1925 else {
1926 mView->viewManager()->showNextXView();
1927 showSelectedDates = true;
1928 }
1927 break; 1929 break;
1928 case Qt::Key_Space: 1930 case Qt::Key_Space:
1929 mView->toggleExpand(); 1931 mView->toggleExpand();
1930 break; 1932 break;
1931 case Qt::Key_A: 1933 case Qt::Key_A:
1932 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) 1934 if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton )
1933 mView->showNextAlarms(); 1935 mView->showNextAlarms();
1934 else 1936 else
1935 mView->toggleAllDaySize(); 1937 mView->toggleAllDaySize();
1936 break; 1938 break;
1937 case Qt::Key_T: 1939 case Qt::Key_T:
1938 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 1940 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )