Skip to content

Commit db4309a

Browse files
committed
Plugin: add sigNewOperate signal
1 parent 9977f11 commit db4309a

File tree

7 files changed

+52
-2
lines changed

7 files changed

+52
-2
lines changed

.github/workflows/msvc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ jobs:
435435
-DVCPKG_APPLOCAL_DEPS=ON ^
436436
-DVCPKG_TRACE_FIND_PACKAGE=ON ^
437437
-DENABLE_UPDATE_TRANSLATIONS=ON ^
438-
-DBUILD_QUIWidget=OFF ^
438+
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 ^
439439
-DBUILD_APP=ON ^
440440
-DBUILD_FREERDP=ON ^
441441
-DPCAP_ROOT=${{env.INSTALL_DIR}}/npcap ^

App/Client/mainwindow.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ MainWindow::MainWindow(QWidget *parent)
7575
ui->setupUi(this);
7676
ui->menubar->show();
7777

78+
check = connect(&m_Manager, &CManager::sigNewOperate,
79+
this, [&](COperate* pOperate, bool bOpenSettingsDialog){
80+
Start(pOperate, bOpenSettingsDialog);
81+
});
82+
Q_ASSERT(check);
83+
7884
#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_MACOS)
7985
// gnome icon isn't support svg
8086
setWindowIcon(QIcon(":/images/app"));

Plugins/WebBrowser/PluginWebBrowser.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,8 @@ QWidget* CPluginWebBrowser::GetSettingsWidget(QWidget* parent)
8686
pSetting->setWindowTitle(tr("Set Web Wrowser"));
8787
return pSetting;
8888
}
89+
90+
COperate* CPluginWebBrowser::CreateOperate(const QString &szId, CParameterPlugin *para)
91+
{
92+
return CPlugin::CreateOperate(szId, para);
93+
}

Plugins/WebBrowser/PluginWebBrowser.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ class CPluginWebBrowser: public CPlugin
2727
virtual const QString Version() const override;
2828
virtual const QIcon Icon() const override;
2929
virtual const QString Details() const override;
30-
30+
Q_INVOKABLE virtual COperate* CreateOperate(
31+
const QString& szId, CParameterPlugin* para);
32+
3133
protected:
3234
virtual COperate *OnCreateOperate(const QString &szId) override;
3335
Q_INVOKABLE virtual QWidget* GetSettingsWidget(QWidget *parent) override;

Src/Manager.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ int CManager::AppendPlugin(CPlugin *p)
317317
if(!p->Details().isEmpty())
318318
m_szDetails += p->Details() + "\n";
319319

320+
bRet = connect(p, &CPlugin::sigNewOperate, this, &CManager::sigNewOperate);
320321
return 0;
321322
}
322323

Src/Manager.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
class PLUGIN_EXPORT CManager : public QObject
4545
{
4646
Q_OBJECT
47+
4748
public:
4849
explicit CManager(QObject *parent = nullptr);
4950
virtual ~CManager();
@@ -181,6 +182,23 @@ class PLUGIN_EXPORT CManager : public QObject
181182

182183
const QString Details() const;
183184

185+
Q_SIGNALS:
186+
/*!
187+
* \~chinese 当在插件中新建操作时,触发此信号
188+
* \param pOperate: 新建的操作
189+
* \param bOpenSettingsDialog:
190+
* - true: 打开设置对话框
191+
* - false: 不打开设置对话框
192+
*
193+
* \~english
194+
* \brief This signal is triggered when a new operate is created in the plugin.
195+
* \param pOperate: a new operate is created.
196+
* \param bOpenSettingsDialog:
197+
* - true: open the settings dialog
198+
* - false: don't open the settings dialog
199+
*/
200+
void sigNewOperate(COperate* pOperate, bool bOpenSettingsDialog);
201+
184202
private:
185203
int LoadPlugins();
186204
/*!

Src/Plugin.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
class PLUGIN_EXPORT CPlugin : public QObject
1515
{
1616
Q_OBJECT
17+
1718
public:
1819
explicit CPlugin(QObject *parent = nullptr);
1920
virtual ~CPlugin();
@@ -62,6 +63,23 @@ class PLUGIN_EXPORT CPlugin : public QObject
6263
*/
6364
[[nodiscard]] virtual const QString Details() const;
6465

66+
Q_SIGNALS:
67+
/*!
68+
* \~chinese 当在插件中新建操作时,触发此信号
69+
* \param pOperate: 新建的操作
70+
* \param bOpenSettingsDialog:
71+
* - true: 打开设置对话框
72+
* - false: 不打开设置对话框
73+
*
74+
* \~english
75+
* \brief This signal is triggered when a new operate is created in the plugin.
76+
* \param pOperate: a new operate is created.
77+
* \param bOpenSettingsDialog:
78+
* - true: open the settings dialog
79+
* - false: don't open the settings dialog
80+
*/
81+
void sigNewOperate(COperate* pOperate, bool bOpenSettingsDialog);
82+
6583
protected:
6684
/*!
6785
* \~chinese

0 commit comments

Comments
 (0)