gui: rpc plumbing for settings.changed and grabber.progress

Protocol.hpp gains method-name constants for every RPC the next batch of dialogs
needs (settings.*, limiter.*, schedule.*, queue.*, download.addBatch, grabber.*)
and RpcClient re-broadcasts the two events nothing consumed yet:
event.settings.changed and event.grabber.progress. No behaviour change on its
own — OptionsDialog, SchedulerDialog and GrabberWizard are what actually call
these, landing next.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NSCdCWFXBTSBBK3MzWtJiC
This commit is contained in:
2026-09-11 17:17:23 +04:00
co-authored by Claude Sonnet 5
parent a71d904a1f
commit 39c69f3871
3 changed files with 30 additions and 0 deletions
+20
View File
@@ -69,6 +69,24 @@ inline constexpr auto kDownloadPause = "download.pause";
inline constexpr auto kDownloadResume = "download.resume";
inline constexpr auto kDownloadCancel = "download.cancel";
inline constexpr auto kDownloadRemove = "download.remove";
inline constexpr auto kDownloadProbe = "download.probe";
inline constexpr auto kDownloadAdd = "download.add";
inline constexpr auto kDownloadAddBatch = "download.addBatch";
inline constexpr auto kCategoryList = "category.list";
inline constexpr auto kQueueList = "queue.list";
inline constexpr auto kQueueUpsert = "queue.upsert";
inline constexpr auto kQueueReorder = "queue.reorder";
inline constexpr auto kQueueStart = "queue.start";
inline constexpr auto kQueueStop = "queue.stop";
inline constexpr auto kScheduleGet = "schedule.get";
inline constexpr auto kScheduleSet = "schedule.set";
inline constexpr auto kSettingsGet = "settings.get";
inline constexpr auto kSettingsSet = "settings.set";
inline constexpr auto kLimiterGet = "limiter.get";
inline constexpr auto kLimiterSet = "limiter.set";
inline constexpr auto kGrabberStart = "grabber.start";
inline constexpr auto kGrabberStatus = "grabber.status";
inline constexpr auto kGrabberHarvest = "grabber.harvest";
} // namespace method
// --- event names ---------------------------------------------------------------------
@@ -79,6 +97,8 @@ inline constexpr auto kTaskState = "event.task.state";
inline constexpr auto kTaskProgress = "event.task.progress";
inline constexpr auto kSpeedGlobal = "event.speed.global";
inline constexpr auto kNotify = "event.notify";
inline constexpr auto kSettingsChanged = "event.settings.changed";
inline constexpr auto kGrabberProgress = "event.grabber.progress";
} // namespace event
} // namespace velox::gui::rpc
+4
View File
@@ -106,6 +106,10 @@ void RpcClient::onNotification(const QString &methodName, const QJsonObject &par
emit speedGlobal(params);
} else if (methodName == QLatin1String(event::kNotify)) {
emit notify(params);
} else if (methodName == QLatin1String(event::kSettingsChanged)) {
emit settingsChanged(params);
} else if (methodName == QLatin1String(event::kGrabberProgress)) {
emit grabberProgress(params);
}
}
+6
View File
@@ -53,6 +53,12 @@ class RpcClient : public QObject {
void taskRemoved(const QString &taskId);
void speedGlobal(const QJsonObject &params);
void notify(const QJsonObject &params);
/// event.settings.changed: carries only the key names that changed; a client re-reads
/// whatever it cares about (OptionsDialog re-fetches if it is open and idle).
void settingsChanged(const QJsonObject &params);
/// event.grabber.progress: crawl progress for whichever GrabberWizard is watching
/// jobId; done true means grabber.status's file list is final.
void grabberProgress(const QJsonObject &params);
private slots:
void onConnectionState(int state);