ImagingTools Core SDK
CDelegatedUrlParamComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <icomp/CComponentBase.h>
7#include <ifile/IFileNameParam.h>
8
9// ImtCore includes
10#include <imtbase/IUrlParam.h>
11
12
13namespace imtbase
14{
15
16
17class CDelegatedUrlParamComp:
18 public icomp::CComponentBase,
19 virtual public imtbase::IUrlParam,
20 virtual public ifile::IFileNameParam
21
22{
23public:
24 typedef icomp::CComponentBase BaseClass;
25
26 I_BEGIN_COMPONENT(CDelegatedUrlParamComp);
27 I_REGISTER_INTERFACE(IUrlParam);
28 I_REGISTER_INTERFACE(ifile::IFileNameParam);
29 I_REGISTER_INTERFACE(iser::ISerializable);
30 I_REGISTER_INTERFACE(istd::IChangeable);
31 I_ASSIGN(m_urlParamCompPtr, "DelegateUrlParam", "Delegate URL param", true, "DelegateUrlParam");
32 I_END_COMPONENT;
33
34 // reimplemented (IUrlParam)
35 virtual const QUrl& GetUrl() const override;
36 virtual bool SetUrl(const QUrl& url) override;
37 virtual bool IsReadOnly() const override;
38
39 // reimplemented (ifile::IFileNameParam)
40 virtual int GetPathType() const override;
41 virtual const QString& GetPath() const override;
42 virtual void SetPath(const QString& path) override;
43
44 // reimplemented (iser::ISerializable)
45 virtual bool Serialize(iser::IArchive& archive) override;
46
47private:
48 I_REF(imtbase::IUrlParam, m_urlParamCompPtr);
49};
50
51
52} // namespace imtbase
53
54