/*! \brief Save the positions of Peer Widgets * * Save the positions of all Peer Widgets to the settings. */ void XletSwitchBoard::savePositions() const { // qDebug() << Q_FUNC_INFO << m_peerhash.count(); QSettings * settings = b_engine->getSettings(); settings->beginGroup("layout"); QHashIterator<QString, PeerItem *> it(m_peerhash); while (it.hasNext()) { it.next(); const QString userid = it.key(); PeerItem *peeritem = it.value(); if (peeritem->getWidget()) { settings->setValue(userid, m_layout->getItemPosition(peeritem->getWidget())); } else { settings->remove(userid); } } settings->beginWriteArray("externalphone"); int i, index = 0; for (i=0;i<m_layout->count();i++) { QLayoutItem *item = m_layout->itemAt(i); if ((item) && (item->widget()) && ((item->widget()->inherits("ExternalPhonePeerWidget")) || (item->widget()->inherits("DetailedExternalPhonePeerWidget")))) { BasePeerWidget *w = static_cast<BasePeerWidget *>(item->widget()); settings->setArrayIndex(index++); settings->setValue("position", m_layout->getItemPosition(w)); settings->setValue("name", w->name()); settings->setValue("number", w->number()); } } settings->endArray(); settings->endGroup(); }
/** Return the "ExternalPhonePeerWidget" with a number if it already exists */ BasePeerWidget* XletSwitchBoard::getExternalPhonePeerWidget(const QString &number) { int i; for (i=0;i<m_layout->count();i++) { QLayoutItem *item = m_layout->itemAt(i); if ((item) && (item->widget()) && ((item->widget()->inherits("ExternalPhonePeerWidget")) || (item->widget()->inherits("DetailedExternalPhonePeerWidget")))) { BasePeerWidget *w = static_cast<BasePeerWidget *>(item->widget()); if (number == w->number()) { return w; } } } return NULL; }