swift
matchingstatisticsmodel.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2017 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <QtGlobal>
7 
8 #include "gui/models/columns.h"
9 
10 using namespace swift::misc::simulation;
11 
12 namespace swift::gui::models
13 {
14  CMatchingStatisticsModel::CMatchingStatisticsModel(MatchingStatisticsMode mode, QObject *parent)
15  : CListModelBase("MatchingStatisticsModel", parent)
16  {
17  this->setMode(mode);
18 
19  // force strings for translation in resource files
20  (void)QT_TRANSLATE_NOOP("MatchingStatisticsModel", "session");
21  (void)QT_TRANSLATE_NOOP("MatchingStatisticsModel", "model set");
22  (void)QT_TRANSLATE_NOOP("MatchingStatisticsModel", "combination");
23  (void)QT_TRANSLATE_NOOP("MatchingStatisticsModel", "type");
24  (void)QT_TRANSLATE_NOOP("MatchingStatisticsModel", "aircraft");
25  (void)QT_TRANSLATE_NOOP("MatchingStatisticsModel", "airline");
26  }
27 
29  {
30  if (m_mode == mode) { return; }
31  m_mode = mode;
32  m_columns.clear();
33  switch (mode)
34  {
35  case ForMultiSessions:
36  m_columns.addColumn(CColumn::standardString("session", CMatchingStatisticsEntry::IndexSessionId));
37  m_columns.addColumn(CColumn::standardString("model set", CMatchingStatisticsEntry::IndexModelSetId));
38  // fall thru
39  case ForSingleSession:
40  m_columns.addColumn(CColumn("type", CMatchingStatisticsEntry::IndexEntryTypeAsIcon));
41  m_columns.addColumn(CColumn::standardString("aircraft", CMatchingStatisticsEntry::IndexAircraftDesignator));
42  m_columns.addColumn(CColumn::standardString("airline", CMatchingStatisticsEntry::IndexAirlineDesignator));
43  m_columns.addColumn(CColumn::standardInteger("#", "count", CMatchingStatisticsEntry::IndexCount));
44  m_columns.addColumn(CColumn::standardString("description", CMatchingStatisticsEntry::IndexDescription));
45  break;
46  default: break;
47  }
48  this->setSortColumnByPropertyIndex(CMatchingStatisticsEntry::IndexAircraftDesignator);
49  }
50 } // namespace swift::gui::models
Single column.
Definition: columns.h:26
static CColumn standardString(const QString &headerName, const swift::misc::CPropertyIndex &propertyIndex, int alignment=CDefaultFormatter::alignDefault())
Get a standard string object formatted column.
Definition: columns.cpp:57
static CColumn standardInteger(const QString &headerName, const QString &toolTip, const swift::misc::CPropertyIndex &propertyIndex, int alignment=CDefaultFormatter::alignRightVCenter())
Get a standard integer value formatted column.
Definition: columns.cpp:73
void addColumn(const CColumn &column)
Add a column.
Definition: columns.cpp:100
virtual bool setSortColumnByPropertyIndex(const swift::misc::CPropertyIndex &propertyIndex)
Set column for sorting.
void setMode(MatchingStatisticsMode mode)
Set mode.
Models to be used with views, mainly QTableView.