From c9c74f40a76095f8636dcdf2d55fe7d930a6b92d Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Wed, 14 Apr 2010 16:26:02 -0400 Subject: [PATCH] Massive refactoring and rewrite for version 0.9.8, many regressions are still prepent --- sflphone-client-kde/src/CMakeLists.txt | 10 +- sflphone-client-kde/src/Call.cpp | 4 + sflphone-client-kde/src/Call.h | 1 + sflphone-client-kde/src/CallList.cpp | 5 +- sflphone-client-kde/src/CallList.h | 10 +- sflphone-client-kde/src/CallModel.cpp | 333 ++++++++++++++ sflphone-client-kde/src/CallModel.h | 123 ++++++ sflphone-client-kde/src/CallTreeItem.cpp | 178 ++------ sflphone-client-kde/src/CallTreeItem.h | 57 +-- sflphone-client-kde/src/CallTreeModel.h | 8 +- sflphone-client-kde/src/CallTreeView.cpp | 26 +- sflphone-client-kde/src/CallTreeView.h | 16 +- sflphone-client-kde/src/SFLPhone.cpp | 8 +- sflphone-client-kde/src/SFLPhoneView.cpp | 410 ++++++++---------- sflphone-client-kde/src/SFLPhoneView.h | 23 +- .../src/icons/user-group-properties.svgz | Bin 0 -> 91615 bytes sflphone-client-kde/src/sflphone_const.h | 1 + 17 files changed, 759 insertions(+), 454 deletions(-) mode change 100644 => 100755 sflphone-client-kde/src/CMakeLists.txt create mode 100644 sflphone-client-kde/src/CallModel.cpp create mode 100644 sflphone-client-kde/src/CallModel.h create mode 100644 sflphone-client-kde/src/icons/user-group-properties.svgz diff --git a/sflphone-client-kde/src/CMakeLists.txt b/sflphone-client-kde/src/CMakeLists.txt old mode 100644 new mode 100755 index cb06b3bd53..a8e8bd4eb3 --- a/sflphone-client-kde/src/CMakeLists.txt +++ b/sflphone-client-kde/src/CMakeLists.txt @@ -26,13 +26,13 @@ SET( sflphone_client_kde_SRCS Account.cpp AccountList.cpp Call.cpp - CallList.cpp - CallTreeView.cpp - CallTreeModel.cpp + #CallList.cpp + #CallTreeView.cpp + #CallTreeModel.cpp CallTreeItem.cpp configurationmanager_interface_singleton.cpp callmanager_interface_singleton.cpp - calllist_interface_singleton.cpp + #calllist_interface_singleton.cpp instance_interface_singleton.cpp AccountWizard.cpp AccountItemWidget.cpp @@ -51,6 +51,8 @@ SET( sflphone_client_kde_SRCS Codec.cpp Item.cpp AccountListModel.cpp + CallModel.cpp + #CallTreeWidget.cpp ) diff --git a/sflphone-client-kde/src/Call.cpp b/sflphone-client-kde/src/Call.cpp index 06a8777e61..8942159b8a 100644 --- a/sflphone-client-kde/src/Call.cpp +++ b/sflphone-client-kde/src/Call.cpp @@ -680,7 +680,11 @@ void Call::backspaceItemText() void Call::changeCurrentState(call_state newState) { + qDebug() << "Call state changed to: " << newState; currentState = newState; emit changed(); + + if (currentState == CALL_STATE_OVER) + emit isOver(this); } \ No newline at end of file diff --git a/sflphone-client-kde/src/Call.h b/sflphone-client-kde/src/Call.h index 0dea1e1f7f..2eb1b8798a 100644 --- a/sflphone-client-kde/src/Call.h +++ b/sflphone-client-kde/src/Call.h @@ -279,6 +279,7 @@ public: signals: void changed(); + void isOver(Call*); }; #endif diff --git a/sflphone-client-kde/src/CallList.cpp b/sflphone-client-kde/src/CallList.cpp index 2d8c0bc5b0..60cc00770d 100644 --- a/sflphone-client-kde/src/CallList.cpp +++ b/sflphone-client-kde/src/CallList.cpp @@ -36,7 +36,8 @@ CallList::CallList(QObject * parent) for(int i = 0 ; i < callList.size() ; i++) { calls->append(Call::buildExistingCall(callList[i])); } - MapStringString historyMap = configurationManager.getHistory().value(); + + MapStringString historyMap = configurationManager.getHistory().value(); qDebug() << "Call History = " << historyMap; QMapIterator<QString, QString> i(historyMap); while (i.hasNext()) { @@ -184,7 +185,7 @@ void CallList::clearHistory() } } -Call * CallList::createConversationFromCall(Call* call1, Call* call2) { +Call* CallList::createConversationFromCall(Call* call1, Call* call2) { qDebug() << "Need to join calls"; CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); //callManager.joinConference(call1->getCallId(),call2->getCallId()); diff --git a/sflphone-client-kde/src/CallList.h b/sflphone-client-kde/src/CallList.h index 9aea1f7472..e55aa94913 100644 --- a/sflphone-client-kde/src/CallList.h +++ b/sflphone-client-kde/src/CallList.h @@ -34,7 +34,7 @@ Q_OBJECT private: - QVector<Call *> * calls; + QVector<Call*>* calls; public: @@ -53,10 +53,10 @@ public: MapStringString getHistoryMap(); //Setters - Call * addDialingCall(const QString & peerName = "", QString account = ""); - Call * addIncomingCall(const QString & callId/*, const QString & from, const QString & account*/); - Call * addRingingCall(const QString & callId); - Call * createConversationFromCall(Call* call1, Call* call2); + Call* addDialingCall(const QString & peerName = "", QString account = ""); + Call* addIncomingCall(const QString & callId/*, const QString & from, const QString & account*/); + Call* addRingingCall(const QString & callId); + Call* createConversationFromCall(Call* call1, Call* call2); //GSetter QString generateCallId(); diff --git a/sflphone-client-kde/src/CallModel.cpp b/sflphone-client-kde/src/CallModel.cpp new file mode 100644 index 0000000000..9d11984f50 --- /dev/null +++ b/sflphone-client-kde/src/CallModel.cpp @@ -0,0 +1,333 @@ +/*************************************************************************** + * Copyright (C) 2009-2010 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Valle <emmanuel.lepage@savoirfairelinux.com >* + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include <CallModel.h> +#include <QDebug> +#include <unistd.h> + +#include "callmanager_interface_singleton.h" +#include "configurationmanager_interface_singleton.h" + +CallModel::CallModel(ModelType type, QWidget* parent) : QTreeWidget(parent) { + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); + QStringList callList = callManager.getCallList(); + qDebug() << "Call List = " << callList; + for(int i = 0 ; i < callList.size() ; i++) { + Call* tmpCall = Call::buildExistingCall(callList[i]); + activeCalls[tmpCall->getCallId()] = tmpCall; + if (type == ActiveCall) + addCall(tmpCall); + } + + //Add older calls + MapStringString historyMap = configurationManager.getHistory().value(); + qDebug() << "Call History = " << historyMap; + QMapIterator<QString, QString> i(historyMap); + while (i.hasNext()) { + i.next(); + uint startTimeStamp = i.key().toUInt(); + QStringList param = i.value().split("|"); + QString type = param[0]; + QString number = param[1]; + QString name = param[2]; + uint stopTimeStamp = param[3].toUInt(); + QString account = param[4]; + historyCalls[QString::number(startTimeStamp)] = Call::buildHistoryCall(generateCallId(), startTimeStamp, stopTimeStamp, account, name, number, type); + //if (type == ActiveCall) //TODO undelete + //addCall(historyCalls[QString::number(startTimeStamp)]); + } + + //Widget part + setAcceptDrops(true); + setDragEnabled(true); + CallTreeItemDelegate *delegate = new CallTreeItemDelegate(); + setItemDelegate(delegate); +} + +void CallModel::setTitle(QString title) { + headerItem()->setText(0,title); +} + +Call* CallModel::addCall(Call* call, Call* parent) { + InternalCallModelStruct* aNewStruct = new InternalCallModelStruct; + aNewStruct->call_real = call; + + QTreeWidgetItem* callItem = new QTreeWidgetItem(); + aNewStruct->currentItem = callItem; + + privateCallList_item[callItem] = aNewStruct; + privateCallList_call[call] = aNewStruct; + privateCallList_callId[call->getCallId()] = aNewStruct; + + aNewStruct->call = insertItem(callItem,parent); + privateCallList_widget[aNewStruct->call] = aNewStruct; + + setCurrentItem(callItem); + + connect(call, SIGNAL(isOver(Call*)), this, SLOT(destroyCall(Call*))); + return call; +} + +MapStringString CallModel::getHistoryMap() { + MapStringString toReturn; + foreach(Call* call, historyCalls) { + toReturn[historyCalls.key(call)] = Call::getTypeFromHistoryState(call->getHistoryState()) + "|" + call->getPeerPhoneNumber() + "|" + call->getPeerName() + "|" + call->getStopTimeStamp() + "|" + call->getAccountId(); + } +} + +Call* CallModel::addDialingCall(const QString & peerName, QString account) +{ + Call* call = Call::buildDialingCall(generateCallId(), peerName, account); + activeCalls[call->getCallId()] = call; + addCall(call); + selectItem(call); + return call; +} + +Call* CallModel::addIncomingCall(const QString & callId) +{ + Call* call = Call::buildIncomingCall(callId); + activeCalls[call->getCallId()] = call; + addCall(call); + selectItem(call); + return call; +} + +Call* CallModel::addRingingCall(const QString & callId) +{ + Call* call = Call::buildRingingCall(callId); + activeCalls[call->getCallId()] = call; + addCall(call); + selectItem(call); + return call; +} + +Call* CallModel::addConference(const QString & confID) { + qDebug() << "Notified of a new conference " << confID; + CallManagerInterface& callManager = CallManagerInterfaceSingleton::getInstance(); + sleep(2); + QStringList callList = callManager.getParticipantList(confID); + qDebug() << "Paticiapants are:" << callList; +} + +Call* CallModel::createConferenceFromCall(Call* call1, Call* call2) { + qDebug() << "Need to join call: " << call1->getCallId() << " and " << call2->getCallId(); + CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); + //callManager.joinConference(call1->getCallId(),call2->getCallId()); + callManager.joinParticipant(call1->getCallId(),call2->getCallId()); +} + +Call* CallModel::addParticipant(Call* call2, Call* conference) { + +} + +int CallModel::size() { + return activeCalls.size(); +} + +Call* CallModel::findCallByCallId(QString callId) { + return activeCalls[callId]; +} + +QList<Call*> CallModel::getCallList() { + QList<Call*> callList; + foreach(Call* call, activeCalls) { + callList.push_back(call); + } + return callList; +} + +void CallModel::mergeCall(Call* call1, Call* call2) { + +} + +uint CallModel::countChild(Call* call) { + +} + +bool CallModel::isConference(Call* call) { + +} + +QList<Call*> CallModel::children(Call* call) { + +} + +bool CallModel::endCall(Call* call, Call* endConference) { + +} + +InternalCallModelStruct CallModel::find(const CallTreeItem* call) { + +} + +bool CallModel::selectItem(Call* item) { + if (privateCallList_call[item]->currentItem) { + setCurrentItem(privateCallList_call[item]->currentItem); + return true; + } + else + return false; +} + +Call* CallModel::getCurrentItem() { + if (currentItem() && privateCallList_item[QTreeWidget::currentItem()]) + return privateCallList_item[QTreeWidget::currentItem()]->call_real; + else + return false; +} + +bool CallModel::removeItem(Call* item) { + if (indexOfTopLevelItem(privateCallList_call[item]->currentItem) != -1) //TODO To remove once safe + removeItemWidget(privateCallList_call[item]->currentItem,0); +} + +QWidget* CallModel::getWidget() { + return this; +} + +void CallModel::destroyCall(Call* toDestroy) { + if (privateCallList_call[toDestroy]->currentItem == currentItem()) + setCurrentItem(0); + + if (indexOfTopLevelItem(privateCallList_call[toDestroy]->currentItem) != -1) + takeTopLevelItem(indexOfTopLevelItem(privateCallList_call[toDestroy]->currentItem)); + else + privateCallList_call[toDestroy]->currentItem->parent()->removeChild(privateCallList_call[toDestroy]->currentItem); +} + +QTreeWidgetItem* CallModel::extractItem(QString callId) { + QTreeWidgetItem* currentItem = privateCallList_callId[callId]->currentItem; + return extractItem(currentItem); +} + +QTreeWidgetItem* CallModel::extractItem(QTreeWidgetItem* item) { + QTreeWidgetItem* parentItem = item->parent(); + + if (parentItem) { + QTreeWidgetItem* toReturn = parentItem->takeChild(parentItem->indexOfChild(item)); + if (parentItem->childCount() == 1) { + insertItem(extractItem(parentItem->child(0))); + takeTopLevelItem(indexOfTopLevelItem(parentItem)); + delete parentItem; + } + return toReturn; + } + else + return takeTopLevelItem(indexOfTopLevelItem(item)); +} + +CallTreeItem* CallModel::insertItem(QTreeWidgetItem* item, Call* parent) { + return insertItem(item,(parent)?privateCallList_call[parent]->currentItem:0); +} + +CallTreeItem* CallModel::insertItem(QTreeWidgetItem* item, QTreeWidgetItem* parent) { + if (!parent) + insertTopLevelItem(0,item); + else + parent->addChild(item); + + privateCallList_widget.remove(privateCallList_item[item]->call); + privateCallList_item[item]->call = new CallTreeItem(); + privateCallList_item[item]->call->setCall(privateCallList_item[item]->call_real); + privateCallList_widget[privateCallList_item[item]->call] = privateCallList_item[item]; + setItemWidget(item,0,privateCallList_item[item]->call); + + //TODO check to destroy 1 participant conferences + expandAll(); + return privateCallList_item[item]->call; +} + +void CallModel::clearArtefact(QTreeWidgetItem* item) { + item->setText(0,""); +} + +bool CallModel::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) { + QByteArray encodedData = data->data("text/sflphone.call.id"); + + clearArtefact(privateCallList_callId[encodedData]->currentItem); + + if (!parent) { + qDebug() << "Call dropped on empty space"; + insertItem(extractItem(encodedData)); + return true; //TODO this call may be (or not) in a conversation, if yes, split it + } + + if (privateCallList_item[parent]->call_real->getCallId() == QString(encodedData)) { + qDebug() << "Call dropped on itself"; + return true; //Item dropped on itself + } + + if ((parent->parent()) || (parent->childCount())) { + qDebug() << "Call dropped on a conference"; + if (privateCallList_callId[encodedData]->currentItem->parent()) + if (privateCallList_callId[encodedData]->currentItem->parent() == parent->parent()) { + qDebug() << "Call dropped on it's own conversation"; + return true; + } + + QTreeWidgetItem* call1 = extractItem(encodedData); + QTreeWidgetItem* call2 = (parent->parent())?parent->parent():parent; + insertItem(call1,call2); + createConferenceFromCall(privateCallList_item[call1]->call_real,privateCallList_item[call2]->call_real); + + return true; //TODO this is a conference call, need to check if the call is in the conversation, if not, add it + } + + //Create a conference + QTreeWidgetItem* newConference = new QTreeWidgetItem(this); + newConference->setText(0,"Conference"); + qDebug() << "Call dropped on another call"; + + QTreeWidgetItem* call1 = extractItem(encodedData); + insertItem(call1,newConference); + insertItem(extractItem(parent),newConference); + + createConferenceFromCall(privateCallList_item[call1]->call_real,privateCallList_item[parent]->call_real); + + return true; +} + + +QMimeData* CallModel::mimeData(const QList<QTreeWidgetItem *> items) const { + QMimeData *mimeData = new QMimeData(); + + //Call ID for internal call merging and spliting + mimeData->setData("text/sflphone.call.id", privateCallList_item[items[0]]->call_real->getCallId().toAscii()); + + //Plain text for other applications + mimeData->setData("text/plain", QString(privateCallList_item[items[0]]->call_real->getPeerName()+"\n"+privateCallList_item[items[0]]->call_real->getPeerPhoneNumber()).toAscii()); + + //BUG Comment this line if you don't want to see ugly artefact + items[0]->setText(0, privateCallList_item[items[0]]->call_real->getPeerName() + "\n" + privateCallList_item[items[0]]->call_real->getPeerPhoneNumber()); + return mimeData; +} + +QString CallModel::generateCallId() +{ + int id = qrand(); + QString res = QString::number(id); + return res; +} + +void CallModel::clearHistory() +{ + historyCalls.clear(); +} \ No newline at end of file diff --git a/sflphone-client-kde/src/CallModel.h b/sflphone-client-kde/src/CallModel.h new file mode 100644 index 0000000000..4335a143e9 --- /dev/null +++ b/sflphone-client-kde/src/CallModel.h @@ -0,0 +1,123 @@ +/*************************************************************************** + * Copyright (C) 2009-2010 by Savoir-Faire Linux * + * Author : Emmanuel Lepage Valle <emmanuel.lepage@savoirfairelinux.com >* + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef CALL_MODEL +#define CALL_MODEL + +#include <QObject> +#include <QHash> +#include <QTreeWidgetItem> +#include <QVector> + +#include "CallTreeItem.h" +#include "Call.h" +#include "CallTreeWidget.h" +#include "dbus/metatypes.h" + +/** Note from the author: It was previously done by a QAbstractModel + QTreeView, but the sip-call use case is incompatible + * with the MVC model. The MVC never got to a point were it was bug-free and the code was getting dirty. The QTreeWidget + * solution may be less "clean" than MVC, but is 3 time smaller and easier to improve. + * + * This model is the view itself (private inheritance) so drag and drop can interact directly with the model without cross + * layer hack. This call merge the content of 4 previous classes (CallTreeModel, CallTreeView, CallList and most of the + * previous CallTreeItem). + */ + +struct InternalCallModelStruct { + InternalCallModelStruct* parent; + CallTreeItem* call; + Call* call_real; + QTreeWidgetItem* currentItem; + QList<InternalCallModelStruct*> children; +}; + +struct InternalCallModelStruct; + + +class CallTreeItemDelegate : public QItemDelegate +{ + public: + CallTreeItemDelegate() { } + QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index ) const { return QSize(0,60); } +}; + + + +class CallModel : private QTreeWidget { + Q_OBJECT + public: + enum ModelType { + ActiveCall, + History + }; + + CallModel(ModelType type, QWidget* parent =0); + Call* addCall(Call* call, Call* parent =0); + int size(); + Call* findCallByCallId(QString callId); + void mergeCall(Call* call1, Call* call2); + uint countChild(Call* call); + bool isConference(Call* call); + QList<Call*> children(Call* call); + QList<Call*> getCallList(); + bool endCall(Call* call, Call* endConference = false); + bool selectItem(Call* item); + Call* getCurrentItem(); + bool removeItem(Call* item); + QWidget* getWidget(); + void setTitle(QString title); + bool dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action); + QMimeData *mimeData(const QList<QTreeWidgetItem *> items) const; + + Call* addDialingCall(const QString & peerName = "", QString account = ""); + Call* addIncomingCall(const QString & callId/*, const QString & from, const QString & account*/); + Call* addRingingCall(const QString & callId); + Call* createConferenceFromCall(Call* call1, Call* call2); + Call* addConference(const QString &confID); + Call* addParticipant(Call* call2, Call* conference); + + MapStringString getHistoryMap(); + + protected: + void dragEnterEvent(QDragEnterEvent *e) { e->accept(); } + void dragMoveEvent(QDragMoveEvent *e) { e->accept(); } + + private: + QHash<QString, Call*> activeCalls; + QHash<QString, Call*> historyCalls; + QHash<CallTreeItem* , InternalCallModelStruct*> privateCallList_widget; + QHash<QTreeWidgetItem* , InternalCallModelStruct*> privateCallList_item; + QHash<Call* , InternalCallModelStruct*> privateCallList_call; + QHash<QString , InternalCallModelStruct*> privateCallList_callId; + InternalCallModelStruct find(const CallTreeItem* call); + QTreeWidgetItem* extractItem(QString callId); + QTreeWidgetItem* extractItem(QTreeWidgetItem* item); + CallTreeItem* insertItem(QTreeWidgetItem* item, QTreeWidgetItem* parent=0); + CallTreeItem* insertItem(QTreeWidgetItem* item, Call* parent); + QString generateCallId(); + void clearArtefact(QTreeWidgetItem* item); + + private slots: + void destroyCall(Call* toDestroy); + + public slots: + void clearHistory(); +}; +#endif \ No newline at end of file diff --git a/sflphone-client-kde/src/CallTreeItem.cpp b/sflphone-client-kde/src/CallTreeItem.cpp index 202b178a76..2e195cbb98 100644 --- a/sflphone-client-kde/src/CallTreeItem.cpp +++ b/sflphone-client-kde/src/CallTreeItem.cpp @@ -29,157 +29,33 @@ #include "sflphone_const.h" #include "CallTreeItem.h" -const char * CallTreeItem::callStateIcons[11] = {ICON_INCOMING, ICON_RINGING, ICON_CURRENT, ICON_DIALING, ICON_HOLD, ICON_FAILURE, ICON_BUSY, ICON_TRANSFER, ICON_TRANSF_HOLD, "", ""}; - -CallTreeItem::CallTreeItem(const QVector<QVariant> &data, CallTreeItem *parent) - : parentItem(parent), - itemCall(0), - itemWidget(0), - itemData(data) - { - - } - -CallTreeItem::CallTreeItem(const CallTreeItem *toCopy, CallTreeItem *parent) - : parentItem(parent), - itemCall(toCopy->itemCall), - itemWidget(toCopy->itemWidget), - itemData(toCopy->itemData) +const char * CallTreeItem::callStateIcons[12] = {ICON_INCOMING, ICON_RINGING, ICON_CURRENT, ICON_DIALING, ICON_HOLD, ICON_FAILURE, ICON_BUSY, ICON_TRANSFER, ICON_TRANSF_HOLD, "", "", ICON_CONFERENCE}; + +CallTreeItem::CallTreeItem(QWidget *parent) + : itemCall(0), QWidget(parent) { - + } - CallTreeItem::~CallTreeItem() - { - qDeleteAll(childItems); - } - - CallTreeItem *CallTreeItem::child(int number) - { - return childItems.value(number); - } - - int CallTreeItem::childCount() const - { - return childItems.count(); - } - - int CallTreeItem::childNumber() const - { - if (parentItem) - return parentItem->childItems.indexOf(const_cast<CallTreeItem*>(this)); - return 0; - } - - int CallTreeItem::columnCount() const - { - return itemData.count(); - } - - QVariant CallTreeItem::data(int column) const - { - return itemData.value(column); - } - -Call* CallTreeItem::call() const +CallTreeItem::~CallTreeItem() { - return itemCall; + } -QWidget* CallTreeItem::widget() const +Call* CallTreeItem::call() const { - return itemWidget; + return itemCall; } - bool CallTreeItem::insertChildren(int position, int count, int columns) - { - if (position < 0 || position > childItems.size()) - return false; - - for (int row = 0; row < count; ++row) { - QVector<QVariant> data(columns); - CallTreeItem *item = new CallTreeItem(data, this); - childItems.insert(position, item); - } - - return true; - } - - bool CallTreeItem::insertColumns(int position, int columns) - { - if (position < 0 || position > itemData.size()) - return false; - - for (int column = 0; column < columns; ++column) { - itemData.insert(position, QVariant()); - } - - foreach (CallTreeItem *child, childItems) { - child->insertColumns(position, columns); - } - - return true; - } - - CallTreeItem *CallTreeItem::parent() - { - return parentItem; - } - - bool CallTreeItem::removeChildren(int position, int count) - { - if (position < 0 || position + count > childItems.size()) - return false; - - for (int row = 0; row < count; ++row) { - delete childItems.takeAt(position); - } - - return true; - } - - bool CallTreeItem::removeColumns(int position, int columns) - { - if (position < 0 || position + columns > itemData.size()) - return false; - - for (int column = 0; column < columns; ++column) { - itemData.remove(position); - } - - foreach (CallTreeItem *child, childItems) { - child->removeColumns(position, columns); - } - - return true; - } - - bool CallTreeItem::setData(int column, const QVariant &value) - { - itemData.resize(10); - if (column < 0 || column >= itemData.size()) { - qDebug() << "Je suis ici!!!! " << itemData; - return false; - } - - itemData[column] = value; - return true; - } - - void CallTreeItem::setCall(Call *call) { itemCall = call; - itemWidget = new QWidget(); - labelIcon = new QLabel(); - //labelCallNumber = new QLabel("123"/*itemCall->getPeerPhoneNumber()*/); - labelCallNumber2 = new QLabel(itemCall->getPeerPhoneNumber()); + labelCallNumber2 = new QLabel(itemCall->getPeerPhoneNumber()); labelTransferPrefix = new QLabel(i18n("Transfer to : ")); labelTransferNumber = new QLabel(); - QSpacerItem * horizontalSpacer = new QSpacerItem(16777215, 20, QSizePolicy::Preferred, QSizePolicy::Minimum); - QSpacerItem * verticalSpacer = new QSpacerItem(16777215, 20, QSizePolicy::Expanding, QSizePolicy::Expanding); + QSpacerItem * verticalSpacer = new QSpacerItem(16777215, 20, QSizePolicy::Expanding, QSizePolicy::Expanding); QHBoxLayout * mainLayout = new QHBoxLayout(); mainLayout->setContentsMargins ( 3, 1, 2, 1); @@ -202,24 +78,22 @@ void CallTreeItem::setCall(Call *call) transfer->addWidget(labelTransferPrefix); transfer->addWidget(labelTransferNumber); descr->addLayout(transfer); - descr->addItem(verticalSpacer); + descr->addItem(verticalSpacer); mainLayout->addLayout(descr); - //mainLayout->addItem(horizontalSpacer); - itemWidget->setLayout(mainLayout); - itemWidget->setMinimumSize(QSize(50, 30)); + setLayout(mainLayout); + setMinimumSize(QSize(50, 30)); connect(itemCall, SIGNAL(changed()), - this, SLOT(updated())); + this, SLOT(updated())); - updated(); + updated(); } void CallTreeItem::updated() { call_state state = itemCall->getState(); bool recording = itemCall->getRecording(); - if(state != CALL_STATE_OVER) { if(state == CALL_STATE_CURRENT && recording) { labelIcon->setPixmap(QPixmap(ICON_CURRENT_REC)); @@ -235,19 +109,23 @@ void CallTreeItem::updated() if(!transfer) { labelTransferNumber->setText(""); } - //labelTransferNumber->setText(itemCall->getTransferNumber()); + labelTransferNumber->setText(itemCall->getTransferNumber()); labelCallNumber2->setText(itemCall->getPeerPhoneNumber()); - if(state == CALL_STATE_DIALING) { - labelCallNumber2->setText(itemCall->getCallNumber()); - } + if(state == CALL_STATE_DIALING) { + labelCallNumber2->setText(itemCall->getCallNumber()); + } } else { - emit over(itemCall); - itemWidget->setVisible(false); - qDebug() << "Updating item of call of state OVER. Doing nothing."; + qDebug() << "Updating item of call of state OVER. Doing nothing."; } +} - +void CallTreeItem::setConference(bool value) { + conference = value; } +bool CallTreeItem::isConference() { + return conference; +} + \ No newline at end of file diff --git a/sflphone-client-kde/src/CallTreeItem.h b/sflphone-client-kde/src/CallTreeItem.h index 128a14ab88..57587b9a4f 100644 --- a/sflphone-client-kde/src/CallTreeItem.h +++ b/sflphone-client-kde/src/CallTreeItem.h @@ -37,55 +37,42 @@ #include <QtGui/QSpacerItem> #include <QtGui/QHBoxLayout> #include <QtGui/QVBoxLayout> +#include <KIcon> #include "Call.h" -class CallTreeItem : public QObject - { +class CallTreeItem : public QWidget +{ Q_OBJECT public: - CallTreeItem(const QVector<QVariant> &data, CallTreeItem *parent); - CallTreeItem(const CallTreeItem *toCopy, CallTreeItem *parent); + CallTreeItem(QWidget* parent =0); ~CallTreeItem(); - - CallTreeItem *child(int number); - int childCount() const; - int columnCount() const; - QVariant data(int column) const; + Call* call() const; - QWidget* widget() const; - bool insertChildren(int position, int count, int columns); - bool insertColumns(int position, int columns); - CallTreeItem *parent(); - bool removeChildren(int position, int count); - bool removeColumns(int position, int columns); - int childNumber() const; - bool setData(int column, const QVariant &value); void setCall(Call *call); - - static const char * callStateIcons[11]; + static const char * callStateIcons[12]; + void setConference(bool value); + bool isConference(); + private: - QList<CallTreeItem*> childItems; - QVector<QVariant> itemData; - CallTreeItem *parentItem; Call *itemCall; - QWidget *itemWidget; - QLabel * labelIcon; - QLabel * labelPeerName; - QLabel * labelCallNumber2; - QLabel * labelTransferPrefix; - QLabel * labelTransferNumber; + QLabel* labelIcon; + QLabel* labelPeerName; + QLabel* labelCallNumber2; + QLabel* labelTransferPrefix; + QLabel* labelTransferNumber; - QWidget * historyItemWidget; - QLabel * labelHistoryIcon; - QLabel * labelHistoryPeerName; - QLabel * labelHistoryCallNumber; - QLabel * labelHistoryTime; - friend class CallTreeItem; + QWidget* historyItemWidget; + QLabel* labelHistoryIcon; + QLabel* labelHistoryPeerName; + QLabel* labelHistoryCallNumber; + QLabel* labelHistoryTime; + friend class CallTreeItem; + bool conference; public slots: - void updated(); + void updated(); signals: void over(Call*); }; diff --git a/sflphone-client-kde/src/CallTreeModel.h b/sflphone-client-kde/src/CallTreeModel.h index 57b06ba1fe..c04fdc36f6 100644 --- a/sflphone-client-kde/src/CallTreeModel.h +++ b/sflphone-client-kde/src/CallTreeModel.h @@ -64,10 +64,10 @@ public: bool insertRows(int position, int rows, const QModelIndex &parent = QModelIndex()); bool removeRows(int position, int rows, const QModelIndex &parent = QModelIndex()); - Qt::DropActions supportedDropActions(); - virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); - QStringList mimeTypes() const; - QMimeData* mimeData(const QModelIndexList &indexes) const; + Qt::DropActions supportedDropActions(); + virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); + QStringList mimeTypes() const; + QMimeData* mimeData(const QModelIndexList &indexes) const; CallTreeItem *getItem(const QModelIndex &index) const; diff --git a/sflphone-client-kde/src/CallTreeView.cpp b/sflphone-client-kde/src/CallTreeView.cpp index 0eb21530b7..2f2a3f4903 100644 --- a/sflphone-client-kde/src/CallTreeView.cpp +++ b/sflphone-client-kde/src/CallTreeView.cpp @@ -32,8 +32,8 @@ CallTreeView::CallTreeView(QWidget * parent) { treeModel = new CallTreeModel(this); setModel(treeModel); - CallTreeItemDelegate *delegate = new CallTreeItemDelegate(); - setItemDelegate(delegate); +// CallTreeItemDelegate *delegate = new CallTreeItemDelegate(); +// setItemDelegate(delegate); setHeaderHidden(true); setRootIsDecorated(false); setSelectionMode(QAbstractItemView::SingleSelection); @@ -41,17 +41,17 @@ CallTreeView::CallTreeView(QWidget * parent) setAcceptDrops(true); setUniformRowHeights(true); setDropIndicatorShown(true); - //setDragDropMode(QAbstractItemView::DragDrop); - setSelectionMode(QAbstractItemView::ExtendedSelection); - - setDragEnabled(TRUE); - setAcceptDrops(TRUE); - setDropIndicatorShown(TRUE); - - connect(this , SIGNAL(clicked(QModelIndex)), this, SLOT(itemClicked(QModelIndex))); - connect(treeModel, SIGNAL(joinCall(QString,QString)), this, SLOT(joinCall(QString, QString))); - connect(treeModel, SIGNAL(joinCall(QString,QString)), this, SLOT(expandAll())); - connect(treeModel, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex& ) ), this, SLOT(adaptColumns(const QModelIndex &, const QModelIndex&) ) ); + //setDragDropMode(QAbstractItemView::DragDrop); + setSelectionMode(QAbstractItemView::ExtendedSelection); + + setDragEnabled(TRUE); + setAcceptDrops(TRUE); + setDropIndicatorShown(TRUE); + + connect(this , SIGNAL(clicked(QModelIndex)), this, SLOT(itemClicked(QModelIndex))); + connect(treeModel, SIGNAL(joinCall(QString,QString)), this, SLOT(joinCall(QString, QString))); + connect(treeModel, SIGNAL(joinCall(QString,QString)), this, SLOT(expandAll())); + connect(treeModel, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex& ) ), this, SLOT(adaptColumns(const QModelIndex &, const QModelIndex&) ) ); } CallTreeView::~CallTreeView() diff --git a/sflphone-client-kde/src/CallTreeView.h b/sflphone-client-kde/src/CallTreeView.h index d2e9b8e6c5..c72bba8cc1 100644 --- a/sflphone-client-kde/src/CallTreeView.h +++ b/sflphone-client-kde/src/CallTreeView.h @@ -36,12 +36,12 @@ class QModelIndex; class QTreeWidgetItem; class QMimeData; -class CallTreeItemDelegate : public QItemDelegate -{ -public: - CallTreeItemDelegate() { } - QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const { return QSize(0,50); } -}; +// class CallTreeItemDelegate : public QItemDelegate +// { +// public: +// CallTreeItemDelegate() { } +// QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const { return QSize(0,50); } +// }; class CallTreeView : public QTreeView { @@ -57,8 +57,8 @@ public: int count(); QStringList mimeTypes() const; Qt::DropActions supportedDropActions () const; - CallTreeItem* insert(Call* call); - CallTreeItem* insert(CallTreeItem *item, Call* call); + CallTreeItem* insert(Call* call); + CallTreeItem* insert(CallTreeItem *item, Call* call); // protected: // void dropEvent(QDropEvent* event); diff --git a/sflphone-client-kde/src/SFLPhone.cpp b/sflphone-client-kde/src/SFLPhone.cpp index aa2003eb73..df60ebc66b 100644 --- a/sflphone-client-kde/src/SFLPhone.cpp +++ b/sflphone-client-kde/src/SFLPhone.cpp @@ -220,11 +220,11 @@ bool SFLPhone::queryClose() void SFLPhone::quitButton() { InstanceInterface & instance = InstanceInterfaceSingleton::getInstance(); - qDebug() << "quitButton : " << view->callTree->count() << " calls open."; + //qDebug() << "quitButton : " << view->callTree->count() << " calls open."; - if(view->callTree->count() > 0 && instance.getRegistrationCount() <= 1) { - qDebug() << "Attempting to quit when still having some calls open."; - } + //if(view->callTree->count() > 0 && instance.getRegistrationCount() <= 1) { + //qDebug() << "Attempting to quit when still having some calls open."; + //} view->saveState(); instance.Unregister(getpid()); qApp->quit(); diff --git a/sflphone-client-kde/src/SFLPhoneView.cpp b/sflphone-client-kde/src/SFLPhoneView.cpp index 74e03f322a..8d0e503e9e 100644 --- a/sflphone-client-kde/src/SFLPhoneView.cpp +++ b/sflphone-client-kde/src/SFLPhoneView.cpp @@ -60,7 +60,9 @@ AccountList * SFLPhoneView::accountList; QString SFLPhoneView::priorAccountId; SFLPhoneView::SFLPhoneView(QWidget *parent) - : QWidget(parent) + : QWidget(parent), + callTreeModel(CallModel::ActiveCall), + historyTreeModel(CallModel::History) { setupUi(this); @@ -69,25 +71,29 @@ SFLPhoneView::SFLPhoneView(QWidget *parent) errorWindow = new QErrorMessage(this); - callList = & CallListInterfaceSingleton::getInstance(); //CallList(this); + //callList = & CallListInterfaceSingleton::getInstance(); //CallList(this); - callTree = new CallTreeView(page_callList); - historyTree = new CallTreeView(page_callHistory); + //callTree = new CallTreeView(page_callList); + //historyTree = new CallTreeWidget(page_callHistory); + //callTree = new CallTreeWidget(this); + //historyTree = new CallTreeWidget(this); + callTreeModel.setTitle("Calls"); + historyTreeModel.setTitle("History"); - page_callList->layout()->addWidget(callTree); - page_callHistory->layout()->addWidget(historyTree); + page_callList->layout()->addWidget(callTreeModel.getWidget()); + page_callHistory->layout()->addWidget(historyTreeModel.getWidget()); historyLoaded = false; - for(int i = 0 ; i < callList->size() ; i++) { - Call * call = (*callList)[i]; - if(call->getState() == CALL_STATE_OVER) { - addCallToCallHistory(call); - } - else { - addCallToCallList(call); - } - } +// for(int i = 0 ; i < callTreeModel.size() ; i++) { +// Call * call = (*callList)[i]; +// if(call->getState() == CALL_STATE_OVER) { +// addCallToCallHistory(call); +// } +// else { +// addCallToCallList(call); +// } +// } accountList = new AccountList(false); accountList->updateAccounts(); @@ -109,6 +115,8 @@ SFLPhoneView::SFLPhoneView(QWidget *parent) this, SLOT(on1_callStateChanged(const QString &, const QString &))); connect(&callManager, SIGNAL(incomingCall(const QString &, const QString &, const QString &)), this, SLOT(on1_incomingCall(const QString &, const QString &))); + connect(&callManager, SIGNAL(conferenceCreated(const QString &)), + this, SLOT(on1_incommingConference(const QString &))); connect(&callManager, SIGNAL(incomingMessage(const QString &, const QString &)), this, SLOT(on1_incomingMessage(const QString &, const QString &))); connect(&callManager, SIGNAL(voiceMailNotify(const QString &, int)), @@ -122,8 +130,8 @@ SFLPhoneView::SFLPhoneView(QWidget *parent) connect(&configurationManager, SIGNAL(audioManagerChanged()), this, SLOT(on1_audioManagerChanged())); - connect(configDialog, SIGNAL(clearCallHistoryAsked()), - callList, SLOT(clearHistory())); +// connect(configDialog, SIGNAL(clearCallHistoryAsked()), //TODO restore +// &callTreeModel, SLOT(clearHistory())); connect(configDialog, SIGNAL(changesApplied()), this, SLOT(loadWindow())); @@ -133,11 +141,11 @@ SFLPhoneView::SFLPhoneView(QWidget *parent) connect(accountList, SIGNAL(accountListUpdated()), this, SLOT(updateWindowCallState())); - connect(callTree, SIGNAL(itemChanged()), //currentItemChanged + connect(callTreeModel.getWidget(), SIGNAL(itemChanged()), //currentItemChanged this, SLOT(on_callTree_currentItemChanged())); - connect(callTree, SIGNAL(itemChanged()), //ITem changed + connect(callTreeModel.getWidget(), SIGNAL(itemChanged()), //ITem changed this, SLOT(on_callTree_itemChanged())); - connect(callTree, SIGNAL(doubleClicked(const QModelIndex &)), + connect(callTreeModel.getWidget(), SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(on_callTree_itemDoubleClicked(const QModelIndex&))); @@ -152,7 +160,7 @@ SFLPhoneView::~SFLPhoneView() void SFLPhoneView::saveState() { ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - configurationManager.setHistory(callList->getHistoryMap()); + configurationManager.setHistory(callTreeModel.getHistoryMap()); } void SFLPhoneView::loadWindow() @@ -206,16 +214,18 @@ QErrorMessage * SFLPhoneView::getErrorWindow() return errorWindow; } -CallTreeItem* SFLPhoneView::addCallToCallList(Call * call) -{ - return callTree->insert(call); -} +// Call* SFLPhoneView::addCallToCallList(Call * call) +// { +// // return callTree->insert(call); +// return callTreeModel.addCall(call); +// } -CallTreeItem* SFLPhoneView::addCallToCallHistory(Call * call) -{ - return historyTree->insert(call); - -} +// Call* SFLPhoneView::addCallToCallHistory(Call * call) +// { +// //return historyTree->insert(call); //TODO restore +// return historyTree.addCall(call); +// +// } void SFLPhoneView::addContactToContactList(Contact * contact) { @@ -233,39 +243,37 @@ void SFLPhoneView::typeString(QString str) CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); if(stackedWidget_screen->currentWidget() == page_callList) { - CallTreeItem * item = callTree->currentItem(); + Call* call = callTreeModel.getCurrentItem(); callManager.playDTMF(str); Call *currentCall = 0; Call *candidate = 0; - if(item) { - Call *call = item->call(); - - if (call) { - if(call->getState() == CALL_STATE_CURRENT) { - currentCall = call; - } + if(call) { + if(call->getState() == CALL_STATE_CURRENT) { + currentCall = call; } } - for(int i = callList->size() - 1 ; i >= 0 ; i--) - { - Call *call = (*callList)[i]; - - if(currentCall != call && call->getState() == CALL_STATE_CURRENT) { - - action(call, CALL_ACTION_HOLD); +// for(int i = callTreeModel.size() - 1 ; i >= 0 ; i--) +// { +// Call *call2 = (*callList)[i]; +// +// +// } + foreach (Call* call2, callTreeModel.getCallList()) { + if(currentCall != call2 && call2->getState() == CALL_STATE_CURRENT) { + action(call2, CALL_ACTION_HOLD); } - else if(call->getState() == CALL_STATE_DIALING) { - candidate = call; + else if(call2->getState() == CALL_STATE_DIALING) { + candidate = call2; } } if(!currentCall && !candidate) { qDebug() << "Typing when no item is selected. Opening an item."; - candidate = callList->addDialingCall(); - addCallToCallList(candidate); - callTree->setCurrentRow(callTree->count() + 1); + candidate = callTreeModel.addDialingCall(); + //callTree->setCurrentRow(callTree->count() + 1); //TODO + //callTreeModel.selectItem(addCallToCallList(candidate)); } if(!currentCall && candidate) { @@ -289,23 +297,18 @@ void SFLPhoneView::backspace() qDebug() << "backspace"; if(stackedWidget_screen->currentWidget() == page_callList) { qDebug() << "In call list."; - CallTreeItem * item = callTree->currentItem(); - if(!item) { - qDebug() << "Backspace when no item is selected. Doing nothing."; + Call* call = callTreeModel.getCurrentItem(); + if(!call) { + qDebug() << "Error : Backspace on unexisting call."; } else { - Call * call = callTree->currentItem()->call(); - if(!call) { - qDebug() << "Error : Backspace on unexisting call."; - } - else { - call->backspaceItemText(); - if(call->getState() == CALL_STATE_OVER) { - callTree->removeCurrent(); + call->backspaceItemText(); + if(call->getState() == CALL_STATE_OVER) { + callTreeModel.removeItem(callTreeModel.getCurrentItem()); - if(call->getHistoryState() != NONE) { - historyTree->insert(call); - } + if(call->getHistoryState() != NONE) { + //historyTree->insert(call); + historyTreeModel.addCall(call); } } } @@ -317,25 +320,16 @@ void SFLPhoneView::escape() qDebug() << "escape"; if(stackedWidget_screen->currentWidget() == page_callList ) { qDebug() << "In call list."; - CallTreeItem * item = callTree->currentItem(); - if(!item) { + Call* call = callTreeModel.getCurrentItem(); + if(!call) { qDebug() << "Escape when no item is selected. Doing nothing."; } else { - Call * call = item->call(); - - if(!call) { - qDebug() << "Error : Escape on unexisting call."; + if(call->getState() == CALL_STATE_TRANSFER || call->getState() == CALL_STATE_TRANSF_HOLD) { + action(call, CALL_ACTION_TRANSFER); } else { - if(call->getState() == CALL_STATE_TRANSFER ||call->getState() == CALL_STATE_TRANSF_HOLD) - { - action(call, CALL_ACTION_TRANSFER); - } - else - { - action(call, CALL_ACTION_REFUSE); - } + action(call, CALL_ACTION_REFUSE); } } } @@ -354,44 +348,35 @@ void SFLPhoneView::enter() qDebug() << "enter"; if(stackedWidget_screen->currentWidget() == page_callList ) { qDebug() << "In call list."; - CallTreeItem * item = callTree->currentItem(); - if(!item) { - qDebug() << "Enter when no item is selected. Doing nothing."; + Call* call = callTreeModel.getCurrentItem(); + if(!call) { + qDebug() << "Error : Enter on unexisting call."; } else { - Call * call = item->call(); - if(!call) { - qDebug() << "Error : Enter on unexisting call."; + int state = call->getState(); + if(state == CALL_STATE_INCOMING || state == CALL_STATE_DIALING || state == CALL_STATE_TRANSFER || state == CALL_STATE_TRANSF_HOLD) { + action(call, CALL_ACTION_ACCEPT); } else { - int state = call->getState(); - if(state == CALL_STATE_INCOMING || state == CALL_STATE_DIALING || state == CALL_STATE_TRANSFER || state == CALL_STATE_TRANSF_HOLD) { - action(call, CALL_ACTION_ACCEPT); - } - else { - qDebug() << "Enter when call selected not in appropriate state. Doing nothing."; - } + qDebug() << "Enter when call selected not in appropriate state. Doing nothing."; } } } if(stackedWidget_screen->currentWidget() == page_callHistory) { qDebug() << "In call history."; - CallTreeItem * item = historyTree->currentItem(); - if(!item) { - qDebug() << "Enter when no item is selected. Doing nothing."; + + Call * pastCall = historyTreeModel.getCurrentItem(); + if (!pastCall) { + qDebug() << "pastCall null"; } else { changeScreen(SCREEN_MAIN); - - Call * pastCall = item->call(); - if (!pastCall) - { - qDebug() << "pastCall null"; - } - Call * call = callList->addDialingCall(pastCall->getPeerName(), pastCall->getAccountId()); + Call * call = callTreeModel.addDialingCall(pastCall->getPeerName(), pastCall->getAccountId()); call->appendText(pastCall->getPeerPhoneNumber()); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + //addCallToCallList(call); + //callTree->setCurrentRow(callTree->count() - 1); + //callTree->setCurrentItem(addCallToCallList(call)); + //callTreeModel.selectItem(addCallToCallList(call)); action(call, CALL_ACTION_ACCEPT); } } @@ -404,10 +389,9 @@ void SFLPhoneView::enter() else { changeScreen(SCREEN_MAIN); ContactItemWidget * w = (ContactItemWidget *) (listWidget_addressBook->itemWidget(item)); - Call * call = callList->addDialingCall(w->getContactName()); + Call * call = callTreeModel.addDialingCall(w->getContactName()); call->appendText(w->getContactNumber()); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + //callTreeModel.selectItem(addCallToCallList(call)); action(call, CALL_ACTION_ACCEPT); } } @@ -444,7 +428,7 @@ void SFLPhoneView::updateWindowCallState() QString buttonIconFiles[6] = {ICON_CALL, ICON_HANGUP, ICON_HOLD, ICON_TRANSFER, ICON_REC_DEL_OFF, ICON_MAILBOX}; QString actionTexts[6] = {ACTION_LABEL_CALL, ACTION_LABEL_HANG_UP, ACTION_LABEL_HOLD, ACTION_LABEL_TRANSFER, ACTION_LABEL_RECORD, ACTION_LABEL_MAILBOX}; - CallTreeItem * item; + Call* call; bool transfer = false; bool recordActivated = false; //tells whether the call is in recording position @@ -453,8 +437,8 @@ void SFLPhoneView::updateWindowCallState() if(stackedWidget_screen->currentWidget() == page_callList) { - item = callTree->currentItem(); - if (!item) { + call = callTreeModel.getCurrentItem(); + if (!call) { qDebug() << "No item selected."; enabledActions[SFLPhone::Refuse] = false; enabledActions[SFLPhone::Hold] = false; @@ -462,13 +446,10 @@ void SFLPhoneView::updateWindowCallState() enabledActions[SFLPhone::Record] = false; } else { - Call * call = item->call(); + call_state state = call->getState(); + recordActivated = call->getRecording(); - if (call) { - call_state state = call->getState(); - recordActivated = call->getRecording(); - - switch (state) { + switch (state) { case CALL_STATE_INCOMING: qDebug() << "Reached CALL_STATE_INCOMING with call " << call->getCallId(); buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT; @@ -537,15 +518,14 @@ void SFLPhoneView::updateWindowCallState() default: qDebug() << "Error : Reached unexisting state for call " << call->getCallId() << "!"; break; - } } } } if(stackedWidget_screen->currentWidget() == page_callHistory) { - item = historyTree->currentItem(); + call = historyTreeModel.getCurrentItem(); buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT; actionTexts[SFLPhone::Accept] = ACTION_LABEL_CALL_BACK; - if (!item) { + if (!call) { qDebug() << "No item selected."; enabledActions[SFLPhone::Accept] = false; enabledActions[SFLPhone::Refuse] = false; @@ -561,22 +541,22 @@ void SFLPhoneView::updateWindowCallState() } } if(stackedWidget_screen->currentWidget() == page_addressBook) { - item = addressBookTree->currentItem(); - buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT; - if (!item) { - qDebug() << "No item selected."; - enabledActions[SFLPhone::Accept] = false; - enabledActions[SFLPhone::Refuse] = false; - enabledActions[SFLPhone::Hold] = false; - enabledActions[SFLPhone::Transfer] = false; - enabledActions[SFLPhone::Record] = false; - } - else { - enabledActions[SFLPhone::Refuse] = false; - enabledActions[SFLPhone::Hold] = false; - enabledActions[SFLPhone::Transfer] = false; - enabledActions[SFLPhone::Record] = false; - } + //TODO uncomment item = addressBookTree->currentItem(); +// buttonIconFiles[SFLPhone::Accept] = ICON_ACCEPT; +// if (!item) { +// qDebug() << "No item selected."; +// enabledActions[SFLPhone::Accept] = false; +// enabledActions[SFLPhone::Refuse] = false; +// enabledActions[SFLPhone::Hold] = false; +// enabledActions[SFLPhone::Transfer] = false; +// enabledActions[SFLPhone::Record] = false; +// } +// else { +// enabledActions[SFLPhone::Refuse] = false; +// enabledActions[SFLPhone::Hold] = false; +// enabledActions[SFLPhone::Transfer] = false; +// enabledActions[SFLPhone::Record] = false; +// } } qDebug() << "Updating Window."; @@ -604,12 +584,12 @@ void SFLPhoneView::updateCallHistory() listWidget_callHistory->takeItem(0); } QString textSearched = lineEdit_searchHistory->text(); - for(int i = callList->size() - 1 ; i >= 0 ; i--) { - Call * call = (*callList)[i]; + foreach (Call* call, historyTreeModel.getCallList()) { qDebug() << "" << call->getCallId(); if( call->getState() == CALL_STATE_OVER && call->getHistoryState() != NONE && (call->getPeerPhoneNumber().contains(textSearched) || call->getPeerName().contains(textSearched)) ) { qDebug() << "call->getPeerPhoneNumber()=" << call->getPeerPhoneNumber() << " contains textSearched=" << textSearched; - addCallToCallHistory(call); + //addCallToCallHistory(call); + historyTreeModel.addCall(call); } } // alternateColors(listWidget_callHistory); @@ -805,10 +785,10 @@ void SFLPhoneView::updateVolumeControls() ((SFLPhone*)parent())->action_displayVolumeControls->setChecked(display); //widget_recVol->setVisible(display); //widget_sndVol->setVisible(display); - toolButton_recVol->setVisible(display); - toolButton_sndVol->setVisible(display); - slider_recVol->setVisible(display); - slider_sndVol->setVisible(display); + toolButton_recVol->setVisible(display); + toolButton_sndVol->setVisible(display); + slider_recVol->setVisible(display); + slider_sndVol->setVisible(display); } void SFLPhoneView::updateDialpad() @@ -971,34 +951,32 @@ void SFLPhoneView::on_callTree_itemChanged() stackedWidget_screen->setCurrentWidget(page_callList); } -void SFLPhoneView::on_callTree_itemDoubleClicked(const QModelIndex &index) +void SFLPhoneView::on_callTree_itemDoubleClicked(QTreeWidgetItem* call, int column) { - qDebug() << "on_callTree_itemDoubleClicked"; - CallTreeItem *item = callTree->getItem(index); - Call * call = item->call(); - call_state state = call->getCurrentState(); - switch(state) { - case CALL_STATE_HOLD: - action(call, CALL_ACTION_HOLD); - break; - case CALL_STATE_DIALING: - action(call, CALL_ACTION_ACCEPT); - break; - default: - qDebug() << "Double clicked an item with no action on double click."; - } + //TODO port +// qDebug() << "on_callTree_itemDoubleClicked"; +// call_state state = call->getCurrentState(); +// switch(state) { +// case CALL_STATE_HOLD: +// action(call, CALL_ACTION_HOLD); +// break; +// case CALL_STATE_DIALING: +// action(call, CALL_ACTION_ACCEPT); +// break; +// default: +// qDebug() << "Double clicked an item with no action on double click."; +// } } -void SFLPhoneView::on_listWidget_callHistory_itemDoubleClicked(CallTreeItem * item) +void SFLPhoneView::on_listWidget_callHistory_itemDoubleClicked(Call* call) { qDebug() << "on_listWidget_callHistory_itemDoubleClicked"; changeScreen(SCREEN_MAIN); - Call * pastCall = item->call(); - Call * call = callList->addDialingCall(pastCall->getPeerName(), pastCall->getAccountId()); - call->appendText(pastCall->getPeerPhoneNumber()); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); - action(call, CALL_ACTION_ACCEPT); + Call* pastCall = call; + Call* call2 = callTreeModel.addDialingCall(pastCall->getPeerName(), pastCall->getAccountId()); + call2->appendText(pastCall->getPeerPhoneNumber()); + //callTreeModel.selectItem(addCallToCallList(call2)); + action(call2, CALL_ACTION_ACCEPT); } @@ -1088,20 +1066,17 @@ void SFLPhoneView::editBeforeCall() QString name; QString number; if(stackedWidget_screen->currentWidget() == page_callHistory) { - CallTreeItem * item = historyTree->currentItem(); - if(item) { - Call * call = item->call(); - if(call) { - name = call->getPeerName(); - number = call->getPeerPhoneNumber(); - } + Call* call = historyTreeModel.getCurrentItem(); + if(call) { + name = call->getPeerName(); + number = call->getPeerPhoneNumber(); } } else if(stackedWidget_screen->currentWidget() == page_addressBook) { - QListWidgetItem * item = listWidget_addressBook->currentItem(); + QListWidgetItem* item = listWidget_addressBook->currentItem(); if(item) { - ContactItemWidget * w = (ContactItemWidget *) (listWidget_addressBook->itemWidget(listWidget_addressBook->currentItem())); + ContactItemWidget* w = (ContactItemWidget *) (listWidget_addressBook->itemWidget(listWidget_addressBook->currentItem())); name = w->getContactName(); number = w->getContactNumber(); } @@ -1113,10 +1088,9 @@ void SFLPhoneView::editBeforeCall() QString newNumber = QInputDialog::getText(this, i18n("Edit before call"), QString(), QLineEdit::Normal, number, &ok); if(ok) { changeScreen(SCREEN_MAIN); - Call * call = callList->addDialingCall(name); + Call* call = callTreeModel.addDialingCall(name); call->appendText(newNumber); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + //callTreeModel.selectItem(addCallToCallList(call)); action(call, CALL_ACTION_ACCEPT); } } @@ -1161,51 +1135,41 @@ void SFLPhoneView::accountCreationWizard() void SFLPhoneView::accept() { if(stackedWidget_screen->currentWidget() == page_callList) { - CallTreeItem * item = callTree->currentItem(); - if(!item) { + Call* call = callTreeModel.getCurrentItem(); + if(!call) { qDebug() << "Calling when no item is selected. Opening an item."; - Call * call = callList->addDialingCall(); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + Call * newCall = callTreeModel.addDialingCall(); + //callTreeModel.selectItem(addCallToCallList(newCall)); } else { - Call * call = item->call(); - if(!call) { - qDebug() << "Error : Accept triggered on unexisting call."; + int state = call->getState(); + if(state == CALL_STATE_RINGING || state == CALL_STATE_CURRENT || state == CALL_STATE_HOLD || state == CALL_STATE_BUSY) + { + qDebug() << "Calling when item currently ringing, current, hold or busy. Opening an item."; + Call* newCall = callTreeModel.addDialingCall(); + //callTreeModel.selectItem(addCallToCallList(newCall)); } else { - int state = call->getState(); - if(state == CALL_STATE_RINGING || state == CALL_STATE_CURRENT || state == CALL_STATE_HOLD || state == CALL_STATE_BUSY) - { - qDebug() << "Calling when item currently ringing, current, hold or busy. Opening an item."; - Call * call = callList->addDialingCall(); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); - } - else { - action(call, CALL_ACTION_ACCEPT); - } + action(call, CALL_ACTION_ACCEPT); } } } if(stackedWidget_screen->currentWidget() == page_callHistory) { changeScreen(SCREEN_MAIN); - Call * pastCall = historyTree->currentItem()->call(); - Call * call = callList->addDialingCall(pastCall->getPeerName()); + Call* pastCall = historyTreeModel.getCurrentItem(); + Call* call = callTreeModel.addDialingCall(pastCall->getPeerName()); call->appendText(pastCall->getPeerPhoneNumber()); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + //callTreeModel.selectItem(addCallToCallList(call)); action(call, CALL_ACTION_ACCEPT); } if(stackedWidget_screen->currentWidget() == page_addressBook) { changeScreen(SCREEN_MAIN); ContactItemWidget * w = (ContactItemWidget *) (listWidget_addressBook->itemWidget(listWidget_addressBook->currentItem())); - Call * call = callList->addDialingCall(w->getContactName()); + Call * call = callTreeModel.addDialingCall(w->getContactName()); call->appendText(w->getContactNumber()); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + //callTreeModel.selectItem(addCallToCallList(call)); action(call, CALL_ACTION_ACCEPT); } } @@ -1213,12 +1177,12 @@ void SFLPhoneView::accept() void SFLPhoneView::refuse() { if(stackedWidget_screen->currentWidget() == page_callList) { - CallTreeItem * item = callTree->currentItem(); - if(!item) { + Call* call = callTreeModel.getCurrentItem(); + if(!call) { qDebug() << "Error : Hanging up when no item selected. Should not happen."; } else { - action(item->call(), CALL_ACTION_REFUSE); + action(call, CALL_ACTION_REFUSE); } } @@ -1233,34 +1197,34 @@ void SFLPhoneView::refuse() void SFLPhoneView::hold() { - CallTreeItem * item = callTree->currentItem(); - if(!item) { + Call* call = callTreeModel.getCurrentItem(); + if(!call) { qDebug() << "Error : Holding when no item selected. Should not happen."; } else { - action(item->call(), CALL_ACTION_HOLD); + action(call, CALL_ACTION_HOLD); } } void SFLPhoneView::transfer() { - CallTreeItem * item = callTree->currentItem(); - if(!item) { + Call* call = callTreeModel.getCurrentItem(); + if(!call) { qDebug() << "Error : Transfering when no item selected. Should not happen."; } else { - action(item->call(), CALL_ACTION_TRANSFER); + action(call, CALL_ACTION_TRANSFER); } } void SFLPhoneView::record() { - CallTreeItem * item = callTree->currentItem(); - if(!item) { + Call* call = callTreeModel.getCurrentItem(); + if(!call) { qDebug() << "Error : Recording when no item selected. Should not happen."; } else { - action(item->call(), CALL_ACTION_RECORD); + action(call, CALL_ACTION_RECORD); } } @@ -1268,21 +1232,20 @@ void SFLPhoneView::mailBox() { Account * account = accountInUse(); QString mailBoxNumber = account->getAccountDetail(ACCOUNT_MAILBOX); - Call * call = callList->addDialingCall(); + Call * call = callTreeModel.addDialingCall(); call->appendText(mailBoxNumber); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + //callTreeModel.selectItem(addCallToCallList(call)); action(call, CALL_ACTION_ACCEPT); } void SFLPhoneView::on1_callStateChanged(const QString &callID, const QString &state) { qDebug() << "Signal : Call State Changed for call " << callID << " . New state : " << state; - Call * call = callList->findCallByCallId(callID); + Call * call = callTreeModel.findCallByCallId(callID); if(!call) { if(state == CALL_STATE_CHANGE_RINGING) { - call = callList->addRingingCall(callID); - addCallToCallList(call); + call = callTreeModel.addRingingCall(callID); + //addCallToCallList(call); } else { qDebug() << "Call doesn't exist in this client. Might have been initialized by another client instance before this one started."; @@ -1304,9 +1267,8 @@ void SFLPhoneView::on1_error(MapStringString details) void SFLPhoneView::on1_incomingCall(const QString & /*accountID*/, const QString & callID) { qDebug() << "Signal : Incoming Call ! ID = " << callID; - Call * call = callList->addIncomingCall(callID); - addCallToCallList(call); - callTree->setCurrentRow(callTree->count() - 1); + Call* call = callTreeModel.addIncomingCall(callID); + //callTreeModel.selectItem(addCallToCallList(call)); changeScreen(SCREEN_MAIN); @@ -1317,6 +1279,10 @@ void SFLPhoneView::on1_incomingCall(const QString & /*accountID*/, const QString emit incomingCall(call); } +void SFLPhoneView::on1_incommingConference(const QString &confID) { + callTreeModel.addConference(confID); +} + void SFLPhoneView::on1_incomingMessage(const QString &accountID, const QString &message) { qDebug() << "Signal : Incoming Message for account " << accountID << " ! \nMessage : " << message; diff --git a/sflphone-client-kde/src/SFLPhoneView.h b/sflphone-client-kde/src/SFLPhoneView.h index a5143757d5..54071266be 100644 --- a/sflphone-client-kde/src/SFLPhoneView.h +++ b/sflphone-client-kde/src/SFLPhoneView.h @@ -33,10 +33,13 @@ #include "ui_SFLPhoneView_base.h" #include "conf/ConfigurationDialog.h" #include "CallList.h" +#include "CallTreeItem.h" #include "CallTreeView.h" +#include "CallTreeWidget.h" #include "AccountWizard.h" #include "Contact.h" #include "AccountList.h" +#include "CallModel.h" class ConfigurationDialog; @@ -136,9 +139,14 @@ public: */ void saveState(); - CallTreeView *callTree; - CallTreeView *historyTree; - CallTreeView *addressBookTree; + //CallTreeView *callTree; + //CallTreeView *historyTree; + //CallTreeView *addressBookTree; + //CallTreeWidget *callTree; + //CallTreeWidget *historyTree; + CallTreeWidget *addressBookTree; + CallModel callTreeModel; + CallModel historyTreeModel; private slots: /** @@ -209,14 +217,14 @@ private slots: * This function doesn't add anything to the callList object. * @param call the call to add to the call-list's listwidget */ - CallTreeItem* addCallToCallList(Call * call); + //Call* addCallToCallList(Call * call); /** * Adds the call's history-item to the call-history's listwidget. * This function doesn't add anything to the callList object. * @param call the past call to add to the call-history's listwidget */ - CallTreeItem* addCallToCallHistory(Call * call); + //Call* addCallToCallHistory(Call * call); /** * Adds the contact's item to the addressbook's listwidget. @@ -325,10 +333,10 @@ public slots: void on_callTree_currentItemChanged(); void on_callTree_itemChanged(); - void on_callTree_itemDoubleClicked(const QModelIndex &index); + void on_callTree_itemDoubleClicked(QTreeWidgetItem* item, int column); void on_listWidget_callHistory_currentItemChanged(); - void on_listWidget_callHistory_itemDoubleClicked(CallTreeItem * item); + void on_listWidget_callHistory_itemDoubleClicked(Call* item); void on_listWidget_addressBook_currentItemChanged(); void on_listWidget_addressBook_itemDoubleClicked(CallTreeItem * item); @@ -342,6 +350,7 @@ public slots: void on1_voiceMailNotify(const QString &accountID, int count); void on1_volumeChanged(const QString &device, double value); void on1_audioManagerChanged(); + void on1_incommingConference(const QString &confID); void changeScreen(int screen); signals: diff --git a/sflphone-client-kde/src/icons/user-group-properties.svgz b/sflphone-client-kde/src/icons/user-group-properties.svgz new file mode 100644 index 0000000000000000000000000000000000000000..edc81b9a6ef2ecc393c402a5def7ebb6ae75e832 GIT binary patch literal 91615 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 B9B}{u literal 0 HcmV?d00001 diff --git a/sflphone-client-kde/src/sflphone_const.h b/sflphone-client-kde/src/sflphone_const.h index 90026ff145..04c11772c9 100644 --- a/sflphone-client-kde/src/sflphone_const.h +++ b/sflphone-client-kde/src/sflphone_const.h @@ -63,6 +63,7 @@ #define ICON_BUSY ":/images/icons/busy.svg" #define ICON_TRANSFER ":/images/icons/transfert.svg" #define ICON_TRANSF_HOLD ":/images/icons/transfert.svg" +#define ICON_CONFERENCE ":/images/icons/user-group-properties.svg" #define ICON_CALL ":/images/icons/call.svg" #define ICON_HANGUP ":/images/icons/hang_up.svg" -- GitLab