diff --git a/kde/src/klib/dataengine/sflphonEngine.cpp b/kde/src/klib/dataengine/sflphonEngine.cpp index 046c24e4f7805bfb2c4d03eb9ba235e76cd3a2d2..cffd9f1447dc2b642525a9bb9f2729201e5cfba8 100644 --- a/kde/src/klib/dataengine/sflphonEngine.cpp +++ b/kde/src/klib/dataengine/sflphonEngine.cpp @@ -12,6 +12,7 @@ #include "../../lib/sflphone_const.h" #include "../../klib/AkonadiBackend.h" #include "../../klib/HelperFunctions.h" +#include "../../klib/ConfigurationSkeleton.h" #include "sflphoneService.h"> CallModel<>* SFLPhoneEngine::m_pModel = NULL; @@ -56,6 +57,9 @@ bool SFLPhoneEngine::sourceRequestEvent(const QString &name) else if ( name == "contacts" ) { updateContacts(); } + else if ( name == "bookmark" ) { + updateBookmarkList(); + } return true;//updateSourceEvent(name); } @@ -67,7 +71,7 @@ bool SFLPhoneEngine::updateSourceEvent(const QString &name) QStringList SFLPhoneEngine::sources() const { QStringList toReturn; - toReturn << "calls" << "history" << "conferences" << "info" << "accounts" << "contacts"; + toReturn << "calls" << "history" << "conferences" << "info" << "accounts" << "contacts" << "bookmark"; return toReturn; } @@ -116,7 +120,6 @@ void SFLPhoneEngine::updateHistory() setHistoryCategory(list,HistorySortingMode::Date); foreach (Call* oldCall, list) { - qDebug() << oldCall->getStopTimeStamp(); historyCall[oldCall->getCallId()][ "peerName" ] = oldCall->getPeerName(); historyCall[oldCall->getCallId()][ "peerNumber" ] = oldCall->getPeerPhoneNumber(); historyCall[oldCall->getCallId()][ "length" ] = oldCall->getStopTimeStamp().toInt() - oldCall->getStartTimeStamp().toInt(); @@ -140,6 +143,38 @@ void SFLPhoneEngine::updateCallList() } } +void SFLPhoneEngine::updateBookmarkList() +{ + removeAllData("bookmark"); + int i=0; + QStringList cl = getModel()->getNumbersByPopularity(); + for (;i < ((cl.size() < 10)?cl.size():10);i++) { + QHash<QString,QVariant> pop; + Contact* cont = AkonadiBackend::getInstance()->getContactByPhone(cl[i],true); + if (cont) { + pop["peerName" ] = cont->getFormattedName(); + } + else { + pop["peerName" ] = cl[i]; + } + pop["peerNumber" ] = cl[i]; + pop["section" ] = "Popular"; + pop["listPriority" ] = 1000; + setData("bookmark", QString::number(i), pop); + } + + //TODO Wont work for now + foreach (QString nb, ConfigurationSkeleton::bookmarkList()) { + i++; + QHash<QString,QVariant> pop; + pop["peerName" ] = "TODO"; + pop["peerNumber" ] = nb; + pop["section" ] = "1"; + pop["listPriority" ] = 0; + setData("bookmark", QString::number(i), pop); + } +} + void SFLPhoneEngine::updateConferenceList() { foreach (Call* call, m_pModel->getCalls()) { @@ -172,6 +207,7 @@ void SFLPhoneEngine::updateCollection() setData("contacts", QString::number(i), QVariant(cont)); i++; } + updateBookmarkList(); } void SFLPhoneEngine::updateContacts() diff --git a/kde/src/klib/dataengine/sflphonEngine.h b/kde/src/klib/dataengine/sflphonEngine.h index 47370f3065ebfaa6671d5fcc08aec33dc0e04448..0b31dc848d7ce54ba5b7fc6adecf5ea1346f3e66 100644 --- a/kde/src/klib/dataengine/sflphonEngine.h +++ b/kde/src/klib/dataengine/sflphonEngine.h @@ -61,6 +61,7 @@ class SFLPhoneEngine : public Plasma::DataEngine,public SortableDockCommon<> void updateAccounts (); void updateConferenceList (); void updateContacts (); + void updateBookmarkList (); void updateInfo(); private slots: void updateCollection();