From d5efab53e5c4dee50a55241e840a26814d115ad7 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Wed, 28 Sep 2011 08:50:57 +0100 Subject: Select defaults correctly in form widget. Resolves: #1002 diff --git a/Swift/QtUI/QtFormWidget.cpp b/Swift/QtUI/QtFormWidget.cpp index 050ff27..2df8d7f 100644 --- a/Swift/QtUI/QtFormWidget.cpp +++ b/Swift/QtUI/QtFormWidget.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -53,22 +54,23 @@ QListWidget* QtFormWidget::createList(FormField::ref field) { QListWidget* listWidget = new QListWidget(this); listWidget->setSortingEnabled(false); listWidget->setSelectionMode(boost::dynamic_pointer_cast(field) ? QAbstractItemView::MultiSelection : QAbstractItemView::SingleSelection); - foreach (FormField::Option option, field->getOptions()) { - listWidget->addItem(option.label.c_str()); - } boost::shared_ptr listMultiField = boost::dynamic_pointer_cast(field); boost::shared_ptr listSingleField = boost::dynamic_pointer_cast(field); - for (int i = 0; i < listWidget->count(); i++) { - QListWidgetItem* item = listWidget->item(i); - bool selected = false; + std::vector selected; + foreach (FormField::Option option, field->getOptions()) { + listWidget->addItem(option.label.c_str()); if (listSingleField) { - selected = (item->text() == QString(listSingleField->getValue().c_str())); + selected.push_back(option.value == listSingleField->getValue()); } else if (listMultiField) { - std::string text = Q2PSTRING(item->text()); - selected = (std::find(listMultiField->getValue().begin(), listMultiField->getValue().end(), text) != listMultiField->getValue().end()); + std::string text = option.value; + selected.push_back(std::find(listMultiField->getValue().begin(), listMultiField->getValue().end(), text) != listMultiField->getValue().end()); } - item->setSelected(selected); + + } + for (int i = 0; i < listWidget->count(); i++) { + QListWidgetItem* item = listWidget->item(i); + item->setSelected(selected[i]); } return listWidget; } diff --git a/Swift/QtUI/QtMUCConfigurationWindow.cpp b/Swift/QtUI/QtMUCConfigurationWindow.cpp index e6be9b7..a8dec2a 100644 --- a/Swift/QtUI/QtMUCConfigurationWindow.cpp +++ b/Swift/QtUI/QtMUCConfigurationWindow.cpp @@ -18,9 +18,9 @@ QtMUCConfigurationWindow::QtMUCConfigurationWindow(Form::ref form) { QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom, this); layout->setContentsMargins(0,0,0,0); layout->setSpacing(2); - QLabel* label = new QLabel(this); - label->setText(tr("Room configuration")); - layout->addWidget(label); + //QLabel* label = new QLabel(this); + //label->setText(tr("Room configuration")); + //layout->addWidget(label); formWidget_ = NULL; formWidget_ = new QtFormWidget(form, this); -- cgit v0.10.2-6-g49f6