File indexing completed on 2024-04-14 03:46:39

0001 /*
0002  * manage multiple choice suggestions for queries
0003  * SPDX-FileCopyrightText: 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de>
0004  * SPDX-FileCopyrightText: 2005 Peter Hedlund <peter.hedlund@kdemail.net>
0005  * SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #include "keduvocmultiplechoice.h"
0009 
0010 class KEduVocMultipleChoice::KEduVocMultipleChoicePrivate
0011 {
0012 public:
0013     QStringList m_choices;
0014 };
0015 
0016 KEduVocMultipleChoice::KEduVocMultipleChoice()
0017     : d(new KEduVocMultipleChoicePrivate)
0018 {
0019 }
0020 
0021 KEduVocMultipleChoice::KEduVocMultipleChoice(const KEduVocMultipleChoice &other)
0022     : d(new KEduVocMultipleChoicePrivate)
0023 {
0024     d->m_choices = other.choices();
0025 }
0026 
0027 KEduVocMultipleChoice::KEduVocMultipleChoice(const QStringList &choices)
0028     : d(new KEduVocMultipleChoicePrivate)
0029 {
0030     foreach (const QString &choice, choices) {
0031         // use appendChoice to check for empty entries
0032         appendChoice(choice);
0033     }
0034 }
0035 
0036 KEduVocMultipleChoice::~KEduVocMultipleChoice()
0037 {
0038     delete d;
0039 }
0040 
0041 KEduVocMultipleChoice &KEduVocMultipleChoice::operator=(const KEduVocMultipleChoice &other)
0042 {
0043     d->m_choices = other.choices();
0044     return *this;
0045 }
0046 
0047 QStringList KEduVocMultipleChoice::choices() const
0048 {
0049     return d->m_choices;
0050 }
0051 
0052 bool KEduVocMultipleChoice::isEmpty() const
0053 {
0054     return d->m_choices.isEmpty();
0055 }
0056 
0057 void KEduVocMultipleChoice::clear()
0058 {
0059     d->m_choices.clear();
0060 }
0061 
0062 QString KEduVocMultipleChoice::choice(int index) const
0063 {
0064     QString choice;
0065     if (d->m_choices.size() > index) {
0066         choice = d->m_choices[index];
0067     }
0068     return choice;
0069 }
0070 
0071 unsigned KEduVocMultipleChoice::size() const
0072 {
0073     return d->m_choices.size();
0074 }
0075 
0076 bool KEduVocMultipleChoice::operator==(const KEduVocMultipleChoice &choice) const
0077 {
0078     return d->m_choices == choice.choices();
0079 }
0080 
0081 void KEduVocMultipleChoice::appendChoice(const QString &s)
0082 {
0083     if (!s.isEmpty()) {
0084         d->m_choices.append(s);
0085     }
0086 }