-rw-r--r-- | bin/kdepim/kaddressbook/germantranslation.txt | 4 | ||||
-rw-r--r-- | kabc/addressee.cpp | 4 | ||||
-rw-r--r-- | kabc/addresseeview.cpp | 2 | ||||
-rw-r--r-- | kaddressbook/phoneeditwidget.cpp | 112 | ||||
-rw-r--r-- | kaddressbook/phoneeditwidget.h | 87 |
5 files changed, 193 insertions, 16 deletions
diff --git a/bin/kdepim/kaddressbook/germantranslation.txt b/bin/kdepim/kaddressbook/germantranslation.txt index dcf43c1..f12f880 100644 --- a/bin/kdepim/kaddressbook/germantranslation.txt +++ b/bin/kdepim/kaddressbook/germantranslation.txt | |||
@@ -728,110 +728,110 @@ | |||
728 | { "Local from: ","Lokal von: " }, | 728 | { "Local from: ","Lokal von: " }, |
729 | { "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 %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, | 729 | { "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 %d incoming filtered out\n %d outgoing filtered out\n","Synchronisationsübersicht:\n\n %d lokal hinzugefügt\n %d fern hinzugefügt\n %d lokal geändert\n %d fern geändert\n %d lokal gelöscht\n %d fern gelöscht\n %d eingehende ausgefiltert\n %d ausgehende ausgefiltert\n" }, |
730 | { "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, | 730 | { "Local calendar changed!\n","Lokaler Kalender geändert!\n" }, |
731 | { "Write back","Schreibe zurück" }, | 731 | { "Write back","Schreibe zurück" }, |
732 | { "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, | 732 | { "Pi-Sync succesful!","Pi-Sync erfolgreich!" }, |
733 | { "Received sync request","Sync Anfrage erhalten" }, | 733 | { "Received sync request","Sync Anfrage erhalten" }, |
734 | { "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, | 734 | { "Synchronizing from remote ...\n\nDo not use this application!\n\nIf syncing fails\nyou can close this dialog.","Ferne Synchronisation ...\n\nBenutze diese Anwendung nicht!\n\nWenn das Syncen fehlschlägt kann\ndieser Dialog geschlossen werden." }, |
735 | { "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, | 735 | { "Saving Data to temp file ...","Speichere Daten in temp Datei..." }, |
736 | { "Data saved to temp file!","Daten in temp Datei gespeichert!" }, | 736 | { "Data saved to temp file!","Daten in temp Datei gespeichert!" }, |
737 | { "Sending file...","Sende Datei..." }, | 737 | { "Sending file...","Sende Datei..." }, |
738 | { "Waiting for synced file...","Warte auf gesyncte Daten..." }, | 738 | { "Waiting for synced file...","Warte auf gesyncte Daten..." }, |
739 | { "Receiving synced file...","Gesyncte Daten erhalten..." }, | 739 | { "Receiving synced file...","Gesyncte Daten erhalten..." }, |
740 | { "Received %1 bytes","%1 Bytes erhalten" }, | 740 | { "Received %1 bytes","%1 Bytes erhalten" }, |
741 | { "Writing file to disk...","Speichere Datei..." }, | 741 | { "Writing file to disk...","Speichere Datei..." }, |
742 | { "Pi-Sync successful!","Pi-Sync erfolgreich!" }, | 742 | { "Pi-Sync successful!","Pi-Sync erfolgreich!" }, |
743 | { "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, | 743 | { "Clock skew of\nsyncing devices\nis %1 seconds!","Uhrzeitunterschied der\nsyncenden Geräte\nist %1 Sekunden!" }, |
744 | { "Synchronize!","Synchronisiere!" }, | 744 | { "Synchronize!","Synchronisiere!" }, |
745 | { "High clock skew!","Großer Uhrzeitunterschied!" }, | 745 | { "High clock skew!","Großer Uhrzeitunterschied!" }, |
746 | { "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, | 746 | { "ADJUST\nYOUR\nCLOCKS!","JUSTIERE\nDIE\nUHREN!" }, |
747 | { "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, | 747 | { "The clocks of the syncing\ndevices have a difference\nof more than 5 minutes.\nPlease adjust your clocks.\nYou may get wrong syncing results!\nPlease confirm synchronization!","Die Uhren der syncenden Geräte\nhaben einen Unterschied von\nmehr als 5 Minuten. Bitte die\nUhrzeiten anpassen. Sie können\nfalsche Sync-Resultate erhalten!\nBitte das Syncen bestätigen!" }, |
748 | { "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" }, | 748 | { "Change search field enable jump bar","Ändere Suchfeld um Jumpbar anzuzeigen" }, |
749 | { "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" }, | 749 | { "Search with '*' prefix (wildcard)","Suche mit '*' Prefix (Wildcard)" }, |
750 | { "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" }, | 750 | { "Shrink searchfield in portrait view","Verkleinere Suchfeld im Portraitmodus" }, |
751 | { "Edit new contact","Bearbeite neuen Kontakt" }, | 751 | { "Edit new contact","Bearbeite neuen Kontakt" }, |
752 | { "Edit ","Bearbeite " }, | 752 | { "Edit ","Bearbeite " }, |
753 | { "No contact changed!","Kein Kontakt verändert" }, | 753 | { "No contact changed!","Kein Kontakt verändert" }, |
754 | { "%1 contacts changed!","%1 Kontakte geändert!" }, | 754 | { "%1 contacts changed!","%1 Kontakte geändert!" }, |
755 | { "Mobile (home)","Handy (Privat)" }, | 755 | { "Mobile (home)","Handy (Privat)" }, |
756 | { "Mobile (work)","Handy (Arbeit)" }, | 756 | { "Mobile (work)","Handy (Arbeit)" }, |
757 | { "Def.Formatted Name","Def. Format. Name" }, | 757 | { "Def.Formatted Name","Def. Format. Name" }, |
758 | { "Colors","Farben" }, | 758 | { "Colors","Farben" }, |
759 | { "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, | 759 | { "Alternating background of list views","Abwechselnder Hintergrund für Listen" }, |
760 | { "Backup enabled","Backup angeschaltet" }, | 760 | { "Backup enabled","Backup angeschaltet" }, |
761 | { "Use standard backup dir","Standard Backupverzeichnis" }, | 761 | { "Use standard backup dir","Standard Backupverzeichnis" }, |
762 | { "Number of Backups:","Anzahl der Backups" }, | 762 | { "Number of Backups:","Anzahl der Backups" }, |
763 | { "Make backup every ","Mache ein Backup alle " }, | 763 | { "Make backup every ","Mache ein Backup alle " }, |
764 | { " days"," Tage" }, | 764 | { " days"," Tage" }, |
765 | { "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." }, | 765 | { "Creating backup ... please wait ...","Erzeuge Backup ... bitte warten ..." }, |
766 | { "Backup Failed!","Backup Problem!" }, | 766 | { "Backup Failed!","Backup Problem!" }, |
767 | { "Try again now","Versuche jetzt nochmal" }, | 767 | { "Try again now","Versuche jetzt nochmal" }, |
768 | { "Try again later","Versuche später nochmal" }, | 768 | { "Try again later","Versuche später nochmal" }, |
769 | { "Try again tomorrow","Versuche morgen nochmal" }, | 769 | { "Try again tomorrow","Versuche morgen nochmal" }, |
770 | { "Disable backup","Schalte Backup ab" }, | 770 | { "Disable backup","Schalte Backup ab" }, |
771 | { "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" }, | 771 | { "<b>Backup directory does not exist: </b>","<b>Backup Verzeichnis existiert nicht: </b>" }, |
772 | { "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" }, | 772 | { "<b>The backup copy command failed!</b>","<b>Das Backup Kopierkommando is fehlgeschlagen!</b>" }, |
773 | { "Choose action","Wähle Aktion" }, | 773 | { "Choose action","Wähle Aktion" }, |
774 | { "&Configure KA/Pi...","Konfiguriere KA/Pi..." }, | 774 | { "&Configure KA/Pi...","Konfiguriere KA/Pi..." }, |
775 | { "Global Settings...","Globale Einstellungen..." }, | 775 | { "Global Settings...","Globale Einstellungen..." }, |
776 | { "Spouse","Ehegatte" }, | 776 | { "Spouse","Ehegatte" }, |
777 | { "Notes","Notizen" }, | 777 | { "Notes","Notizen" }, |
778 | { "Messanger","Messanger" }, | 778 | { "Messanger","Messanger" }, |
779 | { "Assistant","Assistent" }, | 779 | { "Assistant","Assistent" }, |
780 | { "Manager","Manager" }, | 780 | { "Manager","Manager" }, |
781 | { "Secrecy","Sichtbar" }, | 781 | { "Secrecy","Sichtbar" }, |
782 | { "male","männlich" }, | 782 | { "male","männlich" }, |
783 | { "female","weiblich" }, | 783 | { "female","weiblich" }, |
784 | { "Hide!","Verbergen!" }, | 784 | { "Hide!","Verbergen!" }, |
785 | { "Show!","Anzeigen!" }, | 785 | { "Show!","Anzeigen!" }, |
786 | { "Details","Details" }, | 786 | { "Details","Details" }, |
787 | { "Search:","Suche:" }, | 787 | { "Search:","Suche:" }, |
788 | { "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" }, | 788 | { "Automatically sync with KDE-Desktop\nwhen receiving sync request","Synce automatisch mit KDE-Desktop\nwenn eine Sync-Anforderung kommt" }, |
789 | { "Pi-Sync Port Error","Pi-Sync Port Fehler" }, | 789 | { "Pi-Sync Port Error","Pi-Sync Port Fehler" }, |
790 | { "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" }, | 790 | { "<b>Enabling Pi-Sync failed!</b> Failed to bind or listen to the port %1! Is another instance already listening to that port?","<b>Anschalten von Pi-Sync fehlgeschlagen!</b> Fehler beim Ansprechen des Ports %1! Ist bereits eine andere Anwendung dabei diesen Port zu nutzen?" }, |
791 | { "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" }, | 791 | { "No valid port number:\n%1","Keine gültige Port Nummer:\n%1" }, |
792 | { "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" }, | 792 | { "Port number (Default: %1)\nValid range from 1 to 65535","Port Nummer (Standard: %1)\nGültiger Bereich von 1 bis 65535" }, |
793 | { "Pi-Sync Error","Pi-Sync Fehler" }, | 793 | { "Pi-Sync Error","Pi-Sync Fehler" }, |
794 | { "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" }, | 794 | { "Got send file request\nwith invalid password","Erhielt "sende Datei" Anfrage\nmit ungültigem Passwort" }, |
795 | { "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" }, | 795 | { "Got receive file request\nwith invalid password","Erhielt "empfange Datei" Anfrage\nmit ungültigem Passwort" }, |
796 | { "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." }, | 796 | { "Wrong password: Receiving remote file failed.","Falsches Passwort: Empfangen von entfernter Datei fehlgeschlagen." }, |
797 | { "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" }, | 797 | { "Please close error dialog on remote.","Bitte schließe Fehler-Dialog am entfernten Rechner" }, |
798 | { "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" }, | 798 | { "Unknown error on remote.","Unbekannter Fehler am entfernten Rechner" }, |
799 | { "Pi-Sync: Connected!","Pi-Sync: Verbunden!" }, | 799 | { "Pi-Sync: Connected!","Pi-Sync: Verbunden!" }, |
800 | { "Receiving file from remote...","Empfange entfernte Datei..." }, | 800 | { "Receiving file from remote...","Empfange entfernte Datei..." }, |
801 | { "Sending back synced file...","Sende synchronisierte Datei zurück..." }, | 801 | { "Sending back synced file...","Sende synchronisierte Datei zurück..." }, |
802 | { "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" }, | 802 | { "Do you want to\nclear all sync info\nof all profiles?","Möchten Sie wirklich\ndie Sync-Info\nfür alle Profile\nlöschen?" }, |
803 | { "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" }, | 803 | { "Do you want to\nclear the sync\ninfo of profile\n%1?\n","Möchten Sie wirklich\ndie Sync-Info für Profil\n%1?\nlöschen" }, |
804 | { "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." }, | 804 | { "Sorry, no valid port.Syncing cancelled.","Sorry, kein gültiger Port. Syncing abgebrochen." }, |
805 | { "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" }, | 805 | { "Remote port number:\n(May be: 1 - 65535)","Ferne Port Nummer:\n(Darf sein: 1 - 65535)" }, |
806 | { "Writing back file ...","Schreibe Datei zurück..." }, | 806 | { "Writing back file ...","Schreibe Datei zurück..." }, |
807 | { "Sending back file ...","Sende Datei zurück..." }, | 807 | { "Sending back file ...","Sende Datei zurück..." }, |
808 | { "Eeek, there I am ticklish!","Huch, da bin ich kitzlig!" }, | 808 | { "Eeek, there I am ticklish!","Huch, da bin ich kitzlig!" }, |
809 | { "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, | 809 | { "Save using LOCAL storage","Speichere nutze LOCAL Pfad" }, |
810 | { "...and %1 more\ncontact(s) selected","...und noch %1 Kontakte\n mehr ausgewählt" }, | 810 | { "...and %1 more\ncontact(s) selected","...und noch %1 Kontakte\n mehr ausgewählt" }, |
811 | { "Do you really\nwant to delete the\nsetected contact(s)?\n\n","Möchten Sie wirklich\ndie ausgewählten\nKontakte löschen?\n\n" }, | 811 | { "Do you really\nwant to delete the\nsetected contact(s)?\n\n","Möchten Sie wirklich\ndie ausgewählten\nKontakte löschen?\n\n" }, |
812 | { "%1 contacts\nsuccessfully\nimported.","%1 Kontakte\nerfolgreich\nimportiert." }, | 812 | { "%1 contacts\nsuccessfully\nimported.","%1 Kontakte\nerfolgreich\nimportiert." }, |
813 | { "Import this contact?","Importiere diesen Kontakt?" }, | 813 | { "Import this contact?","Importiere diesen Kontakt?" }, |
814 | { "Import all!","Importiere alle!" }, | 814 | { "Import all!","Importiere alle!" }, |
815 | { "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" }, | 815 | { "Loading addressbook data ... please wait","Lade Adressbuchdaten ... bitte warten" }, |
816 | { "Import Format","Import Format" }, | 816 | { "Import Format","Import Format" }, |
817 | { "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." }, | 817 | { "Select import format!\nDefault and standard is Utf8.\nLatin1 may be the right\nfor some West Europian languages.","Wähle Import Format!\nDefault und Standard ist Utf8.\nLatin1 kann das richtige für\nWesteuropäische Sprachen sein." }, |
818 | { "Home2","Privat2" }, | 818 | { "Home2","Privat2" }, |
819 | { "Work2","Arbeit2" }, | 819 | { "Work2","Arbeit2" }, |
820 | { "Fax (Work)","Fax (Arbeit)" }, | 820 | { "Fax (Work)","Fax (Arbeit)" }, |
821 | { "Fax (Home)","Fax (Privat)" }, | 821 | { "Fax (Home)","Fax (Privat)" }, |
822 | { "Assistent","Sekretär(in)" }, | 822 | { "Assistent","Sekretär(in)" }, |
823 | { "Company","Firma" }, | 823 | { "Company","Firma" }, |
824 | { "Mobile2 (work)","Handy2 (Arbeit)" }, | 824 | { "Mobile2 (Work)","Handy2 (Arbeit)" }, |
825 | { "Mobile2 (car)","Handy2 (Auto)" }, | 825 | { "Mobile2 (Car)","Handy2 (Auto)" }, |
826 | { "Callback","Rückruf" }, | 826 | { "Callback","Rückruf" }, |
827 | { "Fax (Other)","Fax (Anderes)" }, | 827 | { "Fax (Other)","Fax (Anderes)" }, |
828 | { "Primary","Bevorzugt" }, | 828 | { "Primary","Bevorzugt" }, |
829 | { "Mobile (Home)","Handy (Privat)" }, | 829 | { "Mobile (Home)","Handy (Privat)" }, |
830 | { "Unfiled","Nicht zugeordnet" }, | 830 | { "Unfiled","Nicht zugeordnet" }, |
831 | { "Format.n.:","Format.N.:" }, | 831 | { "Format.n.:","Format.N.:" }, |
832 | { "","" }, | 832 | { "","" }, |
833 | { "","" }, | 833 | { "","" }, |
834 | { "","" }, | 834 | { "","" }, |
835 | { "","" }, | 835 | { "","" }, |
836 | { "","" }, | 836 | { "","" }, |
837 | { "","" }, \ No newline at end of file | 837 | { "","" }, \ No newline at end of file |
diff --git a/kabc/addressee.cpp b/kabc/addressee.cpp index 19c78ee..789a694 100644 --- a/kabc/addressee.cpp +++ b/kabc/addressee.cpp | |||
@@ -966,215 +966,215 @@ QDateTime Addressee::birthday() const | |||
966 | QString Addressee::birthdayLabel() | 966 | QString Addressee::birthdayLabel() |
967 | { | 967 | { |
968 | return i18n("Birthday"); | 968 | return i18n("Birthday"); |
969 | } | 969 | } |
970 | 970 | ||
971 | 971 | ||
972 | QString Addressee::homeAddressStreetLabel() | 972 | QString Addressee::homeAddressStreetLabel() |
973 | { | 973 | { |
974 | return i18n("Home Address Street"); | 974 | return i18n("Home Address Street"); |
975 | } | 975 | } |
976 | 976 | ||
977 | 977 | ||
978 | QString Addressee::homeAddressLocalityLabel() | 978 | QString Addressee::homeAddressLocalityLabel() |
979 | { | 979 | { |
980 | return i18n("Home Address Locality"); | 980 | return i18n("Home Address Locality"); |
981 | } | 981 | } |
982 | 982 | ||
983 | 983 | ||
984 | QString Addressee::homeAddressRegionLabel() | 984 | QString Addressee::homeAddressRegionLabel() |
985 | { | 985 | { |
986 | return i18n("Home Address Region"); | 986 | return i18n("Home Address Region"); |
987 | } | 987 | } |
988 | 988 | ||
989 | 989 | ||
990 | QString Addressee::homeAddressPostalCodeLabel() | 990 | QString Addressee::homeAddressPostalCodeLabel() |
991 | { | 991 | { |
992 | return i18n("Home Address Postal Code"); | 992 | return i18n("Home Address Postal Code"); |
993 | } | 993 | } |
994 | 994 | ||
995 | 995 | ||
996 | QString Addressee::homeAddressCountryLabel() | 996 | QString Addressee::homeAddressCountryLabel() |
997 | { | 997 | { |
998 | return i18n("Home Address Country"); | 998 | return i18n("Home Address Country"); |
999 | } | 999 | } |
1000 | 1000 | ||
1001 | 1001 | ||
1002 | QString Addressee::homeAddressLabelLabel() | 1002 | QString Addressee::homeAddressLabelLabel() |
1003 | { | 1003 | { |
1004 | return i18n("Home Address Label"); | 1004 | return i18n("Home Address Label"); |
1005 | } | 1005 | } |
1006 | 1006 | ||
1007 | 1007 | ||
1008 | QString Addressee::businessAddressStreetLabel() | 1008 | QString Addressee::businessAddressStreetLabel() |
1009 | { | 1009 | { |
1010 | return i18n("Business Address Street"); | 1010 | return i18n("Business Address Street"); |
1011 | } | 1011 | } |
1012 | 1012 | ||
1013 | 1013 | ||
1014 | QString Addressee::businessAddressLocalityLabel() | 1014 | QString Addressee::businessAddressLocalityLabel() |
1015 | { | 1015 | { |
1016 | return i18n("Business Address Locality"); | 1016 | return i18n("Business Address Locality"); |
1017 | } | 1017 | } |
1018 | 1018 | ||
1019 | 1019 | ||
1020 | QString Addressee::businessAddressRegionLabel() | 1020 | QString Addressee::businessAddressRegionLabel() |
1021 | { | 1021 | { |
1022 | return i18n("Business Address Region"); | 1022 | return i18n("Business Address Region"); |
1023 | } | 1023 | } |
1024 | 1024 | ||
1025 | 1025 | ||
1026 | QString Addressee::businessAddressPostalCodeLabel() | 1026 | QString Addressee::businessAddressPostalCodeLabel() |
1027 | { | 1027 | { |
1028 | return i18n("Business Address Postal Code"); | 1028 | return i18n("Business Address Postal Code"); |
1029 | } | 1029 | } |
1030 | 1030 | ||
1031 | 1031 | ||
1032 | QString Addressee::businessAddressCountryLabel() | 1032 | QString Addressee::businessAddressCountryLabel() |
1033 | { | 1033 | { |
1034 | return i18n("Business Address Country"); | 1034 | return i18n("Business Address Country"); |
1035 | } | 1035 | } |
1036 | 1036 | ||
1037 | 1037 | ||
1038 | QString Addressee::businessAddressLabelLabel() | 1038 | QString Addressee::businessAddressLabelLabel() |
1039 | { | 1039 | { |
1040 | return i18n("Business Address Label"); | 1040 | return i18n("Business Address Label"); |
1041 | } | 1041 | } |
1042 | 1042 | ||
1043 | 1043 | ||
1044 | QString Addressee::homePhoneLabel() | 1044 | QString Addressee::homePhoneLabel() |
1045 | { | 1045 | { |
1046 | return i18n("Home Phone"); | 1046 | return i18n("Home Phone"); |
1047 | } | 1047 | } |
1048 | 1048 | ||
1049 | 1049 | ||
1050 | QString Addressee::businessPhoneLabel() | 1050 | QString Addressee::businessPhoneLabel() |
1051 | { | 1051 | { |
1052 | return i18n("Work Phone"); | 1052 | return i18n("Work Phone"); |
1053 | } | 1053 | } |
1054 | 1054 | ||
1055 | 1055 | ||
1056 | QString Addressee::mobilePhoneLabel() | 1056 | QString Addressee::mobilePhoneLabel() |
1057 | { | 1057 | { |
1058 | return i18n("Mobile Phone"); | 1058 | return i18n("Mobile Phone"); |
1059 | } | 1059 | } |
1060 | QString Addressee::mobileWorkPhoneLabel() | 1060 | QString Addressee::mobileWorkPhoneLabel() |
1061 | { | 1061 | { |
1062 | return i18n("Mobile2 (work)"); | 1062 | return i18n("Mobile2 (Work)"); |
1063 | } | 1063 | } |
1064 | QString Addressee::mobileHomePhoneLabel() | 1064 | QString Addressee::mobileHomePhoneLabel() |
1065 | { | 1065 | { |
1066 | return i18n("Mobile (Home)"); | 1066 | return i18n("Mobile (Home)"); |
1067 | } | 1067 | } |
1068 | 1068 | ||
1069 | 1069 | ||
1070 | QString Addressee::homeFaxLabel() | 1070 | QString Addressee::homeFaxLabel() |
1071 | { | 1071 | { |
1072 | return i18n("Fax (Home)"); | 1072 | return i18n("Fax (Home)"); |
1073 | } | 1073 | } |
1074 | 1074 | ||
1075 | 1075 | ||
1076 | QString Addressee::businessFaxLabel() | 1076 | QString Addressee::businessFaxLabel() |
1077 | { | 1077 | { |
1078 | return i18n("Fax (Work)"); | 1078 | return i18n("Fax (Work)"); |
1079 | } | 1079 | } |
1080 | 1080 | ||
1081 | 1081 | ||
1082 | QString Addressee::carPhoneLabel() | 1082 | QString Addressee::carPhoneLabel() |
1083 | { | 1083 | { |
1084 | return i18n("Mobile2 (car)"); | 1084 | return i18n("Mobile2 (Car)"); |
1085 | } | 1085 | } |
1086 | 1086 | ||
1087 | 1087 | ||
1088 | QString Addressee::isdnLabel() | 1088 | QString Addressee::isdnLabel() |
1089 | { | 1089 | { |
1090 | return i18n("ISDN"); | 1090 | return i18n("ISDN"); |
1091 | } | 1091 | } |
1092 | 1092 | ||
1093 | 1093 | ||
1094 | QString Addressee::pagerLabel() | 1094 | QString Addressee::pagerLabel() |
1095 | { | 1095 | { |
1096 | return i18n("Pager"); | 1096 | return i18n("Pager"); |
1097 | } | 1097 | } |
1098 | 1098 | ||
1099 | QString Addressee::sipLabel() | 1099 | QString Addressee::sipLabel() |
1100 | { | 1100 | { |
1101 | return i18n("SIP"); | 1101 | return i18n("SIP"); |
1102 | } | 1102 | } |
1103 | 1103 | ||
1104 | QString Addressee::emailLabel() | 1104 | QString Addressee::emailLabel() |
1105 | { | 1105 | { |
1106 | return i18n("Email Address"); | 1106 | return i18n("Email Address"); |
1107 | } | 1107 | } |
1108 | 1108 | ||
1109 | 1109 | ||
1110 | void Addressee::setMailer( const QString &mailer ) | 1110 | void Addressee::setMailer( const QString &mailer ) |
1111 | { | 1111 | { |
1112 | if ( mailer == mData->mailer ) return; | 1112 | if ( mailer == mData->mailer ) return; |
1113 | detach(); | 1113 | detach(); |
1114 | mData->empty = false; | 1114 | mData->empty = false; |
1115 | mData->mailer = mailer; | 1115 | mData->mailer = mailer; |
1116 | } | 1116 | } |
1117 | 1117 | ||
1118 | QString Addressee::mailer() const | 1118 | QString Addressee::mailer() const |
1119 | { | 1119 | { |
1120 | return mData->mailer; | 1120 | return mData->mailer; |
1121 | } | 1121 | } |
1122 | 1122 | ||
1123 | QString Addressee::mailerLabel() | 1123 | QString Addressee::mailerLabel() |
1124 | { | 1124 | { |
1125 | return i18n("Mail Client"); | 1125 | return i18n("Mail Client"); |
1126 | } | 1126 | } |
1127 | 1127 | ||
1128 | 1128 | ||
1129 | void Addressee::setTimeZone( const TimeZone &timeZone ) | 1129 | void Addressee::setTimeZone( const TimeZone &timeZone ) |
1130 | { | 1130 | { |
1131 | if ( timeZone == mData->timeZone ) return; | 1131 | if ( timeZone == mData->timeZone ) return; |
1132 | detach(); | 1132 | detach(); |
1133 | mData->empty = false; | 1133 | mData->empty = false; |
1134 | mData->timeZone = timeZone; | 1134 | mData->timeZone = timeZone; |
1135 | } | 1135 | } |
1136 | 1136 | ||
1137 | TimeZone Addressee::timeZone() const | 1137 | TimeZone Addressee::timeZone() const |
1138 | { | 1138 | { |
1139 | return mData->timeZone; | 1139 | return mData->timeZone; |
1140 | } | 1140 | } |
1141 | 1141 | ||
1142 | QString Addressee::timeZoneLabel() | 1142 | QString Addressee::timeZoneLabel() |
1143 | { | 1143 | { |
1144 | return i18n("Time Zone"); | 1144 | return i18n("Time Zone"); |
1145 | } | 1145 | } |
1146 | 1146 | ||
1147 | 1147 | ||
1148 | void Addressee::setGeo( const Geo &geo ) | 1148 | void Addressee::setGeo( const Geo &geo ) |
1149 | { | 1149 | { |
1150 | if ( geo == mData->geo ) return; | 1150 | if ( geo == mData->geo ) return; |
1151 | detach(); | 1151 | detach(); |
1152 | mData->empty = false; | 1152 | mData->empty = false; |
1153 | mData->geo = geo; | 1153 | mData->geo = geo; |
1154 | } | 1154 | } |
1155 | 1155 | ||
1156 | Geo Addressee::geo() const | 1156 | Geo Addressee::geo() const |
1157 | { | 1157 | { |
1158 | return mData->geo; | 1158 | return mData->geo; |
1159 | } | 1159 | } |
1160 | 1160 | ||
1161 | QString Addressee::geoLabel() | 1161 | QString Addressee::geoLabel() |
1162 | { | 1162 | { |
1163 | return i18n("Geographic Position"); | 1163 | return i18n("Geographic Position"); |
1164 | } | 1164 | } |
1165 | 1165 | ||
1166 | 1166 | ||
1167 | void Addressee::setTitle( const QString &title ) | 1167 | void Addressee::setTitle( const QString &title ) |
1168 | { | 1168 | { |
1169 | if ( title == mData->title ) return; | 1169 | if ( title == mData->title ) return; |
1170 | detach(); | 1170 | detach(); |
1171 | mData->empty = false; | 1171 | mData->empty = false; |
1172 | mData->title = title; | 1172 | mData->title = title; |
1173 | } | 1173 | } |
1174 | 1174 | ||
1175 | QString Addressee::title() const | 1175 | QString Addressee::title() const |
1176 | { | 1176 | { |
1177 | return mData->title; | 1177 | return mData->title; |
1178 | } | 1178 | } |
1179 | 1179 | ||
1180 | QString Addressee::titleLabel() | 1180 | QString Addressee::titleLabel() |
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp index 05d604f..aae923c 100644 --- a/kabc/addresseeview.cpp +++ b/kabc/addresseeview.cpp | |||
@@ -491,195 +491,197 @@ void AddresseeView::setAddressee( const KABC::Addressee& mAddressee ) | |||
491 | "%7" // dynamic part | 491 | "%7" // dynamic part |
492 | "%8" // notes | 492 | "%8" // notes |
493 | "</table>" | 493 | "</table>" |
494 | "</body>" | 494 | "</body>" |
495 | "</html>") | 495 | "</html>") |
496 | //US | 496 | //US |
497 | .arg( /*KGlobalSettings::textColor().name()*/ "black" ) | 497 | .arg( /*KGlobalSettings::textColor().name()*/ "black" ) |
498 | //US | 498 | //US |
499 | .arg( /*KGlobalSettings::baseColor().name()*/ "white" ) | 499 | .arg( /*KGlobalSettings::baseColor().name()*/ "white" ) |
500 | .arg( picString ) | 500 | .arg( picString ) |
501 | .arg( name ) | 501 | .arg( name ) |
502 | .arg( aRole ) | 502 | .arg( aRole ) |
503 | .arg( aOrga ) | 503 | .arg( aOrga ) |
504 | .arg( dynamicPart ) | 504 | .arg( dynamicPart ) |
505 | .arg( notes ); | 505 | .arg( notes ); |
506 | 506 | ||
507 | } else { // no picture! | 507 | } else { // no picture! |
508 | 508 | ||
509 | mText = "<table width=\"100%\">\n"; | 509 | mText = "<table width=\"100%\">\n"; |
510 | //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; | 510 | //mText += "<tr bgcolor=\"#3679AD\"><td><h2>"; |
511 | #ifdef DESKTOP_VERSION | 511 | #ifdef DESKTOP_VERSION |
512 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h1>"; | 512 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h1>"; |
513 | mText += "<font color=\"#FFFFFF\">" + name +"</font></h1>"; | 513 | mText += "<font color=\"#FFFFFF\">" + name +"</font></h1>"; |
514 | #else | 514 | #else |
515 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h3>"; | 515 | mText += "<tr bgcolor=\"#5699CD\"><td align=\"left\"><h3>"; |
516 | mText += "<font color=\"#FFFFFF\"> " + name +"</font></h3>"; | 516 | mText += "<font color=\"#FFFFFF\"> " + name +"</font></h3>"; |
517 | #endif | 517 | #endif |
518 | 518 | ||
519 | mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; | 519 | mText += "</td></tr>\n<tr bgcolor=\"#EAF8FA\"><td>"; |
520 | 520 | ||
521 | mText += "<table><td colspan=\"2\"> </td>"; | 521 | mText += "<table><td colspan=\"2\"> </td>"; |
522 | /* | 522 | /* |
523 | mText += QString("<tr><td align=\"right\"><b2>%1</b2></td>" | 523 | mText += QString("<tr><td align=\"right\"><b2>%1</b2></td>" |
524 | "<td align=\"left\"><b>%2</b></td></tr>" ) | 524 | "<td align=\"left\"><b>%2</b></td></tr>" ) |
525 | .arg( i18n(" ") ) | 525 | .arg( i18n(" ") ) |
526 | .arg( name ); | 526 | .arg( name ); |
527 | */ | 527 | */ |
528 | if ( ! mAddressee.role().isEmpty() ) | 528 | if ( ! mAddressee.role().isEmpty() ) |
529 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" | 529 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" |
530 | "<td align=\"left\">%2</td></tr>" ) | 530 | "<td align=\"left\">%2</td></tr>" ) |
531 | .arg( i18n(" ") ) | 531 | .arg( i18n(" ") ) |
532 | .arg( mAddressee.role()); | 532 | .arg( mAddressee.role()); |
533 | if ( ! mAddressee.organization().isEmpty() ) | 533 | if ( ! mAddressee.organization().isEmpty() ) |
534 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" | 534 | mText += QString("<tr><td align=\"right\"><b>%1</b></td>" |
535 | "<td align=\"left\">%2</td></tr>" ) | 535 | "<td align=\"left\">%2</td></tr>" ) |
536 | .arg( i18n(" ") ) | 536 | .arg( i18n(" ") ) |
537 | .arg( mAddressee.organization()); | 537 | .arg( mAddressee.organization()); |
538 | mText += dynamicPart; | 538 | mText += dynamicPart; |
539 | mText += notes; | 539 | mText += notes; |
540 | mText += "</table>"; | 540 | mText += "</table>"; |
541 | 541 | ||
542 | } | 542 | } |
543 | 543 | ||
544 | // at last display it... | 544 | // at last display it... |
545 | setText( mText ); | 545 | setText( mText ); |
546 | 546 | ||
547 | } | 547 | } |
548 | 548 | ||
549 | QString AddresseeView::getPhoneNumbers( KABC::PhoneNumber::List phones ,bool preferred ) | 549 | QString AddresseeView::getPhoneNumbers( KABC::PhoneNumber::List phones ,bool preferred ) |
550 | { | 550 | { |
551 | ExternalAppHandler* eah = ExternalAppHandler::instance(); | 551 | ExternalAppHandler* eah = ExternalAppHandler::instance(); |
552 | bool kphoneAvail = eah->isPhoneAppAvailable(); | 552 | bool kphoneAvail = eah->isPhoneAppAvailable(); |
553 | bool kfaxAvail = eah->isFaxAppAvailable(); | 553 | bool kfaxAvail = eah->isFaxAppAvailable(); |
554 | bool ksmsAvail = eah->isSMSAppAvailable(); | 554 | bool ksmsAvail = eah->isSMSAppAvailable(); |
555 | bool kpagerAvail = eah->isPagerAppAvailable(); | 555 | bool kpagerAvail = eah->isPagerAppAvailable(); |
556 | bool ksipAvail = eah->isSIPAppAvailable(); | 556 | bool ksipAvail = eah->isSIPAppAvailable(); |
557 | QString dynamicPart; | 557 | QString dynamicPart; |
558 | KABC::PhoneNumber::List::ConstIterator phoneIt; | 558 | KABC::PhoneNumber::List::ConstIterator phoneIt; |
559 | QString extension; | 559 | QString extension; |
560 | int phonetype; | 560 | int phonetype; |
561 | QString sms; | 561 | QString sms; |
562 | for ( phoneIt = phones.begin(); phoneIt != phones.end(); ++phoneIt ) { | 562 | for ( phoneIt = phones.begin(); phoneIt != phones.end(); ++phoneIt ) { |
563 | phonetype = (*phoneIt).type(); | 563 | phonetype = (*phoneIt).type(); |
564 | if ( ((phonetype & KABC::PhoneNumber::Pref) == 0 ) == preferred ) | 564 | if ( ((phonetype & KABC::PhoneNumber::Pref) == 0 ) == preferred ) |
565 | continue; | 565 | continue; |
566 | if (ksmsAvail && | 566 | if (ksmsAvail && |
567 | ( | 567 | ( |
568 | ((phonetype & KABC::PhoneNumber::Car) == KABC::PhoneNumber::Car) || | 568 | ((phonetype & KABC::PhoneNumber::Car) == KABC::PhoneNumber::Car) || |
569 | ((phonetype & KABC::PhoneNumber::Cell) == KABC::PhoneNumber::Cell) | 569 | ((phonetype & KABC::PhoneNumber::Cell) == KABC::PhoneNumber::Cell) |
570 | ) | 570 | ) |
571 | ) | 571 | ) |
572 | { | 572 | { |
573 | sms = QString("<a href=\"smsto:%1 \">(sms)</a>" ) | 573 | sms = QString("<a href=\"smsto:%1 \">(sms)</a>" ) |
574 | .arg( (*phoneIt).number() ); | 574 | .arg( (*phoneIt).number() ); |
575 | 575 | ||
576 | } | 576 | } |
577 | else | 577 | else |
578 | sms = ""; | 578 | sms = ""; |
579 | 579 | ||
580 | extension = QString::null; | 580 | extension = QString::null; |
581 | if ((phonetype & KABC::PhoneNumber::Fax) == KABC::PhoneNumber::Fax) { | 581 | if ((phonetype & KABC::PhoneNumber::Fax) == KABC::PhoneNumber::Fax) { |
582 | if (kfaxAvail) extension = "faxto:"; | 582 | if (kfaxAvail) extension = "faxto:"; |
583 | } | 583 | } |
584 | else if ((phonetype & KABC::PhoneNumber::Pager) == KABC::PhoneNumber::Pager) { | 584 | else if ((phonetype & KABC::PhoneNumber::Pager) == KABC::PhoneNumber::Pager) { |
585 | if (kpagerAvail) extension = "pagerto:"; | 585 | if (kpagerAvail) extension = "pagerto:"; |
586 | } | 586 | } |
587 | #if 0 | ||
587 | else if ((phonetype & KABC::PhoneNumber::Sip) == KABC::PhoneNumber::Sip) { | 588 | else if ((phonetype & KABC::PhoneNumber::Sip) == KABC::PhoneNumber::Sip) { |
588 | if (ksipAvail) extension = "sipto:"; | 589 | if (ksipAvail) extension = "sipto:"; |
589 | } | 590 | } |
591 | #endif | ||
590 | else if (kphoneAvail) { | 592 | else if (kphoneAvail) { |
591 | extension = "phoneto:"; | 593 | extension = "phoneto:"; |
592 | } | 594 | } |
593 | else | 595 | else |
594 | extension = QString::null; | 596 | extension = QString::null; |
595 | 597 | ||
596 | if ( !extension.isEmpty() ) { | 598 | if ( !extension.isEmpty() ) { |
597 | dynamicPart += QString( | 599 | dynamicPart += QString( |
598 | "<tr><td align=\"right\"><b>%1</b></td>" | 600 | "<tr><td align=\"right\"><b>%1</b></td>" |
599 | "<td align=\"left\"><a href=\"%2%3 \">%4</a> %5</td></tr>" ) | 601 | "<td align=\"left\"><a href=\"%2%3 \">%4</a> %5</td></tr>" ) |
600 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) | 602 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) |
601 | .arg( extension ) | 603 | .arg( extension ) |
602 | .arg( (*phoneIt).number() ) | 604 | .arg( (*phoneIt).number() ) |
603 | .arg( (*phoneIt).number() ) | 605 | .arg( (*phoneIt).number() ) |
604 | .arg( sms ); | 606 | .arg( sms ); |
605 | 607 | ||
606 | } else { | 608 | } else { |
607 | dynamicPart += QString( | 609 | dynamicPart += QString( |
608 | "<tr><td align=\"right\"><b>%1</b></td>" | 610 | "<tr><td align=\"right\"><b>%1</b></td>" |
609 | "<td align=\"left\">%2 %3</td></tr>" ) | 611 | "<td align=\"left\">%2 %3</td></tr>" ) |
610 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) | 612 | .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) |
611 | .arg( (*phoneIt).number() ) | 613 | .arg( (*phoneIt).number() ) |
612 | .arg( sms ); | 614 | .arg( sms ); |
613 | } | 615 | } |
614 | } | 616 | } |
615 | return dynamicPart; | 617 | return dynamicPart; |
616 | } | 618 | } |
617 | /* | 619 | /* |
618 | KABC::Addressee AddresseeView::addressee() const | 620 | KABC::Addressee AddresseeView::addressee() const |
619 | { | 621 | { |
620 | return mAddressee; | 622 | return mAddressee; |
621 | } | 623 | } |
622 | */ | 624 | */ |
623 | void AddresseeView::addTag(const QString & tag,const QString & text) | 625 | void AddresseeView::addTag(const QString & tag,const QString & text) |
624 | { | 626 | { |
625 | if ( text.isEmpty() ) | 627 | if ( text.isEmpty() ) |
626 | return; | 628 | return; |
627 | int number=text.contains("\n"); | 629 | int number=text.contains("\n"); |
628 | QString str = "<" + tag + ">"; | 630 | QString str = "<" + tag + ">"; |
629 | QString tmpText=text; | 631 | QString tmpText=text; |
630 | QString tmpStr=str; | 632 | QString tmpStr=str; |
631 | if(number !=-1) | 633 | if(number !=-1) |
632 | { | 634 | { |
633 | if (number > 0) { | 635 | if (number > 0) { |
634 | int pos=0; | 636 | int pos=0; |
635 | QString tmp; | 637 | QString tmp; |
636 | for(int i=0;i<=number;i++) { | 638 | for(int i=0;i<=number;i++) { |
637 | pos=tmpText.find("\n"); | 639 | pos=tmpText.find("\n"); |
638 | tmp=tmpText.left(pos); | 640 | tmp=tmpText.left(pos); |
639 | tmpText=tmpText.right(tmpText.length()-pos-1); | 641 | tmpText=tmpText.right(tmpText.length()-pos-1); |
640 | tmpStr+=tmp+"<br>"; | 642 | tmpStr+=tmp+"<br>"; |
641 | } | 643 | } |
642 | } | 644 | } |
643 | else tmpStr += tmpText; | 645 | else tmpStr += tmpText; |
644 | tmpStr+="</" + tag + ">"; | 646 | tmpStr+="</" + tag + ">"; |
645 | mText.append(tmpStr); | 647 | mText.append(tmpStr); |
646 | } | 648 | } |
647 | else | 649 | else |
648 | { | 650 | { |
649 | str += text + "</" + tag + ">"; | 651 | str += text + "</" + tag + ">"; |
650 | mText.append(str); | 652 | mText.append(str); |
651 | } | 653 | } |
652 | } | 654 | } |
653 | 655 | ||
654 | AddresseeChooser::AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent, const char *name ) : KDialogBase(parent,name, | 656 | AddresseeChooser::AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent, const char *name ) : KDialogBase(parent,name, |
655 | true ,i18n("Conflict! Please choose Adressee!"),Ok|User1|Close,Close, false) | 657 | true ,i18n("Conflict! Please choose Adressee!"),Ok|User1|Close,Close, false) |
656 | { | 658 | { |
657 | findButton( Close )->setText( i18n("Cancel Sync")); | 659 | findButton( Close )->setText( i18n("Cancel Sync")); |
658 | findButton( Ok )->setText( i18n("Remote")); | 660 | findButton( Ok )->setText( i18n("Remote")); |
659 | findButton( User1 )->setText( i18n("Local")); | 661 | findButton( User1 )->setText( i18n("Local")); |
660 | QWidget* topframe = new QWidget( this ); | 662 | QWidget* topframe = new QWidget( this ); |
661 | setMainWidget( topframe ); | 663 | setMainWidget( topframe ); |
662 | QBoxLayout* bl; | 664 | QBoxLayout* bl; |
663 | if ( QApplication::desktop()->width() < 640 ) { | 665 | if ( QApplication::desktop()->width() < 640 ) { |
664 | bl = new QVBoxLayout( topframe ); | 666 | bl = new QVBoxLayout( topframe ); |
665 | } else { | 667 | } else { |
666 | bl = new QHBoxLayout( topframe ); | 668 | bl = new QHBoxLayout( topframe ); |
667 | } | 669 | } |
668 | QVBox* subframe = new QVBox( topframe ); | 670 | QVBox* subframe = new QVBox( topframe ); |
669 | bl->addWidget(subframe ); | 671 | bl->addWidget(subframe ); |
670 | QLabel* lab = new QLabel( i18n("Local Addressee"), subframe ); | 672 | QLabel* lab = new QLabel( i18n("Local Addressee"), subframe ); |
671 | if ( takeloc ) | 673 | if ( takeloc ) |
672 | lab->setBackgroundColor(Qt::green.light() ); | 674 | lab->setBackgroundColor(Qt::green.light() ); |
673 | AddresseeView * av = new AddresseeView( subframe ); | 675 | AddresseeView * av = new AddresseeView( subframe ); |
674 | av->setAddressee( loc ); | 676 | av->setAddressee( loc ); |
675 | subframe = new QVBox( topframe ); | 677 | subframe = new QVBox( topframe ); |
676 | bl->addWidget(subframe ); | 678 | bl->addWidget(subframe ); |
677 | lab = new QLabel( i18n("Remote Addressee"), subframe ); | 679 | lab = new QLabel( i18n("Remote Addressee"), subframe ); |
678 | if ( !takeloc ) | 680 | if ( !takeloc ) |
679 | lab->setBackgroundColor(Qt::green.light() ); | 681 | lab->setBackgroundColor(Qt::green.light() ); |
680 | av = new AddresseeView( subframe ); | 682 | av = new AddresseeView( subframe ); |
681 | av->setAddressee( rem ); | 683 | av->setAddressee( rem ); |
682 | QObject::connect(findButton( Ok ),SIGNAL(clicked()),this, SLOT(slot_remote())); | 684 | QObject::connect(findButton( Ok ),SIGNAL(clicked()),this, SLOT(slot_remote())); |
683 | QObject::connect(this,SIGNAL(user1Clicked()),this, SLOT(slot_local())); | 685 | QObject::connect(this,SIGNAL(user1Clicked()),this, SLOT(slot_local())); |
684 | #ifndef DESKTOP_VERSION | 686 | #ifndef DESKTOP_VERSION |
685 | showMaximized(); | 687 | showMaximized(); |
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index 2bce39a..b20275d 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp | |||
@@ -1,148 +1,258 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KAddressBook. | 2 | This file is part of KAddressBook. |
3 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> | 3 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <qlayout.h> | 24 | #include <qlayout.h> |
25 | #include <qlabel.h> | 25 | #include <qlabel.h> |
26 | #include <qtooltip.h> | 26 | #include <qtooltip.h> |
27 | #include <qpushbutton.h> | 27 | #include <qpushbutton.h> |
28 | #include <qcheckbox.h> | 28 | #include <qcheckbox.h> |
29 | #include <qstring.h> | 29 | #include <qstring.h> |
30 | #include <qlistbox.h> | 30 | #include <qlistbox.h> |
31 | #include <qlistview.h> | 31 | #include <qlistview.h> |
32 | #include <qbuttongroup.h> | 32 | #include <qbuttongroup.h> |
33 | #include <qhbox.h> | ||
33 | 34 | ||
34 | #include <kbuttonbox.h> | 35 | #include <kbuttonbox.h> |
35 | #include <klistview.h> | 36 | #include <klistview.h> |
36 | #include <kapplication.h> | 37 | #include <kapplication.h> |
37 | #include <qapplication.h> | 38 | #include <qapplication.h> |
38 | #include <kconfig.h> | 39 | #include <kconfig.h> |
39 | #include <klineedit.h> | 40 | #include <klineedit.h> |
40 | #include <kcombobox.h> | 41 | #include <kcombobox.h> |
41 | #include <klocale.h> | 42 | #include <klocale.h> |
42 | #include <kdebug.h> | 43 | #include <kdebug.h> |
43 | #include <kglobal.h> | 44 | #include <kglobal.h> |
44 | #include <kiconloader.h> | 45 | #include <kiconloader.h> |
45 | 46 | ||
46 | #include <kabc/phonenumber.h> | 47 | #include <kabc/phonenumber.h> |
47 | 48 | ||
48 | #include "typecombo.h" | 49 | #include "typecombo.h" |
49 | 50 | ||
50 | #include "phoneeditwidget.h" | 51 | #include "phoneeditwidget.h" |
51 | 52 | ||
52 | PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) | 53 | PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) |
54 | : QScrollView(parent,name) | ||
55 | { | ||
56 | setFrameStyle ( QFrame::Panel | QFrame::Plain ); | ||
57 | setLineWidth ( 1 ); | ||
58 | setMidLineWidth ( 1 ); | ||
59 | mw = new QWidget ( viewport() ); | ||
60 | addChild(mw); | ||
61 | setResizePolicy( AutoOneFit ); | ||
62 | mainLayout = new QVBoxLayout ( mw ); | ||
63 | mainLayout->setMargin( 2 ); | ||
64 | mainLayout->setSpacing( 2 ); | ||
65 | QWidget* hb = new QWidget ( mw ); | ||
66 | mainLayout->add( hb ); | ||
67 | QHBoxLayout* hbLayout = new QHBoxLayout ( hb ); | ||
68 | QPushButton *addBut = new QPushButton ( "add", hb ); | ||
69 | hbLayout->add( addBut ); | ||
70 | addBut->setPixmap ( SmallIcon("plus")); | ||
71 | addBut->setMaximumSize( addBut->sizeHint().height(),addBut->sizeHint().height() ); | ||
72 | connect(addBut,SIGNAL(clicked()),SLOT(addNumber())); | ||
73 | //QLabel * temp = new QLabel( i18n("Phone Type"), hb ); | ||
74 | QLabel *temp = new QLabel( i18n("Phone Number"),hb ); | ||
75 | temp->setAlignment( Qt::AlignCenter ); | ||
76 | temp->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); | ||
77 | hbLayout->add( temp ); | ||
78 | appendEditCombo(); | ||
79 | appendEditCombo(); | ||
80 | appendEditCombo(); | ||
81 | setDefaults(); | ||
82 | } | ||
83 | |||
84 | PhoneEditWidget::~PhoneEditWidget() | ||
85 | { | ||
86 | } | ||
87 | void PhoneEditWidget::setDefaults() | ||
88 | { | ||
89 | PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); | ||
90 | KABC::PhoneNumber phoneNumber; | ||
91 | phoneNumber.setType( KABC::PhoneNumber::Home | KABC::PhoneNumber::Pref ); | ||
92 | edit->setPhoneNumber( phoneNumber ); | ||
93 | edit = mTypeNumberEditList.next(); | ||
94 | phoneNumber.setType( KABC::PhoneNumber::Work | KABC::PhoneNumber::Pref ); | ||
95 | edit->setPhoneNumber( phoneNumber ); | ||
96 | edit = mTypeNumberEditList.next(); | ||
97 | phoneNumber.setType( KABC::PhoneNumber::Cell ); | ||
98 | edit->setPhoneNumber( phoneNumber ); | ||
99 | edit = mTypeNumberEditList.next(); | ||
100 | while ( edit ) { | ||
101 | edit->hide(); | ||
102 | edit = mTypeNumberEditList.next(); | ||
103 | } | ||
104 | } | ||
105 | void PhoneEditWidget::addNumber() | ||
106 | { | ||
107 | |||
108 | } | ||
109 | PhoneTypeNumberEdit* PhoneEditWidget::appendEditCombo() | ||
110 | { | ||
111 | PhoneTypeNumberEdit* edit = new PhoneTypeNumberEdit( mw ); | ||
112 | connect ( edit, SIGNAL ( typeChange( int , int) ), this, SIGNAL ( typeChange( int , int)) ); | ||
113 | connect ( edit, SIGNAL ( modified() ), this, SIGNAL ( modified() ) ); | ||
114 | connect ( this, SIGNAL ( typeChange( int , int)), edit, SLOT ( typeExternalChanged( int, int)) ); | ||
115 | |||
116 | mainLayout->add( edit ); | ||
117 | mTypeNumberEditList.append( edit ); | ||
118 | return edit; | ||
119 | } | ||
120 | |||
121 | void PhoneEditWidget::setPhoneNumbers( const KABC::PhoneNumber::List &li ) | ||
122 | { | ||
123 | if ( li.isEmpty() ) { | ||
124 | setDefaults(); | ||
125 | return; | ||
126 | } | ||
127 | KABC::PhoneNumber::List::Iterator it; | ||
128 | KABC::PhoneNumber::List list = li; | ||
129 | PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); | ||
130 | for ( it = list.begin(); it != list.end(); ++it ) { | ||
131 | if ( edit ) { | ||
132 | edit->setPhoneNumber( (*it ) ); | ||
133 | edit = mTypeNumberEditList.next(); | ||
134 | } else { | ||
135 | PhoneTypeNumberEdit* editNew = appendEditCombo(); | ||
136 | editNew->setPhoneNumber( (*it ) ); | ||
137 | } | ||
138 | } | ||
139 | while ( edit ) { | ||
140 | edit->hide(); | ||
141 | edit = mTypeNumberEditList.next(); | ||
142 | } | ||
143 | //mainLayout->invalidate (); | ||
144 | mw->update(); | ||
145 | } | ||
146 | KABC::PhoneNumber::List PhoneEditWidget::phoneNumbers() | ||
147 | { | ||
148 | KABC::PhoneNumber::List retList; | ||
149 | |||
150 | PhoneTypeNumberEdit* edit = mTypeNumberEditList.first(); | ||
151 | while ( edit ) { | ||
152 | if ( edit->isValid() ) { | ||
153 | retList.append( edit->phoneNumber()); | ||
154 | } | ||
155 | edit = mTypeNumberEditList.next(); | ||
156 | |||
157 | } | ||
158 | return retList; | ||
159 | } | ||
160 | |||
161 | #if 0 | ||
162 | PhoneEditWidget::PhoneEditWidget( QWidget *parent, const char *name ) | ||
53 | : QWidget( parent, name ) | 163 | : QWidget( parent, name ) |
54 | { | 164 | { |
55 | QGridLayout *layout = new QGridLayout( this, 4, 1 ); | 165 | QGridLayout *layout = new QGridLayout( this, 4, 1 ); |
56 | //US layout->setSpacing( KDialog::spacingHint() ); | 166 | //US layout->setSpacing( KDialog::spacingHint() ); |
57 | layout->setSpacing( KDialogBase::spacingHintSmall() ); | 167 | layout->setSpacing( KDialogBase::spacingHintSmall() ); |
58 | 168 | ||
59 | 169 | ||
60 | 170 | ||
61 | QLabel* label = new QLabel( this ); | 171 | QLabel* label = new QLabel( this ); |
62 | //US loadIcon call is ambiguous. Add one more parameter | 172 | //US loadIcon call is ambiguous. Add one more parameter |
63 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); | 173 | //US label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop ) ); |
64 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); | 174 | label->setPixmap( KGlobal::iconLoader()->loadIcon( "kaddressbook", KIcon::Desktop, 0 ) ); |
65 | label->setAlignment( AlignCenter ); | 175 | label->setAlignment( AlignCenter ); |
66 | //US layout->addMultiCellWidget( label, 0, 1, 3, 3 ); | 176 | //US layout->addMultiCellWidget( label, 0, 1, 3, 3 ); |
67 | layout->addWidget( label, 0, 0 ); | 177 | layout->addWidget( label, 0, 0 ); |
68 | 178 | ||
69 | QPushButton *editButton = new QPushButton( i18n( "Edit Phone Numbers..." ), | 179 | QPushButton *editButton = new QPushButton( i18n( "Edit Phone Numbers..." ), |
70 | this ); | 180 | this ); |
71 | if ( QApplication::desktop()->width() < 640 ) | 181 | if ( QApplication::desktop()->width() < 640 ) |
72 | layout->addWidget( editButton, 0, 1 ); | 182 | layout->addWidget( editButton, 0, 1 ); |
73 | else | 183 | else |
74 | layout->addMultiCellWidget( editButton, 0, 0, 1, 3); | 184 | layout->addMultiCellWidget( editButton, 0, 0, 1, 3); |
75 | 185 | ||
76 | mPrefCombo = new PhoneTypeCombo( mPhoneList, this ); | 186 | mPrefCombo = new PhoneTypeCombo( mPhoneList, this ); |
77 | mPrefEdit = new KLineEdit( this ); | 187 | mPrefEdit = new KLineEdit( this ); |
78 | //mPrefEdit->setMinimumWidth( int(mPrefEdit->sizeHint().width() * 1.5) ); | 188 | //mPrefEdit->setMinimumWidth( int(mPrefEdit->sizeHint().width() * 1.5) ); |
79 | mPrefCombo->setLineEdit( mPrefEdit ); | 189 | mPrefCombo->setLineEdit( mPrefEdit ); |
80 | layout->addWidget( mPrefCombo, 1, 0 ); | 190 | layout->addWidget( mPrefCombo, 1, 0 ); |
81 | layout->addWidget( mPrefEdit, 1, 1 ); | 191 | layout->addWidget( mPrefEdit, 1, 1 ); |
82 | int x = 1, y = 2; | 192 | int x = 1, y = 2; |
83 | if ( QApplication::desktop()->width() < 640 ) { | 193 | if ( QApplication::desktop()->width() < 640 ) { |
84 | ++x; | 194 | ++x; |
85 | y = 0; | 195 | y = 0; |
86 | } | 196 | } |
87 | mSecondCombo = new PhoneTypeCombo( mPhoneList, this ); | 197 | mSecondCombo = new PhoneTypeCombo( mPhoneList, this ); |
88 | mSecondEdit = new KLineEdit( this ); | 198 | mSecondEdit = new KLineEdit( this ); |
89 | mSecondCombo->setLineEdit( mSecondEdit ); | 199 | mSecondCombo->setLineEdit( mSecondEdit ); |
90 | layout->addWidget( mSecondCombo, x, y++ ); | 200 | layout->addWidget( mSecondCombo, x, y++ ); |
91 | layout->addWidget( mSecondEdit, x, y++ ); | 201 | layout->addWidget( mSecondEdit, x, y++ ); |
92 | 202 | ||
93 | y = 0; | 203 | y = 0; |
94 | ++x; | 204 | ++x; |
95 | mThirdCombo = new PhoneTypeCombo( mPhoneList, this ); | 205 | mThirdCombo = new PhoneTypeCombo( mPhoneList, this ); |
96 | mThirdEdit = new KLineEdit( this ); | 206 | mThirdEdit = new KLineEdit( this ); |
97 | mThirdCombo->setLineEdit( mThirdEdit ); | 207 | mThirdCombo->setLineEdit( mThirdEdit ); |
98 | layout->addWidget( mThirdCombo, x, y++ ); | 208 | layout->addWidget( mThirdCombo, x, y++ ); |
99 | layout->addWidget( mThirdEdit, x, y++ ); | 209 | layout->addWidget( mThirdEdit, x, y++ ); |
100 | if ( QApplication::desktop()->width() < 640 ) { | 210 | if ( QApplication::desktop()->width() < 640 ) { |
101 | ++x; | 211 | ++x; |
102 | y = 0; | 212 | y = 0; |
103 | } | 213 | } |
104 | mFourthCombo = new PhoneTypeCombo( mPhoneList, this ); | 214 | mFourthCombo = new PhoneTypeCombo( mPhoneList, this ); |
105 | mFourthEdit = new KLineEdit( this ); | 215 | mFourthEdit = new KLineEdit( this ); |
106 | mFourthCombo->setLineEdit( mFourthEdit ); | 216 | mFourthCombo->setLineEdit( mFourthEdit ); |
107 | layout->addWidget( mFourthCombo, x, y++ ); | 217 | layout->addWidget( mFourthCombo, x, y++ ); |
108 | layout->addWidget( mFourthEdit, x, y++ ); | 218 | layout->addWidget( mFourthEdit, x, y++ ); |
109 | 219 | ||
110 | // Four numbers don't fit in the current dialog | 220 | // Four numbers don't fit in the current dialog |
111 | if ( QApplication::desktop()->width() < 640 ) { | 221 | if ( QApplication::desktop()->width() < 640 ) { |
112 | mFourthCombo->hide(); | 222 | mFourthCombo->hide(); |
113 | mFourthEdit->hide(); | 223 | mFourthEdit->hide(); |
114 | } else { | 224 | } else { |
115 | QFontMetrics fm ( font () ) ; | 225 | QFontMetrics fm ( font () ) ; |
116 | int wid = fm.width( "Messenger" ) +60; | 226 | int wid = fm.width( "Messenger" ) +60; |
117 | mPrefCombo->setMaximumWidth( wid ); | 227 | mPrefCombo->setMaximumWidth( wid ); |
118 | mSecondCombo->setMaximumWidth( wid ); | 228 | mSecondCombo->setMaximumWidth( wid ); |
119 | mThirdCombo->setMaximumWidth( wid ); | 229 | mThirdCombo->setMaximumWidth( wid ); |
120 | mFourthCombo->setMaximumWidth( wid ); | 230 | mFourthCombo->setMaximumWidth( wid ); |
121 | } | 231 | } |
122 | 232 | ||
123 | 233 | ||
124 | connect( mPrefEdit, SIGNAL( textChanged( const QString& ) ), | 234 | connect( mPrefEdit, SIGNAL( textChanged( const QString& ) ), |
125 | SLOT( slotPrefEditChanged() ) ); | 235 | SLOT( slotPrefEditChanged() ) ); |
126 | connect( mSecondEdit, SIGNAL( textChanged( const QString& ) ), | 236 | connect( mSecondEdit, SIGNAL( textChanged( const QString& ) ), |
127 | SLOT( slotSecondEditChanged() ) ); | 237 | SLOT( slotSecondEditChanged() ) ); |
128 | connect( mThirdEdit, SIGNAL( textChanged( const QString& ) ), | 238 | connect( mThirdEdit, SIGNAL( textChanged( const QString& ) ), |
129 | SLOT( slotThirdEditChanged() ) ); | 239 | SLOT( slotThirdEditChanged() ) ); |
130 | connect( mFourthEdit, SIGNAL( textChanged( const QString& ) ), | 240 | connect( mFourthEdit, SIGNAL( textChanged( const QString& ) ), |
131 | SLOT( slotFourthEditChanged() ) ); | 241 | SLOT( slotFourthEditChanged() ) ); |
132 | 242 | ||
133 | connect( editButton, SIGNAL( clicked() ), SLOT( edit() ) ); | 243 | connect( editButton, SIGNAL( clicked() ), SLOT( edit() ) ); |
134 | 244 | ||
135 | connect( mPrefCombo, SIGNAL( activated( int ) ), | 245 | connect( mPrefCombo, SIGNAL( activated( int ) ), |
136 | SLOT( updatePrefEdit() ) ); | 246 | SLOT( updatePrefEdit() ) ); |
137 | connect( mSecondCombo, SIGNAL( activated( int ) ), | 247 | connect( mSecondCombo, SIGNAL( activated( int ) ), |
138 | SLOT( updateSecondEdit() ) ); | 248 | SLOT( updateSecondEdit() ) ); |
139 | connect( mThirdCombo, SIGNAL( activated( int ) ), | 249 | connect( mThirdCombo, SIGNAL( activated( int ) ), |
140 | SLOT( updateThirdEdit() ) ); | 250 | SLOT( updateThirdEdit() ) ); |
141 | connect( mFourthCombo, SIGNAL( activated( int ) ), | 251 | connect( mFourthCombo, SIGNAL( activated( int ) ), |
142 | SLOT( updateFourthEdit() ) ); | 252 | SLOT( updateFourthEdit() ) ); |
143 | } | 253 | } |
144 | 254 | ||
145 | PhoneEditWidget::~PhoneEditWidget() | 255 | PhoneEditWidget::~PhoneEditWidget() |
146 | { | 256 | { |
147 | } | 257 | } |
148 | 258 | ||
@@ -457,100 +567,100 @@ void PhoneEditDialog::slotEditPhoneNumber() | |||
457 | PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() ); | 567 | PhoneViewItem *item = static_cast<PhoneViewItem*>( mListView->currentItem() ); |
458 | if ( !item ) | 568 | if ( !item ) |
459 | return; | 569 | return; |
460 | 570 | ||
461 | PhoneTypeDialog dlg( item->phoneNumber(), this ); | 571 | PhoneTypeDialog dlg( item->phoneNumber(), this ); |
462 | 572 | ||
463 | if ( dlg.exec() ) { | 573 | if ( dlg.exec() ) { |
464 | slotRemovePhoneNumber(); | 574 | slotRemovePhoneNumber(); |
465 | KABC::PhoneNumber phoneNumber = dlg.phoneNumber(); | 575 | KABC::PhoneNumber phoneNumber = dlg.phoneNumber(); |
466 | mPhoneNumberList.append( phoneNumber ); | 576 | mPhoneNumberList.append( phoneNumber ); |
467 | new PhoneViewItem( mListView, phoneNumber ); | 577 | new PhoneViewItem( mListView, phoneNumber ); |
468 | 578 | ||
469 | mChanged = true; | 579 | mChanged = true; |
470 | } | 580 | } |
471 | } | 581 | } |
472 | 582 | ||
473 | void PhoneEditDialog::slotSelectionChanged() | 583 | void PhoneEditDialog::slotSelectionChanged() |
474 | { | 584 | { |
475 | bool state = ( mListView->currentItem() != 0 ); | 585 | bool state = ( mListView->currentItem() != 0 ); |
476 | 586 | ||
477 | mRemoveButton->setEnabled( state ); | 587 | mRemoveButton->setEnabled( state ); |
478 | mEditButton->setEnabled( state ); | 588 | mEditButton->setEnabled( state ); |
479 | } | 589 | } |
480 | 590 | ||
481 | const KABC::PhoneNumber::List &PhoneEditDialog::phoneNumbers() | 591 | const KABC::PhoneNumber::List &PhoneEditDialog::phoneNumbers() |
482 | { | 592 | { |
483 | return mPhoneNumberList; | 593 | return mPhoneNumberList; |
484 | } | 594 | } |
485 | 595 | ||
486 | bool PhoneEditDialog::changed() const | 596 | bool PhoneEditDialog::changed() const |
487 | { | 597 | { |
488 | return mChanged; | 598 | return mChanged; |
489 | } | 599 | } |
490 | 600 | ||
491 | /////////////////////////////////////////// | 601 | /////////////////////////////////////////// |
492 | // PhoneTypeDialog | 602 | // PhoneTypeDialog |
493 | PhoneTypeDialog::PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, | 603 | PhoneTypeDialog::PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, |
494 | QWidget *parent, const char *name) | 604 | QWidget *parent, const char *name) |
495 | : KDialogBase( KDialogBase::Plain, i18n( "Edit Phone Number" ), | 605 | : KDialogBase( KDialogBase::Plain, i18n( "Edit Phone Number" ), |
496 | KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, | 606 | KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, |
497 | parent, name, true), mPhoneNumber( phoneNumber ) | 607 | parent, name, true), mPhoneNumber( phoneNumber ) |
498 | { | 608 | { |
499 | QWidget *page = plainPage(); | 609 | QWidget *page = plainPage(); |
500 | QLabel *label = 0; | 610 | QLabel *label = 0; |
501 | QGridLayout *layout = new QGridLayout( page, 3, 2, marginHint(), spacingHint() ); | 611 | QGridLayout *layout = new QGridLayout( page, 3, 2, marginHint(), spacingHint() ); |
502 | 612 | ||
503 | label = new QLabel( i18n( "Number:" ), page ); | 613 | label = new QLabel( i18n( "Number:" ), page ); |
504 | layout->addWidget( label, 0, 0 ); | 614 | layout->addWidget( label, 0, 0 ); |
505 | mNumber = new KLineEdit( page ); | 615 | mNumber = new KLineEdit( page ); |
506 | layout->addWidget( mNumber, 0, 1 ); | 616 | layout->addWidget( mNumber, 0, 1 ); |
507 | 617 | ||
508 | mPreferredBox = new QCheckBox( i18n( "This is the preferred phone number" ), page ); | 618 | mPreferredBox = new QCheckBox( i18n( "This is the preferred phone number" ), page ); |
509 | layout->addMultiCellWidget( mPreferredBox, 1, 1, 0, 1 ); | 619 | layout->addMultiCellWidget( mPreferredBox, 1, 1, 0, 1 ); |
510 | 620 | ||
511 | mGroup = new QButtonGroup( 2, Horizontal, i18n( "Types" ), page ); | 621 | mGroup = new QButtonGroup( 2, Horizontal, i18n( "Types" ), page ); |
512 | layout->addMultiCellWidget( mGroup, 2, 2, 0, 1 ); | 622 | layout->addMultiCellWidget( mGroup, 2, 2, 0, 1 ); |
513 | 623 | ||
514 | // fill widgets | 624 | // fill widgets |
515 | mNumber->setText( mPhoneNumber.number() ); | 625 | mNumber->setText( mPhoneNumber.number() ); |
516 | 626 | ||
517 | mTypeList = KABC::PhoneNumber::typeList(); | 627 | mTypeList = KABC::PhoneNumber::typeList(); |
518 | mTypeList.remove( KABC::PhoneNumber::Pref ); | 628 | mTypeList.remove( KABC::PhoneNumber::Pref ); |
519 | 629 | ||
520 | KABC::PhoneNumber::TypeList::Iterator it; | 630 | KABC::PhoneNumber::TypeList::Iterator it; |
521 | for ( it = mTypeList.begin(); it != mTypeList.end(); ++it ) | 631 | for ( it = mTypeList.begin(); it != mTypeList.end(); ++it ) |
522 | new QCheckBox( KABC::PhoneNumber::typeLabel( *it ), mGroup ); | 632 | new QCheckBox( KABC::PhoneNumber::typeLabel( *it ), mGroup ); |
523 | 633 | ||
524 | for ( int i = 0; i < mGroup->count(); ++i ) { | 634 | for ( int i = 0; i < mGroup->count(); ++i ) { |
525 | int type = mPhoneNumber.type(); | 635 | int type = mPhoneNumber.type(); |
526 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); | 636 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); |
527 | box->setChecked( type & mTypeList[ i ] ); | 637 | box->setChecked( type & mTypeList[ i ] ); |
528 | } | 638 | } |
529 | 639 | ||
530 | mPreferredBox->setChecked( mPhoneNumber.type() & KABC::PhoneNumber::Pref ); | 640 | mPreferredBox->setChecked( mPhoneNumber.type() & KABC::PhoneNumber::Pref ); |
531 | mNumber->setFocus(); | 641 | mNumber->setFocus(); |
532 | mNumber->setSelection( 0, 1024); | 642 | mNumber->setSelection( 0, 1024); |
533 | } | 643 | } |
534 | 644 | ||
535 | KABC::PhoneNumber PhoneTypeDialog::phoneNumber() | 645 | KABC::PhoneNumber PhoneTypeDialog::phoneNumber() |
536 | { | 646 | { |
537 | mPhoneNumber.setNumber( mNumber->text() ); | 647 | mPhoneNumber.setNumber( mNumber->text() ); |
538 | 648 | ||
539 | int type = 0; | 649 | int type = 0; |
540 | for ( int i = 0; i < mGroup->count(); ++i ) { | 650 | for ( int i = 0; i < mGroup->count(); ++i ) { |
541 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); | 651 | QCheckBox *box = (QCheckBox*)mGroup->find( i ); |
542 | if ( box->isChecked() ) | 652 | if ( box->isChecked() ) |
543 | type += mTypeList[ i ]; | 653 | type += mTypeList[ i ]; |
544 | } | 654 | } |
545 | 655 | ||
546 | if ( mPreferredBox->isChecked() ) | 656 | if ( mPreferredBox->isChecked() ) |
547 | mPhoneNumber.setType( type | KABC::PhoneNumber::Pref ); | 657 | mPhoneNumber.setType( type | KABC::PhoneNumber::Pref ); |
548 | else | 658 | else |
549 | mPhoneNumber.setType( type & ~KABC::PhoneNumber::Pref ); | 659 | mPhoneNumber.setType( type & ~KABC::PhoneNumber::Pref ); |
550 | 660 | ||
551 | return mPhoneNumber; | 661 | return mPhoneNumber; |
552 | } | 662 | } |
553 | 663 | #endif | |
554 | #ifndef KAB_EMBEDDED | 664 | #ifndef KAB_EMBEDDED |
555 | #include "phoneeditwidget.moc" | 665 | #include "phoneeditwidget.moc" |
556 | #endif //KAB_EMBEDDED | 666 | #endif //KAB_EMBEDDED |
diff --git a/kaddressbook/phoneeditwidget.h b/kaddressbook/phoneeditwidget.h index 0241cf0..6a514ed 100644 --- a/kaddressbook/phoneeditwidget.h +++ b/kaddressbook/phoneeditwidget.h | |||
@@ -1,222 +1,287 @@ | |||
1 | #ifndef PHONEEDITWIDGET_H | 1 | #ifndef PHONEEDITWIDGET_H |
2 | #define PHONEEDITWIDGET_H | 2 | #define PHONEEDITWIDGET_H |
3 | /* | 3 | /* |
4 | This file is part of KAddressBook. | 4 | This file is part of KAddressBook. |
5 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> | 5 | Copyright (c) 2002 Mike Pilone <mpilone@slac.com> |
6 | 6 | ||
7 | This program is free software; you can redistribute it and/or modify | 7 | This program is free software; you can redistribute it and/or modify |
8 | it under the terms of the GNU General Public License as published by | 8 | it under the terms of the GNU General Public License as published by |
9 | the Free Software Foundation; either version 2 of the License, or | 9 | the Free Software Foundation; either version 2 of the License, or |
10 | (at your option) any later version. | 10 | (at your option) any later version. |
11 | 11 | ||
12 | This program is distributed in the hope that it will be useful, | 12 | This program is distributed in the hope that it will be useful, |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | GNU General Public License for more details. | 15 | GNU General Public License for more details. |
16 | 16 | ||
17 | You should have received a copy of the GNU General Public License | 17 | You should have received a copy of the GNU General Public License |
18 | along with this program; if not, write to the Free Software | 18 | along with this program; if not, write to the Free Software |
19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 19 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
20 | 20 | ||
21 | As a special exception, permission is given to link this program | 21 | As a special exception, permission is given to link this program |
22 | with any edition of Qt, and distribute the resulting executable, | 22 | with any edition of Qt, and distribute the resulting executable, |
23 | without including the source code for Qt in the source distribution. | 23 | without including the source code for Qt in the source distribution. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <kdialogbase.h> | 26 | #include <kdialogbase.h> |
27 | #include <kiconloader.h> | 27 | #include <kiconloader.h> |
28 | #include <qpushbutton.h> | 28 | #include <qpushbutton.h> |
29 | #include <qlayout.h> | 29 | #include <qlayout.h> |
30 | 30 | ||
31 | #include <qptrlist.h> | ||
32 | #include <qscrollview.h> | ||
31 | 33 | ||
32 | #include "addresseeconfig.h" | 34 | #include "addresseeconfig.h" |
33 | #include "typecombo.h" | 35 | #include "typecombo.h" |
34 | 36 | ||
35 | class QButtonGroup; | 37 | class QButtonGroup; |
36 | class QCheckBox; | 38 | class QCheckBox; |
39 | class PhoneTypeNumberEdit; | ||
37 | 40 | ||
38 | #include <klineedit.h> | 41 | #include <klineedit.h> |
39 | #include <kcombobox.h> | 42 | #include <kcombobox.h> |
40 | class KListView; | 43 | #include <kabc/phonenumber.h> |
41 | 44 | ||
42 | typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo; | 45 | typedef TypeCombo<KABC::PhoneNumber> PhoneTypeCombo; |
43 | 46 | ||
44 | /** | 47 | /** |
45 | Widget for editing phone numbers. | 48 | Widget for editing phone numbers. |
46 | */ | 49 | */ |
47 | class PhoneEditWidget : public QWidget | 50 | class PhoneEditWidget : public QScrollView |
48 | { | 51 | { |
49 | Q_OBJECT | 52 | Q_OBJECT |
50 | 53 | ||
51 | public: | 54 | public: |
52 | PhoneEditWidget( QWidget *parent, const char *name = 0 ); | 55 | PhoneEditWidget( QWidget *parent, const char *name = 0 ); |
53 | ~PhoneEditWidget(); | 56 | ~PhoneEditWidget(); |
54 | 57 | ||
55 | void setPhoneNumbers( const KABC::PhoneNumber::List &list ); | 58 | void setPhoneNumbers( const KABC::PhoneNumber::List &list ); |
56 | KABC::PhoneNumber::List phoneNumbers(); | 59 | KABC::PhoneNumber::List phoneNumbers(); |
57 | 60 | ||
58 | void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); | 61 | // void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); |
59 | KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); | 62 | //KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); |
60 | 63 | ||
61 | signals: | 64 | signals: |
62 | void modified(); | 65 | void modified(); |
66 | void typeChange( int oldType, int newType ); | ||
63 | 67 | ||
64 | private slots: | 68 | private slots: |
69 | void addNumber(); | ||
70 | protected: | ||
71 | |||
72 | private: | ||
73 | void setDefaults(); | ||
74 | PhoneTypeNumberEdit* appendEditCombo(); | ||
75 | QWidget* mw; | ||
76 | QVBoxLayout* mainLayout; | ||
77 | QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList; | ||
78 | |||
79 | KABC::PhoneNumber::List mPhoneList; | ||
80 | }; | ||
81 | |||
82 | |||
83 | |||
84 | |||
85 | |||
86 | #if 0 | ||
87 | class PhoneEditWidget : public QWidget | ||
88 | { | ||
89 | Q___OBJECT | ||
90 | |||
91 | public: | ||
92 | PhoneEditWidget( QWidget *parent, const char *name = 0 ); | ||
93 | ~PhoneEditWidget(); | ||
94 | |||
95 | void setPhoneNumbers( const KABC::PhoneNumber::List &list ); | ||
96 | KABC::PhoneNumber::List phoneNumbers(); | ||
97 | |||
98 | void updateTypeCombo( const KABC::PhoneNumber::List&, KComboBox* ); | ||
99 | KABC::PhoneNumber currentPhoneNumber( KComboBox*, int ); | ||
100 | |||
101 | sig_nals: | ||
102 | void modified(); | ||
103 | void typeChange( int oldType, int newType ); | ||
104 | |||
105 | private sl_ots: | ||
65 | void edit(); | 106 | void edit(); |
66 | 107 | ||
67 | void updatePrefEdit(); | 108 | void updatePrefEdit(); |
68 | void updateSecondEdit(); | 109 | void updateSecondEdit(); |
69 | void updateThirdEdit(); | 110 | void updateThirdEdit(); |
70 | void updateFourthEdit(); | 111 | void updateFourthEdit(); |
71 | 112 | ||
72 | void slotPrefEditChanged(); | 113 | void slotPrefEditChanged(); |
73 | void slotSecondEditChanged(); | 114 | void slotSecondEditChanged(); |
74 | void slotThirdEditChanged(); | 115 | void slotThirdEditChanged(); |
75 | void slotFourthEditChanged(); | 116 | void slotFourthEditChanged(); |
76 | 117 | ||
77 | protected: | 118 | protected: |
78 | void updateLineEdits(); | 119 | void updateLineEdits(); |
79 | void updateCombos(); | 120 | void updateCombos(); |
80 | 121 | ||
81 | private: | 122 | private: |
123 | QPtrList <PhoneTypeNumberEdit> mTypeNumberEditList; | ||
82 | void updateEdit( PhoneTypeCombo *combo ); | 124 | void updateEdit( PhoneTypeCombo *combo ); |
83 | void updatePhoneNumber( PhoneTypeCombo *combo ); | 125 | void updatePhoneNumber( PhoneTypeCombo *combo ); |
84 | void updateOtherEdit( PhoneTypeCombo *combo, PhoneTypeCombo *otherCombo ); | 126 | void updateOtherEdit( PhoneTypeCombo *combo, PhoneTypeCombo *otherCombo ); |
85 | 127 | ||
86 | PhoneTypeCombo *mPrefCombo; | 128 | PhoneTypeCombo *mPrefCombo; |
87 | PhoneTypeCombo *mSecondCombo; | 129 | PhoneTypeCombo *mSecondCombo; |
88 | PhoneTypeCombo *mThirdCombo; | 130 | PhoneTypeCombo *mThirdCombo; |
89 | PhoneTypeCombo *mFourthCombo; | 131 | PhoneTypeCombo *mFourthCombo; |
90 | 132 | ||
91 | KLineEdit *mPrefEdit; | 133 | KLineEdit *mPrefEdit; |
92 | KLineEdit *mSecondEdit; | 134 | KLineEdit *mSecondEdit; |
93 | KLineEdit *mThirdEdit; | 135 | KLineEdit *mThirdEdit; |
94 | KLineEdit *mFourthEdit; | 136 | KLineEdit *mFourthEdit; |
95 | 137 | ||
96 | KABC::PhoneNumber::List mPhoneList; | 138 | KABC::PhoneNumber::List mPhoneList; |
97 | }; | 139 | }; |
98 | 140 | ||
99 | /** | 141 | /** |
100 | Dialog for editing lists of phonenumbers. | 142 | Dialog for editing lists of phonenumbers. |
101 | */ | 143 | */ |
102 | class PhoneEditDialog : public KDialogBase | 144 | class PhoneEditDialog : public KDialogBase |
103 | { | 145 | { |
104 | Q_OBJECT | 146 | Q___OBJECT |
105 | 147 | ||
106 | public: | 148 | public: |
107 | PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *parent, const char *name = 0 ); | 149 | PhoneEditDialog( const KABC::PhoneNumber::List &list, QWidget *parent, const char *name = 0 ); |
108 | ~PhoneEditDialog(); | 150 | ~PhoneEditDialog(); |
109 | 151 | ||
110 | const KABC::PhoneNumber::List &phoneNumbers(); | 152 | const KABC::PhoneNumber::List &phoneNumbers(); |
111 | bool changed() const; | 153 | bool changed() const; |
112 | 154 | ||
113 | protected slots: | 155 | protected s__lots: |
114 | void slotAddPhoneNumber(); | 156 | void slotAddPhoneNumber(); |
115 | void slotRemovePhoneNumber(); | 157 | void slotRemovePhoneNumber(); |
116 | void slotEditPhoneNumber(); | 158 | void slotEditPhoneNumber(); |
117 | void slotSelectionChanged(); | 159 | void slotSelectionChanged(); |
118 | 160 | ||
119 | private: | 161 | private: |
120 | KABC::PhoneNumber::List mPhoneNumberList; | 162 | KABC::PhoneNumber::List mPhoneNumberList; |
121 | KABC::PhoneNumber::TypeList mTypeList; | 163 | KABC::PhoneNumber::TypeList mTypeList; |
122 | KComboBox *mTypeBox; | 164 | KComboBox *mTypeBox; |
123 | KListView *mListView; | 165 | KListView *mListView; |
124 | 166 | ||
125 | QPushButton *mRemoveButton; | 167 | QPushButton *mRemoveButton; |
126 | QPushButton *mEditButton; | 168 | QPushButton *mEditButton; |
127 | 169 | ||
128 | bool mChanged; | 170 | bool mChanged; |
129 | }; | 171 | }; |
130 | 172 | ||
131 | /** | 173 | /** |
132 | Dialog for editing phone number types. | 174 | Dialog for editing phone number types. |
133 | */ | 175 | */ |
134 | class PhoneTypeDialog : public KDialogBase | 176 | class PhoneTypeDialog : public KDialogBase |
135 | { | 177 | { |
136 | Q_OBJECT | 178 | Q___OBJECT |
137 | public: | 179 | public: |
138 | PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, QWidget *parent, const char *name = 0 ); | 180 | PhoneTypeDialog( const KABC::PhoneNumber &phoneNumber, QWidget *parent, const char *name = 0 ); |
139 | 181 | ||
140 | KABC::PhoneNumber phoneNumber(); | 182 | KABC::PhoneNumber phoneNumber(); |
141 | 183 | ||
142 | private: | 184 | private: |
143 | KABC::PhoneNumber mPhoneNumber; | 185 | KABC::PhoneNumber mPhoneNumber; |
144 | KABC::PhoneNumber::TypeList mTypeList; | 186 | KABC::PhoneNumber::TypeList mTypeList; |
145 | 187 | ||
146 | QButtonGroup *mGroup; | 188 | QButtonGroup *mGroup; |
147 | QCheckBox *mPreferredBox; | 189 | QCheckBox *mPreferredBox; |
148 | KLineEdit *mNumber; | 190 | KLineEdit *mNumber; |
149 | }; | 191 | }; |
192 | #endif | ||
193 | |||
150 | class PhoneTypeNumberEdit : public QWidget | 194 | class PhoneTypeNumberEdit : public QWidget |
151 | { | 195 | { |
152 | Q_OBJECT | 196 | Q_OBJECT |
153 | public: | 197 | public: |
154 | PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 ) | 198 | PhoneTypeNumberEdit( QWidget *parent, const char *name = 0 ) :QWidget( parent ) |
155 | { | 199 | { |
156 | QHBoxLayout * lay = new QHBoxLayout( this ); | 200 | QHBoxLayout * lay = new QHBoxLayout( this ); |
157 | lay->setSpacing( KDialogBase::spacingHintSmall() ); | 201 | lay->setSpacing( KDialogBase::spacingHintSmall() ); |
158 | lay->setMargin( KDialogBase::marginHintSmall() ); | 202 | lay->setMargin( KDialogBase::marginHintSmall() ); |
159 | mMinusButton = new QPushButton ( this ); | 203 | mMinusButton = new QPushButton ( this ); |
160 | mMinusButton->setPixmap ( SmallIcon("minus")); | 204 | mMinusButton->setPixmap ( SmallIcon("minus")); |
161 | mCombo = new KComboBox( this ); | 205 | mCombo = new KComboBox( this ); |
162 | mNumber = new KLineEdit( this ); | 206 | mNumber = new KLineEdit( this ); |
163 | lay->addWidget( mMinusButton ); | 207 | lay->addWidget( mMinusButton ); |
164 | lay->addWidget( mCombo ); | 208 | lay->addWidget( mCombo ); |
165 | lay->addWidget( mNumber ); | 209 | lay->addWidget( mNumber ); |
166 | connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) ); | 210 | connect( mMinusButton , SIGNAL ( clicked() ), this, SLOT ( deleteNumber() ) ); |
167 | connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) ); | 211 | connect( mCombo , SIGNAL ( activated ( int ) ), this, SLOT ( comboTypeChange( int ) ) ); |
212 | connect( mNumber , SIGNAL ( textChanged ( const QString & ) ), | ||
213 | this, SLOT ( textChanged ( const QString & ) ) ); | ||
168 | mCombo->insertStringList( PhoneNumber::supportedTypeListNames() ); | 214 | mCombo->insertStringList( PhoneNumber::supportedTypeListNames() ); |
215 | mIsValid = true; | ||
169 | } | 216 | } |
170 | 217 | ||
171 | void setPhoneNumber( const KABC::PhoneNumber &phoneNumber ) | 218 | void setPhoneNumber( const KABC::PhoneNumber &phoneNumber ) |
172 | { | 219 | { |
173 | mPhoneNumber = phoneNumber; | 220 | mPhoneNumber = phoneNumber; |
174 | int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); | 221 | int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); |
175 | mCombo->setCurrentItem( index ); | 222 | mCombo->setCurrentItem( index ); |
176 | mNumber->setText( mPhoneNumber.number() ); | 223 | mNumber->setText( mPhoneNumber.number() ); |
224 | mIsValid = true; | ||
177 | show(); | 225 | show(); |
178 | 226 | ||
179 | } | 227 | } |
180 | KABC::PhoneNumber phoneNumber() | 228 | KABC::PhoneNumber phoneNumber() |
181 | { | 229 | { |
182 | mPhoneNumber.setNumber( mNumber->text() ); | 230 | mPhoneNumber.setNumber( mNumber->text() ); |
183 | int index = mCombo->currentItem(); | 231 | int index = mCombo->currentItem(); |
184 | mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] ); | 232 | mPhoneNumber.setType( PhoneNumber::supportedTypeList()[index] ); |
185 | return mPhoneNumber; | 233 | return mPhoneNumber; |
186 | |||
187 | } | 234 | } |
235 | bool isValid() | ||
236 | { | ||
237 | if ( !mIsValid ) return false; | ||
238 | if ( mNumber->text().isEmpty() )return false; | ||
239 | return true; | ||
240 | } | ||
188 | private slots: | 241 | private slots: |
189 | void typeExternalChanged( int oldType, int newType ) | 242 | void typeExternalChanged( int oldType, int newType ) |
190 | { | 243 | { |
191 | if ( mPhoneNumber.type() == newType ) { | 244 | if ( mPhoneNumber.type() == newType ) { |
192 | mPhoneNumber.setType(oldType); | 245 | mPhoneNumber.setType(oldType); |
193 | int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); | 246 | int index = PhoneNumber::typeListIndex4Type( mPhoneNumber.type() ); |
194 | mCombo->setCurrentItem( index ); | 247 | mCombo->setCurrentItem( index ); |
195 | } | 248 | } |
196 | |||
197 | } | 249 | } |
198 | void deleteNumber() | 250 | void deleteNumber() |
199 | { | 251 | { |
252 | emit modified(); | ||
200 | hide(); | 253 | hide(); |
254 | mIsValid = false; | ||
201 | } | 255 | } |
202 | void comboTypeChange( int index ) | 256 | void comboTypeChange( int index ) |
203 | { | 257 | { |
204 | int old = mPhoneNumber.type(); | 258 | int old = mPhoneNumber.type(); |
205 | int newT = PhoneNumber::supportedTypeList()[index]; | 259 | int newT = PhoneNumber::supportedTypeList()[index]; |
206 | if ( old != newT ) { | 260 | if ( old != newT ) { |
207 | mPhoneNumber.setType(newT ); | 261 | emit modified(); |
208 | emit typeChange ( old, newT ); | 262 | emit typeChange ( old, newT ); |
263 | mPhoneNumber.setType(newT ); | ||
209 | } | 264 | } |
210 | 265 | ||
211 | } | 266 | } |
267 | int currentType() | ||
268 | { | ||
269 | return mCombo->currentItem(); | ||
270 | } | ||
271 | void textChanged ( const QString & ) | ||
272 | { | ||
273 | emit modified(); | ||
274 | } | ||
212 | signals: | 275 | signals: |
213 | void typeChange( int oldType, int newType ); | 276 | void typeChange( int oldType, int newType ); |
277 | void modified(); | ||
214 | 278 | ||
215 | private: | 279 | private: |
280 | bool mIsValid; | ||
216 | KABC::PhoneNumber mPhoneNumber; | 281 | KABC::PhoneNumber mPhoneNumber; |
217 | QPushButton* mMinusButton; | 282 | QPushButton* mMinusButton; |
218 | KComboBox *mCombo; | 283 | KComboBox *mCombo; |
219 | KLineEdit *mNumber; | 284 | KLineEdit *mNumber; |
220 | }; | 285 | }; |
221 | 286 | ||
222 | #endif | 287 | #endif |