8 #include <QStandardItem>
9 #include <QStandardItemModel>
24 using namespace swift::misc::physical_quantities;
25 using namespace swift::misc::aviation;
29 CAircraftCategoryTreeModel::CAircraftCategoryTreeModel(QObject *parent) : QStandardItemModel(parent)
38 Q_ASSERT_X(CThreadUtils::isInThisThread(
this), Q_FUNC_INFO,
"Wrong thread");
41 if (categories.
isEmpty()) {
return; }
43 m_categories = categories;
46 this->setColumnCount(m_columns.
size() + 1);
50 QList<QStandardItem *> categoryRow;
53 QStandardItem *si =
new QStandardItem(category.isAssignable() ? CIcons::paperPlane16() : CIcons::folder16(),
54 category.getLevelAndName());
55 si->setEditable(
false);
56 categoryRow.push_back(si);
62 const CVariant v(category.propertyByIndex(i));
63 const CVariant f = column.getFormatter()->displayRole(v);
64 si =
new QStandardItem(f.
toQString(
true));
65 si->setEditable(
false);
66 categoryRow.push_back(si);
70 if (categoryRow.isEmpty()) {
continue; }
72 QStandardItem *parent = categoryRow.first();
73 if (category.isFirstLevel()) { this->invisibleRootItem()->appendRow(categoryRow); }
76 const int p = category.getDepth() - 1;
77 Q_ASSERT_X(items[p], Q_FUNC_INFO,
"No parent item");
78 items[p]->appendRow(categoryRow);
80 items.insert(category.getDepth(), parent);
87 QStandardItemModel::clear();
void clear()
Clear everything.
void updateContainer(const swift::misc::aviation::CAircraftCategoryList &categories)
Update container.
static CColumn standardString(const QString &headerName, const swift::misc::CPropertyIndex &propertyIndex, int alignment=CDefaultFormatter::alignDefault())
Get a standard string object formatted column.
int size() const
Size (number of columns)
const QList< CColumn > & columns() const
Columns.
void addColumn(const CColumn &column)
Add a column.
void clear()
Removes all elements in the sequence.
bool isEmpty() const
Synonym for empty.
Wrapper around QVariant which provides transparent access to CValueObject methods of the contained ob...
Value object for aircraft categories.
Value object encapsulating a list of ICAO codes.
void sortByLevel()
Sort by level.
QString toQString(bool i18n=false) const
Cast as QString.
Models to be used with views, mainly QTableView.
Free functions in swift::misc.