Add log view UI with transaction entry form
Expense/Income toggle, amount entry, currency dropdown, category dropdown (filtered by transaction type), date picker with calendar popover, optional note field, save button, and recent transactions placeholder section.
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
use adw::prelude::*;
|
||||
|
||||
use crate::log_view::LogView;
|
||||
|
||||
pub struct MainWindow {
|
||||
pub window: adw::ApplicationWindow,
|
||||
pub split_view: adw::NavigationSplitView,
|
||||
pub content_stack: gtk::Stack,
|
||||
pub log_view: LogView,
|
||||
}
|
||||
|
||||
struct SidebarItem {
|
||||
@@ -26,7 +29,16 @@ impl MainWindow {
|
||||
let content_stack = gtk::Stack::new();
|
||||
content_stack.set_transition_type(gtk::StackTransitionType::Crossfade);
|
||||
|
||||
for item in SIDEBAR_ITEMS {
|
||||
// Log view - real widget
|
||||
let log_view = LogView::new();
|
||||
let log_scroll = gtk::ScrolledWindow::builder()
|
||||
.hscrollbar_policy(gtk::PolicyType::Never)
|
||||
.child(&log_view.container)
|
||||
.build();
|
||||
content_stack.add_named(&log_scroll, Some("log"));
|
||||
|
||||
// Remaining pages are placeholders for now
|
||||
for item in &SIDEBAR_ITEMS[1..] {
|
||||
let page = adw::StatusPage::builder()
|
||||
.title(item.label)
|
||||
.icon_name(item.icon)
|
||||
@@ -98,6 +110,7 @@ impl MainWindow {
|
||||
window,
|
||||
split_view,
|
||||
content_stack,
|
||||
log_view,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user