refactor: replace deprecated qsrand/qrand with std::rand, QRegExp with QRegularExpression #1

Merged
johnpreston merged 1 commit from fix/deprecated-apis-pr1 into main 2026-09-08 19:55:34 +00:00
Member

Summary

Replaces all deprecated Qt APIs with portable alternatives that work on Qt 5.0+:

Changes

  1. qsrand/qrand → std::srand/std::rand (<cstdlib>)

    • 4 usages in tailscalecontroller.cpp (seed + 3 random selections in quick-connect)
  2. QRegExp → QRegularExpression (available since Qt 5.0)

    • pongLatencyPattern in quick-connect probe result parsing
    • loginUrlPattern in login URL extraction (both app + daemon)
    • derpRegionPattern in ping result parsing
    • API migration: .indexIn() → .match().hasMatch(), .cap(n) → .match().captured(n)

Verification

  • grep -c "qsrand\|qrand\|QRegExp" returns 0 in both changed files
  • No Qt 5.7+ APIs introduced (no QRandomGenerator, no QOverload)
  • No API behavior change — same regex patterns, same random selection logic

Files changed

  • app/src/tailscalecontroller.cpp — 30 insertions, 21 deletions
  • daemon/src/control.cpp — 10 insertions, 4 deletions
## Summary Replaces all deprecated Qt APIs with portable alternatives that work on Qt 5.0+: ### Changes 1. **`qsrand`/`qrand` → `std::srand`/`std::rand`** (`<cstdlib>`) - 4 usages in `tailscalecontroller.cpp` (seed + 3 random selections in quick-connect) 2. **`QRegExp` → `QRegularExpression`** (available since Qt 5.0) - `pongLatencyPattern` in quick-connect probe result parsing - `loginUrlPattern` in login URL extraction (both app + daemon) - `derpRegionPattern` in ping result parsing - API migration: `.indexIn()` → `.match().hasMatch()`, `.cap(n)` → `.match().captured(n)` ### Verification - `grep -c "qsrand\|qrand\|QRegExp"` returns 0 in both changed files - No Qt 5.7+ APIs introduced (no `QRandomGenerator`, no `QOverload`) - No API behavior change — same regex patterns, same random selection logic ### Files changed - `app/src/tailscalecontroller.cpp` — 30 insertions, 21 deletions - `daemon/src/control.cpp` — 10 insertions, 4 deletions
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ews-network/finnscale!1
No description provided.