QString JabberSearch::condition(bool &bXSearch) { bXSearch = m_bXData; QString res; if (m_bXData) res += "x:data"; QObjectList *l = queryList("QLineEdit"); QObjectListIt it( *l ); QObject *obj; while ((obj = it.current()) != 0 ){ QLineEdit *edit = static_cast<QLineEdit*>(obj); if (!edit->text().isEmpty()){ if (!res.isEmpty()) res += ";"; res += edit->name(); res += "="; res += quoteChars(edit->text(), ";"); } ++it; } delete l; l = queryList("QComboBox"); QObjectListIt it1( *l ); while ((obj = it1.current()) != 0 ){ CComboBox *box = static_cast<CComboBox*>(obj); if (box->currentText().isEmpty()){ ++it1; continue; } if (!res.isEmpty()) res += ";"; res += box->name(); res += "="; res += quoteChars(box->value(), ";"); ++it1; } delete l; l = queryList("QCheckBox"); QObjectListIt it2( *l ); while ((obj = it2.current()) != 0 ){ QCheckBox *box = static_cast<QCheckBox*>(obj); if (!box->isChecked()){ ++it2; continue; } if (!res.isEmpty()) res += ";"; res += box->name(); res += "=1"; ++it2; } delete l; l = queryList("QMultiLineEdit"); QObjectListIt it3( *l ); while ((obj = it3.current()) != 0 ){ QMultiLineEdit *edit = static_cast<QMultiLineEdit*>(obj); if (!edit->text().isEmpty()){ if (!res.isEmpty()) res += ";"; res += edit->name(); res += "="; res += quoteChars(edit->text(), ";"); } ++it3; } delete l; if (!m_key.empty()){ if (!res.isEmpty()) res += ";"; res += "key="; res += quoteChars(QString::fromUtf8(m_key.c_str()), ";"); } return res; }
QString JabberSearch::condition(QWidget *w) { QString res; if (m_bXData && (w == NULL)) res += "x:data"; if (w == NULL) w = this; QObjectList *l = w->queryList("QLineEdit"); QObjectListIt it( *l ); QObject *obj; while ((obj = it.current()) != 0 ){ QLineEdit *edit = static_cast<QLineEdit*>(obj); if (!edit->text().isEmpty()){ if (!res.isEmpty()) res += ';'; res += edit->name(); res += '='; res += quoteChars(edit->text(), ";"); } ++it; } delete l; l = w->queryList("QComboBox"); QObjectListIt it1( *l ); while ((obj = it1.current()) != 0 ){ CComboBox *box = static_cast<CComboBox*>(obj); if (box->currentText().isEmpty()){ ++it1; continue; } if (!res.isEmpty()) res += ';'; res += box->name(); res += '='; res += quoteChars(box->value(), ";"); ++it1; } delete l; l = w->queryList("QCheckBox"); QObjectListIt it2( *l ); while ((obj = it2.current()) != 0 ){ QCheckBox *box = static_cast<QCheckBox*>(obj); if (!res.isEmpty()) res += ';'; res += box->name(); res += box->isChecked() ? "=1" : "=0"; ++it2; } delete l; l = w->queryList("QMultiLineEdit"); QObjectListIt it3( *l ); while ((obj = it3.current()) != 0 ){ QMultiLineEdit *edit = static_cast<QMultiLineEdit*>(obj); if (!edit->text().isEmpty()){ if (!res.isEmpty()) res += ';'; res += edit->name(); res += '='; res += quoteChars(edit->text(), ";"); } ++it3; } delete l; if (!m_key.isEmpty() && (w == NULL)){ if (!res.isEmpty()) res += ';'; res += "key="; res += quoteChars(m_key, ";"); } return res; }