Skip to content

Commit db790a7

Browse files
committed
Plugins: add Template
1 parent ad7e412 commit db790a7

48 files changed

Lines changed: 543 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Plugins/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ if(BUILD_FTP_SERVER)
102102
add_subdirectory(FtpServer)
103103
endif()
104104

105+
## Template
106+
option(BUILD_TEMPLATE "Build template" OFF)
107+
if(BUILD_TEMPLATE)
108+
add_subdirectory(Template)
109+
endif()
110+
105111
message(STATUS "BUILD_RABBITVNC: ${BUILD_RABBITVNC}")
106112
message(STATUS "BUILD_TigerVNC: ${BUILD_TigerVNC}")
107113
message(STATUS "BUILD_LibVNCServer: ${BUILD_LibVNCServer}")
@@ -116,3 +122,4 @@ message(STATUS "BUILD_FILE_TRANSFER: ${BUILD_FILE_TRANSFER}")
116122
message(STATUS "BUILD_WEB_BROWSER: ${BUILD_WEB_BROWSER}; Qt${QT_VERSION_MAJOR}WebEngineWidgets: ${Qt${QT_VERSION_MAJOR}WebEngineWidgets_FOUND}")
117123

118124
message(STATUS "BUILD_FTP_SERVER: ${BUILD_FTP_SERVER}")
125+
message(STATUS "BUILD_TEMPLATE: ${BUILD_TEMPLATE}")
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Author: Kang Lin <kl222@126.com>
2+
3+
project(TemplateBase)
4+
5+
set(TemplateBase_LIBS Plugin)
6+
7+
list(APPEND TemplateBase_QT_COMPONENTS Core Gui Widgets)
8+
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS ${TemplateBase_QT_COMPONENTS})
9+
if(Qt${QT_VERSION_MAJOR}_FOUND)
10+
FOREACH(_COMPONENT ${TemplateBase_QT_COMPONENTS})
11+
list(APPEND TemplateBase_LIBS Qt${QT_VERSION_MAJOR}::${_COMPONENT})
12+
ENDFOREACH()
13+
else()
14+
message(FATAL_ERROR "Qt${QT_VERSION_MAJOR} don't found")
15+
endif()
16+
17+
SET(TemplateBase_SOURCE_FILES
18+
PluginTemplateBase.cpp
19+
OperateTemplateBase.cpp
20+
ParameterTemplateBase.cpp
21+
DlgSettingsTemplateBase.cpp
22+
)
23+
24+
SET(TemplateBase_HEADER_FILES
25+
PluginTemplateBase.h
26+
OperateTemplateBase.h
27+
ParameterTemplateBase.h
28+
DlgSettingsTemplateBase.h
29+
)
30+
31+
SET(TemplateBase_UI_FILES
32+
DlgSettingsTemplateBase.ui
33+
)
34+
35+
ADD_PLUGIN_TARGET(NAME PluginClient${PROJECT_NAME}
36+
ISPLUGIN
37+
SOURCE_FILES ${TemplateBase_SOURCE_FILES} ${TemplateBase_HEADER_FILES} ${TemplateBase_UI_FILES}
38+
PRIVATE_LIBS ${TemplateBase_LIBS}
39+
OUTPUT_DIR ${CMAKE_BINARY_DIR}/${PLUGIN_PATH}
40+
INSTALL_RPATH ${INSTALL_RPATH}
41+
VERSION ${RabbitRemoteControl_VERSION}
42+
PRIVATE_DEFINITIONS TemplateBase_VERSION="${RabbitRemoteControl_VERSION}"
43+
)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Author: Kang Lin <kl222@126.com>
2+
3+
#include "ParameterTemplateBase.h"
4+
#include "DlgSettingsTemplateBase.h"
5+
#include "ui_DlgSettingsTemplateBase.h"
6+
7+
CDlgSettingsTemplateBase::CDlgSettingsTemplateBase(CParameterTemplateBase *pPara, QWidget *parent)
8+
: QDialog(parent)
9+
, ui(new Ui::CDlgSettingsTemplateBase)
10+
, m_pPara(pPara)
11+
{
12+
ui->setupUi(this);
13+
}
14+
15+
CDlgSettingsTemplateBase::~CDlgSettingsTemplateBase()
16+
{
17+
delete ui;
18+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Author: Kang Lin <kl222@126.com>
2+
3+
#pragma once
4+
5+
#include <QDialog>
6+
7+
namespace Ui {
8+
class CDlgSettingsTemplateBase;
9+
}
10+
11+
class CParameterTemplateBase;
12+
class CDlgSettingsTemplateBase : public QDialog
13+
{
14+
Q_OBJECT
15+
16+
public:
17+
explicit CDlgSettingsTemplateBase(CParameterTemplateBase* pPara,
18+
QWidget *parent = nullptr);
19+
virtual ~CDlgSettingsTemplateBase();
20+
21+
private:
22+
Ui::CDlgSettingsTemplateBase *ui;
23+
CParameterTemplateBase* m_pPara;
24+
};
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>CDlgSettingsTemplateBase</class>
4+
<widget class="QDialog" name="CDlgSettingsTemplateBase">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>400</width>
10+
<height>300</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>Dialog</string>
15+
</property>
16+
<widget class="QDialogButtonBox" name="buttonBox">
17+
<property name="geometry">
18+
<rect>
19+
<x>30</x>
20+
<y>240</y>
21+
<width>341</width>
22+
<height>32</height>
23+
</rect>
24+
</property>
25+
<property name="orientation">
26+
<enum>Qt::Orientation::Horizontal</enum>
27+
</property>
28+
<property name="standardButtons">
29+
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
30+
</property>
31+
</widget>
32+
</widget>
33+
<resources/>
34+
<connections>
35+
<connection>
36+
<sender>buttonBox</sender>
37+
<signal>accepted()</signal>
38+
<receiver>CDlgSettingsTemplateBase</receiver>
39+
<slot>accept()</slot>
40+
<hints>
41+
<hint type="sourcelabel">
42+
<x>248</x>
43+
<y>254</y>
44+
</hint>
45+
<hint type="destinationlabel">
46+
<x>157</x>
47+
<y>274</y>
48+
</hint>
49+
</hints>
50+
</connection>
51+
<connection>
52+
<sender>buttonBox</sender>
53+
<signal>rejected()</signal>
54+
<receiver>CDlgSettingsTemplateBase</receiver>
55+
<slot>reject()</slot>
56+
<hints>
57+
<hint type="sourcelabel">
58+
<x>316</x>
59+
<y>260</y>
60+
</hint>
61+
<hint type="destinationlabel">
62+
<x>286</x>
63+
<y>274</y>
64+
</hint>
65+
</hints>
66+
</connection>
67+
</connections>
68+
</ui>
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// Author: Kang Lin <kl222@126.com>
2+
3+
#include "DlgSettingsTemplateBase.h"
4+
#include "OperateTemplateBase.h"
5+
#include "ParameterTemplateBase.h"
6+
7+
COperateTemplateBase::COperateTemplateBase(CPlugin *plugin)
8+
: COperate(plugin)
9+
{
10+
m_pPara = new CParameterTemplateBase();
11+
}
12+
13+
COperateTemplateBase::~COperateTemplateBase()
14+
{
15+
if(m_pPara)
16+
delete m_pPara;
17+
}
18+
19+
const qint16 COperateTemplateBase::Version() const
20+
{
21+
// TODO: add version
22+
return 0;
23+
}
24+
25+
QWidget *COperateTemplateBase::GetViewer()
26+
{
27+
// TODO: add viewr
28+
return nullptr;
29+
}
30+
31+
int COperateTemplateBase::Start()
32+
{
33+
int nRet = 0;
34+
// TODO: add operate start
35+
36+
return nRet;
37+
}
38+
39+
int COperateTemplateBase::Stop()
40+
{
41+
int nRet = 0;
42+
// TODO: add operate stop
43+
44+
return nRet;
45+
}
46+
47+
int COperateTemplateBase::SetPluginParameters(CParameterPlugin *pPara)
48+
{
49+
int nRet = 0;
50+
// TODO: add apply plugin parameters
51+
52+
return nRet;
53+
}
54+
55+
QDialog *COperateTemplateBase::OnOpenDialogSettings(QWidget *parent)
56+
{
57+
// TODO: add dialog settings
58+
return new CDlgSettingsTemplateBase(m_pPara, parent);
59+
}
60+
61+
int COperateTemplateBase::Load(QSettings &set)
62+
{
63+
int nRet = 0;
64+
if(m_pPara)
65+
m_pPara->Load(set);
66+
return nRet;
67+
}
68+
69+
int COperateTemplateBase::Save(QSettings &set)
70+
{
71+
int nRet = 0;
72+
if(m_pPara)
73+
m_pPara->Save(set);
74+
return nRet;
75+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Author: Kang Lin <kl222@126.com>
2+
3+
#pragma once
4+
5+
#include "Operate.h"
6+
7+
class CParameterTemplateBase;
8+
class COperateTemplateBase : public COperate
9+
{
10+
Q_OBJECT
11+
public:
12+
COperateTemplateBase(CPlugin *plugin);
13+
virtual ~COperateTemplateBase();
14+
15+
// COperate interface
16+
public:
17+
virtual const qint16 Version() const override;
18+
virtual QWidget *GetViewer() override;
19+
virtual int Start() override;
20+
virtual int Stop() override;
21+
22+
protected:
23+
virtual int SetPluginParameters(CParameterPlugin *pPara) override;
24+
25+
private:
26+
virtual QDialog *OnOpenDialogSettings(QWidget *parent) override;
27+
28+
protected:
29+
virtual int Load(QSettings &set) override;
30+
virtual int Save(QSettings &set) override;
31+
32+
private:
33+
CParameterTemplateBase* m_pPara;
34+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// Author: Kang Lin <kl222@126.com>
2+
3+
#include "ParameterTemplateBase.h"
4+
5+
CParameterTemplateBase::CParameterTemplateBase(QObject *parent, const QString &szPrefix)
6+
: CParameterOperate{parent, szPrefix}
7+
{}
8+
9+
int CParameterTemplateBase::OnLoad(QSettings &set)
10+
{
11+
int nRet = 0;
12+
// TODO: load parameter
13+
14+
return nRet;
15+
}
16+
17+
int CParameterTemplateBase::OnSave(QSettings &set)
18+
{
19+
int nRet = 0;
20+
// TODO: save parameter
21+
22+
return nRet;
23+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Author: Kang Lin <kl222@126.com>
2+
3+
#pragma once
4+
#include "ParameterOperate.h"
5+
6+
class CParameterTemplateBase : public CParameterOperate
7+
{
8+
Q_OBJECT
9+
public:
10+
explicit CParameterTemplateBase(QObject *parent = nullptr,
11+
const QString& szPrefix = QString());
12+
13+
// CParameter interface
14+
protected:
15+
virtual int OnLoad(QSettings &set) override;
16+
virtual int OnSave(QSettings &set) override;
17+
};
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// Author: Kang Lin <kl222@126.com>
2+
3+
#include "OperateTemplateBase.h"
4+
#include "PluginTemplateBase.h"
5+
6+
CPluginTemplateBase::CPluginTemplateBase(QObject *parent)
7+
: CPlugin{parent}
8+
{}
9+
10+
const CPlugin::TYPE CPluginTemplateBase::Type() const
11+
{
12+
// TODO: add type. See: CPlugin::TYPE
13+
return CPlugin::TYPE::Custom;
14+
}
15+
16+
const QString CPluginTemplateBase::Protocol() const
17+
{
18+
// TODO: add protocol
19+
return QString();
20+
}
21+
22+
const QString CPluginTemplateBase::Name() const
23+
{
24+
// TODO: add plugin name
25+
return "Template base";
26+
}
27+
28+
const QString CPluginTemplateBase::Description() const
29+
{
30+
// TODO: add description
31+
return "Template base plugin";
32+
}
33+
34+
const QString CPluginTemplateBase::Version() const
35+
{
36+
#ifdef TemplateBase_VERSION
37+
return TemplateBase_VERSION;
38+
#else
39+
return QString();
40+
#endif
41+
}
42+
43+
const QIcon CPluginTemplateBase::Icon() const
44+
{
45+
// TODO: add icon
46+
return QIcon();
47+
}
48+
49+
const QString CPluginTemplateBase::Details() const
50+
{
51+
// TODO: add details
52+
return QString();
53+
}
54+
55+
COperate *CPluginTemplateBase::OnCreateOperate(const QString &szId)
56+
{
57+
return new COperateTemplateBase(this);
58+
}

0 commit comments

Comments
 (0)