libosmscout
1.1.1
Toggle main menu visibility
Loading...
Searching...
No Matches
libosmscout-client-qt
include
osmscoutclientqt
OpeningHoursModel.h
Go to the documentation of this file.
1
#ifndef OSMSCOUT_CLIENT_QT_OPENING_HOURS_MODEL
2
#define OSMSCOUT_CLIENT_QT_OPENING_HOURS_MODEL
3
4
/*
5
OSMScout - a Qt backend for libosmscout and libosmscout-map
6
Copyright (C) 2023 Lukas Karas
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
License as published by the Free Software Foundation; either
11
version 2.1 of the License, or (at your option) any later version.
12
13
This library is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
Lesser General Public License for more details.
17
18
You should have received a copy of the GNU Lesser General Public
19
License along with this library; if not, write to the Free Software
20
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
*/
22
23
#include <
osmscoutclientqt/ClientQtImportExport.h
>
24
25
#include <
osmscout/util/OpeningHours.h
>
26
27
#include <QObject>
28
#include <QDateTime>
29
#include <QAbstractListModel>
30
#include <QLocale>
31
32
namespace
osmscout
{
33
39
class
OSMSCOUT_CLIENT_QT_API
OpeningHoursModel
:
public
QAbstractListModel
40
{
41
Q_OBJECT
42
Q_PROPERTY(QString
openingHours
READ
getOpeningHours
WRITE
setOpeningHours
NOTIFY
updated
)
43
Q_PROPERTY(QStringList
today
READ
getToday
NOTIFY
updated
)
44
45
signals:
46
void
updated
();
47
void
parseError
();
48
49
public:
50
enum
Roles
{
51
DayRole
= Qt::UserRole,
52
ShortDayRole
= Qt::UserRole+1,
53
TimeIntervalsRole
= Qt::UserRole+2,
54
IsTodayRole
= Qt::UserRole+3,
55
};
56
Q_ENUM(Roles)
57
58
public
:
59
OpeningHoursModel
() =
default
;
60
OpeningHoursModel
(
const
OpeningHoursModel
&) =
delete
;
61
OpeningHoursModel
(
OpeningHoursModel
&&) =
delete
;
62
63
~OpeningHoursModel
()
override
=
default
;
64
65
OpeningHoursModel
&
operator=
(
const
OpeningHoursModel
&) =
delete
;
66
OpeningHoursModel
&
operator=
(
OpeningHoursModel
&&) =
delete
;
67
68
Q_INVOKABLE
int
inline
rowCount
(
const
QModelIndex &parent = QModelIndex())
const override
69
{
70
Q_UNUSED(parent);
71
return
model.size();
72
};
73
74
Q_INVOKABLE QVariant
data
(
const
QModelIndex &index,
int
role)
const override
;
75
QHash<int, QByteArray>
roleNames
()
const override
;
76
Q_INVOKABLE Qt::ItemFlags
flags
(
const
QModelIndex &index)
const override
;
77
78
QStringList
getToday
()
const
;
79
80
QString
getOpeningHours
()
const
81
{
82
return
rawOpeningHours;
83
}
84
85
void
setOpeningHours
(
const
QString &
openingHours
);
86
87
private
:
88
QStringList intervalStrings(
const
std::vector<OpeningHours::TimeInterval> &intervals)
const
;
89
QString dayName(
OpeningHours::WeekDay
weekDay)
const
;
90
QString shortDayName(
OpeningHours::WeekDay
weekDay)
const
;
91
92
private
:
93
QString rawOpeningHours;
94
std::vector<OpeningHours::Rule> model;
95
QLocale locale;
96
};
97
}
98
99
#endif
/* OSMSCOUT_CLIENT_QT_OPENING_HOURS_MODEL */
ClientQtImportExport.h
OSMSCOUT_CLIENT_QT_API
#define OSMSCOUT_CLIENT_QT_API
Definition
ClientQtImportExport.h:45
OpeningHours.h
osmscout::OpeningHours::WeekDay
WeekDay
Definition
OpeningHours.h:42
osmscout::OpeningHoursModel::roleNames
QHash< int, QByteArray > roleNames() const override
osmscout::OpeningHoursModel::operator=
OpeningHoursModel & operator=(const OpeningHoursModel &)=delete
osmscout::OpeningHoursModel::OpeningHoursModel
OpeningHoursModel()=default
osmscout::OpeningHoursModel::today
QStringList today
Definition
OpeningHoursModel.h:43
osmscout::OpeningHoursModel::rowCount
Q_INVOKABLE int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition
OpeningHoursModel.h:68
osmscout::OpeningHoursModel::openingHours
QString openingHours
Definition
OpeningHoursModel.h:42
osmscout::OpeningHoursModel::flags
Q_INVOKABLE Qt::ItemFlags flags(const QModelIndex &index) const override
osmscout::OpeningHoursModel::data
Q_INVOKABLE QVariant data(const QModelIndex &index, int role) const override
osmscout::OpeningHoursModel::parseError
void parseError()
osmscout::OpeningHoursModel::getToday
QStringList getToday() const
osmscout::OpeningHoursModel::updated
void updated()
osmscout::OpeningHoursModel::getOpeningHours
QString getOpeningHours() const
Definition
OpeningHoursModel.h:80
osmscout::OpeningHoursModel::Roles
Roles
Definition
OpeningHoursModel.h:50
osmscout::OpeningHoursModel::IsTodayRole
@ IsTodayRole
Definition
OpeningHoursModel.h:54
osmscout::OpeningHoursModel::ShortDayRole
@ ShortDayRole
Definition
OpeningHoursModel.h:52
osmscout::OpeningHoursModel::DayRole
@ DayRole
Definition
OpeningHoursModel.h:51
osmscout::OpeningHoursModel::TimeIntervalsRole
@ TimeIntervalsRole
Definition
OpeningHoursModel.h:53
osmscout::OpeningHoursModel::OpeningHoursModel
OpeningHoursModel(OpeningHoursModel &&)=delete
osmscout::OpeningHoursModel::~OpeningHoursModel
~OpeningHoursModel() override=default
osmscout::OpeningHoursModel::setOpeningHours
void setOpeningHours(const QString &openingHours)
osmscout::OpeningHoursModel::OpeningHoursModel
OpeningHoursModel(const OpeningHoursModel &)=delete
osmscout::OpeningHoursModel::operator=
OpeningHoursModel & operator=(OpeningHoursModel &&)=delete
osmscout
Definition
Area.h:39
Generated by
1.17.0