summaryrefslogtreecommitdiff
path: root/core/pim/addressbook/contacteditor.cpp
Unidiff
Diffstat (limited to 'core/pim/addressbook/contacteditor.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/pim/addressbook/contacteditor.cpp103
1 files changed, 61 insertions, 42 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
@@ -162,23 +162,41 @@ void ContactEditor::init() {
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 );
@@ -457,11 +475,17 @@ void ContactEditor::init() {
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,
@@ -700,7 +724,7 @@ void ContactEditor::populateDefaultEmailCmb(){
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
@@ -711,34 +735,30 @@ bool ContactEditor::cmbChooserChange( int index, QLineEdit *inputWid, int widget
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 753
734 connect( cmbDefaultEmail,SIGNAL( activated(int) ), 754 inputStack -> addWidget( cmbo, Combo );
735 SLOT( defaultEmailChanged(int) ) ); 755 inputStack -> raiseWidget( Combo );
736
737 cmbDefaultEmail->clear();
738 cmbDefaultEmail->insertStringList( emails );
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();
@@ -749,8 +769,13 @@ bool ContactEditor::cmbChooserChange( int index, QLineEdit *inputWid, int widget
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
@@ -802,7 +827,7 @@ void ContactEditor::chooserError( int index )
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
@@ -812,12 +837,6 @@ void ContactEditor::chooserChange( const QString &textChanged, int index,
812 837
813 populateDefaultEmailCmb(); 838 populateDefaultEmailCmb();
814 839
815 }else if (defaultEmailChooserPosition == widgetPos){
816 qDebug("cmbDefaultEmail->hide()");
817
818 if (cmbDefaultEmail) cmbDefaultEmail->hide();
819 widgetPos=-1;
820
821 }else if (type == "Emails"){ 840 }else if (type == "Emails"){
822 qDebug("emails"); 841 qDebug("emails");
823 842
@@ -919,7 +938,7 @@ void ContactEditor::slotCountryChange( const QString &textChanged ) {
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();
@@ -931,7 +950,7 @@ void ContactEditor::slotCmbChooser1Change( int index ) {
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();
@@ -942,7 +961,7 @@ void ContactEditor::slotCmbChooser2Change( int index ) {
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();
@@ -953,7 +972,7 @@ void ContactEditor::slotCmbChooser3Change( int index ) {
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();