-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 | |||
@@ -808,30 +808,30 @@ | |||
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 | |||
@@ -1046,55 +1046,55 @@ QString Addressee::homePhoneLabel() | |||
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 | { |
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp index 05d604f..aae923c 100644 --- a/kabc/addresseeview.cpp +++ b/kabc/addresseeview.cpp | |||
@@ -571,35 +571,37 @@ QString AddresseeView::getPhoneNumbers( KABC::PhoneNumber::List phones ,bool pr | |||
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 | ||
diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index 2bce39a..b20275d 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp | |||
@@ -17,52 +17,162 @@ | |||
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 | ||
@@ -537,20 +647,20 @@ KABC::PhoneNumber PhoneTypeDialog::phoneNumber() | |||
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 | |||
@@ -15,208 +15,273 @@ | |||
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 |