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)
21  : CListModelBase("ModelUserList", parent), m_userMode(NotSet)
22  {
23  this->setUserMode(userMode);
24 
25  // force strings for translation in resource files
26  (void)QT_TRANSLATE_NOOP("ModelUserList", "callsign");
27  (void)QT_TRANSLATE_NOOP("ModelUserList", "realname");
28  (void)QT_TRANSLATE_NOOP("ModelUserList", "homebase");
29  (void)QT_TRANSLATE_NOOP("ModelUserList", "userid");
30  (void)QT_TRANSLATE_NOOP("ModelUserList", "email");
31  }
32 
34  {
35  if (m_userMode == userMode) return;
36  m_userMode = userMode;
37  m_columns.clear();
38  switch (userMode)
39  {
40  case NotSet:
41  case UserDetailed:
42  m_columns.addColumn(CColumn(CUser::IndexIcon));
43  m_columns.addColumn(CColumn::standardString("realname", CUser::IndexRealName));
45  CColumn::standardValueObject("callsign", { CUser::IndexCallsign, CCallsign::IndexCallsignString }));
47  { CUser::IndexHomebase, CAirportIcaoCode::IndexString }));
48  m_columns.addColumn(CColumn::standardString("userid", CUser::IndexId7Digit));
49 
50  // default sort order
51  this->setSortColumnByPropertyIndex(CUser::IndexRealName);
52  m_sortOrder = Qt::AscendingOrder;
53  break;
54 
55  case UserShort:
56  m_columns.addColumn(CColumn(CUser::IndexIcon));
57  m_columns.addColumn(CColumn::standardString("realname", CUser::IndexRealName));
58  m_columns.addColumn(CColumn::standardValueObject("callsign", CUser::IndexCallsign));
59 
60  // default sort order
61  this->setSortColumnByPropertyIndex(CUser::IndexCallsign);
62  m_sortOrder = Qt::AscendingOrder;
63  break;
64 
65  default: qFatal("Wrong mode"); break;
66  }
67  }
68 } // 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.