void YahooClient::loadList(const char *str) { Contact *contact; ContactList::ContactIterator it; while ((contact = ++it) != NULL) { YahooUserData *data; ClientDataIterator itd(contact->clientData, this); while ((data = (YahooUserData*)(++itd)) != NULL) { data->bChecked.bValue = (contact->getGroup() == 0); } } if (str) { string s = str; while (!s.empty()) { string line = getToken(s, '\n'); string grp = getToken(line, ':'); if (line.empty()) { line = grp; grp = ""; } while (!line.empty()) { string id = getToken(line, ','); Contact *contact; YahooUserData *data = findContact(id.c_str(), grp.c_str(), contact, false); data->bChecked.bValue = true; } } } it.reset(); list<Contact*> forRemove; while ((contact = ++it) != NULL) { YahooUserData *data; ClientDataIterator itd(contact->clientData, this); list<YahooUserData*> dataForRemove; bool bChanged = false; while ((data = (YahooUserData*)(++itd)) != NULL) { if (!data->bChecked.bValue) { dataForRemove.push_back(data); bChanged = true; } } if (!bChanged) continue; for (list<YahooUserData*>::iterator it = dataForRemove.begin(); it != dataForRemove.end(); ++it) contact->clientData.freeData(*it); if (contact->clientData.size()) { Event e(EventContactChanged, contact); e.process(); } else { forRemove.push_back(contact); } } for (list<Contact*>::iterator itr = forRemove.begin(); itr != forRemove.end(); ++itr) delete *itr; }
void SdDurationCanvas::update_hpos() { move(support->sub_x(width()), 100000); Q3PtrListIterator<SdDurationCanvas> itd(durations); for (; itd.current(); ++itd) itd.current()->update_hpos(); }
QStringList QSqlDatabase::drivers() { QStringList l; #ifndef QT_NO_COMPONENT QPluginManager<QSqlDriverFactoryInterface> *plugIns; plugIns = new QPluginManager<QSqlDriverFactoryInterface>( IID_QSqlDriverFactory, QApplication::libraryPaths(), "/sqldrivers" ); l = plugIns->featureList(); delete plugIns; #endif QDictIterator<QSqlDriverCreatorBase> itd( *QSqlDatabaseManager::driverDict() ); while ( itd.current() ) { if ( !l.contains( itd.currentKey() ) ) l << itd.currentKey(); ++itd; } #ifdef QT_SQL_POSTGRES if ( !l.contains( "QPSQL7" ) ) l << "QPSQL7"; #endif #ifdef QT_SQL_MYSQL if ( !l.contains( "QMYSQL3" ) ) l << "QMYSQL3"; #endif #ifdef QT_SQL_ODBC if ( !l.contains( "QODBC3" ) ) l << "QODBC3"; #endif #ifdef QT_SQL_OCI if ( !l.contains( "QOCI8" ) ) l << "QOCI8"; #endif #ifdef QT_SQL_TDS if ( !l.contains( "QTDS7" ) ) l << "QTDS7"; #endif #ifdef QT_SQL_DB2 if ( !l.contains( "QDB2" ) ) l << "QDB2"; #endif #ifdef QT_SQL_SQLITE if ( !l.contains( "QSQLITE" ) ) l << "QSQLITE"; #endif #ifdef QT_SQL_IBASE if ( !l.contains( "QIBASE" ) ) l << "QIBASE"; #endif return l; }
void SdDurationCanvas::cut_internal(int py) { Q3PtrListIterator<SdDurationCanvas> itd(durations); for (; itd.current(); ++itd) itd.current()->cut_internal(py); QRect r = rect(); resize(width(), py - r.top()); SdDurationCanvas * newone = 0; Q3PtrList<SdMsgBaseCanvas> ms(msgs); Q3PtrListIterator<SdMsgBaseCanvas> it(ms); for ( ; it.current(); ++it ) { if (it.current()->rect().center().y() > py) { // on the new duration if (newone == 0) { // width and height to 0 on creation to not have // a round error because of the zoom newone = new SdDurationCanvas(the_canvas(), support, r.x(), py, 0, 0, 0, coregion); newone->resize(width(), r.bottom() - py); newone->itscolor = itscolor; newone->setZ(z()); newone->show(); } remove(it.current()); newone->add(it.current()); it.current()->change_duration(this, newone); } } Q3PtrList<SdDurationCanvas> durs(durations); Q3PtrListIterator<SdDurationCanvas> itdur(durs); for (itdur.toFirst() ; itdur.current(); ++itdur) { if (itdur.current()->rect().center().y() > py) { // on the new duration if (newone == 0) { // width and height to 0 on creation to not have // a round error because of the zoom newone = new SdDurationCanvas(the_canvas(), support, r.x(), py, 0, 0, 0, coregion); newone->resize(width(), r.bottom() - py); newone->itscolor = itscolor; newone->setZ(z()); newone->show(); } remove(itdur.current()); newone->add(itdur.current()); itdur.current()->support = newone; } itdur.current()->update_v_to_contain(itdur.current(), TRUE); } }
void Services::statusChanged() { bool bOnline = m_client->getStatus() != STATUS_OFFLINE; if (m_bOnline == bOnline) return; m_bOnline = bOnline; if (m_bOnline){ lblOffline->hide(); lblOffline2->hide(); lblRegistered->show(); lstAgents->show(); btnLogon->show(); btnLogoff->show(); btnUnregister->show(); cmbAgents->show(); wndInfo->show(); btnRegister->show(); m_client->get_agents(); Contact *contact; ContactList::ContactIterator it; while ((contact = ++it) != NULL){ ClientDataIterator itd(contact->clientData, m_client); JabberUserData *data; while ((data = ((JabberUserData*)(++itd))) != NULL){ if (!m_client->isAgent(data->ID)) continue; makeAgentItem(data, contact->id()); } } }else{ cmbAgents->clear(); for (AGENTS_MAP::iterator it = m_agents.begin(); it != m_agents.end(); ++it){ agentInfo &info = (*it).second; if (info.search){ delete info.search; } } m_agents.clear(); lblOffline->show(); lblOffline2->show(); cmbAgents->hide(); wndInfo->hide(); btnRegister->hide(); lblRegistered->hide(); lstAgents->hide(); lstAgents->clear(); btnLogon->hide(); btnLogoff->hide(); btnUnregister->hide(); } }
void SdDurationCanvas::prepare_for_move(bool on_resize) { DiagramCanvas::prepare_for_move(on_resize); if (! on_resize) { Q3PtrListIterator<SdDurationCanvas> itd(durations); for (; itd.current(); ++itd) { if (! itd.current()->selected()) { the_canvas()->select(itd.current()); itd.current()->prepare_for_move(on_resize); } } } }
YahooUserData *YahooClient::findContact(const char *id, const char *grpname, Contact *&contact, bool bSend) { ContactList::ContactIterator it; while ((contact = ++it) != NULL) { YahooUserData *data; ClientDataIterator itd(contact->clientData); while ((data = (YahooUserData*)(++itd)) != NULL) { if (data->Login.ptr && !strcmp(id, data->Login.ptr)) return data; } } it.reset(); while ((contact = ++it) != NULL) { if (contact->getName() == id) { YahooUserData *data = (YahooUserData*)contact->clientData.createData(this); set_str(&data->Login.ptr, id); set_str(&data->Group.ptr, grpname); Event e(EventContactChanged, contact); e.process(); return data; } } if (grpname == NULL) return NULL; Group *grp = NULL; if (*grpname) { ContactList::GroupIterator it; while ((grp = ++it) != NULL) if (grp->getName() == QString::fromLocal8Bit(grpname)) break; if (grp == NULL) { grp = getContacts()->group(0, true); grp->setName(QString::fromLocal8Bit(grpname)); Event e(EventGroupChanged, grp); e.process(); } } if (grp == NULL) grp = getContacts()->group(0); contact = getContacts()->contact(0, true); YahooUserData *data = (YahooUserData*)(contact->clientData.createData(this)); set_str(&data->Login.ptr, id); contact->setName(id); contact->setGroup(grp->id()); Event e(EventContactChanged, contact); e.process(); if (bSend) addBuddy(data); return data; }
void SdDurationCanvas::postToOverlapping() { Q3PtrListIterator<SdDurationCanvas> itd(durations); for (; itd.current(); ++itd) itd.current()->postToOverlapping(); Q3PtrListIterator<SdMsgBaseCanvas> it(msgs); for ( ; it.current(); ++it ) { it.current()->upper(); it.current()->update_hpos(); ((DiagramItem *) it.current())->update(); // not QCanvasItem::update } }
void BrowserView::update_it() { if (lbl == 0) lbl = new QLabel(parentWidget()); int nold = 0; int ndel = 0; Q3DictIterator<BrowserNode> itd(nodes); for (; itd.current(); ++itd) { BrowserNode * bn = itd.current(); switch (bn->get_state()) { case Old: nold += 1; break; case Deleted: ndel += 1; break; default: break; } } QString s; if (nold != 0) { need_update = TRUE; s = QString::number(nold) + " need update"; if (ndel != 0) s += ", " + QString::number(ndel) + " deleted"; if (cant_update) s += ", RO !"; lbl->setText(s); } else lbl->setText("Up to date"); lbl->show(); triggerUpdate(); }
void SMSClient::phonebookEntry(int index, int type, const QString &phone, const QString &name) { bool bNew = false; Contact *contact; ContactList::ContactIterator it; while ((contact = ++it) != NULL){ smsUserData *data; ClientDataIterator itd(contact->clientData); while ((data = (smsUserData*)(++itd)) != NULL){ if (name == QString::fromUtf8(data->Name.ptr)) break; } if (data) break; } if (contact == NULL){ contact = getContacts()->contactByPhone(phone.latin1()); if (contact->getFlags() & CONTACT_TEMPORARY){ bNew = true; contact->setFlags(contact->getFlags() & ~CONTACT_TEMPORARY); contact->setName(name); } } QString phones = contact->getPhones(); bool bFound = false; while (!phones.isEmpty()){ QString item = getToken(phones, ';', false); QString number = getToken(item, ','); if (number == phone){ bFound = true; break; } } if (!bFound){ phones = contact->getPhones(); if (!phones.isEmpty()) phones += ";"; contact->setPhones(phones + phone + ",,2/-"); } smsUserData *data = (smsUserData*)contact->clientData.createData(this); set_str(&data->Phone.ptr, phone.utf8()); set_str(&data->Name.ptr, name.utf8()); data->Index.value = index; data->Type.value = type; if (bNew){ Event e(EventContactChanged, contact); e.process(); } }
void SdDurationCanvas::propag_visible(Q3PtrList<SdDurationCanvas> & l, bool y) { Q3PtrListIterator<SdDurationCanvas> itd(l); SdDurationCanvas * d; for ( ; (d = itd.current()) != 0; ++itd ) { d->Q3CanvasItem::setVisible(y); Q3PtrListIterator<SdMsgBaseCanvas> itm(d->msgs); for ( ; itm.current(); ++itm ) itm.current()->Q3CanvasItem::setVisible(y); propag_visible(d->durations, y); } }
void ICQClient::fetchProfiles() { if (data.owner.ProfileFetch.bValue == 0) fetchProfile(&data.owner); Contact *contact; ContactList::ContactIterator itc; while ((contact = ++itc) != NULL){ ICQUserData *data; ClientDataIterator itd(contact->clientData, this); while ((data = (ICQUserData*)(++itd)) != NULL){ if (data->Uin.value || data->ProfileFetch.bValue) continue; fetchProfile(data); } } }
unsigned SdDurationCanvas::count_msg(int api_format) const { unsigned count = 0; Q3PtrListIterator<SdMsgBaseCanvas> itm(msgs); double maxy = 0; bool isreturn = FALSE; for (; itm.current(); ++itm) { switch (itm.current()->type()) { case UmlSyncMsg: case UmlAsyncMsg: case UmlReturnMsg: if (itm.current()->get_dest() == (const SdMsgSupport *) this) break; // no break default: // msg starts from duration or duration ends a found msg count += 1; } if (itm.current()->y() > maxy) { maxy = itm.current()->y(); switch (itm.current()->type()) { case UmlReturnMsg: case UmlSelfReturnMsg: isreturn = TRUE; break; default: isreturn = FALSE; } } } if (!isreturn) count += 1; Q3PtrListIterator<SdDurationCanvas> itd(durations); for (; itd.current(); ++itd) count += itd.current()->count_msg(api_format); return count; }
void SdDurationCanvas::send(ToolCom * com, int id) const { Q3PtrListIterator<SdMsgBaseCanvas> itm(msgs); double maxy = 0; bool isreturn = FALSE; for (; itm.current(); ++itm) { switch (itm.current()->type()) { case UmlSyncMsg: case UmlAsyncMsg: case UmlReturnMsg: if (itm.current()->get_dest() == (const SdMsgSupport *) this) break; // no break default: // msg start from duration, except for found msg itm.current()->send(com, id); } if (itm.current()->y() > maxy) { maxy = itm.current()->y(); switch (itm.current()->type()) { case UmlReturnMsg: case UmlSelfReturnMsg: isreturn = TRUE; break; default: isreturn = FALSE; } } } if (!isreturn) SdMsgBaseCanvas::send(com, id, (unsigned) x() + width(), (unsigned) y() + height(), anImplicitReturn, "", "", ""); Q3PtrListIterator<SdDurationCanvas> itd(durations); for (; itd.current(); ++itd) itd.current()->send(com, id); }
void SdDurationCanvas::history_save(QBuffer & b) const { DiagramCanvas::history_save(b); ::save(width_scale100, b); ::save(height_scale100, b); ::save(width(), b); ::save(height(), b); ::save_ptr(support, b); Q3PtrListIterator<SdMsgBaseCanvas> it(msgs); ::save((int) msgs.count(), b); for (; it.current(); ++it) ::save(it.current(), b); Q3PtrListIterator<SdDurationCanvas> itd(durations); ::save((int) durations.count(), b); for (; itd.current(); ++itd) ::save(itd.current(), b); }
void SdDurationCanvas::save_internal(Q3TextStream & st) const { indent(+1); if (coregion) { nl_indent(st); st << "coregion"; } if (itscolor != UmlDefaultColor) { nl_indent(st); st << "color " << stringify(itscolor); } nl_indent(st); save_xyzwh(st, this, "xyzwh"); Q3PtrListIterator<SdDurationCanvas> itd(durations); for (; itd.current(); ++itd) itd.current()->save_sub(st); indent(-1); nl_indent(st); st << "end"; }
void BrowserView::update(const Q3PtrList<BrowserView> & lv) { Q3Dict<Use> all_nodes(DICT_SIZE); Q3PtrListIterator<BrowserView> itv(lv); all_nodes.setAutoDelete(TRUE); // look at the revision in each view for (; itv.current(); ++itv) { Q3DictIterator<BrowserNode> itd(itv.current()->nodes); for (; itd.current(); ++itd) { BrowserNode * bn = itd.current(); int rev = bn->get_rev(); Use * use = all_nodes.find(itd.currentKey()); if (use == 0) all_nodes.insert(itd.currentKey(), new Use(rev)); else { if (rev < use->rev_min) use->rev_min = rev; if (rev > use->rev_max) use->rev_max = rev; use->count += 1; } } } // first solve step // only the package existing in all the view are solved int nviews = lv.count(); QStringList deleted_or_new; Q3DictIterator<Use> itu(all_nodes); for (; itu.current(); ++itu) { QString who = itu.currentKey(); Use * use = itu.current(); if (use->count == nviews) { // exist in all views : solve the state if (use->rev_min == use->rev_max) { // up to date in all views for (itv.toFirst(); itv.current(); ++itv) itv.current()->nodes.find(who)->set_state(UpToDate); } else { int max = use->rev_max; for (itv.toFirst(); itv.current(); ++itv) { BrowserNode * pack = itv.current()->nodes.find(who); pack->set_state((pack->get_rev() == max) ? Young : Old); } } } else { // deleted or new, mark it unknown for this step deleted_or_new.append(who); for (itv.toFirst(); itv.current(); ++itv) { BrowserNode * pack = itv.current()->nodes.find(who); if (pack != 0) pack->set_state(Unknown); } } } all_nodes.clear(); // solve packages marked unknown // a package is deleted if its parent is never 'Young' QStringList::Iterator it; for (it = deleted_or_new.begin(); it != deleted_or_new.end(); ++it) { QString who = *it; Q3PtrList<BrowserNode> images; bool young = FALSE; // set the state in each view without looking at the others for (itv.toFirst(); itv.current(); ++itv) { BrowserNode * pack = itv.current()->nodes.find(who); if (pack != 0) { images.append(pack); if (pack->solve()) young = TRUE; } } // set the final state if young, else all already marked deleted if (young) { BrowserNode * pack; for (pack = images.first(); pack != 0; pack = images.next()) pack->set_state(Young); } } // force update on views for (itv.toFirst(); itv.current(); ++itv) itv.current()->update_it(); }