summaryrefslogtreecommitdiff
path: root/core/pim/addressbook/contacteditor.cpp
authoreilers <eilers>2003-03-01 18:06:49 (UTC)
committer eilers <eilers>2003-03-01 18:06:49 (UTC)
commita0ae7d2b8cfef3f643c4aa536bdf25d7da510142 (patch) (unidiff)
tree7658121cba0f106d019ecf34682fe9cc079cbf73 /core/pim/addressbook/contacteditor.cpp
parent7dd36872a3eb63eb1c3c7a17549f3eeba92f1b32 (diff)
downloadopie-a0ae7d2b8cfef3f643c4aa536bdf25d7da510142.zip
opie-a0ae7d2b8cfef3f643c4aa536bdf25d7da510142.tar.gz
opie-a0ae7d2b8cfef3f643c4aa536bdf25d7da510142.tar.bz2
Fixing following bugs:
default email chooser jumped sometimes through the widget default email chooser not completely hiding the textfield storing the position of the chooser for the home webpage failed
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
@@ -159,29 +159,47 @@ void ContactEditor::init() {
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
@@ -454,17 +472,23 @@ void ContactEditor::init() {
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
@@ -697,63 +721,64 @@ void ContactEditor::populateDefaultEmailCmb(){
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;
@@ -799,29 +824,23 @@ void ContactEditor::chooserError( int index )
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();
@@ -916,47 +935,47 @@ void ContactEditor::slotCountryChange( const QString &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}