Commit Graph

114 Commits

Author SHA1 Message Date
f8d66bbb69 Update build tools for dashboard and fitnesstrax 2024-01-25 22:55:45 -05:00
3f9a7072eb Fitnesstrax, version 0.3.0 2024-01-21 10:14:50 -05:00
7ec48ded5d Make the day summary use the view model 2024-01-20 17:04:20 -05:00
9461c387fe Simplify the weight editor 2024-01-20 16:05:33 -05:00
d4c48c4443 Add a step count editor field 2024-01-20 15:59:03 -05:00
9bedb7a76c Tons of linting and get tests running again 2024-01-20 15:04:46 -05:00
1fe318068b Set up a view model for the day detail view 2024-01-20 11:16:31 -05:00
18e7e4fe2f Start setting up the day detail view model
I've created the view model and added a getter function for the weight.
I'm passing the view model now to the DayDetailView, DayDetail, and
DayEdit.

I'm starting to set up the Save function for the view model, draining
all of the updated records and saving them.

None of the components yet save any updates to the view model, so
updated_records is always going to be empty until I figure that out.
2024-01-18 09:00:08 -05:00
1c2c4982a1 Update the record in the detail view on save 2024-01-18 07:43:18 -05:00
c075b7ed6e Just barely get the data saveable again
Starting to see some pretty serious limitations already.
2024-01-17 22:59:20 -05:00
56d0a53666 Fix how DayEdit deals with the weight field 2024-01-17 22:35:13 -05:00
b00acc64a3 Set up the ActionGroup component 2024-01-17 22:13:55 -05:00
104760c754 Be able to switch into edit mode 2024-01-15 23:27:55 -05:00
1e6555ef61 Create a day detail view
DayDetail, the component, I used to use as a view. Now I'm swapping
things out so that DayDetailView handles the view itself. The DayDetail
component will still show the details of the day, but I'll create a
DayEditComponent which is dedicated to showing the edit interface for
everything in a day.

The swapping will now happen in DayDetailView, not in DayDetail or an
even deeper component.
2024-01-15 15:53:01 -05:00
2e2ff6b47e Create a Singleton component and use it to simplify the weight view 2024-01-15 13:20:23 -05:00
0007522b26 Extract the Weight and Time Distance widgets 2024-01-01 23:58:55 -05:00
b7b9b1b29f Create an EditView "component"
This is a super tiny data structure that covers an edit mode, a view
mode, and an unconfigured mode. It's mostly a container so that views
don't have to preserve everything directly.
2024-01-01 23:49:31 -05:00
2e3d5fc5a4 Clean up the parameters to TextEntry and populate the field 2024-01-01 22:57:59 -05:00
a25b76d230 Create a validated text entry widget
I move the weight edit view into the validated text entry widget, and I
work on some of the unfortunate logic in the weight blur function. I've
left behind a lot of breadcrumbs for things that still need to be done.
2023-12-31 11:18:15 -05:00
9970161c30 Set up a lot of the files necessary for a desktop app 2023-12-29 13:13:22 -05:00
7bd4885b09 Save new information to the day detail view and to the historical view 2023-12-29 09:24:37 -05:00
b5dcee3737 Update the historical view when a change happens in the db 2023-12-28 22:47:47 -05:00
0c3ae062c8 Save real data to the database. Load data on app start. 2023-12-28 22:46:44 -05:00
f422e233a1 Record data to the database
This isn't recording real data. It's basically discarding all
information from the weight edit field. But it is creating a record.
2023-12-28 22:43:56 -05:00
7a6e902fdd Create placeholders in the historical view for days that are unpopulated. 2023-12-28 22:36:44 -05:00
6d9e2ea382 Switch to the updated emseries record type 2023-12-28 22:36:40 -05:00
04a48574d3 Develop a pattern to detect clicking outside of a focused child
Be able to respond to blur events and potentially be able to record weight.
2023-12-28 22:34:09 -05:00
e13e7cf4c3 Create a widget that can show the weight view and edit modes 2023-12-28 22:31:11 -05:00
383f809191 Open and style the day detail view and add it to the navigation stack 2023-12-28 22:31:07 -05:00
d269924827 Refactorings and dead code removal 2023-12-28 22:20:30 -05:00
8049859816 Clean up showing the welcome and historical screens
Swapping is now done in dedicated functions instead of a big pattern
match.

After selecting a database, the app window will apply the configuration
by opening the database, saving the path to configuration, and switching
to the historical view.
2023-12-28 21:45:55 -05:00
ac343a2af6 Switch from channel-based communication to async calls into the core 2023-12-28 19:09:12 -05:00
5cd0e822c6 Update to adwaita 1.4, and add a navigation page stack 2023-12-28 13:21:42 -05:00
fe5e4ed044 Save the views as their original widgets
This allows me to directly reference functions that occur on those
widgets without losing them behind a gtk::Widget upcast or needing to
later downcast them.
2023-12-28 12:59:29 -05:00
e30668ca8e Drop DateTimeTz from fitnesstrax 2023-12-28 12:51:50 -05:00
af8f9b0244 Generate some random data and feed it into hte historical view 2023-12-24 19:13:49 -05:00
1b3ca7439d Add styling to the day summary 2023-12-24 12:00:12 -05:00
3dc8be0d26 Render a weight record 2023-12-22 18:53:29 -05:00
43cd408e2c Start elaborating upon the HistoricalView
I've created the DaySummary structure and set up a list view to go into
the historical view. One hard-coded date is visible as a placeholder to
start filling things into the day summary.
2023-12-22 17:32:45 -05:00
3a728a51b4 Extract the application loop from the main file 2023-12-22 15:17:22 -05:00
f19090311b Extract all of the UI components into dedicated files 2023-12-22 15:17:22 -05:00
dedcc76df0 Mild cleanups 2023-12-22 15:16:03 -05:00
6678ab9852 Documentation 2023-12-22 14:28:23 -05:00
9c200f555c Set up app invocation and response handling 2023-12-22 14:08:16 -05:00
3ca8bf64cc Set up message passing between app window and an app thread 2023-12-19 18:05:22 -05:00
87994012fa Save the database path to settings and attempt to open the database on start 2023-12-19 10:59:33 -05:00
50268ffadc Actually be able to open the database 2023-12-19 10:46:53 -05:00
beedeba8dc Style the welcome screen 2023-12-19 10:10:02 -05:00
db188ea75a Allow the user to create a new file 2023-12-19 00:37:51 -05:00
104ffc5782 Set up callbacks to make the save button sensitive to the file selection 2023-12-19 00:31:36 -05:00
38db3d6780 Elaborate upon and format the welcome dialog 2023-12-18 21:14:08 -05:00
0dd0a5f7cc Set up some of the content of the welcome view 2023-12-18 20:04:55 -05:00
acdf9ec150 Add the window header bar 2023-12-18 19:08:32 -05:00
0ebdcd7c2a Add some commentary 2023-12-18 18:36:22 -05:00
baf652173c Set up the main views for the window, as well as the redraw policy
Whenever we change views, we need to call the redraw function. That
function will handle dropping the old view and populating the new one.
2023-12-18 18:30:41 -05:00
c4befcc6de Add the CSS style context to the main window 2023-12-18 11:59:56 -05:00
a7d6d82ec2 Set up an environment variable to toggle between dev and production schemas 2023-12-07 09:56:10 -05:00
f3a453d151 Set up a development gsettings schema 2023-12-07 09:45:56 -05:00
b9aa434278 Remove types that are not implemented yet
I've gone *years* without these types, mostly because I wasn't doing
these workouts. I can go longer.
2023-12-06 23:55:12 -05:00
83a4839b1d Implement the timestamp function 2023-12-06 23:52:46 -05:00
0e0d67a9ac Split Fitnesstrax into two crates 2023-12-06 23:52:33 -05:00
e5fb605816 Create a test that verifies that a series can be made for a TraxRecord 2023-12-06 23:52:33 -05:00
0ac9bb74a6 Set up the bare minimum of a GUI app, opening only a single window 2023-12-06 23:52:28 -05:00
f034dfcb8b Set up the basic data structures of a new fitnesstrax app. 2023-12-06 23:52:28 -05:00