void WSuggestionPopup::modelDataChanged(const WModelIndex& topLeft, const WModelIndex& bottomRight) { if (topLeft.parent().isValid()) return; if (modelColumn_ < topLeft.column() || modelColumn_ > bottomRight.column()) return; for (int i = topLeft.row(); i <= bottomRight.row(); ++i) { WContainerWidget *w = dynamic_cast<WContainerWidget *>(impl_->widget(i)); WAnchor *anchor = dynamic_cast<WAnchor *>(w->widget(0)); WText *value = dynamic_cast<WText *>(anchor->widget(0)); WModelIndex index = model_->index(i, modelColumn_); boost::any d = index.data(); value->setText(asString(d)); TextFormat format = index.flags() & ItemIsXHTMLText ? XHTMLText : PlainText; value->setTextFormat(format); boost::any d2 = model_->data(i, modelColumn_, UserRole); if (d2.empty()) d2 = d; value->setAttributeValue("sug", asString(d2)); } }
void WSuggestionPopup::modelRowsInserted(const WModelIndex& parent, int start, int end) { if (filterLength_ != 0 && !filtering_) return; if (modelColumn_ >= model_->columnCount()) return; if (parent.isValid()) return; for (int i = start; i <= end; ++i) { WContainerWidget *line = new WContainerWidget(); content_->insertWidget(i, line); boost::any d = model_->data(i, modelColumn_); WText *value = new WText(asString(d), PlainText); boost::any d2 = model_->data(i, modelColumn_, UserRole); if (d2.empty()) d2 = d; line->addWidget(value); value->setAttributeValue("sug", asString(d2)); } }
void WSuggestionPopup::modelRowsInserted(const WModelIndex& parent, int start, int end) { if (filterLength_ != 0 && !filtering_) return; if (modelColumn_ >= model_->columnCount()) return; if (parent.isValid()) return; for (int i = start; i <= end; ++i) { WContainerWidget *line = new WContainerWidget(); impl_->insertWidget(i, line); WModelIndex index = model_->index(i, modelColumn_); boost::any d = index.data(); TextFormat format = index.flags() & ItemIsXHTMLText ? XHTMLText : PlainText; WAnchor *anchor = new WAnchor(line); WText *value = new WText(asString(d), format, anchor); boost::any d2 = index.data(UserRole); if (d2.empty()) d2 = d; value->setAttributeValue("sug", asString(d2)); boost::any styleclass = index.data(StyleClassRole); if (!styleclass.empty()) { value->setAttributeValue("class", asString(styleclass)); } } }
void WSuggestionPopup::modelDataChanged(const WModelIndex& topLeft, const WModelIndex& bottomRight) { if (topLeft.parent().isValid()) return; if (modelColumn_ < topLeft.column() || modelColumn_ > bottomRight.column()) return; for (int i = topLeft.row(); i <= bottomRight.row(); ++i) { WContainerWidget *w = dynamic_cast<WContainerWidget *>(content_->widget(i)); WText *value = dynamic_cast<WText *>(w->widget(0)); boost::any d = model_->data(i, modelColumn_); value->setText(asString(d)); boost::any d2 = model_->data(i, modelColumn_, UserRole); if (d2.empty()) d2 = d; value->setAttributeValue("sug", asString(d2)); } }