OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
ProjectOverviewWidget.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
9#include "ControlsManager.h"
12
13// Qt header
14#include <QtCore/qobject.h>
15#include <QtCore/qstring.h>
16
17// std header
18#include <vector>
19
20class QTableWidget;
21class QTableWidgetItem;
22
23namespace tt { class Page; }
24namespace tt { class Group; }
25namespace ot { class Label; }
26namespace ot { class Table; }
27namespace ot { class CheckBox; }
28namespace ot { class LineEdit; }
29namespace ot { class ToolButton; }
30
31class ProjectOverviewEntry : public QObject {
32 Q_OBJECT
34public:
35 ProjectOverviewEntry(const QString& _projectName, const QString& _owner, bool _ownerIsCreator, QTableWidget* _table);
36
37 int getRow(void) const { return m_row; };
38 void setIsChecked(bool _checked);
39 bool getIsChecked(void) const;
40 QString getProjectName(void) const;
41 bool getOwnerIsCreator(void) const { return m_ownerIsCreator; };
42
43Q_SIGNALS:
44 void checkedChanged(int _row);
45
46private Q_SLOTS:
47 void slotCheckedChanged(void);
48
49private:
50 QTableWidget* m_table;
51 int m_row;
52 bool m_ownerIsCreator;
53 ot::CheckBox* m_checkBox;
54 QTableWidgetItem* m_nameItem;
55 QTableWidgetItem* m_ownerItem;
56
57};
58
59// ###########################################################################################################################################################################################################################################################################################################################
60
61// ###########################################################################################################################################################################################################################################################################################################################
62
63// ###########################################################################################################################################################################################################################################################################################################################
64
65class ProjectOverviewWidget : public QObject, public ot::QWidgetInterface, public LockableWidget {
66 Q_OBJECT
68public:
69 enum class ViewMode {
70 ViewAll,
72 };
73
74 ProjectOverviewWidget(tt::Page* _ttbPage);
75 virtual ~ProjectOverviewWidget();
76
77 virtual void setWidgetLocked(bool _isLocked) override;
78
79 virtual QWidget* getQWidget(void) override { return m_widget; };
80
81 QString getCurrentProjectFilter(void) const;
82
83 std::list<QString> getSelectedProjects(void) const;
84
85Q_SIGNALS:
86 void createProjectRequest(void);
87 void openProjectRequest(void);
88 void copyProjectRequest(void);
89 void renameProjectRequest(void);
90 void deleteProjectRequest(void);
91 void exportProjectRequest(void);
92 void projectAccessRequest(void);
93 void projectOwnerRequest(void);
94
95public Q_SLOTS:
96 void slotUpdateItemSelection(void);
97
98 void slotCreateProject(void);
99 void slotProjectDoubleClicked(int _row, int _column);
100
101 void slotRefreshProjectList(void);
102 void slotRefreshRecentProjects(void);
103 void slotRefreshAllProjects(void);
104
105 void slotToggleViewMode(void);
106 void slotOpenProject(void);
107 void slotCopyProject(void);
108 void slotRenameProject(void);
109 void slotDeleteProject(void);
110 void slotExportProject(void);
111 void slotAccessProject(void);
112 void slotOwnerProject(void);
113
114 void slotFilterChanged(void);
115 void slotProjectCheckedChanged(int _row);
116
117private:
118 ot::ToolButton* iniToolButton(const QString& _text, const QString& _iconPath, tt::Group* _group, const QString& _toolTip);
119 void clear(void);
120 void addProject(const QString& _projectName, const QString& _owner, bool _ownerIsCreator);
121 void updateCountLabel(bool _hasMore);
122 void updateToggleViewModeButton(void);
123 void updateToolButtonsEnabledState(bool _forceDisabled = false);
124 bool hasDifferentSelectedOwner(void);
125
126 ViewMode m_mode;
127
128 QWidget* m_widget;
129
130 ot::LineEdit* m_filter;
131 ot::Table* m_table;
132 ot::Label* m_countLabel;
133
134 ot::ToolButton* m_createButton;
135 ot::ToolButton* m_refreshButton;
136 ot::ToolButton* m_toggleViewModeButton;
137
138 ot::ToolButton* m_openButton;
139 ot::ToolButton* m_copyButton;
140 ot::ToolButton* m_renameButton;
141 ot::ToolButton* m_deleteButton;
142 ot::ToolButton* m_exportButton;
143 ot::ToolButton* m_accessButton;
144 ot::ToolButton* m_ownerButton;
145
146 std::vector<ProjectOverviewEntry*> m_entries;
147};
This file contains defines that may be used simplyfy class creation.
#define OT_DECL_NODEFAULT(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:22
Definition Group.h:20
Definition ControlsManager.h:58
Definition ProjectOverviewWidget.h:31
bool getIsChecked(void) const
Definition ProjectOverviewWidget.cpp:65
void setIsChecked(bool _checked)
Definition ProjectOverviewWidget.cpp:61
QString getProjectName(void) const
Definition ProjectOverviewWidget.cpp:69
ProjectOverviewEntry(const QString &_projectName, const QString &_owner, bool _ownerIsCreator, QTableWidget *_table)
Definition ProjectOverviewWidget.cpp:37
int getRow(void) const
Definition ProjectOverviewWidget.h:37
void checkedChanged(int _row)
Definition moc_ProjectOverviewWidget.cpp:175
bool getOwnerIsCreator(void) const
Definition ProjectOverviewWidget.h:41
Definition ProjectOverviewWidget.h:65
void slotProjectDoubleClicked(int _row, int _column)
Definition ProjectOverviewWidget.cpp:207
void slotUpdateItemSelection(void)
Definition ProjectOverviewWidget.cpp:186
void slotCopyProject(void)
Definition ProjectOverviewWidget.cpp:309
void slotRefreshProjectList(void)
Definition ProjectOverviewWidget.cpp:219
QString getCurrentProjectFilter(void) const
Definition ProjectOverviewWidget.cpp:172
void slotToggleViewMode(void)
Definition ProjectOverviewWidget.cpp:289
void slotOpenProject(void)
Definition ProjectOverviewWidget.cpp:305
ProjectOverviewWidget(tt::Page *_ttbPage)
Definition ProjectOverviewWidget.cpp:88
ViewMode
Definition ProjectOverviewWidget.h:69
void exportProjectRequest(void)
Definition moc_ProjectOverviewWidget.cpp:606
void slotProjectCheckedChanged(int _row)
Definition ProjectOverviewWidget.cpp:347
void deleteProjectRequest(void)
Definition moc_ProjectOverviewWidget.cpp:600
void createProjectRequest(void)
Definition moc_ProjectOverviewWidget.cpp:576
void slotCreateProject(void)
Definition ProjectOverviewWidget.cpp:203
void slotRenameProject(void)
Definition ProjectOverviewWidget.cpp:313
std::list< QString > getSelectedProjects(void) const
Definition ProjectOverviewWidget.cpp:176
void slotExportProject(void)
Definition ProjectOverviewWidget.cpp:321
void projectAccessRequest(void)
Definition moc_ProjectOverviewWidget.cpp:612
void projectOwnerRequest(void)
Definition moc_ProjectOverviewWidget.cpp:618
void slotDeleteProject(void)
Definition ProjectOverviewWidget.cpp:317
void slotOwnerProject(void)
Definition ProjectOverviewWidget.cpp:329
void copyProjectRequest(void)
Definition moc_ProjectOverviewWidget.cpp:588
void openProjectRequest(void)
Definition moc_ProjectOverviewWidget.cpp:582
void slotFilterChanged(void)
Definition ProjectOverviewWidget.cpp:333
void slotRefreshAllProjects(void)
Definition ProjectOverviewWidget.cpp:264
void slotAccessProject(void)
Definition ProjectOverviewWidget.cpp:325
virtual void setWidgetLocked(bool _isLocked) override
Definition ProjectOverviewWidget.cpp:164
void renameProjectRequest(void)
Definition moc_ProjectOverviewWidget.cpp:594
void slotRefreshRecentProjects(void)
Definition ProjectOverviewWidget.cpp:233
virtual QWidget * getQWidget(void) override
Returns a pointer to the root widget of this object.
Definition ProjectOverviewWidget.h:79
virtual ~ProjectOverviewWidget()
Definition ProjectOverviewWidget.cpp:160
Definition CheckBox.h:17
Definition Label.h:17
Definition LineEdit.h:17
Definition QWidgetInterface.h:18
Definition Table.h:22
Definition ToolButton.h:19
Definition Connector.h:8
Definition aTtbGroup.h:29