Rabbit Remote Control 0.1.0-bate10
Loading...
Searching...
No Matches
OperateTemplateBase.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include <QLoggingCategory>
4
5#include "BackendThread.h"
6#include "BackendTemplateBase.h"
7#include "ParameterTemplateBase.h"
8#include "FrmViewerTemplateBase.h"
9#include "DlgSettingsTemplateBase.h"
10#include "OperateTemplateBase.h"
11
12static Q_LOGGING_CATEGORY(log, "TemplateBase.Operate")
14 : COperate(plugin)
15 , m_pPara(nullptr)
16 , m_pViewer(nullptr)
17 , m_pThread(nullptr)
18{
19 qDebug(log) << Q_FUNC_INFO;
20}
21
22COperateTemplateBase::~COperateTemplateBase()
23{
24 qDebug(log) << Q_FUNC_INFO;
25 QString szClass = this->metaObject()->className();
26 QString szWhat;
27 szWhat += "Please call ";
28 szWhat += szClass;
29 szWhat += "::Stop() first";
30 Q_ASSERT_X(!m_pThread && !m_pPara && !m_pViewer,
31 szClass.toStdString().c_str(), szWhat.toStdString().c_str());
32}
33
38
39const qint16 COperateTemplateBase::Version() const
40{
41 // TODO: Add version
42 return 0;
43}
44
46{
47 return m_pViewer;
48}
49
51{
52 int nRet = 0;
53 // TODO: If backend threads are not needed, modifications are required.
54 m_pThread = new CBackendThread(this, false, false);
55 if(!m_pThread) {
56 qCritical(log) << "new CBackendThread fail";
57 return -1;
58 }
59 m_pThread->start();
60 return nRet;
61}
62
64{
65 int nRet = 0;
66 // TODO: If backend threads are not needed, modifications are required.
67 if(m_pThread)
68 {
69 m_pThread->quit();
70 // NOTE: Don't delete m_pThread, See CBackendThread
71 m_pThread = nullptr;
72 }
73 return nRet;
74}
75
76CBackend* COperateTemplateBase::InstanceBackend()
77{
78 return new CBackendTemplateBase(this);
79}
80
82{
83 int nRet = 0;
84 // TODO: Modify apply plugin parameters
85 if(m_pPara) {
86 m_pPara->SetPluginParameters(pPara);
87 }
88 return nRet;
89}
90
92{
93 return new CDlgSettingsTemplateBase(m_pPara, parent);
94}
95
96int COperateTemplateBase::Load(QSettings &set)
97{
98 int nRet = 0;
99
100 if(m_pPara)
101 nRet = m_pPara->Load(set);
102
103 return nRet;
104}
105
106int COperateTemplateBase::Save(QSettings &set)
107{
108 int nRet = 0;
109 if(m_pPara)
110 nRet = m_pPara->Save(set);
111 return nRet;
112}
113
115{
116 int nRet = 0;
117 nRet = COperate::Initial();
118 m_pPara = new CParameterTemplateBase();
119 m_pViewer = new CFrmViewerTemplateBase();
120
121 // TODO: add initial
122
123 if(m_pActionSettings)
124 m_Menu.addAction(m_pActionSettings);
125 return nRet;
126}
127
129{
130 int nRet = 0;
131 // TODO: add Clean
132
133 if(m_pPara) {
134 delete m_pPara;
135 m_pPara = nullptr;
136 }
137 if(m_pViewer) {
138 delete m_pViewer;
139 m_pViewer = nullptr;
140 }
141 nRet = COperate::Clean();
142 return nRet;
143}
The backend thread.
virtual void quit()
Quit.
Backend interface.
Definition Backend.h:42
virtual CParameterTemplateBase * GetParameter() const
Get parameter.
virtual int Start() override
Start.
virtual QWidget * GetViewer() override
Get Viewer.
virtual Q_INVOKABLE int Clean() override
Clean parameters and resource.
virtual int Save(QSettings &set) override
Save parameters.
virtual int Stop() override
Stop.
virtual Q_INVOKABLE int Initial() override
Initial parameters and resource.
virtual int Load(QSettings &set) override
Load parameters.
virtual QDialog * OnOpenDialogSettings(QWidget *parent) override
Open settgins dialog.
virtual int SetPluginParameters(CParameterPlugin *pPara) override
Apply the parameters of the plug-in.
Operate interface.
Definition Operate.h:51
virtual Q_INVOKABLE int Initial()
Initial parameters and resource.
Definition Operate.cpp:190
virtual Q_INVOKABLE int Clean()
Clean parameters and resource.
Definition Operate.cpp:209
Global parameters of plugins.
virtual int Save(QString szFile=QString(), bool bForce=true)
Save to file.
Definition Parameter.cpp:47
virtual int Load(QString szFile=QString())
Load from file.
Definition Parameter.cpp:35
Plugin interface.
Definition Plugin.h:15