swift
userlistmodel.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <Qt>
7 #include <QtDebug>
8 #include <QtGlobal>
9 
10 #include "gui/models/columns.h"
12 #include "misc/aviation/callsign.h"
14 
15 using namespace swift::misc::network;
16 using namespace swift::misc::aviation;
17 
18 namespace swift::gui::models
19 {
20  CUserListModel::CUserListModel(UserMode userMode, QObject *parent) : CListModelBase("ModelUserList", parent)
21  {
22  this->setUserMode(userMode);
23 
24  // force strings for translation in resource files
25  (void)QT_TRANSLATE_NOOP("ModelUserList", "callsign");
26  (void)QT_TRANSLATE_NOOP("ModelUserList", "realname");
27  (void)QT_TRANSLATE_NOOP("ModelUserList", "homebase");
28  (void)QT_TRANSLATE_NOOP("ModelUserList", "userid");
29  (void)QT_TRANSLATE_NOOP("ModelUserList", "email");
30  }
31 
33  {
34  if (m_userMode == userMode) return;
35  m_userMode = userMode;
36  m_columns.clear();
37  switch (userMode)
38  {
39  case NotSet:
40  case UserDetailed:
41  m_columns.addColumn(CColumn(CUser::IndexIcon));
42  m_columns.addColumn(CColumn::standardString("realname", CUser::IndexRealName));
44  CColumn::standardValueObject("callsign", { CUser::IndexCallsign, CCallsign::IndexCallsignString }));
46  { CUser::IndexHomebase, CAirportIcaoCode::IndexString }));
47  m_columns.addColumn(CColumn::standardString("userid", CUser::IndexId7Digit));
48 
49  // default sort order
50  this->setSortColumnByPropertyIndex(CUser::IndexRealName);
52  break;
53 
54  case UserShort:
55  m_columns.addColumn(CColumn(CUser::IndexIcon));
56  m_columns.addColumn(CColumn::standardString("realname", CUser::IndexRealName));
57  m_columns.addColumn(CColumn::standardValueObject("callsign", CUser::IndexCallsign));
58 
59  // default sort order
60  this->setSortColumnByPropertyIndex(CUser::IndexCallsign);
62  break;
63 
64  default: qFatal("Wrong mode"); break;
65  }
66  }
67 } // namespace swift::gui::models
Single column.
Definition: columns.h:26
static CColumn standardValueObject(const QString &headerName, const swift::misc::CPropertyIndex &propertyIndex, int alignment=CDefaultFormatter::alignDefault())
Get a standard value object formatted column.
Definition: columns.cpp:46
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
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 setUserMode(UserMode userMode)
Set station mode.
Models to be used with views, mainly QTableView.
AscendingOrder