Skip to content

Commit d4ff141

Browse files
danirabbitstsdc
andauthored
Integrate Headerbar to MainWindow (#425)
* Headerbar: rewrite in gobject style, code style, etc * Header is sealed in GTK4 * Headerbar doesn't need to be public get --------- Co-authored-by: Stanisław <6031763+stsdc@users.noreply.github.com>
1 parent b8e02c0 commit d4ff141

File tree

5 files changed

+34
-61
lines changed

5 files changed

+34
-61
lines changed

po/POTFILES

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ src/Views/SystemView/SystemMemoryView.vala
1616
src/Views/SystemView/SystemNetworkView.vala
1717
src/Views/SystemView/SystemStorageView.vala
1818
src/Views/SystemView/SystemGPUView.vala
19-
src/Widgets/Headerbar/Headerbar.vala
2019
src/Widgets/Headerbar/Search.vala
2120
src/Widgets/Statusbar/Statusbar.vala
2221
src/Widgets/WidgetResource/WidgetResource.vala

src/MainWindow.vala

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow {
1010
private Resources resources;
1111

1212
// Widgets
13-
public Headerbar headerbar;
13+
public Search search { get; private set; }
1414

1515
public ProcessView process_view;
1616
public SystemView system_view;
@@ -46,12 +46,37 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow {
4646
stack_switcher.valign = Gtk.Align.CENTER;
4747
stack_switcher.set_stack (stack);
4848

49-
headerbar = new Headerbar (this);
50-
headerbar.set_custom_title (stack_switcher);
5149
var sv = new PreferencesView ();
52-
headerbar.preferences_grid.add (sv);
5350
sv.show_all ();
5451

52+
var preferences_popover = new Gtk.Popover (null) {
53+
child = sv
54+
};
55+
56+
var preferences_button = new Gtk.MenuButton () {
57+
image = new Gtk.Image.from_icon_name ("open-menu", Gtk.IconSize.LARGE_TOOLBAR),
58+
popover = preferences_popover,
59+
tooltip_text = (_("Settings"))
60+
};
61+
62+
search = new Search (this) {
63+
valign = CENTER
64+
};
65+
66+
var search_revealer = new Gtk.Revealer () {
67+
child = search,
68+
transition_type = SLIDE_LEFT
69+
};
70+
71+
var headerbar = new Hdy.HeaderBar () {
72+
has_subtitle = false,
73+
show_close_button = true,
74+
title = _("Monitor")
75+
};
76+
headerbar.pack_start (search_revealer);
77+
headerbar.set_custom_title (stack_switcher);
78+
headerbar.pack_end (preferences_button);
79+
5580
statusbar = new Statusbar ();
5681

5782
var grid = new Gtk.Grid () {
@@ -68,9 +93,9 @@ public class Monitor.MainWindow : Hdy.ApplicationWindow {
6893

6994
dbusserver = DBusServer.get_default ();
7095

71-
headerbar.search_revealer.set_reveal_child (stack.visible_child_name == "process_view");
96+
search_revealer.set_reveal_child (stack.visible_child_name == "process_view");
7297
stack.notify["visible-child-name"].connect (() => {
73-
headerbar.search_revealer.set_reveal_child (stack.visible_child_name == "process_view");
98+
search_revealer.set_reveal_child (stack.visible_child_name == "process_view");
7499
});
75100

76101
new Thread<void> ("upd", () => {

src/Services/Shortcuts.vala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ public class Monitor.Shortcuts : Object {
1515
handled = false;
1616
char typed = e.str[0];
1717

18-
if (typed.isalnum () && !window.headerbar.search.is_focus) {
19-
window.headerbar.search.activate_entry (e.str);
18+
if (typed.isalnum () && !window.search.is_focus) {
19+
window.search.activate_entry (e.str);
2020
handled = true;
2121
}
2222

2323
if ((e.state & Gdk.ModifierType.CONTROL_MASK) != 0) {
2424
switch (e.keyval) {
2525
case Gdk.Key.f:
26-
window.headerbar.search.activate_entry ();
26+
window.search.activate_entry ();
2727
handled = true;
2828
break;
2929
case Gdk.Key.e:

src/Widgets/Headerbar/Headerbar.vala

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

src/meson.build

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ source_app_files = [
2828
'Views/ProcessView/ProcessInfoView/OpenFilesTreeView.vala',
2929

3030
# Widgets
31-
'Widgets/Headerbar/Headerbar.vala',
3231
'Widgets/Headerbar/Search.vala',
3332
'Widgets/Statusbar/Statusbar.vala',
3433
'Widgets/Labels/LabelVertical.vala',

0 commit comments

Comments
 (0)