summaryrefslogtreecommitdiff
path: root/core/pim/addressbook
Side-by-side diff
Diffstat (limited to 'core/pim/addressbook') (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
@@ -1,80 +1,74 @@
Stuff todo until OPIE 1.0 :
===========================
Feature requests:
-----------------
- Dial by mobile phone by tapping the number..
(Maybe using gsmtool. And we may
add a library class for this)
- dial with dtmfdial in case it's installed and there's no mobile
- 3rd column for 2. Contact
- Implementing additional Views (Phonebook, ...)
- Birthday & Anniversary Reminder
- Beaming of multiple contacts (current list/ by search or by category)
- Configure the letter-picker: lastname/fullname search
- User center of the joypad to switch back from card to listview !
- Cursor-UP/Down: Should additionally scroll cardview if it is too large
(behaviour should be selectable by configuration)
Known Bugs:
-----------
-- Default Email-button: A lot of problems:
- If on second tab: The combo chooser is on the top left of the screen ! :(
-- Default Email-Button: Sometimes not hiding the textfields completely
Bugs but not in addressbook:
-----------------------------
- VCARD: If umlaut (äöüß) in address, the parser gets confused..
-- Exporting and reimporting of Jobtitle was reported to fail (Could not reproduce this ! (se))
-
Urgent:
--------
-ContactEditor:
-- Contact-Editor is temporarely reenabled. Wait for replacement.
-- Redesign of Contacteditor
- Category is on the wrong position after changing to personal and back to normal
( Temporarily workaround: Category is never deactivated.. :S )
- Fix handling of 3 Firstnames
Important:
----------
-- If new contact is added (contacteditor closed): focus (table, card) to
- this entry !
-- After search (Started with Return): KeyFocus should be on Tabelle
-
- "What's this" should be added (Deleyed after Feature Freeze)
Less important:
---------------
- Reload if contacts were changed externally
- The picker (alphabetical sort widget) should be
placed verticaly or horizontally (configurable)
- Find a smart solution for activating/deactivating the "send email" event
+- If new contact is added (contacteditor closed): focus (table, card) to
+ this entry !
+- After search (Started with Return): KeyFocus should be on Tabelle
+
+ContactEditor:
+- Redesign of Contacteditor
Should be Fixed (not absolute sure, need further validation):
-------------------------------------------------------------
Fixed/Ready:
-------
- Syncing: abtable not reloaded after sync.
- Find widget should be replaced by something like
qpdf has.
- Adding a configuration dialog
- Picker: Activated letter schould be more visible
- Advanced handling of cursor keys (search..)
- Mail-Icon is missing
- Use opie-mail insted of qt-mail if possible.
- Font menu is invisible using german translation
- Personal contact editor: Disable categories
- "Nonenglish" translation bug has to be fixed.
- contacteditor: Birthday, annyversary, ... : Use Dateselector
- The names of the countries are sorted by there english names, only..
Even if they are translated.. :S
- Cursor keys should work in detail-view (ablabel)
-> Ablabel should be removed and Abtable should be increased with
different views (as started by darwin zins)..
@@ -96,24 +90,27 @@ Fixed/Ready:
- After finising search and after Edit: Clear Picker
- After Edit: Table position back to edited entry.
- Optimize Table Update...
- Change MyDialog to Config
- Store position and state of toolbar
- Searchwidget closed: Selected user is jumping
- Wenn suchen beendet, dann dauert das Tabellenupdate (was überhaupt überflüssig ist)
zu lange..
- VCARD: Import of Anniversary does not work correctly (currently disabled)
- Name order selected in "contacteditor" not used in list view.
- OK-Key does not switch from Detailview (ablable) to Listview
- Receiving of beams should open a dialog
- Fix start of opie-mail
- Implement Button Pics
- Add a dialog to accept and optionally edit received contacts by IRDA.
- Language not English (tested with german opie-translation):
1. Configure nicht übersetzt (alles leer).
2. Contacteditor nur teilweise übersetzt.
3. Kategorie-Picker geht nicht.
- Plugin for Today for Birthdays and Anniversaries
- Implement a picker/combo for the default email.
- Overview window cleanup needed..
- Store last settings of combo-boxes
- Personal and Business Web-page is not editable
+- Default Email-button: A lot of problems:
+ If on second tab: The combo chooser is on the top left of the screen ! :(
+- 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
@@ -141,65 +141,83 @@ void ContactEditor::init() {
svGeneral->setResizePolicy( QScrollView::AutoOneFit );
svGeneral->setFrameStyle( QFrame::NoFrame );
QWidget *container = new QWidget( svGeneral->viewport() );
svGeneral->addChild( container );
QGridLayout *gl = new QGridLayout( container, 1, 1, 2, 4 );
gl->setResizeMode( QLayout::FreeResize );
btnFullName = new QPushButton( tr( "Full Name..." ), container );
gl->addWidget( btnFullName, 0, 0 );
txtFullName = new QLineEdit( container );
gl->addWidget( txtFullName, 0, 1 );
QLabel *l = new QLabel( tr( "Job Title" ), container );
gl->addWidget( l, 1, 0 );
txtJobTitle = new QLineEdit( container );
gl->addWidget( txtJobTitle, 1, 1 );
l = new QLabel( tr( "Organization" ), container );
gl->addWidget( l, 2, 0 );
txtOrganization = new QLineEdit( container );
gl->addWidget( txtOrganization, 2, 1 );
+ // Chooser 1
cmbChooserField1 = new QComboBox( FALSE, container );
cmbChooserField1->setMaximumWidth( 90 );
gl->addWidget( cmbChooserField1, 3, 0 );
- txtChooserField1 = new QLineEdit( container );
- gl->addWidget( txtChooserField1, 3, 1 );
-
+ // Textfield for chooser 1.
+ // Now use Widgetstack to contain the textfield and the default-email combo !
+ m_widgetStack1 = new QWidgetStack( container );
+ txtChooserField1 = new QLineEdit( m_widgetStack1 );
+ m_widgetStack1 -> addWidget( txtChooserField1, TextField );
+ gl->addWidget( m_widgetStack1, 3, 1 );
+ m_widgetStack1 -> raiseWidget( TextField );
+
+ // Chooser 2
cmbChooserField2 = new QComboBox( FALSE, container );
cmbChooserField2->setMaximumWidth( 90 );
gl->addWidget( cmbChooserField2, 4, 0 );
- txtChooserField2 = new QLineEdit( container );
- gl->addWidget( txtChooserField2, 4, 1 );
-
+ // Textfield for chooser 2
+ // Now use WidgetStack to contain the textfield and the default-email combo!
+ m_widgetStack2 = new QWidgetStack( container );
+ txtChooserField2 = new QLineEdit( m_widgetStack2 );
+ m_widgetStack2 -> addWidget( txtChooserField2, TextField );
+ gl->addWidget( m_widgetStack2, 4, 1 );
+ m_widgetStack2 -> raiseWidget( TextField );
+
+ // Chooser 3
cmbChooserField3 = new QComboBox( FALSE, container );
cmbChooserField3->setMaximumWidth( 90 );
gl->addWidget( cmbChooserField3, 5, 0 );
- txtChooserField3 = new QLineEdit( container );
- gl->addWidget( txtChooserField3, 5, 1 );
+ // Textfield for chooser 2
+ // Now use WidgetStack to contain the textfield and the default-email combo!
+ m_widgetStack3 = new QWidgetStack( container );
+ txtChooserField3 = new QLineEdit( m_widgetStack3 );
+ m_widgetStack3 -> addWidget( txtChooserField3, TextField );
+ gl->addWidget( m_widgetStack3, 5, 1 );
+ m_widgetStack3 -> raiseWidget( TextField );
l = new QLabel( tr( "File As" ), container );
gl->addWidget( l, 6, 0 );
cmbFileAs = new QComboBox( TRUE, container );
gl->addWidget( cmbFileAs, 6, 1 );
labCat = new QLabel( tr( "Category" ), container );
gl->addWidget( labCat, 7, 0 );
cmbCat = new CategorySelect( container );
gl->addWidget( cmbCat, 7, 1 );
labCat->show();
cmbCat->show();
btnNote = new QPushButton( tr( "Notes..." ), container );
gl->addWidget( btnNote, 8, 1 );
tabMain->insertTab( tabViewport, tr( "General" ) );
tabViewport = new QWidget ( tabMain );
vb = new QVBoxLayout( tabViewport );
svAddress = new QScrollView( tabViewport );
vb->addWidget( svAddress, 0, 0 );
@@ -436,53 +454,59 @@ void ContactEditor::init() {
cmbCountry->insertItem( tr ( "Tunisia" ) );
cmbCountry->insertItem( tr ( "Turkey" ) );
cmbCountry->insertItem( tr ( "Turkmenistan" ) );
cmbCountry->insertItem( tr ( "Tuvalu" ) );
cmbCountry->insertItem( tr ( "Uganda" ) );
cmbCountry->insertItem( tr ( "Ukraine" ) );
cmbCountry->insertItem( tr ( "Uruguay" ) );
cmbCountry->insertItem( tr ( "Uzbekistan" ) );
cmbCountry->insertItem( tr ( "Vanuatu" ) );
cmbCountry->insertItem( tr ( "Venezuela" ) );
cmbCountry->insertItem( tr ( "Vietnam" ) );
cmbCountry->insertItem( tr ( "Virgin Islands" ) );
cmbCountry->insertItem( tr ( "Western Sahara" ) );
cmbCountry->insertItem( tr ( "Yemen" ) );
cmbCountry->insertItem( tr ( "Yugoslavia" ) );
cmbCountry->insertItem( tr ( "Zambia" ) );
cmbCountry->insertItem( tr ( "Zimbabwe" ) );
if (cmbCountry->listBox()!=0)
cmbCountry->listBox()->sort();
cmbCountry->setMaximumWidth( 135 );
gl->addMultiCellWidget( cmbCountry, 5, 5, 1, 2 );
+ // Chooser 4
cmbChooserField4 = new QComboBox( FALSE, container );
cmbChooserField4->setMaximumWidth( 90 );
gl->addWidget( cmbChooserField4, 6, 0 );
- txtChooserField4 = new QLineEdit( container );
- gl->addMultiCellWidget( txtChooserField4, 6, 6, 1, 2 );
+ // Textfield for chooser 2
+ // Now use WidgetStack to contain the textfield and the default-email combo!
+ m_widgetStack4 = new QWidgetStack( container );
+ txtChooserField4 = new QLineEdit( m_widgetStack4 );
+ m_widgetStack4 -> addWidget( txtChooserField4, TextField );
+ gl->addMultiCellWidget( m_widgetStack4, 6, 6, 1, 2 );
+ m_widgetStack4 -> raiseWidget( TextField );
QSpacerItem *space = new QSpacerItem(1,1,
QSizePolicy::Maximum,
QSizePolicy::MinimumExpanding );
gl->addItem( space, 7, 0 );
tabMain->insertTab( tabViewport, tr( "Address" ) );
tabViewport = new QWidget ( tabMain );
vb = new QVBoxLayout( tabViewport );
svDetails = new QScrollView( tabViewport );
vb->addWidget( svDetails, 0, 0 );
svDetails->setResizePolicy( QScrollView::AutoOneFit );
svDetails->setFrameStyle( QFrame::NoFrame );
container = new QWidget( svDetails->viewport() );
svDetails->addChild( container );
gl = new QGridLayout( container, 1, 2, 2, 4 );
int counter = 0;
@@ -679,99 +703,100 @@ void ContactEditor::populateDefaultEmailCmb(){
// cmbDefaultEmail->show();
// Select default email in combo..
bool found = false;
for ( int i = 0; i < cmbDefaultEmail->count(); i++){
qDebug(" populateDefaultEmailCmb text >%s< defaultEmail >%s<",
cmbDefaultEmail->text( i ).latin1(), defaultEmail.latin1());
if ( cmbDefaultEmail->text( i ).stripWhiteSpace() == defaultEmail.stripWhiteSpace() ){
cmbDefaultEmail->setCurrentItem( i );
qDebug("set");
found = true;
}
}
// If the current default email is not found in the list, we choose the
// first one..
if ( !found )
defaultEmail = cmbDefaultEmail->text(0);
}
// Called when any combobox was changed.
// "true" returned if the change was chandled by this function, else it should
// be handled by something else..
-bool ContactEditor::cmbChooserChange( int index, QLineEdit *inputWid, int widgetPos ) {
+bool ContactEditor::cmbChooserChange( int index, QWidgetStack* inputStack, int widgetPos ) {
QString type = slChooserNames[index];
qWarning("ContactEditor::cmbChooserChange -> Type: %s, WidgetPos: %d", type.latin1(), widgetPos );
if ( !initializing )
contactfields.setFieldOrder( widgetPos-1, index );
// Create and connect combobox for selecting the default email
if ( type == "Default Email"){
qWarning("Choosing default-email (defaultEmailChooserPosition= %d) ", defaultEmailChooserPosition);
- // More than one defaul-email chooser is not allowed !
+ // More than one default-email chooser is not allowed !
if ( ( defaultEmailChooserPosition != -1 ) &&
defaultEmailChooserPosition != widgetPos && !initializing){
chooserError( widgetPos );
return true;
}
- if ( cmbDefaultEmail ){
- delete cmbDefaultEmail;
- cmbDefaultEmail = 0l;
+ QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo );
+ if ( cmbo ){
+ inputStack->raiseWidget( TextField );
+ inputStack -> removeWidget( cmbo );
+ delete cmbo;
}
- cmbDefaultEmail = new QComboBox(inputWid->parentWidget());
- cmbDefaultEmail->setGeometry(inputWid->frameGeometry()); /* :SX */
-
- QRect rect = inputWid->frameGeometry();
- qWarning("Geometrie: X=%d, Y=%d, Left=%d, Top=%d, Right=%d, Bottom=%d",
- rect.x(), rect.y(), rect.left(), rect.top(), rect.right(), rect.bottom());
- QPoint pnt = inputWid->pos();
- qWarning("Position : X=%d, Y=%d", pnt.x(), pnt.y() );
-
- connect( cmbDefaultEmail,SIGNAL( activated(int) ),
- SLOT( defaultEmailChanged(int) ) );
+ cmbo = new QComboBox( inputStack );
+ cmbo -> insertStringList( emails );
- cmbDefaultEmail->clear();
- cmbDefaultEmail->insertStringList( emails );
- cmbDefaultEmail->show();
+ inputStack -> addWidget( cmbo, Combo );
+ inputStack -> raiseWidget( Combo );
defaultEmailChooserPosition = widgetPos;
+ cmbDefaultEmail = cmbo;
+
+ connect( cmbo,SIGNAL( activated(int) ),
+ SLOT( defaultEmailChanged(int) ) );
// Set current default email
populateDefaultEmailCmb();
} else {
// Something else was selected: Hide combo..
qWarning(" Hiding default-email combo" );
if ( defaultEmailChooserPosition == widgetPos ){
defaultEmailChooserPosition = -1;
- if ( cmbDefaultEmail )
- cmbDefaultEmail->hide();
+ QComboBox* cmbo = ( QComboBox* ) inputStack -> widget( Combo );
+ if ( cmbo ){
+ inputStack->raiseWidget( TextField );
+ inputStack -> removeWidget( cmbo );
+ cmbDefaultEmail = 0l;
+ delete cmbo;
+ }
}
// Caller should initialize the responsible textfield, therefore
// "false" is returned
return false;
}
// Everything is worked off ..
return true;
}
// Currently accessed when we select default-email more than once !
void ContactEditor::chooserError( int index )
{
qWarning("ContactEditor::chooserError( %d )", index);
QMessageBox::warning( this, "Chooser Error",
"Multiple selection of this\n"
"Item is not allowed !\n\n"
"First deselect the previous one !",
"&OK", 0, 0,
0, 0 );
@@ -781,65 +806,59 @@ void ContactEditor::chooserError( int index )
switch( index ){
case 1:
cmbChooserField1 -> setCurrentItem( 0 );
slotCmbChooser1Change( 0 );
break;
case 2:
cmbChooserField2 -> setCurrentItem( 0 );
slotCmbChooser2Change( 0 );
break;
case 3:
cmbChooserField3 -> setCurrentItem( 0 );
slotCmbChooser3Change( 0 );
break;
case 4:
cmbChooserField4 -> setCurrentItem( 0 );
slotCmbChooser4Change( 0 );
break;
}
}
// Called when something was changed in a textfield (shouldn't it called textchanged? (se))
void ContactEditor::chooserChange( const QString &textChanged, int index,
QLineEdit* , int widgetPos ) {
- QString type = slChooserNames[index];
+ QString type = slChooserNames[index]; // :SX
qDebug("ContactEditor::chooserChange( type=>%s<, textChanged=>%s< index=%i, widgetPos=%i",
type.latin1(),textChanged.latin1(), index, widgetPos );
if ( type == "Default Email"){
qWarning ("??? Wozu??: %s", textChanged.latin1());
defaultEmail = textChanged;
populateDefaultEmailCmb();
- }else if (defaultEmailChooserPosition == widgetPos){
- qDebug("cmbDefaultEmail->hide()");
-
- if (cmbDefaultEmail) cmbDefaultEmail->hide();
- widgetPos=-1;
-
- }else if (type == "Emails"){
+ }else if (type == "Emails"){
qDebug("emails");
QString de;
emails = QStringList::split (",", textChanged );
populateDefaultEmailCmb();
}
slChooserValues[index] = textChanged;
}
void ContactEditor::slotChooser1Change( const QString &textChanged ) {
qWarning("ContactEditor::slotChooser1Change( %s )", textChanged.latin1());
chooserChange( textChanged, cmbChooserField1->currentItem(), txtChooserField1, 1);
}
void ContactEditor::slotChooser2Change( const QString &textChanged ) {
qWarning("ContactEditor::slotChooser2Change( %s )", textChanged.latin1());
chooserChange( textChanged, cmbChooserField2->currentItem(), txtChooserField2, 2);
}
void ContactEditor::slotChooser3Change( const QString &textChanged ) {
@@ -898,83 +917,83 @@ void ContactEditor::slotStateChange( const QString &textChanged ) {
}
}
void ContactEditor::slotZipChange( const QString &textChanged ) {
if ( cmbAddress->currentItem() == 0 ) {
slBusinessAddress[5] = textChanged;
} else {
slHomeAddress[5] = textChanged;
}
}
void ContactEditor::slotCountryChange( const QString &textChanged ) {
if ( cmbAddress->currentItem() == 0 ) {
slBusinessAddress[6] = textChanged;
} else {
slHomeAddress[6] = textChanged;
}
}
void ContactEditor::slotCmbChooser1Change( int index ) {
qWarning("ContactEditor::slotCmbChooser1Change( %d )", index);
- if ( !cmbChooserChange( cmbChooserField1->currentItem(), txtChooserField1, 1) ){
-
+ if ( !cmbChooserChange( cmbChooserField1->currentItem(), m_widgetStack1, 1) ){
+
txtChooserField1->setText( slChooserValues[index] );
txtChooserField1->setFocus();
}
}
void ContactEditor::slotCmbChooser2Change( int index ) {
qWarning("ContactEditor::slotCmbChooser2Change( %d )", index);
- if ( !cmbChooserChange( cmbChooserField2->currentItem(), txtChooserField2, 2) ){
+ if ( !cmbChooserChange( cmbChooserField2->currentItem(), m_widgetStack2, 2) ){
txtChooserField2->setText( slChooserValues[index] );
txtChooserField2->setFocus();
}
}
void ContactEditor::slotCmbChooser3Change( int index ) {
qWarning("ContactEditor::slotCmbChooser3Change( %d )", index);
- if ( !cmbChooserChange( cmbChooserField3->currentItem(), txtChooserField3, 3) ){
+ if ( !cmbChooserChange( cmbChooserField3->currentItem(), m_widgetStack3, 3) ){
txtChooserField3->setText( slChooserValues[index] );
txtChooserField3->setFocus();
}
}
void ContactEditor::slotCmbChooser4Change( int index ) {
qWarning("ContactEditor::slotCmbChooser4Change( %d )", index);
- if ( !cmbChooserChange( cmbChooserField4->currentItem(), txtChooserField4, 4) ){
+ if ( !cmbChooserChange( cmbChooserField4->currentItem(), m_widgetStack4, 4) ){
txtChooserField4->setText( slChooserValues[index] );
txtChooserField4->setFocus();
}
}
void ContactEditor::slotAddressTypeChange( int index ) {
if ( !initializing )
contactfields.setFieldOrder( 4, index );
if ( index == 0 ) {
txtAddress->setText( slBusinessAddress[0] );
//txtAddress2->setText( (*slBusinessAddress)[1] );
//txtPOBox->setText( (*slBusinessAddress)[2] );
txtCity->setText( slBusinessAddress[3] );
txtState->setText( slBusinessAddress[4] );
txtZip->setText( slBusinessAddress[5] );
QLineEdit *txtTmp = cmbCountry->lineEdit();
txtTmp->setText( slBusinessAddress[6] );
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
@@ -8,48 +8,49 @@
* Foundation and appearing in the file LICENSE.GPL included in the pacakaging
* of this file.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
*
* This is a rewrite of the abeditor.h file, modified to provide a more
* intuitive interface to TrollTech's original Address Book editor. This
* is made to operate exactly in interface with the exception of name.
*
*/
#ifndef CONTACTEDITOR_H
#define CONTACTEDITOR_H
#include <opie/ocontact.h>
#include <qpe/datebookmonth.h>
#include <qdialog.h>
#include <qlist.h>
#include <qmap.h>
#include <qstringlist.h>
+#include <qwidgetstack.h>
#include "ocontactfields.h"
const int NAME_LF = 0;
const int NAME_LFM = 1;
const int NAME_FL = 2;
const int NAME_FMLS = 3;
const int NAME_F = 4;
const int NAME_M = 5;
const int NAME_L = 6;
const int NAME_S = 7;
class QScrollView;
class QTabWidget;
class QMultiLineEdit;
class QLineEdit;
class QComboBox;
class QPushButton;
class CategorySelect;
class QLabel;
class ContactEditor : public QDialog {
@@ -85,96 +86,101 @@ class ContactEditor : public QDialog {
void slotChooser1Change( const QString &textChanged );
void slotChooser2Change( const QString &textChanged );
void slotChooser3Change( const QString &textChanged );
void slotChooser4Change( const QString &textChanged );
void slotCmbChooser1Change( int index );
void slotCmbChooser2Change( int index );
void slotCmbChooser3Change( int index );
void slotCmbChooser4Change( int index );
void slotAddressTypeChange( int index );
void slotAddressChange( const QString &textChanged );
void slotAddress2Change( const QString &textChanged );
void slotPOBoxChange( const QString &textChanged );
void slotCityChange( const QString &textChanged );
void slotStateChange( const QString &textChanged );
void slotZipChange( const QString &textChanged );
void slotCountryChange( const QString &textChanged );
void slotFullNameChange( const QString &textChanged );
void slotAnniversaryDateChanged( int year, int month, int day);
void slotBirthdayDateChanged( int year, int month, int day);
void slotRemoveBirthday();
void slotRemoveAnniversary();
void defaultEmailChanged(int);
private:
+ enum StackWidgets { TextField = 1, Combo };
int defaultEmailChooserPosition;
void populateDefaultEmailCmb();
void chooserChange( const QString&, int , QLineEdit*, int );
- bool cmbChooserChange( int , QLineEdit*, int );
+ bool cmbChooserChange( int , QWidgetStack*, int );
OContactFields contactfields;
bool useFullName;
OContact ent;
QDialog *dlgNote;
QDialog *dlgName;
QList<QLineEdit> listValue;
QList<QLabel> listName;
QStringList slDynamicEntries;
QStringList trlDynamicEntries;
bool m_personalView;
QStringList slHomeAddress;
QStringList slBusinessAddress;
QStringList slChooserNames;
QStringList slChooserValues;
QStringList emails;
QString defaultEmail;
QMultiLineEdit *txtNote;
QLabel *lblNote;
//QLineEdit *txtTitle;
QLineEdit *txtFirstName;
QLineEdit *txtMiddleName;
QLineEdit *txtLastName;
QLineEdit *txtSuffix;
QTabWidget *tabMain;
QScrollView *svGeneral;
QPushButton *btnFullName;
QPushButton *btnNote;
QLineEdit *txtFullName;
QLineEdit *txtJobTitle;
QLineEdit *txtOrganization;
QLineEdit *txtChooserField1;
QLineEdit *txtChooserField2;
QLineEdit *txtChooserField3;
QLineEdit *txtChooserField4;
+ QWidgetStack* m_widgetStack1;
+ QWidgetStack* m_widgetStack2;
+ QWidgetStack* m_widgetStack3;
+ QWidgetStack* m_widgetStack4;
QComboBox *cmbChooserField1;
QComboBox *cmbChooserField2;
QComboBox *cmbChooserField3;
QComboBox *cmbChooserField4;
QComboBox *cmbDefaultEmail;
QComboBox *cmbFileAs;
CategorySelect *cmbCat;
QLabel *labCat;
QScrollView *svAddress;
QLineEdit *txtAddress;
//QLineEdit *txtAddress2;
//QLineEdit *txtPOBox;
QLineEdit *txtCity;
QLineEdit *txtState;
QLineEdit *txtZip;
QComboBox *cmbAddress;
QComboBox *cmbCountry;
QScrollView *svDetails;
QComboBox *cmbGender;
DateBookMonth* birthdayPicker;
QToolButton* birthdayButton;
DateBookMonth* anniversaryPicker;
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
@@ -399,58 +399,58 @@ void OContactFields::saveToRecord( OContact &cnt ){
}
void OContactFields::loadFromRecord( const OContact &cnt ){
qDebug("ocontactfields loadFromRecord");
qDebug("loading >%s<",cnt.fullName().latin1());
// Get fieldorder for this contact. If none is defined,
// we will use the global one from the config file..
fieldOrder = cnt.customField( CONTACT_FIELD_ORDER_NAME );
qDebug("fieldOrder from contact>%s<",fieldOrder.latin1());
if (fieldOrder.isEmpty()){
fieldOrder = globalFieldOrder;
}
qDebug("effective fieldOrder in loadFromRecord >%s<",fieldOrder.latin1());
}
void OContactFields::setFieldOrder( int num, int index ){
qDebug("qcontactfields setfieldorder pos %i -> %i",num,index);
- fieldOrder[num] = QString::number( index )[0];
+ fieldOrder[num] = QString::number( index, 16 )[0];
// We will store this new fieldorder globally to
// remember it for contacts which have none
globalFieldOrder = fieldOrder;
changedFieldOrder = true;
qDebug("fieldOrder >%s<",fieldOrder.latin1());
}
int OContactFields::getFieldOrder( int num, int defIndex ){
qDebug("ocontactfields getFieldOrder");
qDebug("fieldOrder >%s<",fieldOrder.latin1());
// Get index of combo as char..
QChar poschar = fieldOrder[num];
bool ok;
int ret = 0;
// Convert char to number..
if ( !( poschar == QChar::null ) )
- ret = QString( poschar ).toInt(&ok, 10);
+ ret = QString( poschar ).toInt(&ok, 16);
else
ok = false;
// Return default value if index for
// num was not set or if anything else happened..
if ( !ok ) ret = defIndex;
qDebug("returning >%i<",ret);
return ret;
}
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
@@ -1,10 +1,10 @@
#ifndef _VERSION_H_
#define _VERSION_H_
#define MAINVERSION "0"
#define SUBVERSION "2"
-#define PATCHVERSION "1"
+#define PATCHVERSION "2"
#define APPNAME "OPIE_ADDRESSBOOK"
#endif