LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
ijobholder.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 <memory>
12
#include <QtPlugin>
13
#include "
interfaces/structures.h
"
14
15
class
QAbstractItemModel;
16
class
QMenu;
17
class
QModelIndex;
18
class
QToolBar;
19
20
template
<
typename
>
21
class
QList
;
22
23
namespace
LC
24
{
25
enum class
ProcessKind
: std::uint8_t
26
{
27
Download
,
28
Upload
,
29
Generic
,
30
};
31
41
struct
ProcessInfo
42
{
43
TaskParameters
Parameters_
{};
44
45
ProcessKind
Kind_
;
46
47
bool
operator==
(
const
ProcessInfo
& other)
const
=
default
;
48
};
49
50
struct
NewsInfo
51
{
52
qlonglong
Count_
= 0;
53
QDateTime
LastUpdate_
;
54
55
bool
operator==
(
const
NewsInfo
& other)
const
=
default
;
56
};
57
58
using
SpecificInfo
= std::variant<
59
ProcessInfo
,
60
NewsInfo
61
>;
62
63
struct
RowInfo
64
{
65
QString
Name_
;
66
SpecificInfo
Specific_
;
67
68
bool
operator==
(
const
RowInfo
& other)
const
=
default
;
69
};
70
71
enum class
ProcessState
: std::uint8_t
72
{
73
Running
,
74
Paused
,
75
Finished
,
76
Error
,
77
Unknown
,
78
};
79
82
enum class
JobHolderRole
83
{
88
RowInfo
=
MaxValue<CustomDataRoles>
+ 1,
89
};
90
91
constexpr
int
operator+
(
JobHolderRole
role)
noexcept
92
{
93
return
static_cast<
int
>
(role);
94
}
95
96
template
<>
97
inline
constexpr
int
MaxValue<JobHolderRole>
= +
JobHolderRole::RowInfo
;
98
99
enum class
JobHolderProcessRole
100
{
101
Done
=
MaxValue<JobHolderRole>
+ 1,
// qint64
102
Total
,
// qint64
103
ProgressCustomText
,
// QString
104
State
,
// ProcessState
105
StateCustomText
,
// QString
106
};
107
108
constexpr
int
operator+
(
JobHolderProcessRole
role)
noexcept
109
{
110
return
static_cast<
int
>
(role);
111
}
112
113
template
<>
114
inline
constexpr
int
MaxValue<JobHolderProcessRole>
= +
JobHolderProcessRole::StateCustomText
;
115
}
116
117
class
IJobHolderRepresentationHandler
118
{
119
public
:
120
virtual
~IJobHolderRepresentationHandler
() =
default
;
121
154
virtual
QAbstractItemModel&
GetRepresentation
() = 0;
155
156
virtual
void
HandleCurrentChanged
(
const
QModelIndex&) {}
157
virtual
void
HandleCurrentColumnChanged
(
const
QModelIndex&) {}
158
virtual
void
HandleCurrentRowChanged
(
const
QModelIndex&) {}
159
virtual
void
HandleSelectedRowsChanged
(
const
QList<QModelIndex>
&) {}
160
161
virtual
void
HandleActivated
(
const
QModelIndex&) {}
162
virtual
void
HandleClicked
(
const
QModelIndex&) {}
163
virtual
void
HandleDoubleClicked
(
const
QModelIndex&) {}
164
virtual
void
HandleEntered
(
const
QModelIndex&) {}
165
virtual
void
HandlePressed
(
const
QModelIndex&) {}
166
167
virtual
QWidget*
GetInfoWidget
() {
return
nullptr
; }
168
virtual
QToolBar*
GetControls
() {
return
nullptr
; }
169
virtual
QMenu*
GetContextMenu
() {
return
nullptr
; }
170
};
171
172
using
IJobHolderRepresentationHandler_ptr
= std::unique_ptr<IJobHolderRepresentationHandler>;
173
198
class
Q_DECL_EXPORT
IJobHolder
199
{
200
protected
:
201
virtual
~IJobHolder
() =
default
;
202
public
:
203
virtual
IJobHolderRepresentationHandler_ptr
CreateRepresentationHandler
() = 0;
204
};
205
206
Q_DECLARE_METATYPE
(
LC::RowInfo
)
207
Q_DECLARE_METATYPE
(
LC::ProcessState
)
208
209
Q_DECLARE_INTERFACE (
IJobHolder
,
"org.Deviant.LeechCraft.IJobHolder/1.0"
)
IJobHolder
Interface for plugins holding jobs or persistent notifications.
Definition
ijobholder.h:199
IJobHolder::~IJobHolder
virtual ~IJobHolder()=default
IJobHolder::CreateRepresentationHandler
virtual IJobHolderRepresentationHandler_ptr CreateRepresentationHandler()=0
IJobHolderRepresentationHandler
Definition
ijobholder.h:118
IJobHolderRepresentationHandler::HandleActivated
virtual void HandleActivated(const QModelIndex &)
Definition
ijobholder.h:161
IJobHolderRepresentationHandler::HandleCurrentChanged
virtual void HandleCurrentChanged(const QModelIndex &)
Definition
ijobholder.h:156
IJobHolderRepresentationHandler::HandleCurrentColumnChanged
virtual void HandleCurrentColumnChanged(const QModelIndex &)
Definition
ijobholder.h:157
IJobHolderRepresentationHandler::~IJobHolderRepresentationHandler
virtual ~IJobHolderRepresentationHandler()=default
IJobHolderRepresentationHandler::GetContextMenu
virtual QMenu * GetContextMenu()
Definition
ijobholder.h:169
IJobHolderRepresentationHandler::GetRepresentation
virtual QAbstractItemModel & GetRepresentation()=0
Returns the item representation model.
IJobHolderRepresentationHandler::GetControls
virtual QToolBar * GetControls()
Definition
ijobholder.h:168
IJobHolderRepresentationHandler::HandleSelectedRowsChanged
virtual void HandleSelectedRowsChanged(const QList< QModelIndex > &)
Definition
ijobholder.h:159
IJobHolderRepresentationHandler::HandleClicked
virtual void HandleClicked(const QModelIndex &)
Definition
ijobholder.h:162
IJobHolderRepresentationHandler::HandleEntered
virtual void HandleEntered(const QModelIndex &)
Definition
ijobholder.h:164
IJobHolderRepresentationHandler::GetInfoWidget
virtual QWidget * GetInfoWidget()
Definition
ijobholder.h:167
IJobHolderRepresentationHandler::HandleCurrentRowChanged
virtual void HandleCurrentRowChanged(const QModelIndex &)
Definition
ijobholder.h:158
IJobHolderRepresentationHandler::HandleDoubleClicked
virtual void HandleDoubleClicked(const QModelIndex &)
Definition
ijobholder.h:163
IJobHolderRepresentationHandler::HandlePressed
virtual void HandlePressed(const QModelIndex &)
Definition
ijobholder.h:165
QList
Definition
ianrulesstorage.h:14
IJobHolderRepresentationHandler_ptr
std::unique_ptr< IJobHolderRepresentationHandler > IJobHolderRepresentationHandler_ptr
Definition
ijobholder.h:172
LC
Definition
constants.h:15
LC::operator+
constexpr int operator+(JobHolderRole role) noexcept
Definition
ijobholder.h:91
LC::MaxValue
constexpr int MaxValue
Definition
maxvalue.h:14
LC::ProcessState
ProcessState
Definition
ijobholder.h:72
LC::ProcessState::Running
@ Running
Definition
ijobholder.h:73
LC::ProcessState::Unknown
@ Unknown
Definition
ijobholder.h:77
LC::ProcessState::Finished
@ Finished
Definition
ijobholder.h:75
LC::ProcessState::Error
@ Error
Definition
ijobholder.h:76
LC::ProcessState::Paused
@ Paused
Definition
ijobholder.h:74
LC::JobHolderProcessRole
JobHolderProcessRole
Definition
ijobholder.h:100
LC::JobHolderProcessRole::ProgressCustomText
@ ProgressCustomText
Definition
ijobholder.h:103
LC::JobHolderProcessRole::State
@ State
Definition
ijobholder.h:104
LC::JobHolderProcessRole::StateCustomText
@ StateCustomText
Definition
ijobholder.h:105
LC::JobHolderProcessRole::Total
@ Total
Definition
ijobholder.h:102
LC::JobHolderProcessRole::Done
@ Done
Definition
ijobholder.h:101
LC::JobHolderRole
JobHolderRole
This enum contains roles that are used to query job states.
Definition
ijobholder.h:83
LC::JobHolderRole::RowInfo
@ RowInfo
Definition
ijobholder.h:88
LC::SpecificInfo
std::variant< ProcessInfo, NewsInfo > SpecificInfo
Definition
ijobholder.h:58
LC::ProcessKind
ProcessKind
Definition
ijobholder.h:26
LC::ProcessKind::Download
@ Download
Definition
ijobholder.h:27
LC::ProcessKind::Generic
@ Generic
Definition
ijobholder.h:29
LC::ProcessKind::Upload
@ Upload
Definition
ijobholder.h:28
LC::NewsInfo
Definition
ijobholder.h:51
LC::NewsInfo::Count_
qlonglong Count_
Definition
ijobholder.h:52
LC::NewsInfo::operator==
bool operator==(const NewsInfo &other) const =default
LC::NewsInfo::LastUpdate_
QDateTime LastUpdate_
Definition
ijobholder.h:53
LC::ProcessInfo
Describes a process represented by a row in an IJobHolder model.
Definition
ijobholder.h:42
LC::ProcessInfo::operator==
bool operator==(const ProcessInfo &other) const =default
LC::ProcessInfo::Parameters_
TaskParameters Parameters_
Definition
ijobholder.h:43
LC::ProcessInfo::Kind_
ProcessKind Kind_
Definition
ijobholder.h:45
LC::RowInfo
Definition
ijobholder.h:64
LC::RowInfo::Specific_
SpecificInfo Specific_
Definition
ijobholder.h:66
LC::RowInfo::operator==
bool operator==(const RowInfo &other) const =default
LC::RowInfo::Name_
QString Name_
Definition
ijobholder.h:65
structures.h
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QVariantList *)
src
interfaces
ijobholder.h
Generated by
1.17.0