summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/TODO21
-rw-r--r--core/pim/addressbook/contacteditor.cpp107
-rw-r--r--core/pim/addressbook/contacteditor.h8
-rw-r--r--core/pim/addressbook/ocontactfields.cpp4
-rw-r--r--core/pim/addressbook/version.h2
5 files changed, 82 insertions, 60 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO
index 719b720..a0d50a3 100644
--- a/core/pim/addressbook/TODO
+++ b/core/pim/addressbook/TODO
@@ -18,22 +18,14 @@ Feature requests:
18 18
19Known Bugs: 19Known Bugs:
20----------- 20-----------
21- Default Email-button: A lot of problems:
22 If on second tab: The combo chooser is on the top left of the screen ! :(
23- Default Email-Button: Sometimes not hiding the textfields completely
24 21
25Bugs but not in addressbook: 22Bugs but not in addressbook:
26----------------------------- 23-----------------------------
27- VCARD: If umlaut (äöüß) in address, the parser gets confused.. 24- VCARD: If umlaut (äöüß) in address, the parser gets confused..
28 25
29- Exporting and reimporting of Jobtitle was reported to fail (Could not reproduce this ! (se))
30
31 26
32Urgent: 27Urgent:
33-------- 28--------
34ContactEditor:
35- Contact-Editor is temporarely reenabled. Wait for replacement.
36- Redesign of Contacteditor
37- Category is on the wrong position after changing to personal and back to normal 29- Category is on the wrong position after changing to personal and back to normal
38 ( Temporarily workaround: Category is never deactivated.. :S ) 30 ( Temporarily workaround: Category is never deactivated.. :S )
39 31
@@ -42,10 +34,6 @@ ContactEditor:
42Important: 34Important:
43---------- 35----------
44 36
45- If new contact is added (contacteditor closed): focus (table, card) to
46 this entry !
47- After search (Started with Return): KeyFocus should be on Tabelle
48
49- "What's this" should be added (Deleyed after Feature Freeze) 37- "What's this" should be added (Deleyed after Feature Freeze)
50 38
51Less important: 39Less important:
@@ -54,6 +42,12 @@ Less important:
54- The picker (alphabetical sort widget) should be 42- The picker (alphabetical sort widget) should be
55 placed verticaly or horizontally (configurable) 43 placed verticaly or horizontally (configurable)
56- Find a smart solution for activating/deactivating the "send email" event 44- Find a smart solution for activating/deactivating the "send email" event
45- If new contact is added (contacteditor closed): focus (table, card) to
46 this entry !
47- After search (Started with Return): KeyFocus should be on Tabelle
48
49ContactEditor:
50- Redesign of Contacteditor
57 51
58Should be Fixed (not absolute sure, need further validation): 52Should be Fixed (not absolute sure, need further validation):
59------------------------------------------------------------- 53-------------------------------------------------------------
@@ -117,3 +111,6 @@ Fixed/Ready:
117- Overview window cleanup needed.. 111- Overview window cleanup needed..
118- Store last settings of combo-boxes 112- Store last settings of combo-boxes
119- Personal and Business Web-page is not editable 113- Personal and Business Web-page is not editable
114- Default Email-button: A lot of problems:
115 If on second tab: The combo chooser is on the top left of the screen ! :(
116- Default Email-Button: Sometimes not hiding the textfields completely
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
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();
@@ -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,13 +837,7 @@ void ContactEditor::chooserChange( const QString &textChanged, int index,
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;
@@ -919,8 +938,8 @@ 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();
926 945
@@ -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();
diff --git a/core/pim/addressbook/contacteditor.h b/core/pim/addressbook/contacteditor.h
index 95f9f2d..703e702 100644
--- a/core/pim/addressbook/contacteditor.h
+++ b/core/pim/addressbook/contacteditor.h
@@ -29,6 +29,7 @@
29#include <qlist.h> 29#include <qlist.h>
30#include <qmap.h> 30#include <qmap.h>
31#include <qstringlist.h> 31#include <qstringlist.h>
32#include <qwidgetstack.h>
32 33
33#include "ocontactfields.h" 34#include "ocontactfields.h"
34 35
@@ -106,10 +107,11 @@ class ContactEditor : public QDialog {
106 void defaultEmailChanged(int); 107 void defaultEmailChanged(int);
107 108
108 private: 109 private:
110 enum StackWidgets { TextField = 1, Combo };
109 int defaultEmailChooserPosition; 111 int defaultEmailChooserPosition;
110 void populateDefaultEmailCmb(); 112 void populateDefaultEmailCmb();
111 void chooserChange( const QString&, int , QLineEdit*, int ); 113 void chooserChange( const QString&, int , QLineEdit*, int );
112 bool cmbChooserChange( int , QLineEdit*, int ); 114 bool cmbChooserChange( int , QWidgetStack*, int );
113 OContactFields contactfields; 115 OContactFields contactfields;
114 116
115 bool useFullName; 117 bool useFullName;
@@ -154,6 +156,10 @@ class ContactEditor : public QDialog {
154 QLineEdit *txtChooserField2; 156 QLineEdit *txtChooserField2;
155 QLineEdit *txtChooserField3; 157 QLineEdit *txtChooserField3;
156 QLineEdit *txtChooserField4; 158 QLineEdit *txtChooserField4;
159 QWidgetStack* m_widgetStack1;
160 QWidgetStack* m_widgetStack2;
161 QWidgetStack* m_widgetStack3;
162 QWidgetStack* m_widgetStack4;
157 QComboBox *cmbChooserField1; 163 QComboBox *cmbChooserField1;
158 QComboBox *cmbChooserField2; 164 QComboBox *cmbChooserField2;
159 QComboBox *cmbChooserField3; 165 QComboBox *cmbChooserField3;
diff --git a/core/pim/addressbook/ocontactfields.cpp b/core/pim/addressbook/ocontactfields.cpp
index ffb88e8..831a596 100644
--- a/core/pim/addressbook/ocontactfields.cpp
+++ b/core/pim/addressbook/ocontactfields.cpp
@@ -420,7 +420,7 @@ void OContactFields::loadFromRecord( const OContact &cnt ){
420void OContactFields::setFieldOrder( int num, int index ){ 420void OContactFields::setFieldOrder( int num, int index ){
421 qDebug("qcontactfields setfieldorder pos %i -> %i",num,index); 421 qDebug("qcontactfields setfieldorder pos %i -> %i",num,index);
422 422
423 fieldOrder[num] = QString::number( index )[0]; 423 fieldOrder[num] = QString::number( index, 16 )[0];
424 424
425 // We will store this new fieldorder globally to 425 // We will store this new fieldorder globally to
426 // remember it for contacts which have none 426 // remember it for contacts which have none
@@ -441,7 +441,7 @@ int OContactFields::getFieldOrder( int num, int defIndex ){
441 int ret = 0; 441 int ret = 0;
442 // Convert char to number.. 442 // Convert char to number..
443 if ( !( poschar == QChar::null ) ) 443 if ( !( poschar == QChar::null ) )
444 ret = QString( poschar ).toInt(&ok, 10); 444 ret = QString( poschar ).toInt(&ok, 16);
445 else 445 else
446 ok = false; 446 ok = false;
447 447
diff --git a/core/pim/addressbook/version.h b/core/pim/addressbook/version.h
index 3c1e5ee..3becfdc 100644
--- a/core/pim/addressbook/version.h
+++ b/core/pim/addressbook/version.h
@@ -3,7 +3,7 @@
3 3
4#define MAINVERSION "0" 4#define MAINVERSION "0"
5#define SUBVERSION "2" 5#define SUBVERSION "2"
6#define PATCHVERSION "1" 6#define PATCHVERSION "2"
7 7
8#define APPNAME "OPIE_ADDRESSBOOK" 8#define APPNAME "OPIE_ADDRESSBOOK"
9 9