summaryrefslogtreecommitdiff
path: root/core/pim/addressbook/contacteditor.cpp
Unidiff
Diffstat (limited to 'core/pim/addressbook/contacteditor.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/contacteditor.cpp107
1 files changed, 63 insertions, 44 deletions
diff --git a/core/pim/addressbook/contacteditor.cpp b/core/pim/addressbook/contacteditor.cpp
index b60f2dd..d1338f6 100644
--- a/core/pim/addressbook/contacteditor.cpp
+++ b/core/pim/addressbook/contacteditor.cpp
@@ -153,41 +153,59 @@ void ContactEditor::init() {
153 gl->addWidget( txtFullName, 0, 1 ); 153 gl->addWidget( txtFullName, 0, 1 );
154 154
155 QLabel *l = new QLabel( tr( "Job Title" ), container ); 155 QLabel *l = new QLabel( tr( "Job Title" ), container );
156 gl->addWidget( l, 1, 0 ); 156 gl->addWidget( l, 1, 0 );
157 txtJobTitle = new QLineEdit( container ); 157 txtJobTitle = new QLineEdit( container );
158 gl->addWidget( txtJobTitle, 1, 1 ); 158 gl->addWidget( txtJobTitle, 1, 1 );
159 159
160 l = new QLabel( tr( "Organization" ), container ); 160 l = new QLabel( tr( "Organization" ), container );
161 gl->addWidget( l, 2, 0 ); 161 gl->addWidget( l, 2, 0 );
162 txtOrganization = new QLineEdit( container ); 162 txtOrganization = new QLineEdit( container );
163 gl->addWidget( txtOrganization, 2, 1 ); 163 gl->addWidget( txtOrganization, 2, 1 );
164 164
165 // Chooser 1
165 cmbChooserField1 = new QComboBox( FALSE, container ); 166 cmbChooserField1 = new QComboBox( FALSE, container );
166 cmbChooserField1->setMaximumWidth( 90 ); 167 cmbChooserField1->setMaximumWidth( 90 );
167 gl->addWidget( cmbChooserField1, 3, 0 ); 168 gl->addWidget( cmbChooserField1, 3, 0 );
168 txtChooserField1 = new QLineEdit( container ); 169 // Textfield for chooser 1.
169 gl->addWidget( txtChooserField1, 3, 1 ); 170 // Now use Widgetstack to contain the textfield and the default-email combo !
170 171 m_widgetStack1 = new QWidgetStack( container );
172 txtChooserField1 = new QLineEdit( m_widgetStack1 );
173 m_widgetStack1 -> addWidget( txtChooserField1, TextField );
174 gl->addWidget( m_widgetStack1, 3, 1 );
175 m_widgetStack1 -> raiseWidget( TextField );
176
177 // Chooser 2
171 cmbChooserField2 = new QComboBox( FALSE, container ); 178 cmbChooserField2 = new QComboBox( FALSE, container );
172 cmbChooserField2->setMaximumWidth( 90 ); 179 cmbChooserField2->setMaximumWidth( 90 );
173 gl->addWidget( cmbChooserField2, 4, 0 ); 180 gl->addWidget( cmbChooserField2, 4, 0 );
174 txtChooserField2 = new QLineEdit( container ); 181 // Textfield for chooser 2
175 gl->addWidget( txtChooserField2, 4, 1 ); 182 // Now use WidgetStack to contain the textfield and the default-email combo!
176 183 m_widgetStack2 = new QWidgetStack( container );
184 txtChooserField2 = new QLineEdit( m_widgetStack2 );
185 m_widgetStack2 -> addWidget( txtChooserField2, TextField );
186 gl->addWidget( m_widgetStack2, 4, 1 );
187 m_widgetStack2 -> raiseWidget( TextField );
188
189 // Chooser 3
177 cmbChooserField3 = new QComboBox( FALSE, container ); 190 cmbChooserField3 = new QComboBox( FALSE, container );
178 cmbChooserField3->setMaximumWidth( 90 ); 191 cmbChooserField3->setMaximumWidth( 90 );
179 gl->addWidget( cmbChooserField3, 5, 0 ); 192 gl->addWidget( cmbChooserField3, 5, 0 );
180 txtChooserField3 = new QLineEdit( container ); 193 // Textfield for chooser 2
181 gl->addWidget( txtChooserField3, 5, 1 ); 194 // Now use WidgetStack to contain the textfield and the default-email combo!
195 m_widgetStack3 = new QWidgetStack( container );
196 txtChooserField3 = new QLineEdit( m_widgetStack3 );
197 m_widgetStack3 -> addWidget( txtChooserField3, TextField );
198 gl->addWidget( m_widgetStack3, 5, 1 );
199 m_widgetStack3 -> raiseWidget( TextField );
182 200
183 l = new QLabel( tr( "File As" ), container ); 201 l = new QLabel( tr( "File As" ), container );
184 gl->addWidget( l, 6, 0 ); 202 gl->addWidget( l, 6, 0 );
185 cmbFileAs = new QComboBox( TRUE, container ); 203 cmbFileAs = new QComboBox( TRUE, container );
186 gl->addWidget( cmbFileAs, 6, 1 ); 204 gl->addWidget( cmbFileAs, 6, 1 );
187 205
188 labCat = new QLabel( tr( "Category" ), container ); 206 labCat = new QLabel( tr( "Category" ), container );
189 gl->addWidget( labCat, 7, 0 ); 207 gl->addWidget( labCat, 7, 0 );
190 cmbCat = new CategorySelect( container ); 208 cmbCat = new CategorySelect( container );
191 gl->addWidget( cmbCat, 7, 1 ); 209 gl->addWidget( cmbCat, 7, 1 );
192 labCat->show(); 210 labCat->show();
193 cmbCat->show(); 211 cmbCat->show();
@@ -448,29 +466,35 @@ void ContactEditor::init() {
448 cmbCountry->insertItem( tr ( "Western Sahara" ) ); 466 cmbCountry->insertItem( tr ( "Western Sahara" ) );
449 cmbCountry->insertItem( tr ( "Yemen" ) ); 467 cmbCountry->insertItem( tr ( "Yemen" ) );
450 cmbCountry->insertItem( tr ( "Yugoslavia" ) ); 468 cmbCountry->insertItem( tr ( "Yugoslavia" ) );
451 cmbCountry->insertItem( tr ( "Zambia" ) ); 469 cmbCountry->insertItem( tr ( "Zambia" ) );
452 cmbCountry->insertItem( tr ( "Zimbabwe" ) ); 470 cmbCountry->insertItem( tr ( "Zimbabwe" ) );
453 if (cmbCountry->listBox()!=0) 471 if (cmbCountry->listBox()!=0)
454 cmbCountry->listBox()->sort(); 472 cmbCountry->listBox()->sort();
455 473
456 cmbCountry->setMaximumWidth( 135 ); 474 cmbCountry->setMaximumWidth( 135 );
457 475
458 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 ); 476 gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 );
459 477
478 // Chooser 4
460 cmbChooserField4 = new QComboBox( FALSE, container ); 479 cmbChooserField4 = new QComboBox( FALSE, container );
461 cmbChooserField4->setMaximumWidth( 90 ); 480 cmbChooserField4->setMaximumWidth( 90 );
462 gl->addWidget( cmbChooserField4, 6, 0 ); 481 gl->addWidget( cmbChooserField4, 6, 0 );
463 txtChooserField4 = new QLineEdit( container ); 482 // Textfield for chooser 2
464 gl->addMultiCellWidget( txtChooserField4, 6, 6, 1, 2 ); 483 // Now use WidgetStack to contain the textfield and the default-email combo!
484 m_widgetStack4 = new QWidgetStack( container );
485 txtChooserField4 = new QLineEdit( m_widgetStack4 );
486 m_widgetStack4 -> addWidget( txtChooserField4, TextField );
487 gl->addMultiCellWidget( m_widgetStack4, 6, 6, 1, 2 );
488 m_widgetStack4 -> raiseWidget( TextField );
465 489
466 QSpacerItem *space = new QSpacerItem(1,1, 490 QSpacerItem *space = new QSpacerItem(1,1,
467 QSizePolicy::Maximum, 491 QSizePolicy::Maximum,
468 QSizePolicy::MinimumExpanding ); 492 QSizePolicy::MinimumExpanding );
469 gl->addItem( space, 7, 0 ); 493 gl->addItem( space, 7, 0 );
470 494
471 tabMain->insertTab( tabViewport, tr( "Address" ) ); 495 tabMain->insertTab( tabViewport, tr( "Address" ) );
472 496
473 tabViewport = new QWidget ( tabMain ); 497 tabViewport = new QWidget ( tabMain );
474 498
475 vb = new QVBoxLayout( tabViewport ); 499 vb = new QVBoxLayout( tabViewport );
476 500
@@ -691,75 +715,76 @@ void ContactEditor::populateDefaultEmailCmb(){
691 } 715 }
692 } 716 }
693 717
694 // If the current default email is not found in the list, we choose the 718 // If the current default email is not found in the list, we choose the
695 // first one.. 719 // first one..
696 if ( !found ) 720 if ( !found )
697 defaultEmail = cmbDefaultEmail->text(0); 721 defaultEmail = cmbDefaultEmail->text(0);
698} 722}
699 723
700// Called when any combobox was changed. 724// Called when any combobox was changed.
701// "true" returned if the change was chandled by this function, else it should 725// "true" returned if the change was chandled by this function, else it should
702// be handled by something else.. 726// be handled by something else..
703bool ContactEditor::cmbChooserChange( int index, QLineEdit *inputWid, int widgetPos ) { 727bool ContactEditor::cmbChooserChange( int index, QWidgetStack* inputStack, int widgetPos ) {
704 QString type = slChooserNames[index]; 728 QString type = slChooserNames[index];
705 qWarning("ContactEditor::cmbChooserChange -> Type: %s, WidgetPos: %d", type.latin1(), widgetPos ); 729 qWarning("ContactEditor::cmbChooserChange -> Type: %s, WidgetPos: %d", type.latin1(), widgetPos );
706 730
707 if ( !initializing ) 731 if ( !initializing )
708 contactfields.setFieldOrder( widgetPos-1, index ); 732 contactfields.setFieldOrder( widgetPos-1, index );
709 733
710 // Create and connect combobox for selecting the default email 734 // Create and connect combobox for selecting the default email
711 if ( type == "Default Email"){ 735 if ( type == "Default Email"){
712 qWarning("Choosing default-email (defaultEmailChooserPosition= %d) ", defaultEmailChooserPosition); 736 qWarning("Choosing default-email (defaultEmailChooserPosition= %d) ", defaultEmailChooserPosition);
713 737
714 // More than one defaul-email chooser is not allowed ! 738 // More than one default-email chooser is not allowed !
715 if ( ( defaultEmailChooserPosition != -1 ) && 739 if ( ( defaultEmailChooserPosition != -1 ) &&
716 defaultEmailChooserPosition != widgetPos && !initializing){ 740 defaultEmailChooserPosition != widgetPos && !initializing){
717 chooserError( widgetPos ); 741 chooserError( widgetPos );
718 return true; 742 return true;
719 } 743 }
720 744
721 if ( cmbDefaultEmail ){ 745 QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo );
722 delete cmbDefaultEmail; 746 if ( cmbo ){
723 cmbDefaultEmail = 0l; 747 inputStack->raiseWidget( TextField );
748 inputStack -> removeWidget( cmbo );
749 delete cmbo;
724 } 750 }
725 cmbDefaultEmail = new QComboBox(inputWid->parentWidget()); 751 cmbo = new QComboBox( inputStack );
726 cmbDefaultEmail->setGeometry(inputWid->frameGeometry()); /* :SX */ 752 cmbo -> insertStringList( emails );
727
728 QRect rect = inputWid->frameGeometry();
729 qWarning("Geometrie: X=%d, Y=%d, Left=%d, Top=%d, Right=%d, Bottom=%d",
730 rect.x(), rect.y(), rect.left(), rect.top(), rect.right(), rect.bottom());
731 QPoint pnt = inputWid->pos();
732 qWarning("Position : X=%d, Y=%d", pnt.x(), pnt.y() );
733
734 connect( cmbDefaultEmail,SIGNAL( activated(int) ),
735 SLOT( defaultEmailChanged(int) ) );
736 753
737 cmbDefaultEmail->clear(); 754 inputStack -> addWidget( cmbo, Combo );
738 cmbDefaultEmail->insertStringList( emails ); 755 inputStack -> raiseWidget( Combo );
739 cmbDefaultEmail->show();
740 756
741 defaultEmailChooserPosition = widgetPos; 757 defaultEmailChooserPosition = widgetPos;
758 cmbDefaultEmail = cmbo;
759
760 connect( cmbo,SIGNAL( activated(int) ),
761 SLOT( defaultEmailChanged(int) ) );
742 762
743 // Set current default email 763 // Set current default email
744 populateDefaultEmailCmb(); 764 populateDefaultEmailCmb();
745 765
746 766
747 } else { 767 } else {
748 // Something else was selected: Hide combo.. 768 // Something else was selected: Hide combo..
749 qWarning(" Hiding default-email combo" ); 769 qWarning(" Hiding default-email combo" );
750 if ( defaultEmailChooserPosition == widgetPos ){ 770 if ( defaultEmailChooserPosition == widgetPos ){
751 defaultEmailChooserPosition = -1; 771 defaultEmailChooserPosition = -1;
752 if ( cmbDefaultEmail ) 772 QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo );
753 cmbDefaultEmail->hide(); 773 if ( cmbo ){
774 inputStack->raiseWidget( TextField );
775 inputStack -> removeWidget( cmbo );
776 cmbDefaultEmail = 0l;
777 delete cmbo;
778 }
754 779
755 } 780 }
756 781
757 // Caller should initialize the responsible textfield, therefore 782 // Caller should initialize the responsible textfield, therefore
758 // "false" is returned 783 // "false" is returned
759 return false; 784 return false;
760 } 785 }
761 786
762 // Everything is worked off .. 787 // Everything is worked off ..
763 return true; 788 return true;
764 789
765} 790}
@@ -793,41 +818,35 @@ void ContactEditor::chooserError( int index )
793 break; 818 break;
794 case 4: 819 case 4:
795 cmbChooserField4 -> setCurrentItem( 0 ); 820 cmbChooserField4 -> setCurrentItem( 0 );
796 slotCmbChooser4Change( 0 ); 821 slotCmbChooser4Change( 0 );
797 break; 822 break;
798 } 823 }
799} 824}
800 825
801// Called when something was changed in a textfield (shouldn't it called textchanged? (se)) 826// Called when something was changed in a textfield (shouldn't it called textchanged? (se))
802void ContactEditor::chooserChange( const QString &textChanged, int index, 827void ContactEditor::chooserChange( const QString &textChanged, int index,
803 QLineEdit* , int widgetPos ) { 828 QLineEdit* , int widgetPos ) {
804 829
805 QString type = slChooserNames[index]; 830 QString type = slChooserNames[index]; // :SX
806 qDebug("ContactEditor::chooserChange( type=>%s<, textChanged=>%s< index=%i, widgetPos=%i", 831 qDebug("ContactEditor::chooserChange( type=>%s<, textChanged=>%s< index=%i, widgetPos=%i",
807 type.latin1(),textChanged.latin1(), index, widgetPos ); 832 type.latin1(),textChanged.latin1(), index, widgetPos );
808 833
809 if ( type == "Default Email"){ 834 if ( type == "Default Email"){
810 qWarning ("??? Wozu??: %s", textChanged.latin1()); 835 qWarning ("??? Wozu??: %s", textChanged.latin1());
811 defaultEmail = textChanged; 836 defaultEmail = textChanged;
812 837
813 populateDefaultEmailCmb(); 838 populateDefaultEmailCmb();
814 839
815 }else if (defaultEmailChooserPosition == widgetPos){ 840 }else if (type == "Emails"){
816 qDebug("cmbDefaultEmail->hide()");
817
818 if (cmbDefaultEmail) cmbDefaultEmail->hide();
819 widgetPos=-1;
820
821 }else if (type == "Emails"){
822 qDebug("emails"); 841 qDebug("emails");
823 842
824 QString de; 843 QString de;
825 emails = QStringList::split (",", textChanged ); 844 emails = QStringList::split (",", textChanged );
826 845
827 populateDefaultEmailCmb(); 846 populateDefaultEmailCmb();
828 } 847 }
829 848
830 slChooserValues[index] = textChanged; 849 slChooserValues[index] = textChanged;
831 850
832} 851}
833 852
@@ -910,59 +929,59 @@ void ContactEditor::slotZipChange( const QString &textChanged ) {
910void ContactEditor::slotCountryChange( const QString &textChanged ) { 929void ContactEditor::slotCountryChange( const QString &textChanged ) {
911 930
912 if ( cmbAddress->currentItem() == 0 ) { 931 if ( cmbAddress->currentItem() == 0 ) {
913 slBusinessAddress[6] = textChanged; 932 slBusinessAddress[6] = textChanged;
914 } else { 933 } else {
915 slHomeAddress[6] = textChanged; 934 slHomeAddress[6] = textChanged;
916 } 935 }
917} 936}
918 937
919 938
920void ContactEditor::slotCmbChooser1Change( int index ) { 939void ContactEditor::slotCmbChooser1Change( int index ) {
921 qWarning("ContactEditor::slotCmbChooser1Change( %d )", index); 940 qWarning("ContactEditor::slotCmbChooser1Change( %d )", index);
922 if ( !cmbChooserChange( cmbChooserField1->currentItem(), txtChooserField1, 1) ){ 941 if ( !cmbChooserChange( cmbChooserField1->currentItem(), m_widgetStack1, 1) ){
923 942
924 txtChooserField1->setText( slChooserValues[index] ); 943 txtChooserField1->setText( slChooserValues[index] );
925 txtChooserField1->setFocus(); 944 txtChooserField1->setFocus();
926 945
927 } 946 }
928 947
929} 948}
930 949
931void ContactEditor::slotCmbChooser2Change( int index ) { 950void ContactEditor::slotCmbChooser2Change( int index ) {
932 qWarning("ContactEditor::slotCmbChooser2Change( %d )", index); 951 qWarning("ContactEditor::slotCmbChooser2Change( %d )", index);
933 952
934 if ( !cmbChooserChange( cmbChooserField2->currentItem(), txtChooserField2, 2) ){ 953 if ( !cmbChooserChange( cmbChooserField2->currentItem(), m_widgetStack2, 2) ){
935 954
936 txtChooserField2->setText( slChooserValues[index] ); 955 txtChooserField2->setText( slChooserValues[index] );
937 txtChooserField2->setFocus(); 956 txtChooserField2->setFocus();
938 957
939 } 958 }
940} 959}
941 960
942void ContactEditor::slotCmbChooser3Change( int index ) { 961void ContactEditor::slotCmbChooser3Change( int index ) {
943 qWarning("ContactEditor::slotCmbChooser3Change( %d )", index); 962 qWarning("ContactEditor::slotCmbChooser3Change( %d )", index);
944 963
945 if ( !cmbChooserChange( cmbChooserField3->currentItem(), txtChooserField3, 3) ){ 964 if ( !cmbChooserChange( cmbChooserField3->currentItem(), m_widgetStack3, 3) ){
946 965
947 txtChooserField3->setText( slChooserValues[index] ); 966 txtChooserField3->setText( slChooserValues[index] );
948 txtChooserField3->setFocus(); 967 txtChooserField3->setFocus();
949 968
950 } 969 }
951} 970}
952 971
953void ContactEditor::slotCmbChooser4Change( int index ) { 972void ContactEditor::slotCmbChooser4Change( int index ) {
954 qWarning("ContactEditor::slotCmbChooser4Change( %d )", index); 973 qWarning("ContactEditor::slotCmbChooser4Change( %d )", index);
955 974
956 if ( !cmbChooserChange( cmbChooserField4->currentItem(), txtChooserField4, 4) ){ 975 if ( !cmbChooserChange( cmbChooserField4->currentItem(), m_widgetStack4, 4) ){
957 976
958 txtChooserField4->setText( slChooserValues[index] ); 977 txtChooserField4->setText( slChooserValues[index] );
959 txtChooserField4->setFocus(); 978 txtChooserField4->setFocus();
960 979
961 } 980 }
962} 981}
963 982
964void ContactEditor::slotAddressTypeChange( int index ) { 983void ContactEditor::slotAddressTypeChange( int index ) {
965 984
966 985
967 if ( !initializing ) 986 if ( !initializing )
968 contactfields.setFieldOrder( 4, index ); 987 contactfields.setFieldOrder( 4, index );