[meego-commits] 7047: Changes to Trunk:Handset/libseaside

Connie Berardi connie.berardi at intel.com
Thu Aug 26 05:54:03 UTC 2010


Hi,
I have made the following changes to libseaside in project Trunk:Handset. Please review and accept ASAP.

Thank You,
Connie Berardi

[This message was auto-generated]

---

Request #7047:

  submit:   devel:ux:handset/libseaside(r35) -> Trunk:Handset/libseaside


Message:
    FEA#4178, 4187, 4190, 4191, 4195, 4179, BMC# 667: Added MeCard feature for self contact id, im related fields and dbus calls to launch im compose window, continued to localize strings, removed sample data patch, will try to push a cleaner solution to sample contacts by tomorrow at 4pm, this is feature freeze

State:   new          2010-08-25T17:43:43 mcberadi
Comment: None



changes files:
--------------
--- libseaside.changes
+++ libseaside.changes
@@ -0,0 +1,2 @@
+* Wed Aug 25 2010  Connie Berardi <connie.berardi at intel.com> - 0.0.32
+- Added MeCard feature, IM field to model, localized strings, removing patch

old:
----
  generate_sample_data.patch
  libseaside-0.0.31.tar.bz2

new:
----
  libseaside-0.0.32.tar.bz2

spec files:
-----------
--- libseaside.spec
+++ libseaside.spec
@@ -7,14 +7,13 @@
 
 Name:       libseaside
 Summary:    MeeGo common contacts library
-Version:    0.0.31
+Version:    0.0.32
 Release:    1
 Group:      System/Libraries
 License:    Apache License, Version 2.0
 URL:        http://meego.com
 Source0:    %{name}-%{version}.tar.bz2
 Source100:  libseaside.yaml
-Patch0:     generate_sample_data.patch
 Requires:   %{name} >= %{version}
 Requires:   qtcontacts-tracker
 Requires(post): /sbin/ldconfig
@@ -51,8 +50,6 @@
 %prep
 %setup -q -n %{name}-%{version}
 
-# generate_sample_data.patch
-%patch0 -p1
 # >> setup
 # << setup
 

other changes:
--------------

++++++ libseaside-0.0.31.tar.bz2 -> libseaside-0.0.32.tar.bz2
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,9 @@
+Changes in 0.0.32
+
+0f67... Added IM to SeasideSyncModel and Seaside tables to reads/write QContactOnlineAccount from tracker backend to persistently store IM contacts.FEA#4178,4195 Adding more tr() translation strings marked for localization. Signed-off-by: Connie Berardi <connie.berardi at intel.com>
+0e46... Adding MeCard feature, no FEA# available, using qtcontacts-tracker APIs for selfId so that user can store their contact information. Signed-off-by: Connie Berardi <connie.berardi at intel.com>
+cf45... Changing .pro file for test app to install views/theme files Signed-off-by: Connie Berardi <connie.berardi at intel.com>
+
 Changes in 0.0.31
 
 91d0... Adding Seaside::SearchRole to replace default Qt::DisplayRole and correcting usage of Seaside::DataRole Signed-off-by: Connie Berardi <connie.berardi at intel.com>
--- libseaside.pro
+++ libseaside.pro
@@ -1,4 +1,4 @@
-VERSION = 0.0.31
+VERSION = 0.0.32
 
 unix{
     PREFIX=/usr
--- src/seaside.h
+++ src/seaside.h
@@ -37,7 +37,7 @@
         ColumnAnniversary,
         ColumnAvatar,
         ColumnFavorite,
- 	ColumnIMAccounts, //REVISIT
+        ColumnIMAccounts, //REVISIT
         ColumnEmailAddresses,
         ColumnPhoneNumbers,
         ColumnPhoneContexts,
@@ -122,8 +122,8 @@
   Anniversary         Date
   Avatar              String      path/filename
   Favorite            Bool
-  EmailAddresses      StringList
   IMAccounts          StringList
+  EmailAddresses      StringList
   PhoneNumbers        StringList
   PhoneContexts       StringList  of "Home", "Work", or empty
   PhoneTypes          StringList  of "Mobile" or empty
--- src/seasidecommspage.cpp
+++ src/seasidecommspage.cpp
@@ -27,17 +27,17 @@
     MLinearLayoutPolicy *policy = new MLinearLayoutPolicy(layout, Qt::Vertical);
     MButtonGroup *btnGroup = new MButtonGroup();
     bool useDetailType = false;
-    QString headerText = QString("Select the %1 to %2:");
+    QString headerText = QObject::tr("Select the %1 to %2:", "Prompt to chooser %1= number|address|chatcontact to %2 = call|SMS|email|IM");
 
     switch (type) {
     case SeasideList::CatCall:
         useDetailType = true;
-        headerText = headerText.arg("number", "call");
+        headerText = headerText.arg(QObject::tr("number", "Noun for phone number"), QObject::tr("call", "Verb describing action i.e. to call a number"));
         m_detailList.append(pm->phones().toList());
         break;
 
     case SeasideList::CatSMS:
-        headerText = headerText.arg("number", "SMS");
+        headerText = headerText.arg(QObject::tr("number", "Noun for phone number"), QObject::tr("SMS", "Verb describing action i.e. to SMS a number"));
         foreach (const SeasideDetail& detail, pm->phones()) {
             if (detail.location() == Seaside::LocationMobile)
                 m_detailList.append(detail);
@@ -45,7 +45,12 @@
 
         break;
     case SeasideList::CatEmail:
-        headerText = headerText.arg("address", "Email");
+        headerText = headerText.arg(QObject::tr("address", "Noun for address"), QObject::tr("email","Verb describing action i.e. to email an address"));
+        m_detailList.append(pm->emails().toList());
+        break;
+
+    case SeasideList::CatIM:
+        headerText = headerText.arg(QObject::tr("chat contact", "Noun for im contact"), QObject::tr("IM","Verb describing action i.e. to IM a chat contact"));
         m_detailList.append(pm->emails().toList());
         break;
     }
@@ -59,19 +64,19 @@
         QString type;
         foreach(const SeasideDetail& detail, m_detailList) {
             if (detail.location() == Seaside::LocationHome)
-                type = "Home";  // TODO: i18n;
+                type = QObject::tr("Home", "Location of communication home phone, home address, etc");
             else if (detail.location() == Seaside::LocationWork)
-                type = "Work";  // TODO: i18n;
+                type = QObject::tr("Work", "Location of communication work phone, work address, etc");
             else
-                type = "Mobile";  // TODO: i18n;
-            MButton *btn = new MButton(QString("%1 (%2)").arg(detail.text(), type));
+                type = QObject::tr("Mobile", "Location of communication mobile phone, mobile email, etc");
+            MButton *btn = new MButton(QObject::tr("%1 (%2)", "%1 = Communication data ie 321-3333 or jon at gmail.com, %2=Location of communication ie work or home").arg(detail.text(), type));
             btn->setObjectName("SeasideCommsPageDestButton");
             btnGroup->addButton(btn, i++);
             policy->addItem(btn, Qt::AlignCenter);
         }
     } else {
         foreach(const SeasideDetail& detail, m_detailList) {
-            MButton *btn = new MButton(QString("%1").arg(detail.text()));
+            MButton *btn = new MButton(QObject::tr("%1", "Raw communication data ie 321-3333 or jon at gmail.com").arg(detail.text()));
             btn->setObjectName("SeasideCommsPageDestButton");
             btnGroup->addButton(btn, i++);
             policy->addItem(btn, Qt::AlignCenter);
--- src/seasidedetailview.cpp
+++ src/seasidedetailview.cpp
@@ -135,11 +135,11 @@
     QString fullname;
     if(!(pm->lastname()).isEmpty())
       { 
-	fullname = QObject::tr("%1 %2").arg(pm->firstname()).arg(pm->lastname());
+        fullname = QObject::tr("%1 %2", "%1=firstname %2=lastname").arg(pm->firstname()).arg(pm->lastname());
       }
     else
       {
-	fullname = QObject::tr("%1").arg(pm->firstname());
+        fullname = QObject::tr("%1", "%1=firstname").arg(pm->firstname());
       }
     const QString& name = fullname;
     if (!name.isEmpty()) {
@@ -212,16 +212,16 @@
 void SeasideDetailView::addRecent(const SeasideDetail& detail)
 {
     if (!m_headers[SectionRecent])
-        addSection(SectionRecent, "Recent conversations");  // TODO: i18n
+        addSection(SectionRecent, QObject::tr("Recent conversations", "Header Recent communications for People/Contacts detail view"));
 
     // TODO: choose different object names when we support recent events
-    m_layouts[SectionRecent]->addItem(createSeasideImageLabel("CallDialed", detail.text()));
+    m_layouts[SectionRecent]->addItem(createSeasideImageLabel("CallDialed", detail.text())); //does not need i18n, used as objectName
 }
 
 void SeasideDetailView::addPhone(const SeasideDetail& detail)
 {
     if (!m_headers[SectionPhone])
-        addSection(SectionPhone, "Telephone numbers");  // TODO: i18n
+        addSection(SectionPhone, QObject::tr("Telephone numbers","Header title for telephone numbers in the detail view"));
 
     QString objectName;
     switch (detail.location()) {
--- src/seasidelist.cpp
+++ src/seasidelist.cpp
@@ -1,5 +1,5 @@
 /*
- * libseaside - Library that provides an interface to the Contacts application
+ * Libseaside - Library that provides an interface to the Contacts application
  * Copyright © 2010, Intel Corporation.
  *
  * This program is licensed under the terms and conditions of the
@@ -45,7 +45,7 @@
 
     void updateCell(const QModelIndex& index, MWidget *cell) const
     {
-        qWarning() << "updateCell(const QModelIndex& index, MWidget *cell) " << index;
+        //qWarning() << "updateCell(const QModelIndex& index, MWidget *cell) " << index;
 
         if(!index.isValid())
               return;
@@ -340,8 +340,7 @@
         m_currentIndex = index;
 
         m_currentPerson = new SeasidePerson(index);
-        m_currentPerson->setObjectName("SeasidePerson");
-        m_currentPerson->setViewType("seasideDetail");
+        m_currentPerson->setViewType("seasideDetailView");
 
         connect(m_currentPerson, SIGNAL(callNumber(const QString&)),
                 this, SLOT(callNumber(const QString&)));
@@ -355,10 +354,10 @@
                 this, SLOT(scrollIntoView(qreal,qreal)));
 
         m_detailPage = new MApplicationPage;
-        m_detailPage->setTitle("Contact Detail");  // TODO: i18n
+        m_detailPage->setTitle(QObject::tr("Contact Detail", "Screen title for the MApplicationPage" ));
         m_detailPage->setCentralWidget(m_currentPerson);
 
-        MAction *action = new MAction(QObject::tr("<b>Edit</b>", "Edit button text for list widget"), this);  // TODO: i18n
+        MAction *action = new MAction(QObject::tr("<b>Edit</b>", "Edit button text for list widget"), this);  
         action->setLocation(MAction::ToolBarLocation);
         m_detailPage->addAction(action);
         connect(action, SIGNAL(triggered()), this, SLOT(editCurrent()));
--- src/seasidelist.h
+++ src/seasidelist.h
@@ -50,7 +50,8 @@
   enum CommCat {
       CatCall,
       CatSMS,
-      CatEmail
+      CatEmail,
+      CatIM
   };
 
     SeasideList(Detail detail = DetailNone, MWidget *parent = NULL);
--- src/seasidelistmodel.cpp
+++ src/seasidelistmodel.cpp
@@ -70,7 +70,6 @@
         return;
     }
 
-    qDebug() << "\n\nLISTMODEL!\n\n";
     QList<QContact> contacts;
     QContactDetailFilter filter;
     if (detail == SeasideList::DetailEmail) {
@@ -84,10 +83,8 @@
     else
         contacts = manager->contacts();
 
-    qDebug() << "CONTACTS:" << contacts.size();
     foreach (const QContact& contact, contacts) {
         QString name = Seaside::contactName(&contact);
-        qDebug() << "CONTACTS name:" << name;
     }
 }
 
@@ -118,11 +115,11 @@
         QString str;
         foreach (const QString& context, detail.contexts()) {
             if (context == "Home") {
-                str = "Home";
+                str = QObject::tr("Home", "Context for communication location: landline or home");
                 break;
             }
             else if (context == "Work") {
-                str = "Work";
+                str = QObject::tr("Work", "Context for communication location: work or company");
                 break;
             }
         }
@@ -166,7 +163,7 @@
         {
             QContactBirthday day = contact->detail<QContactBirthday>();
             if (role == Seaside::SearchRole)
-                return QVariant(day.date().toString("MMMM dd yyyy"));
+                return QVariant(day.date().toString(QObject::tr("MMMM dd yyyy","Format for date M= month, d = day, y = year")));
             else
                 return QVariant(day.date());
         }
@@ -175,7 +172,7 @@
         {
             QContactAnniversary day = contact->detail<QContactAnniversary>();
             if (role == Seaside::SearchRole)
-                return QVariant(day.originalDate().toString("MMMM dd yyyy"));
+                return QVariant(day.originalDate().toString(QObject::tr("MMMM dd yyyy","Format for date M= month, d = day, y = year")));
             else
                 return QVariant(day.originalDate());
         }
@@ -244,7 +241,7 @@
                 foreach (const QString& subtype, phone.subTypes()) {
                     // TODO: handle MessagingCapable, Pager, etc...
                     if (subtype == QContactPhoneNumber::SubTypeMobile) {
-                        str = "Mobile";
+                        str = QObject::tr("Mobile","Phone communication type for cell/mobile numbers");
                         break;
                     }
                 }
--- src/seasideperson.h
+++ src/seasideperson.h
@@ -28,6 +28,7 @@
 signals:
     void callNumber(const QString& number);
     void composeSMS(const QString& number);
+    void composeIM(const QString& account);
     void composeEmail(const QString& address);
     void viewRequest(qreal ypos, qreal height);
 };
--- src/seasidepersonmodel.cpp
+++ src/seasidepersonmodel.cpp
@@ -28,6 +28,15 @@
     memberModified(SeasidePersonModel::Phones);
 }
 
+void SeasidePersonModel::setIMAccount(int index, const SeasideDetail& detail)
+{
+    QVector<SeasideDetail>& vector = _ims();
+    if (index >= vector.count())
+        vector.resize(index + 1);
+    vector[index] = detail;
+    memberModified(SeasidePersonModel::IMs);
+}
+
 void SeasidePersonModel::setEmail(int index, const SeasideDetail& detail)
 {
     QVector<SeasideDetail>& vector = _emails();
--- src/seasidepersonmodel.h
+++ src/seasidepersonmodel.h
@@ -24,6 +24,7 @@
 
     void setPhone(int index, const SeasideDetail& detail);
     void setEmail(int index, const SeasideDetail& detail);
+    void setIMAccount(int index, const SeasideDetail& detail);
     void setAddress(int index, const SeasideDetail& detail);
 
     M_MODEL_PROPERTY(QUuid, uuid, Uuid, true, QUuid());
@@ -36,6 +37,7 @@
 
     M_MODEL_PROPERTY(QList<SeasideCommEvent>, events, Events, true, QList<SeasideCommEvent>())
     M_MODEL_PROPERTY(QVector<SeasideDetail>, phones, Phones, true, QVector<SeasideDetail>())
+    M_MODEL_PROPERTY(QVector<SeasideDetail>, ims, IMs, true, QVector<SeasideDetail>())
     M_MODEL_PROPERTY(QVector<SeasideDetail>, emails, Emails, true, QVector<SeasideDetail>())
     M_MODEL_PROPERTY(QVector<SeasideDetail>, addresses, Addresses, true, QVector<SeasideDetail>())
 };
--- src/seasidesyncmodel.cpp
+++ src/seasidesyncmodel.cpp
@@ -20,6 +20,7 @@
 #include <QContactName>
 #include <QContactNote>
 #include <QContactOrganization>
+#include <QContactOnlineAccount>
 #include <QContactPhoneNumber>
 #include <QContactPresence>
 #include <QSettings>
@@ -36,6 +37,7 @@
 public:
     static SeasideSyncModel *theSyncModel;
     static int theRefCount;
+    static const QString selfGuid;
 
     QContactManager *manager;
     QContactFilter currentFilter;
@@ -52,6 +54,7 @@
 
 SeasideSyncModel *SeasideSyncModelPriv::theSyncModel = NULL;
 int SeasideSyncModelPriv::theRefCount = 0;
+const QString SeasideSyncModelPriv::selfGuid = "01111111-1111-1111-1111-11111111 1111";
 
 SeasideSyncModel *SeasideSyncModel::instance()
 {
@@ -61,6 +64,11 @@
     return SeasideSyncModelPriv::theSyncModel;
 }
 
+QString SeasideSyncModel::getLocalSelfId()
+{
+  return SeasideSyncModelPriv::selfGuid;
+}
+
 void SeasideSyncModel::releaseInstance()
 {
     if (SeasideSyncModelPriv::theRefCount > 0)
@@ -107,6 +115,7 @@
     priv->headers.append("Anniversary");
     priv->headers.append("Avatar");
     priv->headers.append("Favorite");
+    priv->headers.append("IM Accounts");
     priv->headers.append("Email Addresses");
     priv->headers.append("Phone Numbers");
     priv->headers.append("Phone Contexts");
@@ -132,6 +141,23 @@
 
     updateDefinitions(priv->manager);
 
+    QContact *contact;
+    if(priv->manager->hasFeature(QContactManager::SelfContact, QContactType::TypeContact))
+    {     
+      QContactId contactId;
+      const QContactLocalId meCardId(priv->manager->selfContactId());
+      contact = priv->idToContact[meCardId];
+    }else{
+        QContactLocalId id = priv->uuidToId[SeasideSyncModelPriv::selfGuid];
+	contact = priv->idToContact[id];
+    }
+    
+    if(!contact){
+      createMeCard();
+    }else{
+      qWarning() << "SeasideSyncModel::SeasideSyncModel() MeCard exists";
+    }
+    
     connect(priv->manager, SIGNAL(contactsAdded(QList<QContactLocalId>)),
             this, SLOT(contactsAdded(QList<QContactLocalId>)));
     connect(priv->manager, SIGNAL(contactsChanged(QList<QContactLocalId>)),
@@ -142,6 +168,61 @@
 
     dataReset();
 }
+ 
+void SeasideSyncModel::createMeCard()
+{
+  QContact *contact = new QContact;
+  if(priv->manager->hasFeature(QContactManager::SelfContact, QContactType::TypeContact))
+    {     
+      QContactId contactId;
+      const QContactLocalId meCardId(priv->manager->selfContactId());
+      contactId.setLocalId(meCardId);
+      contact->setId(contactId);
+    }     
+    
+  QContactGuid guid;
+  guid.setGuid(SeasideSyncModelPriv::selfGuid);
+  if (!contact->saveDetail(&guid))
+    qWarning() << "[SyncModel] failed to save guid in mecard contact";
+  
+  QContactAvatar avatar;
+  avatar.setImageUrl(QUrl("icon-m-content-avatar-placeholder"));
+  if (!contact->saveDetail(&avatar))
+      qWarning() << "[SyncModel] failed to save avatar in mecard contact";
+  
+  // add the custom seaside detail
+  SeasideCustomDetail sd;
+  if (!contact->saveDetail(&sd))
+    qWarning() << "[SyncModel] failed to save seaside detail in mecard contact";
+  
+  QContactName name;
+  name.setFirstName(QObject::tr("Me","Default string to describe self if no self contact information found, default created with [Me] as firstname"));
+  name.setLastName("");
+  if (!contact->saveDetail(&name))
+    qWarning() << "[SyncModel] failed to save mecard name";
+  
+  bool favorite = false;
+  if (priv->settings) {
+    QString key = guid.guid();
+    key += "/favorite";
+    priv->settings->setValue(key, favorite);
+  }
+  
+  if (!priv->manager->saveContact(contact))
+    qWarning() << "[SyncModel] failed to save mecard contact";
+}
+
+QContactLocalId SeasideSyncModel::getSelfContactId()
+{
+  if(priv->manager->hasFeature(QContactManager::SelfContact, QContactType::TypeContact)){
+    	 return priv->manager->selfContactId();
+    }else{
+      QContactLocalId id = priv->uuidToId[SeasideSyncModelPriv::selfGuid];
+      if(id)
+	return id;
+    }
+    return QContactLocalId();
+}
 
 SeasideSyncModel::~SeasideSyncModel()
 {
@@ -170,7 +251,7 @@
         QString str;
         foreach (const QString& context, detail.contexts()) {
             if (context == "Home") {
-                str = "Home";
+                str = QObject::tr("Home", "ContextList type for home type");
                 break;
             }
             else if (context == "Work") {
@@ -275,6 +356,19 @@
             return QVariant(false);
         }
 
+    case Seaside::ColumnIMAccounts:  // IMAccounts
+        {
+            QStringList list;
+	    foreach (const QContactOnlineAccount& account, 
+                     contact->details<QContactOnlineAccount>())
+                list << account.accountUri() + ":" +account.value("Nickname")+":"+account.value("AccountPath") ;
+
+	    if (role != Seaside::SearchRole)
+	      return QVariant(list.join(" "));
+	    else
+	      return QVariant(list);
+        }
+
     case Seaside::ColumnEmailAddresses:  // emails
         {
             QStringList list;
@@ -296,7 +390,7 @@
                 // is a temporary fix to make them look nicer, but it means
                 // hard-coding American-style phone numbers
 
-                qWarning() << "Seaside::ColumnPhoneNumbers phone" << phone;
+                //qWarning() << "Seaside::ColumnPhoneNumbers phone" << phone;
 
                 // TODO: i18n //REVISIT
                 QString number = phone.number().replace("[^0-9]", "");
@@ -657,10 +751,18 @@
     qWarning() << "SeasideSyncModel::createPersonModel list phones " << list;
     model->setPhones(details);
 
+    //handle im accounts
+    details.clear();
+    foreach (QString account, SEASIDE_FIELD(IMAccounts, StringList)) {
+        SeasideDetail detail(account, Seaside::LocationNone);
+        details.append(detail);
+    }
+    model->setIMs(details);
+
     // handle emails
     details.clear();
     foreach (QString email, SEASIDE_FIELD(EmailAddresses, StringList)) {
-        SeasideDetail detail(email, Seaside::LocationHome);
+      SeasideDetail detail(email, Seaside::LocationHome);
         details.append(detail);
     }
     model->setEmails(details);
@@ -766,7 +868,6 @@
          }
      }
 
-
     const QVector<SeasideDetail>& newPhones = newModel->phones();
     if (oldModel->phones() != newPhones) {
         foreach (QContactDetail detail, contact->details<QContactPhoneNumber>())
@@ -801,6 +902,27 @@
         }
     }
 
+    const QVector<SeasideDetail>& newIMs = newModel->ims();
+    if (oldModel->ims() != newIMs) {
+        foreach (QContactDetail detail, contact->details<QContactOnlineAccount>())
+            if (!contact->removeDetail(&detail))
+                qWarning() << "[SyncModel] failed to remove im account";
+
+        foreach (const SeasideDetail& detail, newIMs) {
+            if (detail.isValid()) {
+                QContactOnlineAccount imAccount;
+                QStringList list = (detail.text()).split(":");
+                if(list.count() != 3)
+                     qWarning() << "[SyncModel] im detail missing fields";
+                imAccount.setValue("AccountPath", list.at(2));
+                 imAccount.setAccountUri(list.at(0));
+                 imAccount.setValue("Nickname", list.at(1));
+                if (!contact->saveDetail(&imAccount))
+                    qWarning() << "[SyncModel] failed to save im account";
+            }
+        }
+    }
+
     const QVector<SeasideDetail>& newEmails = newModel->emails();
     if (oldModel->emails() != newEmails) {
         foreach (QContactDetail detail, contact->details<QContactEmailAddress>())
@@ -852,15 +974,15 @@
         }
     }
 
-    if (oldModel->favorite() != newModel->favorite()) {
+      if (oldModel->favorite() != newModel->favorite()) {
         if (priv->settings) {
-            QContactGuid guid = contact->detail<QContactGuid>();
-            QString key = guid.guid();
-            key += "/favorite";
-            priv->settings->setValue(key, newModel->favorite());
-            priv->settings->sync();
+	  QContactGuid guid = contact->detail<QContactGuid>();
+	  QString key = guid.guid();
+	  key += "/favorite";
+	  priv->settings->setValue(key, newModel->favorite());
+	  priv->settings->sync();
         }
-    }
+      }
 
     if (!priv->manager->saveContact(contact)) {
         qWarning() << "[SyncModel] failed to update contact";
--- src/seasidesyncmodel.h
+++ src/seasidesyncmodel.h
@@ -76,8 +76,11 @@
     void setAvatar(const QUuid& uuid, const QString& path);
     void setFavorite(const QUuid& uuid, bool favorite);
     void setCompany(const QUuid& uuid, QString company);
+   static QString getLocalSelfId();
+   QContactLocalId getSelfContactId();
 
 public slots:
+    void createMeCard();
 
 protected:
     void fixIndexMap();
--- tests/chooser/chooser.conf
+++ tests/chooser/chooser.conf
-[SeasideListItem]
-default = MWidgetView
-
-[SeasideList]
-seasideDetail = SeasideDetailView
-seasideEdit = SeasideEditView
-
-[MWidgetController]
-seasideDetail = SeasideDetailView
-seasideEdit = SeasideEditView
-
-[SeasidePerson]
-default = SeasideDetailView
-seasideDetail = SeasideDetailView
-seasideEdit = SeasideEditView
-
-[SeasidePeople]
-default = MListView
-seasideDetail = SeasideDetailView
-seasideEdit = SeasideEditView
--- tests/chooser/chooser.css
+++ tests/chooser/chooser.css
(renamed to tests/chooser/theme/style/chooser.css)
--- tests/chooser/chooser.pro
+++ tests/chooser/chooser.pro
@@ -1,6 +1,10 @@
 TEMPLATE = app
+TARGET = chooser
 MOC_DIR = .moc
 OBJECTS_DIR = .obj
+MGEN_OUTDIR = .gen
+LIBS += -L$$PREFIX/lib
+INCLUDEPATH += $$PREFIX/include
 CONFIG += meegotouch mobility qt debug link_pkgconfig
 PKGCONFIG += meegotouch QtContacts
 LIBS += -lseaside
@@ -9,11 +13,17 @@
 SOURCES = \
     chooser.cpp
 
-LIBS += -L$$PREFIX/lib
-INCLUDEPATH += $$PREFIX/include
-TARGET = chooser
+M_THEME_DIR = $$PREFIX/share/themes/base/meegotouch
+CHOOSER_THEME_DIR = $$M_THEME_DIR/$$TARGET
+
+theme.files = theme/*
+theme.path = $$CHOOSER_THEME_DIR
+theme.CONFIG += no_check_exist
+
+INSTALLS += \
+    theme
 
-OTHER_FILES = \
-    chooser.css \
-    chooser.conf
+OTHER_FILES += \
+    theme/styles/chooser.css \
+    theme/chooser.conf \
 
--- tests/chooser/theme
+++ tests/chooser/theme
+(directory)
--- tests/chooser/theme/chooser.conf
+++ tests/chooser/theme/chooser.conf
+[SeasideListItem]
+default = MWidgetView
+
+[SeasideList]
+seasideDetailView = SeasideDetailView
+seasideEdit = SeasideEditView
+
+[MWidgetController]
+seasideDetailView = SeasideDetailView
+seasideEdit = SeasideEditView
+
+[SeasidePerson]
+default = SeasideDetailView
+seasideDetailView = SeasideDetailView
+seasideEdit = SeasideEditView
+
+[SeasidePeople]
+default = MListView
+seasideDetailView = SeasideDetailView
+seasideEdit = SeasideEditView
+
--- tests/chooser/theme/style
+++ tests/chooser/theme/style
+(directory)
--- tests/chooser/theme/style/chooser.css
+++ tests/chooser/theme/style/chooser.css
(renamed from tests/chooser/chooser.css)
--- theme/libseaside.conf
+++ theme/libseaside.conf
@@ -2,20 +2,20 @@
 default = MWidgetView
 
 [SeasideList]
-seasideDetail = SeasideDetailView
+seasideDetailView = SeasideDetailView
 seasideEdit = SeasideEditView
 
 [MWidgetController]
-seasideDetail = SeasideDetailView
+seasideDetailView = SeasideDetailView
 seasideEdit = SeasideEditView
 
 [SeasidePerson]
 default = SeasideDetailView
-seasideDetail = SeasideDetailView
+seasideDetailView = SeasideDetailView
 seasideEdit = SeasideEditView
 
 [SeasidePeople]
 default = MListView
-seasideDetail = SeasideDetailView
+seasideDetailView = SeasideDetailView
 seasideEdit = SeasideEditView
 

++++++ libseaside.yaml
--- libseaside.yaml
+++ libseaside.yaml
@@ -1,6 +1,6 @@
 Name: libseaside
 Summary: MeeGo common contacts library
-Version: 0.0.31
+Version: 0.0.32
 Release: 1
 Group: System/Libraries
 License: Apache License, Version 2.0
@@ -10,8 +10,6 @@
 Requires: 
     - "%{name} >= %{version}"
     - qtcontacts-tracker
-Patches:
-    - generate_sample_data.patch
 Description: |
     libseaside is a library provide common contacts interface and widgets for MeeGo    
 

++++++ deleted files:
--- generate_sample_data.patch




More information about the MeeGo-commits mailing list