LeechCraft
0.6.70-19214-g121e5318a7
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
flatitemsmodelbase.h
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
#pragma once
10
11
#include <source_location>
12
#include <QAbstractItemModel>
13
#include "
modelsconfig.h
"
14
15
namespace
LC::Util
16
{
17
class
UTIL_MODELS_API
FlatItemsModelBase
:
public
QAbstractItemModel
18
{
19
const
QStringList Headers_;
20
21
QHash<int, QVariant> GlobalData_;
22
public
:
23
constexpr
static
auto
DataRole
= Qt::UserRole;
24
25
explicit
FlatItemsModelBase
(QStringList headers, QObject* =
nullptr
);
26
27
int
columnCount
(
const
QModelIndex&
index
= {})
const
override
;
28
QVariant data (
const
QModelIndex& index,
int
role)
const override
;
29
QVariant headerData (
int
section, Qt::Orientation orientation,
int
role)
const override
;
30
QModelIndex index (
int
row,
int
col,
const
QModelIndex& parent = {})
const
override
;
31
QModelIndex parent (
const
QModelIndex&)
const override
;
32
int
rowCount (
const
QModelIndex& parent = {})
const
override
;
33
34
void
SetGlobalData (
const
QVariant& data,
int
role);
35
protected
:
36
virtual
int
GetItemsCount
()
const
= 0;
37
virtual
QVariant
GetData
(
int
row,
int
col,
int
role)
const
= 0;
38
39
[[noreturn, gnu::cold, gnu::noinline]]
40
static
void
NotifyRowOutOfRange
(
const
FlatItemsModelBase
& model,
int
row,
int
count,
const
std::source_location& loc);
41
};
42
}
LC::Util::FlatItemsModelBase::GetItemsCount
virtual int GetItemsCount() const =0
LC::Util::FlatItemsModelBase::index
QModelIndex index(int row, int col, const QModelIndex &parent={}) const override
Definition
flatitemsmodelbase.cpp:42
LC::Util::FlatItemsModelBase::columnCount
int columnCount(const QModelIndex &index={}) const override
Definition
flatitemsmodelbase.cpp:20
LC::Util::FlatItemsModelBase::NotifyRowOutOfRange
static void NotifyRowOutOfRange(const FlatItemsModelBase &model, int row, int count, const std::source_location &loc)
Definition
flatitemsmodelbase.cpp:69
LC::Util::FlatItemsModelBase::DataRole
static constexpr auto DataRole
Definition
flatitemsmodelbase.h:23
LC::Util::FlatItemsModelBase::GetData
virtual QVariant GetData(int row, int col, int role) const =0
LC::Util::FlatItemsModelBase::FlatItemsModelBase
FlatItemsModelBase(QStringList headers, QObject *=nullptr)
Definition
flatitemsmodelbase.cpp:14
modelsconfig.h
UTIL_MODELS_API
#define UTIL_MODELS_API
Definition
modelsconfig.h:16
LC::Util
Definition
icoreproxy.h:34
src
util
models
flatitemsmodelbase.h
Generated by
1.18.0