chore: update the file

This commit is contained in:
x-tools-author 2025-09-14 21:19:40 +08:00
parent c316fb2c93
commit 4b8409ce7a
2 changed files with 39 additions and 2 deletions

View File

@ -9,6 +9,10 @@
#include "scriptbase.h" #include "scriptbase.h"
#include "ui_scriptbase.h" #include "ui_scriptbase.h"
#include <QDesktopServices>
#include "scriptrunner.h"
ScriptBase::ScriptBase(QWidget *parent) ScriptBase::ScriptBase(QWidget *parent)
: QWidget(parent) : QWidget(parent)
, ui(new Ui::ScriptBase) , ui(new Ui::ScriptBase)
@ -32,8 +36,14 @@ ScriptRunner *ScriptBase::newRunner()
return nullptr; return nullptr;
} }
QString ScriptBase::helpUrl() const
{
return QString();
}
void ScriptBase::onRunButtonClicked(bool checked) void ScriptBase::onRunButtonClicked(bool checked)
{ {
ui->toolButtonOpen->setEnabled(false);
if (checked) { if (checked) {
startRunner(); startRunner();
} else { } else {
@ -47,11 +57,37 @@ void ScriptBase::onOpenButtonClicked() {}
void ScriptBase::onRefreshButtonClicked() {} void ScriptBase::onRefreshButtonClicked() {}
void ScriptBase::onHelpButtonClicked() {} void ScriptBase::onHelpButtonClicked()
{
QString url = helpUrl();
if (url.isEmpty()) {
return;
}
QDesktopServices::openUrl(QUrl(url));
}
void ScriptBase::startRunner() void ScriptBase::startRunner()
{ {
stopRunner(); stopRunner();
m_runner = newRunner();
if (!m_runner) {
return;
} }
void ScriptBase::stopRunner() {} connect(m_runner, &QThread::finished, this, [this]() { ui->toolButtonOpen->setEnabled(true); });
connect(m_runner, &QThread::started, this, [this]() { ui->toolButtonOpen->setEnabled(true); });
m_runner->start();
}
void ScriptBase::stopRunner()
{
if (m_runner) {
m_runner->requestInterruption();
m_runner->exit();
m_runner->wait();
m_runner->deleteLater();
m_runner = nullptr;
}
}

View File

@ -24,6 +24,7 @@ public:
protected: protected:
virtual ScriptRunner *newRunner(); virtual ScriptRunner *newRunner();
virtual QString helpUrl() const;
private: private:
void onRunButtonClicked(bool checked); void onRunButtonClicked(bool checked);