diff --git a/kde/plasma/dataengine/CMakeLists.txt b/kde/plasma/dataengine/CMakeLists.txt index 867b10900d910300e50955897785df5fb46c5f9a..5dacb41fed29a63ed0ce3c54eb576fac844b10ea 100644 --- a/kde/plasma/dataengine/CMakeLists.txt +++ b/kde/plasma/dataengine/CMakeLists.txt @@ -13,12 +13,14 @@ include_directories( set(sflphone_engine_SRCS sflphonEngine.cpp + sflphoneService.cpp ) kde4_add_plugin(plasma_engine_sflphone ${sflphone_engine_SRCS}) target_link_libraries(plasma_engine_sflphone qtsflphone + ksflphone ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS}) @@ -28,4 +30,7 @@ install(TARGETS plasma_engine_sflphone install(FILES plasma-engine-sflphone.desktop DESTINATION ${SERVICES_INSTALL_DIR}) +install(FILES sflphone.operations + DESTINATION ${DATA_INSTALL_DIR}/plasma/services) + #TARGET_LINK_LIBRARIES(sflphone-client-kde sflphonekde ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KABC_LIBS}) diff --git a/kde/plasma/dataengine/sflphonEngine.cpp b/kde/plasma/dataengine/sflphonEngine.cpp index 4c7c51c90c4d4a4ccb464cece20ccbc1963e76f8..a335f0fb6ed39e201f3a873bd1711d4b608c4b02 100644 --- a/kde/plasma/dataengine/sflphonEngine.cpp +++ b/kde/plasma/dataengine/sflphonEngine.cpp @@ -3,19 +3,26 @@ #include <Plasma/DataContainer> #include "../../src/lib/Call.h" +#include "../../src/lib/Account.h" +#include "../../src/lib/AccountList.h" #include "../../src/lib/dbus/metatypes.h" #include "../../src/lib/instance_interface_singleton.h" #include "../../src/lib/configurationmanager_interface_singleton.h" #include "../../src/lib/callmanager_interface_singleton.h" #include "../../src/lib/sflphone_const.h" +#include "sflphoneService.h" + +CallModel<>* SFLPhoneEngine::m_pModel = NULL; SFLPhoneEngine::SFLPhoneEngine(QObject* parent, const QVariantList& args) : Plasma::DataEngine(parent, args) { Q_UNUSED(args) - m_pModel = new CallModelConvenience(CallModelConvenience::ActiveCall); - m_pModel->initCall(); - m_pModel->initHistory(); + if (not m_pModel) { + m_pModel = new CallModel<>(CallModel<>::ActiveCall); + m_pModel->initCall(); + m_pModel->initHistory(); + } CallManagerInterface& callManager = CallManagerInterfaceSingleton::getInstance(); @@ -39,6 +46,9 @@ bool SFLPhoneEngine::sourceRequestEvent(const QString &name) else if ( name == "info" ) { updateInfo(); } + else if ( name == "accounts" ) { + updateAccounts(); + } return true;//updateSourceEvent(name); } @@ -50,10 +60,21 @@ bool SFLPhoneEngine::updateSourceEvent(const QString &name) QStringList SFLPhoneEngine::sources() const { QStringList toReturn; - toReturn << "calls" << "history" << "conferences" << "info"; + toReturn << "calls" << "history" << "conferences" << "info" << "accounts"; return toReturn; } +Plasma::Service* SFLPhoneEngine::serviceForSource(const QString &source) +{ + /*if (source != "calls") { + return 0; + }*/ + + SFLPhoneService *service = new SFLPhoneService(this); + service->setParent(this); + return service; +} + QString SFLPhoneEngine::getCallStateName(call_state state) { if (state == CALL_STATE_INCOMING) { @@ -118,13 +139,22 @@ void SFLPhoneEngine::updateConferenceList() void SFLPhoneEngine::updateContacts() { - + } void SFLPhoneEngine::updateInfo() { qDebug() << "Currentaccount: " << m_pModel->getCurrentAccountId(); - setData("info", I18N_NOOP("Account"), m_pModel->getCurrentAccountId()); + setData("info", I18N_NOOP("Current_account"), m_pModel->getCurrentAccountId()); +} + +void SFLPhoneEngine::updateAccounts() +{ + const QVector<Account*>& list = m_pModel->getAccountList()->getAccounts(); + foreach(Account* a,list) { + qDebug() << "Account: " << a->getAccountId(); + setData("accounts", a->getAccountDetail(ACCOUNT_ALIAS), a->getAccountId()); + } } void SFLPhoneEngine::callStateChangedSignal(Call* call) @@ -170,4 +200,9 @@ void SFLPhoneEngine::accountChanged() } +CallModel<>* SFLPhoneEngine::getModel() +{ + return m_pModel; +} + K_EXPORT_PLASMA_DATAENGINE(sflphone, SFLPhoneEngine) diff --git a/kde/plasma/dataengine/sflphonEngine.h b/kde/plasma/dataengine/sflphonEngine.h index 9a234f254094761e2d0e6db71e2968f05999f0da..cc3e764324c7399a30f9ae4eb53282358eb19907 100644 --- a/kde/plasma/dataengine/sflphonEngine.h +++ b/kde/plasma/dataengine/sflphonEngine.h @@ -22,6 +22,7 @@ #define SFLPHONEENGINE_H #include <Plasma/DataEngine> +#include <Plasma/Service> #include <QHash> #include "../../src/lib/CallModel.h" @@ -35,8 +36,13 @@ class SFLPhoneEngine : public Plasma::DataEngine public: SFLPhoneEngine(QObject* parent, const QVariantList& args); + Plasma::Service *serviceForSource(const QString &source); virtual QStringList sources() const; + static CallModel<>* getModel(); + + friend class SFLPhoneService; + protected: bool sourceRequestEvent(const QString& name); bool updateSourceEvent(const QString& source); @@ -45,11 +51,12 @@ class SFLPhoneEngine : public Plasma::DataEngine QHash<QString, HashStringString > historyCall ; QHash<QString, HashStringString > currentCall ; QHash<QString, QStringList> currentConferences ; - CallModelConvenience* m_pModel; + static CallModel<>* m_pModel; QString getCallStateName(call_state state); void updateHistory (); void updateCallList (); void updateContacts (); + void updateAccounts (); void updateConferenceList (); void updateInfo(); private slots: diff --git a/kde/plasma/dataengine/sflphone.operations b/kde/plasma/dataengine/sflphone.operations new file mode 100644 index 0000000000000000000000000000000000000000..f80ca1c77835731302c6ce6301126f2d1f5b45eb --- /dev/null +++ b/kde/plasma/dataengine/sflphone.operations @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE kcfg SYSTEM + "http://www.kde.org/standards/kcfg/1.0/kcfg.xsd"> +<kcfg> + <group name="Call"> + <entry name="AccountId" type="String"> + <label>Account id to make this call</label> + </entry> + <entry name="Number" type="String"> + <label>Number to call</label> + </entry> + </group> +</kcfg> diff --git a/kde/plasma/dataengine/sflphoneService.cpp b/kde/plasma/dataengine/sflphoneService.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6e3e1d3a15983f4c9a3c0c579007796aded224cb --- /dev/null +++ b/kde/plasma/dataengine/sflphoneService.cpp @@ -0,0 +1,24 @@ +#include "sflphoneService.h" + +#include "../../src/lib/Call.h" + +SFLPhoneService::SFLPhoneService(SFLPhoneEngine *engine) + +{ + m_engine = engine; + setName("sflphone"); +} + +ServiceJob *SFLPhoneService::createJob(const QString &operation, QMap<QString, QVariant> ¶meters) +{ + if (!m_engine) { + return 0; + } + + if (operation == "Call") { + return new CallJob(this, operation,parameters); + } + qDebug() << "\n\n\nIN SERVICE" << parameters["query"]; + m_engine->setData(operation, parameters["query"]); + return 0; +} \ No newline at end of file diff --git a/kde/plasma/dataengine/sflphoneService.h b/kde/plasma/dataengine/sflphoneService.h new file mode 100644 index 0000000000000000000000000000000000000000..11b87d1bb0372a7674ac447545d7167e531e2282 --- /dev/null +++ b/kde/plasma/dataengine/sflphoneService.h @@ -0,0 +1,51 @@ +#ifndef SFLPHONE_SERVICE_H +#define SFLPHONE_SERVICE_H + +#include "sflphonEngine.h" + +#include <Plasma/Service> +#include <Plasma/ServiceJob> + +#include "../../src/lib/Call.h" +#include "../../src/lib/CallModel.h" + +using namespace Plasma; + +class SFLPhoneService : public Plasma::Service +{ + Q_OBJECT + +public: + SFLPhoneService(SFLPhoneEngine *engine); + ServiceJob *createJob(const QString &operation, + QMap<QString, QVariant> ¶meters); + +private: + SFLPhoneEngine *m_engine; + +}; + +class CallJob : public Plasma::ServiceJob +{ + Q_OBJECT +public: + CallJob(QObject* parent, const QString& operation, const QVariantMap& parameters = QVariantMap()) + : Plasma::ServiceJob("", operation, parameters, parent) + , m_AccountId ( parameters["AccountId"].toString() ) + , m_Number ( parameters["Number"].toString() ) + {} + + void start() + { + qDebug() << "TRYING TO CALL USING" << m_AccountId << m_Number; +// Call* call = SFLPhoneEngine::getModel()->addDialingCall("112",m_AccountId); +// call->setCallNumber(m_Number); +// call->actionPerformed(CALL_ACTION_ACCEPT); + } + +private: + QString m_AccountId; + QString m_Number; +}; + +#endif //SFLPHONE_SERVICE_H diff --git a/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp b/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp index 293df0fa9ab29501536eb13062dbb9a25388d780..8f5a5b6fc5bd9ebc25ee94f1ef7b54a01309e2f0 100644 --- a/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp +++ b/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp @@ -13,7 +13,7 @@ SFLPhonePlasmoid::SFLPhonePlasmoid(QObject* parent, const QVariantList& args) //m_svg.setImagePath("widgets/background"); setBackgroundHints(DefaultBackground); - CallModelConvenience::init(); + CallModel<>::init(); setMinimumSize(24,24); } diff --git a/kde/src/CMakeLists.txt b/kde/src/CMakeLists.txt index 41338d80f92adf0b2a415e8c1ae3ef0e8a4fe6d8..3501aa3825b1ccf111176f462f758a893ec94a09 100755 --- a/kde/src/CMakeLists.txt +++ b/kde/src/CMakeLists.txt @@ -1,28 +1,30 @@ ADD_DEFINITIONS( - ${KDE4_DEFINITIONS} - ${QT_DEFINITIONS} - -fexceptions - -DDATA_INSTALL_DIR="\\\"${DATA_INSTALL_DIR}\\\"" - -DSHARE_INSTALL_PREFIX="\\\"${SHARE_INSTALL_PREFIX}\\\"" + ${KDE4_DEFINITIONS} + ${QT_DEFINITIONS} + -fexceptions + -DDATA_INSTALL_DIR="\\\"${DATA_INSTALL_DIR}\\\"" + -DSHARE_INSTALL_PREFIX="\\\"${SHARE_INSTALL_PREFIX}\\\"" ) ADD_DEFINITIONS("-std=c++0x") -add_subdirectory(lib) +add_subdirectory( lib ) +add_subdirectory( klib ) find_package(Phonon) MESSAGE("CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}") IF(${CMAKE_BUILD_TYPE} MATCHES Release) - MESSAGE("NO DEBUG OUTPUT") - ADD_DEFINITIONS( -DQT_NO_DEBUG_OUTPUT) + MESSAGE("NO DEBUG OUTPUT") + ADD_DEFINITIONS( -DQT_NO_DEBUG_OUTPUT) ENDIF(${CMAKE_BUILD_TYPE} MATCHES Release) SET ( KDE4_KABC_LIBS -lkabc ) -SET( sflphone_client_kde_SRCS +SET( + sflphone_client_kde_SRCS SFLPhoneView.cpp SFLPhone.cpp SFLPhoneapplication.cpp @@ -53,7 +55,6 @@ SET( sflphone_client_kde_SRCS widgets/SortableDockCommon.cpp Codec.cpp AccountListModel.cpp - AkonadiBackend.cpp CallView.cpp AccountView.cpp ) @@ -66,13 +67,14 @@ QT4_ADD_RESOURCES(QtApp_RCC_SRCS ${QtApp_RCCS}) # kde4_automoc(${sflphone_client_kde_SRCS}) -SET( config_ui_files - conf/dlggeneralbase.ui - conf/dlgdisplaybase.ui - conf/dlgaccountsbase.ui - conf/dlgaudiobase.ui - conf/dlgaddressbookbase.ui - conf/dlghooksbase.ui +SET( + config_ui_files + conf/dlggeneralbase.ui + conf/dlgdisplaybase.ui + conf/dlgaccountsbase.ui + conf/dlgaudiobase.ui + conf/dlgaddressbookbase.ui + conf/dlghooksbase.ui ) KDE4_ADD_UI_FILES(sflphone_client_kde_SRCS ui/SFLPhoneView_base.ui ${config_ui_files} ) @@ -82,11 +84,11 @@ INSTALL(FILES conf/sflphone-client-kde.kcfg DESTINATION ${KCFG_INSTALL_DIR}) KDE4_ADD_EXECUTABLE(sflphone-client-kde ${sflphone_client_kde_SRCS} ${QtApp_RCC_SRCS}) -TARGET_LINK_LIBRARIES(sflphone-client-kde qtsflphone ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${KDEPIMLIBS_AKONADI_KMIME_LIBS} ${KDEPIMLIBS_AKONADI_LIBS} ${KDEPIMLIBS_AKONADI_CONTACT_LIBS} ${KDE4_PHONON_LIBS} ) +TARGET_LINK_LIBRARIES(sflphone-client-kde ksflphone qtsflphone ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${KDEPIMLIBS_AKONADI_KMIME_LIBS} ${KDEPIMLIBS_AKONADI_LIBS} ${KDEPIMLIBS_AKONADI_CONTACT_LIBS} ${KDE4_PHONON_LIBS} ) ########### install files ############### -INSTALL(TARGETS sflphone-client-kde DESTINATION ${BIN_INSTALL_DIR}) +INSTALL(TARGETS sflphone-client-kde DESTINATION ${BIN_INSTALL_DIR} ) INSTALL( FILES icons/transferarraw.png DESTINATION ${DATA_INSTALL_DIR}/sflphone-client-kde ) INSTALL( FILES icons/transfertarrow.svg DESTINATION ${DATA_INSTALL_DIR}/sflphone-client-kde ) INSTALL( FILES icons/confBlackWhite.svg DESTINATION ${DATA_INSTALL_DIR}/sflphone-client-kde ) diff --git a/kde/src/CallView.cpp b/kde/src/CallView.cpp index d44d330229b66f36026c5243e0e7bcab8fab389e..de0b5dfc42fbb365419ee88b70d7e9347135d8e3 100644 --- a/kde/src/CallView.cpp +++ b/kde/src/CallView.cpp @@ -44,7 +44,7 @@ #include "widgets/CallTreeItem.h" #include "SFLPhone.h" #include "SFLPhoneView.h" -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" ///Retrieve current and older calls from the daemon, fill history and the calls TreeView and enable drag n' drop diff --git a/kde/src/SFLPhone.cpp b/kde/src/SFLPhone.cpp index c2a60787f5a3b56bf7cd5b8c9b32307cc8f5876b..24c246b725d46eedc07c1b977dd01d757bebe4e5 100755 --- a/kde/src/SFLPhone.cpp +++ b/kde/src/SFLPhone.cpp @@ -47,7 +47,7 @@ #include "lib/Contact.h" //SFLPhone -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" #include "AccountWizard.h" #include "SFLPhoneView.h" #include "widgets/SFLPhoneTray.h" diff --git a/kde/src/AkonadiBackend.cpp b/kde/src/klib/AkonadiBackend.cpp similarity index 92% rename from kde/src/AkonadiBackend.cpp rename to kde/src/klib/AkonadiBackend.cpp index 52f698723e537b301de783eab8900f7a988f81d2..04700f27e486c4e598f77426608039d19a5d977c 100644 --- a/kde/src/AkonadiBackend.cpp +++ b/kde/src/klib/AkonadiBackend.cpp @@ -43,16 +43,17 @@ #include <kabc/phonenumber.h> //SFLPhone library -#include "lib/Contact.h" -#include "lib/AccountList.h" -#include "lib/Account.h" +#include "../lib/Contact.h" +#include "../lib/AccountList.h" +#include "../lib/Account.h" //SFLPhone -#include "SFLPhone.h" -#include "SFLPhoneView.h" +//#include "SFLPhone.h" +//#include "SFLPhoneView.h" ///Init static attributes AkonadiBackend* AkonadiBackend::m_pInstance = 0; +CallModel<>* AkonadiBackend::m_pModel = 0; ///Constructor AkonadiBackend::AkonadiBackend(QObject* parent) : ContactBackend(parent) @@ -60,6 +61,12 @@ AkonadiBackend::AkonadiBackend(QObject* parent) : ContactBackend(parent) //QTimer::singleShot( 0, this, SLOT( delayedInit() ) ); m_pSession = new Akonadi::Session( "SFLPhone::instance" ); + if ( not m_pModel ) { + m_pModel = new CallModel<>(CallModel<>::ActiveCall); + m_pModel->initCall(); + m_pModel->initHistory(); + } + // fetching all collections containing emails recursively, starting at the root collection Akonadi::CollectionFetchJob *job = new Akonadi::CollectionFetchJob( Akonadi::Collection::root(), Akonadi::CollectionFetchJob::Recursive, this ); job->fetchScope().setContentMimeTypes( QStringList() << "text/directory" ); @@ -95,7 +102,7 @@ Contact* AkonadiBackend::getContactByPhone(const QString& phoneNumber,bool resol if (!resolveDNS || phoneNumber.indexOf("@") == -1) return m_ContactByPhone[phoneNumber]; else if (!getHostNameFromPhone(phoneNumber).isEmpty() && m_ContactByPhone[getUserFromPhone(phoneNumber)]) { - foreach (Account* a, SFLPhone::model()->getAccountList()->getAccounts()) { + foreach (Account* a, m_pModel->getAccountList()->getAccounts()) { if (a->getAccountDetail(ACCOUNT_HOSTNAME) == getHostNameFromPhone(phoneNumber)) return m_ContactByPhone[getUserFromPhone(phoneNumber)]; } @@ -173,24 +180,24 @@ ContactList AkonadiBackend::update(Akonadi::Collection collection) } ///Edit backend value using an updated frontend contact -void AkonadiBackend::editContact(Contact* contact) +void AkonadiBackend::editContact(Contact* contact,QWidget* parent) { KABC::Addressee ct = m_AddrHash[contact->getUid()]; if (ct.uid() != contact->getUid()) { kDebug() << "Contact not found"; return; } - Akonadi::ContactEditor *editor = new Akonadi::ContactEditor( Akonadi::ContactEditor::EditMode, SFLPhone::app()->view() ); + Akonadi::ContactEditor *editor = new Akonadi::ContactEditor( Akonadi::ContactEditor::EditMode, parent ); Akonadi::Item item; item.setPayload<KABC::Addressee>(ct); editor->loadContact(item); - KDialog* dlg = new KDialog(SFLPhone::app()->view()); + KDialog* dlg = new KDialog(parent); dlg->setMainWidget(editor); dlg->exec(); } ///Add a new contact -void AkonadiBackend::addNewContact(Contact* contact) +void AkonadiBackend::addNewContact(Contact* contact,QWidget* parent) { KABC::Addressee newContact; newContact.setNickName ( contact->getNickName() ); @@ -222,14 +229,13 @@ void AkonadiBackend::addNewContact(Contact* contact) newContact.insertPhoneNumber(pn); } - //aContact->setPhoneNumbers (newNumbers );//TODO - Akonadi::ContactEditor *editor = new Akonadi::ContactEditor( Akonadi::ContactEditor::CreateMode, SFLPhone::app()->view() ); + Akonadi::ContactEditor *editor = new Akonadi::ContactEditor( Akonadi::ContactEditor::CreateMode, parent ); editor->setContactTemplate(newContact); - KDialog* dlg = new KDialog(SFLPhone::app()->view()); + KDialog* dlg = new KDialog(parent); dlg->setMainWidget(editor); dlg->exec(); @@ -239,6 +245,18 @@ void AkonadiBackend::addNewContact(Contact* contact) } } +///Implement virtual pure method +void AkonadiBackend::editContact(Contact* contact) +{ + editContact(contact,0); +} + +///Implement virtual pure method +void AkonadiBackend::addNewContact(Contact* contact) +{ + addNewContact(contact,0); +} + /***************************************************************************** * * diff --git a/kde/src/AkonadiBackend.h b/kde/src/klib/AkonadiBackend.h similarity index 84% rename from kde/src/AkonadiBackend.h rename to kde/src/klib/AkonadiBackend.h index cfbf5cde5deff6243edc52a4d29e2921d634147e..180a5b6a5ab99811efcff5580995dbf728cf9bd2 100644 --- a/kde/src/AkonadiBackend.h +++ b/kde/src/klib/AkonadiBackend.h @@ -20,7 +20,9 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * **************************************************************************/ -#include <lib/ContactBackend.h> +#include "../lib/ContactBackend.h" +#include "../lib/CallModel.h" +#include "../lib/typedefs.h" #include <akonadi/collectionmodel.h> //Qt @@ -44,14 +46,17 @@ class Contact; typedef QList<Contact*> ContactList; ///@class AkonadiBackend Implement a backend for Akonadi -class AkonadiBackend : public ContactBackend { +class LIB_EXPORT AkonadiBackend : public ContactBackend { Q_OBJECT public: static ContactBackend* getInstance(); Contact* getContactByPhone ( const QString& phoneNumber ,bool resolveDNS = false ); Contact* getContactByUid ( const QString& uid ); - void editContact ( Contact* contact ); - void addNewContact ( Contact* contact ); + void editContact ( Contact* contact , QWidget* parent = 0 ); + void addNewContact ( Contact* contact , QWidget* parent = 0 ); + + virtual void editContact ( Contact* contact ); + virtual void addNewContact ( Contact* contact ); private: AkonadiBackend(QObject* parent); @@ -63,6 +68,7 @@ private: //Attributes static AkonadiBackend* m_pInstance ; + static CallModel<>* m_pModel ; Akonadi::Session* m_pSession ; Akonadi::Collection m_Collection ; QHash<QString,KABC::Addressee> m_AddrHash ; diff --git a/kde/src/klib/CMakeLists.txt b/kde/src/klib/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e476e0f444985b845faccbf90cfc25706d5d56f0 --- /dev/null +++ b/kde/src/klib/CMakeLists.txt @@ -0,0 +1,55 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +ADD_DEFINITIONS("-std=c++0x") + +ADD_DEFINITIONS( + ${QT_DEFINITIONS} + -fexceptions +) + +PROJECT(ksflphone) + +SET ( KDE4_KABC_LIBS -lkabc ) + +SET(LOCAL_CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/") +SET(CMAKE_MODULE_PATH "${LOCAL_CMAKE_MODULE_PATH}") + +FIND_PACKAGE ( KDE4 REQUIRED ) +FIND_PACKAGE ( Qt4 REQUIRED ) + +INCLUDE ( KDE4Defaults ) + +set(GENERIC_LIB_VERSION "1.1.0") + +INCLUDE_DIRECTORIES ( ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}) + +#File to compile +set( ksflphone_LIB_SRCS + AkonadiBackend.cpp +) + +kde4_add_library( ksflphone SHARED ${ksflphone_LIB_SRCS} ) + +target_link_libraries( ksflphone + qtsflphone + ${QT_QTCORE_LIBRARY} + ${KDEPIMLIBS_AKONADI_KMIME_LIBS} + ${KDEPIMLIBS_AKONADI_LIBS} + ${KDEPIMLIBS_AKONADI_CONTACT_LIBS} + ${KDE4_KDEUI_LIBS} +) + +set_target_properties( ksflphone + PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} +) + +set( ksflphone_LIB_HDRS + AkonadiBackend.h +) + +install( FILES ${ksflphone_LIB_HDRS} + DESTINATION ${INCLUDE_INSTALL_DIR}/ksflphone + COMPONENT Devel +) + +install( TARGETS ksflphone ${INSTALL_TARGETS_DEFAULT_ARGS} ) diff --git a/kde/src/klib/dataengine.h b/kde/src/klib/dataengine.h new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/kde/src/lib/CMakeLists.txt b/kde/src/lib/CMakeLists.txt index f0c574c9d0f4296a9c5fc15b43dd237ab1cdfe76..3db06e46222025221271cb49ff41cf8d14a01202 100644 --- a/kde/src/lib/CMakeLists.txt +++ b/kde/src/lib/CMakeLists.txt @@ -20,7 +20,7 @@ FIND_PACKAGE ( Qt4 REQUIRED ) INCLUDE ( KDE4Defaults ) -set(GENERIC_LIB_VERSION "1.0.2") +set(GENERIC_LIB_VERSION "1.1.0") INCLUDE_DIRECTORIES ( ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/kde/src/lib/Call.cpp b/kde/src/lib/Call.cpp index d700174dda1cbecba349c2566486c3d942a90eda..223bb0706ee3ea48dc282718db565aabb10b2257 100644 --- a/kde/src/lib/Call.cpp +++ b/kde/src/lib/Call.cpp @@ -625,7 +625,7 @@ void Call::call() qDebug() << "account = " << m_Account; if(m_Account.isEmpty()) { qDebug() << "Account is not set, taking the first registered."; - this->m_Account = CallModelConvenience::getCurrentAccountId(); + this->m_Account = CallModel<>::getCurrentAccountId(); } if(!m_Account.isEmpty()) { qDebug() << "Calling " << m_CallNumber << " with account " << m_Account << ". callId : " << m_CallId; diff --git a/kde/src/lib/CallModel.h b/kde/src/lib/CallModel.h index 3346f93d6c3921466fda1f999ee6f14150436004..ae19567b0c0fafd667a57f5cc60d959daff8309f 100644 --- a/kde/src/lib/CallModel.h +++ b/kde/src/lib/CallModel.h @@ -23,6 +23,8 @@ #include <QObject> #include <QVector> +#include <QWidget> +#include <QModelIndex> #include <QMap> #include "typedefs.h" @@ -86,7 +88,7 @@ signals: * solution may be less "clean" than MVC, but is 3 time smaller and easier to improve (in fact, possible to improve). */ ///@class CallModel Central model/frontend to deal with sflphoned -template <typename CallWidget, typename Index> +template <typename CallWidget = QWidget*, typename Index = QModelIndex*> class LIB_EXPORT CallModel : public CallModelBase { public: enum ModelType { @@ -212,11 +214,11 @@ class LIB_EXPORT CallModel : public CallModelBase { bool updateCommon (Call* call); }; -class CallModelConvenience : public CallModel<QWidget*,QModelIndex*> +/*class CallModelConvenience : public CallModel<QWidget*,QModelIndex*> { public: CallModelConvenience(ModelType type) : CallModel<QWidget*,QModelIndex*>(type) {} -}; +};*/ #include "CallModel.hpp" diff --git a/kde/src/lib/Contact.cpp b/kde/src/lib/Contact.cpp index 6aa277e09460954b5434c8601b509327a19e213e..bc64c91e69fffad8b49cef54460f5efd63ac1067 100644 --- a/kde/src/lib/Contact.cpp +++ b/kde/src/lib/Contact.cpp @@ -150,7 +150,7 @@ void Contact::setFamilyName(const QString& name) ///Set the Photo/Avatar void Contact::setPhoto(QPixmap* photo) { - m_pPhoto = photo; + m_pPhoto = photo; } ///Set the formatted name (display name) diff --git a/kde/src/widgets/BookmarkDock.cpp b/kde/src/widgets/BookmarkDock.cpp index 4b6722456b3dc4d9af6149ba02d805b1e34ee343..82195d52f4d7935fea7e8dd34231c7edd6f29b0c 100644 --- a/kde/src/widgets/BookmarkDock.cpp +++ b/kde/src/widgets/BookmarkDock.cpp @@ -40,7 +40,7 @@ #include "SFLPhone.h" #include "widgets/CategoryDrawer.h" #include "widgets/CategorizedTreeWidget.h" -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" ///@class QNumericTreeWidgetItem : Tree widget with different sorting criterias class QNumericTreeWidgetItem : public QTreeWidgetItem { diff --git a/kde/src/widgets/CallTreeItem.cpp b/kde/src/widgets/CallTreeItem.cpp index 9ea46ccc42c5ec81f937287098a773adb8967a17..041ddaae881455186e99daea9fbf569b9b095448 100644 --- a/kde/src/widgets/CallTreeItem.cpp +++ b/kde/src/widgets/CallTreeItem.cpp @@ -48,7 +48,7 @@ #include "lib/Call.h" //SFLPhone -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" #include "widgets/TranslucentButtons.h" #include "SFLPhone.h" diff --git a/kde/src/widgets/ContactDock.cpp b/kde/src/widgets/ContactDock.cpp index 6003df1fed88ff9f63e1ec7902ea585c9a741bd7..80119af710445aee824f7e6a3b08e61e22fcf59b 100644 --- a/kde/src/widgets/ContactDock.cpp +++ b/kde/src/widgets/ContactDock.cpp @@ -40,7 +40,7 @@ #include <KIcon> //SFLPhone -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" #include "ContactItemWidget.h" #include "SFLPhone.h" #include "conf/ConfigurationSkeleton.h" diff --git a/kde/src/widgets/ContactItemWidget.cpp b/kde/src/widgets/ContactItemWidget.cpp index db15eaa48bca58d0e31186ffb1d15bb4919b2776..b253adfff36ad505dab9ab0e4bb4a234d1d9c16c 100644 --- a/kde/src/widgets/ContactItemWidget.cpp +++ b/kde/src/widgets/ContactItemWidget.cpp @@ -40,7 +40,7 @@ #include <unistd.h> //SFLPhone -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" #include "widgets/BookmarkDock.h" #include "SFLPhone.h" diff --git a/kde/src/widgets/HistoryDock.cpp b/kde/src/widgets/HistoryDock.cpp index 8202c3405e8a9afa412a80f3317e05d0d743cacf..b53bfa1f78fc82c81fdaf1540548599a7b3c4ff5 100644 --- a/kde/src/widgets/HistoryDock.cpp +++ b/kde/src/widgets/HistoryDock.cpp @@ -42,7 +42,7 @@ //SFLPhone #include "SFLPhone.h" #include "widgets/HistoryTreeItem.h" -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" #include "conf/ConfigurationSkeleton.h" //SFLPhone library diff --git a/kde/src/widgets/HistoryTreeItem.cpp b/kde/src/widgets/HistoryTreeItem.cpp index 74f54d9f8344ff22bbe4500bbd4089decbe8ea8b..3b6612e0c3f7f68654ddcd2a7b9057a3410259b5 100644 --- a/kde/src/widgets/HistoryTreeItem.cpp +++ b/kde/src/widgets/HistoryTreeItem.cpp @@ -52,7 +52,7 @@ #include "lib/Call.h" //SFLPhone -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" #include "SFLPhone.h" #include "widgets/BookmarkDock.h" diff --git a/kde/src/widgets/SortableDockCommon.cpp b/kde/src/widgets/SortableDockCommon.cpp index caaea4666b95756528e2fec3bec69b41faa17cb6..6740f7921e4ff6d6686ff31846d2ca5b4d1ee5e6 100644 --- a/kde/src/widgets/SortableDockCommon.cpp +++ b/kde/src/widgets/SortableDockCommon.cpp @@ -10,7 +10,7 @@ #include "lib/Contact.h" #include "lib/CallModel.h" #include "SFLPhone.h" -#include "AkonadiBackend.h" +#include "klib/AkonadiBackend.h" ///StaticEventHandler constructor StaticEventHandler::StaticEventHandler(QObject* parent) : QObject(parent)