swift
distributorlistmodel.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2015 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"
11 #include "misc/db/datastore.h"
15 #include "misc/timestampbased.h"
16 
17 using namespace swift::misc::simulation;
18 
19 namespace swift::gui::models
20 {
21  CDistributorListModel::CDistributorListModel(QObject *parent)
22  : COrderableListModelDbObjects("ModelDistributorList", parent)
23  {
24  this->setDistributorMode(Normal);
25 
26  // force strings for translation in resource files
27  (void)QT_TRANSLATE_NOOP("ModelDistributorList", "key");
28  (void)QT_TRANSLATE_NOOP("ModelDistributorList", "description");
29  (void)QT_TRANSLATE_NOOP("ModelDistributorList", "alias1");
30  (void)QT_TRANSLATE_NOOP("ModelDistributorList", "alias2");
31  }
32 
34  {
35  if (m_distributorMode == distributorMode) { return; }
36  m_distributorMode = distributorMode;
37  m_columns.clear();
38  switch (distributorMode)
39  {
40  case NormalWithOrder: m_columns.addColumn(CColumn::orderColumn()); [[fallthrough]];
41  case NotSet:
42  case Normal:
43  {
44  m_columns.addColumn(CColumn::standardString("key", CDistributor::IndexDbStringKey));
45  m_columns.addColumn(CColumn::standardString("description", CDistributor::IndexDescription));
46  m_columns.addColumn(CColumn::standardString("alias1", CDistributor::IndexAlias1));
47  m_columns.addColumn(CColumn::standardString("alias2", CDistributor::IndexAlias2));
48  m_columns.addColumn(CColumn::standardString("sim.", "simulator",
49  { CDistributor::IndexSimulator, CSimulatorInfo::IndexString }));
50  m_columns.addColumn(CColumn::standardString("changed", CDistributor::IndexUtcTimestampFormattedYmdhms));
51 
52  // default sort order
53  this->setSortColumnByPropertyIndex(CDistributor::IndexDbStringKey);
54  m_sortOrder = Qt::AscendingOrder;
55  }
56  break;
57 
58  case MinimalWithOrder: m_columns.addColumn(CColumn::orderColumn()); [[fallthrough]];
59  case Minimal:
60  {
61  m_columns.addColumn(CColumn::standardString("key", CDistributor::IndexDbStringKey));
62  m_columns.addColumn(CColumn::standardString("description", CDistributor::IndexDescription));
63 
64  // default sort order
65  this->setSortColumnByPropertyIndex(CDistributor::IndexDbStringKey);
66  m_sortOrder = Qt::AscendingOrder;
67  }
68  break;
69 
70  default: qFatal("Wrong mode"); break;
71  }
72  }
73 } // namespace swift::gui::models
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 orderColumn(const swift::misc::CPropertyIndex &propertyIndex=swift::misc::CPropertyIndexRef::GlobalIndexIOrderable, int alignment=CDefaultFormatter::alignRightVCenter())
Get a standard string object formatted column.
Definition: columns.cpp:68
void addColumn(const CColumn &column)
Add a column.
Definition: columns.cpp:100
void setDistributorMode(DistributorMode distributorMode)
Set mode.
virtual bool setSortColumnByPropertyIndex(const swift::misc::CPropertyIndex &propertyIndex)
Set column for sorting.
Models to be used with views, mainly QTableView.