Skip to content

Commit 376e2b7

Browse files
authored
CalendarView: absorb header (#846)
1 parent e23deea commit 376e2b7

4 files changed

Lines changed: 61 additions & 93 deletions

File tree

po/POTFILES

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,5 @@ src/Widgets/DateTimePicker.vala
4949
src/Widgets/DynamicSpinner.vala
5050
src/Widgets/DeleteDialog.vala
5151
src/Widgets/EventMenu.vala
52-
src/Widgets/HeaderBar.vala
5352
src/Widgets/SourcePopover.vala
5453
src/Widgets/SourceRow.vala

src/Grid/CalendarView.vala

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ public class Maya.View.CalendarView : Gtk.Box {
2929
public signal void on_event_add (DateTime date);
3030
public signal void selection_changed (DateTime new_date);
3131

32-
public Hdy.HeaderBar header_bar { get; construct; }
32+
public Gtk.SearchEntry search_bar;
33+
private Calendar.Widgets.DateSwitcher month_switcher;
34+
private Calendar.Widgets.DateSwitcher year_switcher;
35+
36+
public Hdy.HeaderBar header_bar { get; private set; }
3337
public DateTime? selected_date { get; private set; }
3438

3539
private WeekLabels weeks { get; private set; }
@@ -67,7 +71,49 @@ public class Maya.View.CalendarView : Gtk.Box {
6771

6872
var info_bar = new Calendar.Widgets.ConnectivityInfoBar ();
6973

70-
header_bar = new Calendar.Widgets.HeaderBar ();
74+
var application_instance = ((Gtk.Application) GLib.Application.get_default ());
75+
76+
var button_today = new Gtk.Button.from_icon_name ("calendar-go-today", Gtk.IconSize.LARGE_TOOLBAR) {
77+
action_name = Maya.MainWindow.ACTION_PREFIX + Maya.MainWindow.ACTION_SHOW_TODAY
78+
};
79+
button_today.tooltip_markup = Granite.markup_accel_tooltip (
80+
application_instance.get_accels_for_action (button_today.action_name),
81+
_("Go to today's date")
82+
);
83+
84+
month_switcher = new Calendar.Widgets.DateSwitcher (10) {
85+
valign = CENTER
86+
};
87+
year_switcher = new Calendar.Widgets.DateSwitcher (-1) {
88+
valign = CENTER
89+
};
90+
91+
var calmodel = Calendar.EventStore.get_default ();
92+
set_switcher_date (calmodel.month_start);
93+
94+
var spinner = new Maya.View.Widgets.DynamicSpinner ();
95+
96+
var contractor = new Maya.View.Widgets.ContractorButtonWithMenu (_("Export or Share the default Calendar"));
97+
98+
var source_popover = new Calendar.Widgets.SourcePopover ();
99+
100+
var menu_button = new Gtk.MenuButton () {
101+
image = new Gtk.Image.from_icon_name ("open-menu", Gtk.IconSize.LARGE_TOOLBAR),
102+
popover = source_popover,
103+
tooltip_text = _("Manage Calendars")
104+
};
105+
106+
header_bar = new Hdy.HeaderBar () {
107+
show_close_button = true
108+
};
109+
header_bar.pack_start (month_switcher);
110+
header_bar.pack_start (year_switcher);
111+
header_bar.pack_start (button_today);
112+
header_bar.pack_end (menu_button);
113+
header_bar.pack_end (contractor);
114+
header_bar.pack_end (spinner);
115+
116+
header_bar.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT);
71117

72118
stack = new Gtk.Stack ();
73119
stack.expand = true;
@@ -115,6 +161,19 @@ public class Maya.View.CalendarView : Gtk.Box {
115161
return false;
116162
});
117163
});
164+
165+
month_switcher.left_clicked.connect (() => Calendar.EventStore.get_default ().change_month (-1));
166+
month_switcher.right_clicked.connect (() => Calendar.EventStore.get_default ().change_month (1));
167+
year_switcher.left_clicked.connect (() => Calendar.EventStore.get_default ().change_year (-1));
168+
year_switcher.right_clicked.connect (() => Calendar.EventStore.get_default ().change_year (1));
169+
calmodel.parameters_changed.connect (() => {
170+
set_switcher_date (calmodel.month_start);
171+
});
172+
}
173+
174+
private void set_switcher_date (DateTime date) {
175+
month_switcher.text = date.format ("%OB");
176+
year_switcher.text = date.format ("%Y");
118177
}
119178

120179
public override bool scroll_event (Gdk.EventScroll event) {

src/Widgets/HeaderBar.vala

Lines changed: 0 additions & 89 deletions
This file was deleted.

src/meson.build

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ calendar_files = files(
3535
'Widgets/DeleteDialog.vala',
3636
'Widgets/DynamicSpinner.vala',
3737
'Widgets/EventMenu.vala',
38-
'Widgets/HeaderBar.vala',
3938
'Widgets/SourcePopover.vala',
4039
'Widgets/SourceRow.vala',
4140
'Widgets/ConnectivityInfoBar.vala'

0 commit comments

Comments
 (0)