• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IJHack / QtPass / 35198163954
93%

Build:
DEFAULT BRANCH: main
Ran 17 Sep 2026 08:16AM UTC
Jobs 1
Files 100
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Sep 2026 08:09AM UTC coverage: 74.517% (+0.7%) from 73.769%
35198163954

push

github

web-flow
KeygenDialog drives key generation itself; ConfigDialog no longer knows MainWindow (#1796)

* KeygenDialog drives key generation itself; ConfigDialog no longer knows MainWindow

The result of gpg --gen-key travelled KeygenDialog -> ConfigDialog::genKey
-> MainWindow::generateKeyPair (a QPointer kept only to relay) ->
generateGPGKeyPair signal -> QtPass lambda -> Pass::GenerateGPGKeys, and
back via QtPass::onKeyGenerationComplete -> MainWindow::cleanKeygenDialog
-> close() -> reject(). So a successful keygen made checkSecretKeys()'s
exec() return Rejected and the first-run wizard gave up; the QPointer
existed because of a use-after-free (#1603) on that path.

KeygenDialog takes the Pass, connects to finishedGenerateGPGKeys and
processErrorExit for the duration of one run, accepts on success and on
failure shows the reason and re-enables the form. The relay members,
signal and lambda are gone; ConfigDialog takes a plain QWidget parent and
drops mainwindow.h.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

* KeygenDialog listens to a keygen-specific failure signal; cancel test keeps the dialog alive

Pass::processErrorExit fires for any command that fails while gpg is
generating (a queued git push, say) and would have taken the dialog down
mid-run. Pass now also emits generateGPGKeysFailed(err) for GPG_GENKEYS
and the no-gpg case; the dialog connects to that. The cancel test emits
the late signals at a still-living dialog so the explicit disconnects are
what is being tested.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

* KeygenDialog: a retry restarts the progress indicator

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JuQsrHonihp1nARE7bzstc

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

41 of 46 new or added lines in 4 files covered. (89.13%)

39 existing lines in 2 files now uncovered.

5790 of 7770 relevant lines covered (74.52%)

65.98 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
92.37
23.77% src/keygendialog.cpp
1
59.58
0.21% src/configdialog.cpp
1
82.91
0.43% src/pass.cpp
1
78.88
3.74% src/qtpass.cpp

Coverage Regressions

Lines Coverage ∆ File
23
72.48
3.47% src/moc_pass.cpp
16
34.94
0.5% src/moc_mainwindow.cpp
Jobs
ID Job ID Ran Files Coverage
1 35198163954.1 17 Sep 2026 08:16AM UTC 100
74.52
GitHub Action Run
Source Files on build 35198163954
  • Tree
  • List 100
  • Changed 14
  • Source Changed 11
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35198163954
  • 0d4e4d5f on github
  • Prev Build on main (#35167267407)
  • Next Build on main (#35199496956)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc