LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
flatitemsmodelbase.cpp
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #include "flatitemsmodelbase.h"
10 
11 namespace LC::Util
12 {
13  FlatItemsModelBase::FlatItemsModelBase (QStringList headers, QObject *parent)
14  : QAbstractItemModel { parent }
15  , Headers_ { std::move (headers) }
16  {
17  }
18 
19  int FlatItemsModelBase::columnCount (const QModelIndex& index) const
20  {
21  return index.isValid () ? 0 : Headers_.size ();
22  }
23 
24  QVariant FlatItemsModelBase::data (const QModelIndex& index, int role) const
25  {
26  if (!index.isValid ())
27  return {};
28 
29  return GetData (index.row (), index.column (), role);
30  }
31 
32  QVariant FlatItemsModelBase::headerData (int section, Qt::Orientation orientation, int role) const
33  {
34  if (orientation != Qt::Horizontal || role != Qt::DisplayRole)
35  return {};
36 
37  return Headers_.value (section);
38  }
39 
40  QModelIndex FlatItemsModelBase::index (int row, int col, const QModelIndex& parent) const
41  {
42  if (parent.isValid () ||
43  row >= GetItemsCount () ||
44  col >= Headers_.size ())
45  return {};
46 
47  return createIndex (row, col);
48  }
49 
50  QModelIndex FlatItemsModelBase::parent (const QModelIndex&) const
51  {
52  return {};
53  }
54 
55  int FlatItemsModelBase::rowCount (const QModelIndex& parent) const
56  {
57  return parent.isValid () ? 0 : GetItemsCount ();
58  }
59 }
LC::Util::FlatItemsModelBase::parent
QModelIndex parent(const QModelIndex &) const override
Definition: flatitemsmodelbase.cpp:56
LC::Util::FlatItemsModelBase::index
QModelIndex index(int row, int col, const QModelIndex &parent={}) const override
Definition: flatitemsmodelbase.cpp:46
flatitemsmodelbase.h
LC::Util::FlatItemsModelBase::GetItemsCount
virtual int GetItemsCount() const =0
LC::Util::FlatItemsModelBase::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Definition: flatitemsmodelbase.cpp:38
LC::Util
Definition: icoreproxy.h:33
LC::Util::FlatItemsModelBase::GetData
virtual QVariant GetData(int row, int col, int role) const =0
LC::Util::FlatItemsModelBase::data
QVariant data(const QModelIndex &index, int role) const override
Definition: flatitemsmodelbase.cpp:30
LC::Util::FlatItemsModelBase::rowCount
int rowCount(const QModelIndex &parent={}) const override
Definition: flatitemsmodelbase.cpp:61
LC::Util::FlatItemsModelBase::FlatItemsModelBase
FlatItemsModelBase(QStringList headers, QObject *=nullptr)
Definition: flatitemsmodelbase.cpp:19
LC::Util::FlatItemsModelBase::columnCount
int columnCount(const QModelIndex &index={}) const override
Definition: flatitemsmodelbase.cpp:25