9#include "AbstractMultipleChoiceFilter.h"
21 AbstractMultipleChoiceFilter::AbstractMultipleChoiceFilter(
22 AbstractFilter::FilterEffectivenessFlag flag,
23 int minimumForSuccess) : AbstractFilter(flag, minimumForSuccess) {
25 m_curChoice =
new QString;
28 AbstractMultipleChoiceFilter::AbstractMultipleChoiceFilter(
29 AbstractMultipleChoiceFilter
const &other) : AbstractFilter(other) {
31 m_curChoice =
new QString;
34 for (
int i = 0; i < other.m_combo->count(); i++)
35 options.append(other.m_combo->itemText(i));
37 createWidget(options);
39 m_combo->setCurrentIndex(other.m_combo->currentIndex());
44 AbstractMultipleChoiceFilter::~AbstractMultipleChoiceFilter() {
52 void AbstractMultipleChoiceFilter::nullify() {
58 void AbstractMultipleChoiceFilter::createWidget(
QStringList options) {
60 foreach (QString option, options)
61 m_combo->addItem(option);
63 m_combo->setCurrentIndex(0);
65 *m_curChoice = m_combo->currentText();
67 connect(m_combo, SIGNAL(currentIndexChanged(QString)),
68 this, SLOT(updateCurChoice(QString)));
70 QHBoxLayout *layout =
new QHBoxLayout;
71 QMargins margins = layout->contentsMargins();
74 layout->setContentsMargins(margins);
75 layout->addWidget(m_combo);
78 getMainLayout()->addLayout(layout);
82 QString
const &AbstractMultipleChoiceFilter::getCurrentChoice()
const {
87 void AbstractMultipleChoiceFilter::updateCurChoice(QString newChoice) {
89 *m_curChoice = newChoice;
This is free and unencumbered software released into the public domain.