1 /* SPDX-FileCopyrightText: 2014 Jesper K. Pedersen <blackie@kde.org>
2 
3    SPDX-License-Identifier: GPL-2.0-or-later
4 */
5 
6 #include "SearchInfo.h"
7 
8 namespace RemoteControl
9 {
10 
addCategory(const QString & category)11 void RemoteControl::SearchInfo::addCategory(const QString &category)
12 {
13     m_categories.append(category);
14 }
15 
addValue(const QString & value)16 void SearchInfo::addValue(const QString &value)
17 {
18     m_values.append(value);
19 }
20 
pop()21 void SearchInfo::pop()
22 {
23     m_categories.pop();
24     if (m_values.count() > m_categories.count())
25         m_values.pop();
26 }
27 
clear()28 void SearchInfo::clear()
29 {
30     m_categories.clear();
31     m_values.clear();
32 }
33 
currentCategory() const34 QString SearchInfo::currentCategory() const
35 {
36     if (m_categories.isEmpty())
37         return {};
38     return m_categories.top();
39 }
40 
operator <<(QDataStream & stream,const SearchInfo & searchInfo)41 QDataStream &operator<<(QDataStream &stream, const SearchInfo &searchInfo)
42 {
43     stream << searchInfo.m_categories << searchInfo.m_values;
44     return stream;
45 }
46 
operator >>(QDataStream & stream,SearchInfo & searchInfo)47 QDataStream &operator>>(QDataStream &stream, SearchInfo &searchInfo)
48 {
49     stream >> searchInfo.m_categories >> searchInfo.m_values;
50     return stream;
51 }
52 
values() const53 QList<std::tuple<QString, QString>> RemoteControl::SearchInfo::values() const
54 {
55     QList<std::tuple<QString, QString>> result;
56     for (int i = 0; i < m_values.count(); ++i)
57         result.append(std::make_tuple(m_categories[i], m_values[i]));
58     return result;
59 }
60 
61 } // namespace RemoteControl
62