ADTF Qt5
Loading...
Searching...
No Matches
qt_ui_filter.h
Go to the documentation of this file.
1
7
8/*
9 * This file depends on Qt which is licensed under LGPLv3.
10 * See ADTF_DIR/3rdparty/qt5 and doc/license for detailed information.
11 */
12#pragma once
13#include "qtxsystem_intf.h"
14#include "xsystem_qtwindow.h"
15
16#include <adtf_utils.h>
17#include <adtfucom3/adtf_ucom3.h>
18#include <adtfstreaming3/graph_element_editors.h>
19#include <adtffiltersdk/filter.h>
20#include <adtffiltersdk/dynamic_filter.h>
21
22namespace adtf
23{
24namespace ui
25{
26namespace ant
27{
33template<typename FILTERBASECLASS>
34class qt_ui_filter : public FILTERBASECLASS, public cQtWindow
35{
37 adtf::ucom::object_ptr<adtf::ui::ant::IQtXSystem> m_pXSystem;
38
39public:
43 {
44 m_strTitle.SetDescription("Window title which will be used at runtime within Qt5 ADTF XSystem UI Service.");
45 FILTERBASECLASS::RegisterPropertyVariable("title", m_strTitle);
46 }
47
48 ~qt_ui_filter() = default;
49
56 tResult Init(typename FILTERBASECLASS::tInitStage eStage) override
57 {
58 RETURN_IF_FAILED(FILTERBASECLASS::Init(eStage));
59 if (eStage == FILTERBASECLASS::tInitStage::StagePostConnect)
60 {
61 RETURN_IF_FAILED(_runtime->GetObject(m_pXSystem));
62 adtf::util::cString strTitle = m_strTitle;
63 if (strTitle.IsEmpty())
64 {
65 m_strTitle = ::adtf::streaming::get_named_graph_object_full_name(*this);
66 }
67 RETURN_IF_FAILED(m_pXSystem->CreateWindow(*this));
68 }
69 RETURN_NOERROR;
70 }
71
77 tResult Shutdown(typename FILTERBASECLASS::tInitStage eStage) override
78 {
79 if (eStage == FILTERBASECLASS::tInitStage::StagePostConnect)
80 {
81 if (m_pXSystem)
82 {
83 m_pXSystem->DestroyWindow(*this);
84 }
85 }
86 return (FILTERBASECLASS::Shutdown(eStage));
87 }
88};
89
100} // namespace ant
101
102namespace flash
103{
104
116} // namespace flash
117
118namespace riddler
119{
120
129template<typename FILTERBASECLASS>
130class qt_ui_filter : public FILTERBASECLASS, public ant::cQtWindow, public IQtXSystem::IWindowState
131{
132public:
136 {
137 m_strTitle.SetDescription("Window title which will be used at runtime within Qt5 ADTF XSystem UI Service.");
138 FILTERBASECLASS::RegisterPropertyVariable("title", m_strTitle);
139 }
140
141 ~qt_ui_filter() = default;
142
148 tResult Init(typename FILTERBASECLASS::tInitStage eStage) override
149 {
150 RETURN_IF_FAILED(FILTERBASECLASS::Init(eStage));
151 if (eStage == FILTERBASECLASS::tInitStage::StagePostConnect)
152 {
153 RETURN_IF_FAILED(_runtime->GetObject(m_pXSystem));
154 adtf::util::cString strTitle = m_strTitle;
155 if (strTitle.IsEmpty())
156 {
157 m_strTitle = ::adtf::streaming::get_named_graph_object_full_name(*this);
158 }
159 const uint32_t ui32Flags = m_bWindowStateEnabled ? IQtXSystem::eWindowCreationFlags::WCF_HasWindowState :
161 RETURN_IF_FAILED(m_pXSystem->CreateWindow(*this, ui32Flags));
162 }
163 RETURN_NOERROR;
164 }
165
168 tResult Shutdown(typename FILTERBASECLASS::tInitStage eStage) override
169 {
170 if (eStage == FILTERBASECLASS::tInitStage::StagePostConnect)
171 {
172 if (m_pXSystem)
173 {
174 m_pXSystem->DestroyWindow(*this);
175 }
176 }
177 return (FILTERBASECLASS::Shutdown(eStage));
178 }
179
187 QString GetStateIdentifier() const override
188 {
189 return ::adtf::streaming::get_named_graph_object_full_name(*this, "/").GetPtr();
190 }
191
195 void OnLoadState([[maybe_unused]] const QString& strStateFolder) override
196 {
197 }
198
203 void OnSaveState([[maybe_unused]] const QString& strStateFolder) const override
204 {
205 }
206
207protected:
215 {
216 m_bWindowStateEnabled = true;
217 }
218
219private:
221 adtf::ucom::object_ptr<adtf::ui::riddler::IQtXSystem> m_pXSystem;
223 bool m_bWindowStateEnabled = false;
224};
225
235
236} // namespace riddler
237
238namespace spider
239{
240
263template<typename FILTERBASECLASS, typename QTWINDOWBASECLASS = spider::cQtWindow>
264class qt_ui_filter : public FILTERBASECLASS, public QTWINDOWBASECLASS
265{
266public:
270 {
271 QTWINDOWBASECLASS::m_strTitle.SetDescription(
272 "Window title which will be used at runtime within Qt5 ADTF XSystem UI Service.");
273 FILTERBASECLASS::RegisterPropertyVariable("title", QTWINDOWBASECLASS::m_strTitle);
274 }
275
276 ~qt_ui_filter() = default;
277
283 tResult Init(typename FILTERBASECLASS::tInitStage eStage) override
284 {
285 RETURN_IF_FAILED(FILTERBASECLASS::Init(eStage));
286 if (eStage == FILTERBASECLASS::tInitStage::StagePostConnect)
287 {
288 RETURN_IF_FAILED(_runtime->GetObject(m_pXSystem));
289 if ((*QTWINDOWBASECLASS::m_strTitle).IsEmpty())
290 {
291 QTWINDOWBASECLASS::m_strTitle = ::adtf::streaming::get_named_graph_object_full_name(*this);
292 }
293 uint32_t ui32CreationFlags = 0;
294 if constexpr (std::is_base_of_v<adtf::ui::v0::cQtWindow, QTWINDOWBASECLASS>)
295 {
296 ui32CreationFlags = QTWINDOWBASECLASS::IsWindowStateEnabled() ?
299 }
300 else
301 {
302 ui32CreationFlags = QTWINDOWBASECLASS::GetWindowCreationFlags();
303 }
304 RETURN_IF_FAILED(m_pXSystem->CreateWindow(*this, ui32CreationFlags));
305 }
306 RETURN_NOERROR;
307 }
308
311 tResult Shutdown(typename FILTERBASECLASS::tInitStage eStage) override
312 {
313 if (eStage == FILTERBASECLASS::tInitStage::StagePostConnect)
314 {
315 if (m_pXSystem)
316 {
317 m_pXSystem->DestroyWindow(*this);
318 }
319 }
320 return (FILTERBASECLASS::Shutdown(eStage));
321 }
322
330 QString GetStateIdentifier() const
331 {
332 return ::adtf::streaming::get_named_graph_object_full_name(*this, "/").GetPtr();
333 }
334
339 QString GetHelpLink() const
340 {
341 return adtf::streaming::spider::get_help_link((base::ant::IConfiguration&) *this).c_str();
342 }
343
344private:
346 adtf::ucom::object_ptr<adtf::ui::spider::IQtXSystem> m_pXSystem;
347};
348
353
359
360} // namespace spider
361
362namespace v0
363{
364
372
373} // namespace v0
374
390
392using v1::cQtUIFilter;
393using v0::qt_ui_filter;
394
395} // namespace ui
396} // namespace adtf
Definition xsystem_qtwindow.h:40
cQtWindow()=default
default CTOR
adtf::base::property_variable< adtf::util::cString > m_strTitle
title property variable will be set while window creating
Definition xsystem_qtwindow.h:94
Definition qt_ui_filter.h:35
tResult Shutdown(typename FILTERBASECLASS::tInitStage eStage) override
Definition qt_ui_filter.h:77
~qt_ui_filter()=default
DTOR.
tResult Init(typename FILTERBASECLASS::tInitStage eStage) override
Definition qt_ui_filter.h:56
qt_ui_filter()
Definition qt_ui_filter.h:42
@ WCF_None
no flag set.
Definition qtxsystem_intf.h:176
@ WCF_HasWindowState
Enable the window state calls for IQtXSystem::IWindowState.
Definition qtxsystem_intf.h:185
qt_ui_filter()
Definition qt_ui_filter.h:269
Definition qtxsystem_intf.h:252
Definition qt_ui_filter.h:131
void OnSaveState(const QString &strStateFolder) const override
Definition qt_ui_filter.h:203
QString GetStateIdentifier() const override
Get the State Identifier for the Window State callbacks "OnLoadState" and "OnSaveState".
Definition qt_ui_filter.h:187
void EnableWindowState()
Enables the Window state callbacks. We recommend to use this only within your filters CTOR.
Definition qt_ui_filter.h:214
qt_ui_filter()
Definition qt_ui_filter.h:135
tResult Shutdown(typename FILTERBASECLASS::tInitStage eStage) override
Definition qt_ui_filter.h:168
tResult Init(typename FILTERBASECLASS::tInitStage eStage) override
Definition qt_ui_filter.h:148
void OnLoadState(const QString &strStateFolder) override
Definition qt_ui_filter.h:195
Definition qt_ui_filter.h:265
tResult Shutdown(typename FILTERBASECLASS::tInitStage eStage) override
Definition qt_ui_filter.h:311
qt_ui_filter()
Definition qt_ui_filter.h:269
tResult Init(typename FILTERBASECLASS::tInitStage eStage) override
Definition qt_ui_filter.h:283
QString GetStateIdentifier() const
Get the State Identifier for the Window State callbacks "OnLoadState" and "OnSaveState".
Definition qt_ui_filter.h:330
QString GetHelpLink() const
Definition qt_ui_filter.h:339
Legacy version namespace for all functionality of the ADTF UI SDK taken over from ADTF v3....
Definition qt_ui_filter.h:27
qt_ui_filter< adtf::filter::cFilter > cQtUIFilter
Definition qt_ui_filter.h:99
qt_ui_filter< adtf::filter::cDynamicFilter > cQtUIDynamicFilter
Definition qt_ui_filter.h:94
Legacy version namespace for all functionality of the ADTF UI SDK taken over from ADTF v3....
Definition qt_ui_filter.h:119
cQtUIFilter cQtUIDynamicFilter
Definition qt_ui_filter.h:234
riddler::qt_ui_filter< adtf::filter::cFilter > cQtUIFilter
Definition qt_ui_filter.h:229
Legacy version namespace for all functionality of the ADTF UI SDK taken over from ADTF v3....
Definition qt_ui_filter.h:239
cQtUIFilter cQtUIDynamicFilter
Definition qt_ui_filter.h:358
qt_ui_filter< adtf::filter::cFilter, cQtWindow > cQtUIFilter
Definition qt_ui_filter.h:352
Namespace for all ui classes and interfaces provided since v1.0.0.
Definition adtfui_pkg.h:13
Namespace for further developed interfaces and implementation revisions of the ADTF UI SDK.
Definition qt_ui_filter.h:376
v0::qt_ui_filter< adtf::filter::cFilter, cQtWindow > cQtUIFilter
Definition qt_ui_filter.h:382
cQtUIFilter cQtUIDynamicFilter
Definition qt_ui_filter.h:387
Namespace for the ADTF UI SDK.
Definition adtfui_pkg.h:13
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtfui_pkg.h:13
ant::qt_ui_filter< adtf::filter::cFilter > cQtUIFilter
Definition qt_ui_filter.h:109
cQtUIFilter cQtUIDynamicFilter
Definition qt_ui_filter.h:115