Feature #882
closedAdd per-store settings pages
Added by Hammel over 2 years ago. Updated 9 months ago.
100%
Description
Settings should show:
- Read only
- PiSentry store (allows storage of PiSentry videos) (mutually exclusive to Read Only)
- Store name (symbollic - might use bind mounts when exporting)
PiSentry stores are bind mounted to /media/pisentry.
These changes are needed so pisentries can find stores for video recordings.
Updated by Hammel over 2 years ago
- Priority changed from Immediate to Urgent
- Target version changed from 2.0 - Harkonnen to 2.1 - Feyd
Updated by Hammel over 1 year ago
- Target version changed from 2.1 - Feyd to 3.0 - Corrino
Updated by Hammel 11 months ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
Design¶
- dbUpdateFS(): scan db entry for stamp files.
- Read Only (mounted read-only)
- PiSentry (unique owner ID created by PiSentry device with group of "PiSentry" so Ironman can read them and with all files marked as 740 perms)
- Store Name (contains string name for store)
The function updates an internal DB (GSList). statuswidget.c:drawText() does a lookup for exported directories to get the GSList entry and prints "ro" (read-only), "ps" (pisentry) and/or the store name next to the exported path.
The output should be changed to look like this.
ro ps Store_Name Store_Export_Path
The list should only show 10 entries at a time. Tapping "next" shows the next 10, and so on. Tapping "prev" shows last 10, and so on. ESC/Home takes the user back to the previous screen. This will require some mods to the touch handler (imageTouchGTK()) to support this.
Updated by Hammel 11 months ago
Initial UI updates in place, but the call to drawText() needs to track "pages" of displays. If there are more than 10 exports then Next and Prev options in the StatusWidget needs to page through them. The StatusWidget doesn't yet have the Next/Previous capability. Basically when the Next tap is done the StatusWidget page is incremented (starts at 0). If the Previous tap is done the StatusWidget's page is decremented. And every page update calls gtk_status_update().
Updated by Hammel 11 months ago
The current implementation is all wrong. While I still want the stamp files, I need to process them in db.c:_sumFS(), which currently builds a string like so:
mntdir:Total:Avail:BlockSize
It should be updated to look like this:
mntdir:Total:Avail:BlockSize:RO:PS:Label
where RO and PS are either Y or N and Label is the last field so it can contain spaces.
_sumFS() is called via dbGetStores() from updateStatus() which is currently only called once. Since the stamp files might change externally updateStatus() needs to be called every time togglePopup() is called. That means the GSList generated by dbGetStores() needs to be freed after it's been used by the status widget, otherwise we'll leak.
The status widget currently just reads the exports file to display text. This needs to be changed to iterate the status->nodes GSList in gtk_status_paint().
Updated by Hammel 11 months ago
- % Done changed from 60 to 70
Fixed some minor bugs and tested on hardware. Seems to be working as expected.
The font used is not fixed width so columns are not aligned. Not sure this is an issue or not.
The list of exported devices is not limited in length. I need to implement a paging mechanism.