diff --git a/mozilla/mailnews/addrbook/public/nsIAddrDatabase.idl b/mozilla/mailnews/addrbook/public/nsIAddrDatabase.idl index 7fabf1474d6..ffc029f7918 100644 --- a/mozilla/mailnews/addrbook/public/nsIAddrDatabase.idl +++ b/mozilla/mailnews/addrbook/public/nsIAddrDatabase.idl @@ -65,6 +65,7 @@ #define kNicknameColumn "NickName" #define kPriEmailColumn "PrimaryEmail" #define k2ndEmailColumn "SecondEmail" +#define kPrimaryColumn "Primary" #define kPreferMailFormatColumn "PreferMailFormat" #define kWorkPhoneColumn "WorkPhone" #define kHomePhoneColumn "HomePhone" diff --git a/mozilla/mailnews/addrbook/src/nsAbCardProperty.cpp b/mozilla/mailnews/addrbook/src/nsAbCardProperty.cpp index 6ef5592e34c..f61816e6eba 100644 --- a/mozilla/mailnews/addrbook/src/nsAbCardProperty.cpp +++ b/mozilla/mailnews/addrbook/src/nsAbCardProperty.cpp @@ -348,7 +348,7 @@ NS_IMETHODIMP nsAbCardProperty::GetCardValue(const char *attrname, PRUnichar **v case 'P': switch (attrname[2]) { case 'e': - PRUint32 format; + PRUint32 format; rv = GetPreferMailFormat(&format); const PRUnichar *formatStr; @@ -370,7 +370,10 @@ NS_IMETHODIMP nsAbCardProperty::GetCardValue(const char *attrname, PRUnichar **v rv = GetPagerNumber(value); break; case 'i': - rv = GetPrimaryEmail(value); + if (attrname[7] == 'E') + rv = GetPrimaryEmail(value); + else + rv = GetPrimary(*value); break; default: rv = NS_ERROR_UNEXPECTED; @@ -571,7 +574,10 @@ NS_IMETHODIMP nsAbCardProperty::SetCardValue(const char *attrname, const PRUnich rv = SetPagerNumber(value); break; case 'i': - rv = SetPrimaryEmail(value); + if (attrname[7] == 'E') + rv = SetPrimaryEmail(value); + else + rv = SetPrimary(*value); break; default: rv = NS_ERROR_UNEXPECTED; diff --git a/mozilla/mailnews/addrbook/src/nsAddrDatabase.cpp b/mozilla/mailnews/addrbook/src/nsAddrDatabase.cpp index 73bc6707b68..497a1d086d8 100644 --- a/mozilla/mailnews/addrbook/src/nsAddrDatabase.cpp +++ b/mozilla/mailnews/addrbook/src/nsAddrDatabase.cpp @@ -106,6 +106,7 @@ nsAddrDatabase::nsAddrDatabase() m_NickNameColumnToken(0), m_PriEmailColumnToken(0), m_2ndEmailColumnToken(0), + m_PrimaryColumnToken(0), m_WorkPhoneColumnToken(0), m_HomePhoneColumnToken(0), m_FaxColumnToken(0), @@ -1054,6 +1055,7 @@ nsresult nsAddrDatabase::InitMDBInfo() GetStore()->StringToToken(GetEnv(), kPriEmailColumn, &m_PriEmailColumnToken); GetStore()->StringToToken(GetEnv(), kLowerPriEmailColumn, &m_LowerPriEmailColumnToken); GetStore()->StringToToken(GetEnv(), k2ndEmailColumn, &m_2ndEmailColumnToken); + GetStore()->StringToToken(GetEnv(), k2ndEmailColumn, &m_PrimaryColumnToken); GetStore()->StringToToken(GetEnv(), kPreferMailFormatColumn, &m_MailFormatColumnToken); GetStore()->StringToToken(GetEnv(), kWorkPhoneColumn, &m_WorkPhoneColumnToken); GetStore()->StringToToken(GetEnv(), kHomePhoneColumn, &m_HomePhoneColumnToken); @@ -1158,6 +1160,10 @@ nsresult nsAddrDatabase::AddAttributeColumnsToRow(nsIAbCard *card, nsIMdbRow *ca card->GetSecondEmail(getter_Copies(unicodeStr)); Add2ndEmail(cardRow, NS_ConvertUCS2toUTF8(unicodeStr).get()); + + PRUint16 primary = 0; + card->GetPrimary(&primary); + AddPrimary(cardRow, primary); PRUint32 format = nsIAbPreferMailFormat::unknown; card->GetPreferMailFormat(&format); @@ -2343,6 +2349,11 @@ nsresult nsAddrDatabase::GetCardFromDB(nsIAbCard *newCard, nsIMdbRow* cardRow) newCard->SetSecondEmail(tempString.get()); } + PRUint32 primary = 0; + err = GetIntColumn(cardRow, m_PrimaryColumnToken, &primary, 0); + if (NS_SUCCEEDED(err)) + newCard->SetPrimary(primary); + PRUint32 format = nsIAbPreferMailFormat::unknown; err = GetIntColumn(cardRow, m_MailFormatColumnToken, &format, 0); if (NS_SUCCEEDED(err)) diff --git a/mozilla/mailnews/addrbook/src/nsAddrDatabase.h b/mozilla/mailnews/addrbook/src/nsAddrDatabase.h index 0fbccb0e5b1..a95ec887b88 100644 --- a/mozilla/mailnews/addrbook/src/nsAddrDatabase.h +++ b/mozilla/mailnews/addrbook/src/nsAddrDatabase.h @@ -120,6 +120,9 @@ public: NS_IMETHOD Add2ndEmail(nsIMdbRow * row, const char * value) { return AddCharStringColumn(row, m_2ndEmailColumnToken, value); } + NS_IMETHOD AddPrimary(nsIMdbRow * row, PRUint16 value) + { return AddIntColumn(row, m_PrimaryColumnToken, value); } + NS_IMETHOD AddPreferMailFormat(nsIMdbRow * row, PRUint32 value) { return AddIntColumn(row, m_MailFormatColumnToken, value); } @@ -350,6 +353,7 @@ protected: mdb_token m_NickNameColumnToken; mdb_token m_PriEmailColumnToken; mdb_token m_2ndEmailColumnToken; + mdb_token m_PrimaryColumnToken; mdb_token m_WorkPhoneColumnToken; mdb_token m_HomePhoneColumnToken; mdb_token m_FaxColumnToken;