ImagingTools Core SDK
Init.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// ImtCore includes
6#include <imtbase/Init.h>
7#include <imtlic/IProductInfo.h>
8
9
10template <class ApplicationComposite, class AppInitializer, void (*ProductFiller)(imtlic::IProductInfo&) = nullptr, bool autoInit = false>
11int ProductFeatureRun(int argc, char* argv[])
12{
13 AppInitializer::Init();
14
15 QDirIterator dirIter(":/Style");
16 while (dirIter.hasNext()){
17 qDebug() << dirIter.filePath();
18
19 dirIter.next();
20 }
21
22 QDirIterator dirIter3(":/Icons");
23 while (dirIter3.hasNext()){
24 qDebug() << dirIter3.filePath();
25
26 dirIter3.next();
27 }
28
29 QDirIterator dirIter2(":/Styles");
30 while (dirIter2.hasNext()){
31 qDebug() << dirIter2.filePath();
32
33 dirIter2.next();
34 }
35
36 ApplicationComposite instance;
37
38 if (autoInit){
39 instance.EnsureAutoInitComponentsCreated();
40 }
41
42 ibase::IApplication* applicationPtr = instance.template GetInterface<ibase::IApplication>();
43 if (applicationPtr != nullptr){
44 imtlic::IProductInfo* productInfoPtr = instance.template GetInterface<imtlic::IProductInfo>();
45 if (productInfoPtr != nullptr && ProductFiller != nullptr){
46 ProductFiller(*productInfoPtr);
47 }
48
49 return applicationPtr->Execute(argc, argv);
50 }
51
52 return -1;
53}
54
55
Interface for accessing information about a product (software or hardware).