Add history view with day-grouped transaction list
Month navigation with prev/next buttons, transactions grouped by date with headers (Today/Yesterday/formatted date), category icons, amounts color-coded green for income and red for expenses, and daily net totals.
This commit is contained in:
@@ -2,6 +2,7 @@ use adw::prelude::*;
|
||||
use outlay_core::db::Database;
|
||||
use std::rc::Rc;
|
||||
|
||||
use crate::history_view::HistoryView;
|
||||
use crate::log_view::LogView;
|
||||
|
||||
pub struct MainWindow {
|
||||
@@ -31,16 +32,24 @@ impl MainWindow {
|
||||
let content_stack = gtk::Stack::new();
|
||||
content_stack.set_transition_type(gtk::StackTransitionType::Crossfade);
|
||||
|
||||
// Log view - real widget
|
||||
let log_view = LogView::new(db);
|
||||
// Log view
|
||||
let log_view = LogView::new(db.clone());
|
||||
let log_scroll = gtk::ScrolledWindow::builder()
|
||||
.hscrollbar_policy(gtk::PolicyType::Never)
|
||||
.child(&log_view.container)
|
||||
.build();
|
||||
content_stack.add_named(&log_scroll, Some("log"));
|
||||
|
||||
// History view
|
||||
let history_view = HistoryView::new(db.clone());
|
||||
let history_scroll = gtk::ScrolledWindow::builder()
|
||||
.hscrollbar_policy(gtk::PolicyType::Never)
|
||||
.child(&history_view.container)
|
||||
.build();
|
||||
content_stack.add_named(&history_scroll, Some("history"));
|
||||
|
||||
// Remaining pages are placeholders for now
|
||||
for item in &SIDEBAR_ITEMS[1..] {
|
||||
for item in &SIDEBAR_ITEMS[2..] {
|
||||
let page = adw::StatusPage::builder()
|
||||
.title(item.label)
|
||||
.icon_name(item.icon)
|
||||
|
||||
Reference in New Issue
Block a user