[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    playground/network/kcall
From:       George Kiagiadakis <gkiagiad () csd ! uoc ! gr>
Date:       2009-06-22 14:09:31
Message-ID: 1245679771.700036.19110.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 985254 by gkiagia:

Implement a model for displaying the members of a group and a dock widget
for the call window to display the participants of the call using this model.

 M  +4 -4      contactlistcontroller.cpp  
 M  +3 -1      kcall_handler/CMakeLists.txt  
 M  +9 -0      kcall_handler/callwindow.cpp  
 M  +1 -0      kcall_handler/callwindow.h  
 M  +4 -0      kcall_handler/channelhandler.cpp  
 M  +2 -0      kcall_handler/channelhandler.h  
 A             kcall_handler/participantsdock.cpp   kcall_handler/callwindow.h#985253 \
[License: GPL (v2+)]  A             kcall_handler/participantsdock.h   \
kcall_handler/callwindow.h#985253 [License: GPL (v2+)]  M  +3 -1      \
kcall_handler/volumedock.cpp    M  +1 -0      libkcallprivate/CMakeLists.txt  
 M  +2 -2      libkcallprivate/accountitem.cpp  
 M  +3 -3      libkcallprivate/contactitem.cpp  
 M  +1 -1      libkcallprivate/contactitem.h  
 M  +0 -2      libkcallprivate/contactsmodel.h  
 A             libkcallprivate/groupmembersmodel.cpp   [License: LGPL (v2.1+)]
 A             libkcallprivate/groupmembersmodel.h   [License: LGPL (v2.1+)]
 M  +17 -0     libkcallprivate/treemodel.h  


--- trunk/playground/network/kcall/contactlistcontroller.cpp #985253:985254
@@ -80,7 +80,7 @@
         return;
     }
 
-    QByteArray type = index.data(ContactsModel::ItemTypeRole).toByteArray();
+    QByteArray type = index.data(KCall::ItemTypeRole).toByteArray();
     d->currentIndex = index;
     if ( type == "contact" ) {
         d->contactMenu->popup(d->view->mapToGlobal(pos));
@@ -92,11 +92,11 @@
 void ContactListController::callContact()
 {
     Q_ASSERT(d->currentIndex.isValid());
-    Tp::ContactPtr contact = \
d->currentIndex.data(ContactsModel::ObjectPtrRole).value<Tp::ContactPtr>(); +    \
Tp::ContactPtr contact = \
d->currentIndex.data(KCall::ObjectPtrRole).value<Tp::ContactPtr>();  Q_ASSERT( \
!contact.isNull() );  
     //TODO this should be removed when Tp::Contact has support for requesting \
                channels directly
-    Tp::AccountPtr account = \
d->currentIndex.parent().data(ContactsModel::ObjectPtrRole).value<Tp::AccountPtr>(); \
+    Tp::AccountPtr account = \
d->currentIndex.parent().data(KCall::ObjectPtrRole).value<Tp::AccountPtr>();  \
Q_ASSERT( !account.isNull() );  
     QVariantMap request;
@@ -123,7 +123,7 @@
     presence.status = QLatin1String(statuses[statusIndex]);
 
     Q_ASSERT(d->currentIndex.isValid());
-    Tp::AccountPtr account = \
d->currentIndex.data(ContactsModel::ObjectPtrRole).value<Tp::AccountPtr>(); +    \
Tp::AccountPtr account = \
d->currentIndex.data(KCall::ObjectPtrRole).value<Tp::AccountPtr>();  Q_ASSERT( \
!account.isNull() );  
     account->setRequestedPresence(presence);
--- trunk/playground/network/kcall/kcall_handler/CMakeLists.txt #985253:985254
@@ -58,6 +58,7 @@
         abstractmediahandler.cpp
         volumewidget.cpp
         volumedock.cpp
+        participantsdock.cpp
         farsight/mediadevices.cpp
         farsight/mediahandler.cpp
     )
@@ -68,7 +69,8 @@
                                         ${TELEPATHY_QT4_FARSIGHT_LIBRARIES}
                                         ${GSTREAMER_LIBRARIES}
                                         ${GOBJECT_LIBRARIES}
-                                        ${TPFARSIGHT_LIBRARIES})
+                                        ${TPFARSIGHT_LIBRARIES}
+                                        kcallprivate)
 
     install(TARGETS kcall_handler ${INSTALL_TARGETS_DEFAULT_ARGS})
     install(FILES callwindowui.rc DESTINATION ${DATA_INSTALL_DIR}/kcall_handler)
--- trunk/playground/network/kcall/kcall_handler/callwindow.cpp #985253:985254
@@ -18,6 +18,7 @@
 #include "volumedock.h"
 #include "volumewidget.h"
 #include "abstractmediahandler.h"
+#include "participantsdock.h"
 #include <QtCore/QMetaObject>
 #include <QtGui/QCloseEvent>
 #include <QtGui/QLabel>
@@ -49,6 +50,8 @@
             SLOT(setState(ChannelHandler::State)));
     connect(d->channelHandler, SIGNAL(mediaHandlerCreated(AbstractMediaHandler*)),
             SLOT(onMediaHandlerCreated(AbstractMediaHandler*)));
+    connect(d->channelHandler, SIGNAL(groupMembersModelCreated(GroupMembersModel*)),
+            SLOT(onGroupMembersModelCreated(GroupMembersModel*)));
 
     setupUi();
 
@@ -132,6 +135,12 @@
     addDockWidget(Qt::BottomDockWidgetArea, d->volumeDock);
 }
 
+void CallWindow::onGroupMembersModelCreated(GroupMembersModel *model)
+{
+    ParticipantsDock *participantsDock = new ParticipantsDock(model, this);
+    addDockWidget(Qt::RightDockWidgetArea, participantsDock);
+}
+
 void CallWindow::onCallDurationTimerTimeout()
 {
     d->callDuration = d->callDuration.addSecs(1);
--- trunk/playground/network/kcall/kcall_handler/callwindow.h #985253:985254
@@ -35,6 +35,7 @@
     void setState(ChannelHandler::State state);
     void setStatus(const QString & msg);
     void onMediaHandlerCreated(AbstractMediaHandler *handler);
+    void onGroupMembersModelCreated(GroupMembersModel *model);
     void onCallDurationTimerTimeout();
 
 protected:
--- trunk/playground/network/kcall/kcall_handler/channelhandler.cpp #985253:985254
@@ -16,6 +16,7 @@
 */
 #include "channelhandler.h"
 #include "abstractmediahandler.h"
+#include "../libkcallprivate/groupmembersmodel.h"
 #include <KDebug>
 #include <KLocalizedString>
 #include <TelepathyQt4/Connection>
@@ -74,6 +75,9 @@
         emit mediaHandlerCreated(d->mediaHandler);
     }
 
+    GroupMembersModel *model = new \
GroupMembersModel(Tp::ChannelPtr::staticCast(d->channel), this); +    emit \
groupMembersModelCreated(model); +
     connect(d->channel.data(),
             SIGNAL(streamAdded(Tp::MediaStreamPtr)),
             SLOT(onStreamAdded(Tp::MediaStreamPtr)));
--- trunk/playground/network/kcall/kcall_handler/channelhandler.h #985253:985254
@@ -20,6 +20,7 @@
 #include <QtCore/QObject>
 #include <TelepathyQt4/StreamedMediaChannel>
 class AbstractMediaHandler;
+class GroupMembersModel;
 
 class ChannelHandler : public QObject
 {
@@ -37,6 +38,7 @@
 signals:
     void stateChanged(ChannelHandler::State newState);
     void mediaHandlerCreated(AbstractMediaHandler *handler);
+    void groupMembersModelCreated(GroupMembersModel *model);
 
 private:
     void setState(State s);
--- trunk/playground/network/kcall/kcall_handler/volumedock.cpp #985253:985254
@@ -17,6 +17,7 @@
 #include "volumedock.h"
 #include "volumewidget.h"
 #include <QtGui/QHBoxLayout>
+#include <KLocalizedString>
 
 struct VolumeDock::Private
 {
@@ -25,8 +26,9 @@
 };
 
 VolumeDock::VolumeDock(QWidget *parent)
-    : QDockWidget(parent), d(new Private)
+    : QDockWidget(i18n("Volume"), parent), d(new Private)
 {
+    setObjectName("VolumeDock");
     QWidget *mainWidget = new QWidget(this);
     QHBoxLayout *layout = new QHBoxLayout(mainWidget);
     d->inputVolumeWidget = new VolumeWidget(mainWidget);
--- trunk/playground/network/kcall/libkcallprivate/CMakeLists.txt #985253:985254
@@ -7,6 +7,7 @@
     pendingcontacts.cpp
     accountitem.cpp
     contactitem.cpp
+    groupmembersmodel.cpp
 )
 
 kde4_add_library(kcallprivate SHARED ${libkcallprivate_SRCS})
--- trunk/playground/network/kcall/libkcallprivate/accountitem.cpp #985253:985254
@@ -44,9 +44,9 @@
             return m_account->displayName();
         case Qt::DecorationRole:
             return iconForPresence((Tp::ConnectionPresenceType)m_account->currentPresence().type);
                
-        case ContactsModel::ItemTypeRole:
+        case KCall::ItemTypeRole:
             return QByteArray("account");
-        case ContactsModel::ObjectPtrRole:
+        case KCall::ObjectPtrRole:
             return QVariant::fromValue(m_account);
         default:
             return QVariant();
--- trunk/playground/network/kcall/libkcallprivate/contactitem.cpp #985253:985254
@@ -16,7 +16,7 @@
 */
 #include "contactitem.h"
 
-ContactItem::ContactItem(Tp::ContactPtr contact, TreeModelItem *parent, TreeModel \
*model) +ContactItem::ContactItem(const Tp::ContactPtr & contact, TreeModelItem \
*parent, TreeModel *model)  : ContactsModelItem(parent, model), m_contact(contact)
 {
     connect(m_contact.data(), SIGNAL(aliasChanged(QString)), \
SLOT(emitDataChange())); @@ -31,9 +31,9 @@
         return m_contact->alias();
     case Qt::DecorationRole:
         return iconForPresence((Tp::ConnectionPresenceType)m_contact->presenceType());
                
-    case ContactsModel::ItemTypeRole:
+    case KCall::ItemTypeRole:
         return QByteArray("contact");
-    case ContactsModel::ObjectPtrRole:
+    case KCall::ObjectPtrRole:
         return QVariant::fromValue(m_contact);
     default:
         return QVariant();
--- trunk/playground/network/kcall/libkcallprivate/contactitem.h #985253:985254
@@ -23,7 +23,7 @@
 class ContactItem : public ContactsModelItem
 {
 public:
-    ContactItem(Tp::ContactPtr contact, TreeModelItem *parent, TreeModel *model);
+    ContactItem(const Tp::ContactPtr & contact, TreeModelItem *parent, TreeModel \
*model);  
     virtual QVariant data(int role) const;
 
--- trunk/playground/network/kcall/libkcallprivate/contactsmodel.h #985253:985254
@@ -39,8 +39,6 @@
 {
     Q_OBJECT
 public:
-    enum Role { ItemTypeRole = Qt::UserRole, ObjectPtrRole, };
-
     explicit ContactsModel(QObject *parent = 0);
 
 public slots:
--- trunk/playground/network/kcall/libkcallprivate/treemodel.h #985253:985254
@@ -75,4 +75,21 @@
     TreeModelItem *m_root;
 };
 
+namespace KCall
+{
+    enum ExtraModelRoles {
+        ItemTypeRole = Qt::UserRole,
+        ObjectPtrRole,
+        GroupMembersListTypeRole
+    };
+
+    enum GroupMembersListType {
+        CurrentMembers,
+        LocalPendingMembers,
+        RemotePendingMembers
+    };
+}
+
+Q_DECLARE_METATYPE(KCall::GroupMembersListType)
+
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic