Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit 70cc3c0

Browse files
committed
Activities-Gui: draft implementation of ProgressItem classes
1 parent 2676269 commit 70cc3c0

File tree

3 files changed

+136
-0
lines changed

3 files changed

+136
-0
lines changed

Libs/libActivitiesGui/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ INCLUDE_DIRECTORIES(
99

1010
SET( SRC_FILES
1111
ProgressDlg.cpp
12+
ProgressItems.cpp
1213
)
1314

1415
SET( PUB_HDR_FILES
1516
ProgressDlg.hpp
17+
ProgressItems.hpp
1618
)
1719

1820
SET( PRI_HDR_FILES
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#include "ProgressItems.hpp"
2+
3+
4+
ProgressItem::ProgressItem(ProgressItem* parent)
5+
{
6+
}
7+
8+
int ProgressItem::type() const
9+
{
10+
return static_cast<int>(StaticType);
11+
}
12+
13+
QVariant ProgressItem::data(int role) const
14+
{
15+
Q_UNUSED(role);
16+
return QVariant();
17+
}
18+
19+
20+
//ProgressItemService::ProgressItemService(ProgressItem* parent,
21+
// Activities::Service* service)
22+
// : ProgressItemObject(parent, object)
23+
//{
24+
25+
//}
26+
27+
28+
//ProgressItemActivity::ProgressItemActivity(ProgressItem* parent,
29+
// Activities::Activity* activity)
30+
// : ProgressItemObject(parent, activity)
31+
//{
32+
33+
//}
34+
35+
36+
//ProgressItemStep::ProgressItemStep(ProgressItem* parent, Activities::Step* step)
37+
//{
38+
39+
//}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
2+
#pragma once
3+
4+
//#include <libActivities/Activity.hpp>
5+
//#include <libActivities/Step.hpp>
6+
//#include <libActivities/Service.hpp>
7+
8+
#include <QVariant>
9+
10+
class ProgressItem
11+
{
12+
public:
13+
enum class Type { Base = 0, Service, Activity, Step };
14+
15+
public:
16+
static const Type StaticType = Type::Base;
17+
18+
public:
19+
ProgressItem(ProgressItem* parent);
20+
21+
public:
22+
virtual int type() const;
23+
24+
virtual QVariant data(int role) const;
25+
};
26+
27+
template<class T>
28+
class ProgressItemObject : public ProgressItem
29+
{
30+
protected:
31+
ProgressItemObject(ProgressItem* parent, T* object)
32+
: ProgressItem(parent)
33+
, mObject(object)
34+
{}
35+
36+
public:
37+
const T* object() const {
38+
return mObject;
39+
}
40+
41+
T* object() {
42+
return mObject;
43+
}
44+
45+
QVariant data(int role) const {
46+
// TODO: return the requested data fields
47+
// if (mObject) {
48+
// switch (role) {
49+
// case Qt::DisplayRole:
50+
// return mObject->description();
51+
52+
// case Qt::DecorationRole:
53+
// Heaven::IconRef iref = mObject->icon(true);
54+
// Heaven::Icon icon = iref.icon();
55+
// return icon.pixmap();
56+
// }
57+
// }
58+
59+
return ProgressItem::data(role);
60+
}
61+
62+
protected:
63+
T* mObject;
64+
};
65+
66+
//class ProgressItemService
67+
// : public ProgressItemObject<Activities::Service>
68+
//{
69+
//public:
70+
// static const ProgressItem::Type StaticType = ProgressItem::Type::Service;
71+
72+
//public:
73+
// ProgressItemService(ProgressItem* parent, Activities::Service* service);
74+
//};
75+
76+
77+
//class ProgressItemActivity
78+
// : public ProgressItemObject<Activities::Activity>
79+
//{
80+
//public:
81+
// static const ProgressItem::Type StaticType = ProgressItem::Type::Activity;
82+
83+
//public:
84+
// ProgressItemActivity(ProgressItem* parent, Activities::Activity* activity);
85+
//};
86+
87+
//class ProgressItemStep
88+
// : public ProgressItemObject<Activities::Step>
89+
//{
90+
//public:
91+
// static const ProgressItem::Type StaticType = ProgressItem::Type::Step;
92+
93+
//public:
94+
// ProgressItemStep(ProgressItem* parent, Activities::Step* step);
95+
//};

0 commit comments

Comments
 (0)