void DevicesModel::deviceAdded(const QString& id) { //Find whether the device already exists. if so, just report it as modified int row = rowForDeviceId(id); if (row>=0) { const QModelIndex idx = index(row, 0); Q_EMIT dataChanged(idx, idx); } else { DeviceDbusInterface* dev = new DeviceDbusInterface(id, this); if (dev->isReachable() == bool(m_displayFilter & StatusReachable) && dev->isPaired() == bool(m_displayFilter & StatusPaired)) { beginInsertRows(QModelIndex(), m_deviceList.count(), m_deviceList.count()); appendDevice(dev); endInsertRows(); } } }
void DevicesModel::deviceAdded(const QString& id) { if (rowForDevice(id) >= 0) { Q_ASSERT_X(false, "deviceAdded", "Trying to add a device twice"); return; } DeviceDbusInterface* dev = new DeviceDbusInterface(id, this); Q_ASSERT(dev->isValid()); if (! passesFilter(dev)) { delete dev; return; } beginInsertRows(QModelIndex(), m_deviceList.size(), m_deviceList.size()); appendDevice(dev); endInsertRows(); }
void DevicesModel::receivedDeviceList(QDBusPendingCallWatcher* watcher) { watcher->deleteLater(); clearDevices(); QDBusPendingReply<QStringList> pendingDeviceIds = *watcher; if (pendingDeviceIds.isError()) { qCWarning(KDECONNECT_INTERFACES) << "error while refreshing device list" << pendingDeviceIds.error().message(); return; } Q_ASSERT(m_deviceList.isEmpty()); const QStringList deviceIds = pendingDeviceIds.value(); if (deviceIds.isEmpty()) return; beginInsertRows(QModelIndex(), 0, deviceIds.count()-1); Q_FOREACH(const QString& id, deviceIds) { appendDevice(new DeviceDbusInterface(id, this)); }