1#ifndef FREQUENCY_LIST_HPP__
2#define FREQUENCY_LIST_HPP__
4#include "IARURegions.h"
5#include "JS8_Include/pimpl_h.h"
10#include <QSortFilterProxyModel>
40class FrequencyList_v3 final :
public QSortFilterProxyModel {
44 using Region = IARURegions::Region;
45 using Frequency = Radio::Frequency;
46 using Mode = Modes::Mode;
55 using BandSet = QSet<QString>;
67 class const_iterator {
69 const_iterator(FrequencyList_v3
const *parent,
int row)
70 : parent_{parent}, row_{row} {}
72 Item const &operator*()
const;
73 Item const *operator->()
const;
74 bool operator!=(const_iterator
const &)
const;
75 bool operator==(const_iterator
const &)
const;
76 const_iterator &operator++();
79 FrequencyList_v3
const *parent_;
83 explicit FrequencyList_v3(
Bands const *, QObject *parent =
nullptr);
87 FrequencyItems frequency_list(FrequencyItems);
88 FrequencyItems
const &frequency_list()
const;
89 FrequencyItems frequency_list(QModelIndexList
const &)
const;
90 void frequency_list_merge(FrequencyItems
const &);
105 BandSet all_bands(Region = IARURegions::ALL, Mode = Modes::ALL)
const;
106 BandSet filtered_bands()
const;
111 int best_working_frequency(Frequency)
const;
116 int best_working_frequency(QString
const &band)
const;
119 Q_SLOT
void filter(Region, Mode);
122 Q_SLOT
void reset_to_defaults();
125 QModelIndex add(
Item);
127 bool removeDisjointRows(QModelIndexList);
130 bool filterAcceptsRow(
int source_row,
131 QModelIndex
const &parent)
const override;
134 static int constexpr SortRole = Qt::UserRole;
143 return lhs.frequency_ == rhs.frequency_ && lhs.region_ == rhs.region_ &&
144 lhs.mode_ == rhs.mode_ && lhs.description_ == rhs.description_;
150#if !defined(QT_NO_DEBUG_STREAM)
155Q_DECLARE_METATYPE(FrequencyList_v3::FrequencyItems);
164 using Region = IARURegions::Region;
165 using Frequency = Radio::Frequency;
166 using Mode = Modes::Mode;
169 Frequency frequency_;
176 FrequencyItems frequency_list_;
184Q_DECLARE_METATYPE(FrequencyList_v2::FrequencyItems);
188 using Frequency = Radio::Frequency;
189 using Mode = Modes::Mode;
192 Frequency frequency_;
198 FrequencyItems frequency_list_;
205Q_DECLARE_METATYPE(FrequencyList::FrequencyItems);
Definition FrequencyList.h:162
Definition FrequencyList.h:67
Definition FrequencyList.cpp:64
Definition FrequencyList.h:186
Definition qpriorityqueue.h:39
Definition FrequencyList.h:191
Definition FrequencyList.h:168
Definition FrequencyList.h:48