{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidfkp4s7a7ocr2boebdz4onyxco7y5een2irxqkowc7cwad4g3w6q",
"uri": "at://did:plc:6dmfe46c76jjenq3kaxc5eds/app.bsky.feed.post/3mogq6uzjs6h2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreigumn42yvnq7zdbw6pabvqf334varkf3e4mxpkm77mzx2jrzwbe3a"
},
"mimeType": "image/png",
"size": 21301
},
"path": "/week-3-bug-fixes-and-importexport-feature/",
"publishedAt": "2026-06-16T08:22:00.000Z",
"site": "https://roshani-gsoc.bearblog.dev",
"tags": [
"!29",
"!31",
"!32",
"KWalletManager",
"KeepSecret",
"QtQuick.Dialogs",
"merge request !33"
],
"textContent": "This week, I worked on two things: a bug fix that was created during the ActionCollection port and starting the import/export feature.\n\nBug fix: Lock/Unlock action text:\n\nA bug was created after !29 was merged. When a wallet was locked, the placeholder message displayed a \"Lock\" button instead of \"Unlock\". The issue came from ActionData using static text, while the lock action needs to reflect the wallet's current state. The fix was easy — switch between the lock and unlock ActionData dynamically based on the locked property.\n\n\n AC.ActionCollection.action: locked ? \"unlock\" : \"lock\"\n\n\nThis was submitted as !31 and merged.\n\nConfigure Shortcuts menu item:\n\nI added a \"Configure Shortcuts…\" menu item to the globalDrawer(!32), using AC.StandardActionData.KeyBindings to attach to the action automatically created by ActionCollectionManager.\n\nImport/Export feature: I started implementing the import/export feature. The format is KWalletManager-compatible XML, so users can migrate between KWalletManager and KeepSecret. The implementation adds: -ImportExportManager C++ class with exportToFile() and importFromFile() methods. -Export… and Import… menu items in the globalDrawer. -File picker dialogs using QtQuick.Dialogs.\n\nThe merge request !33 is open and under review.",
"title": "Week 3 — Bug Fixes and Import/Export Feature"
}