Skip to content

Commit c5a70f0

Browse files
authored
Merge branch 'main' into lenemter/remove-accounts-service
2 parents 63c6534 + 5d329d6 commit c5a70f0

File tree

460 files changed

+33775
-13762
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

460 files changed

+33775
-13762
lines changed

.github/workflows/gettext.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99

1010
steps:
1111
- name: Clone repository
12-
uses: actions/checkout@v4
12+
uses: actions/checkout@v5
1313
with:
1414
token: ${{ secrets.GIT_USER_TOKEN }}
1515

.github/workflows/lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ jobs:
77
runs-on: ubuntu-latest
88

99
steps:
10-
- uses: actions/checkout@v4
11-
- uses: elementary/actions/vala-lint@master
10+
- uses: actions/checkout@v5
11+
- uses: elementary/actions/vala-lint@main

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ jobs:
1919
image: ghcr.io/elementary/docker:${{ matrix.version }}
2020

2121
steps:
22-
- uses: actions/checkout@v4
22+
- uses: actions/checkout@v5
2323
- name: Install Dependencies
2424
run: |
2525
apt update
26-
apt install -y meson gobject-introspection libgee-0.8-dev libgirepository1.0-dev libgtk-4-dev libshumate-dev sassc valac
26+
apt install -y meson gobject-introspection libgee-0.8-dev libgirepository1.0-dev libgtk-4-dev libshumate-dev sassc valac valadoc gtk-doc-tools
2727
- name: Build
2828
env:
2929
DESTDIR: out
3030
PKG_CONFIG_PATH: ${{ github.workspace }}/build/meson-uninstalled
3131
run: |
32-
meson build
32+
meson setup build -Ddocumentation=true
3333
ninja -C build
3434
ninja -C build install
3535

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ jobs:
99
runs-on: ubuntu-latest
1010
if: github.event.pull_request.merged == true && true == contains(join(github.event.pull_request.labels.*.name), 'Release')
1111
steps:
12-
- uses: actions/checkout@v4
13-
- uses: elementary/actions/release@master
12+
- uses: actions/checkout@v5
13+
- uses: elementary/actions/release@main
1414
env:
1515
GIT_USER_TOKEN: "${{ secrets.GIT_USER_TOKEN }}"
1616
GIT_USER_NAME: "elementaryBot"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ You'll need the following dependencies:
2222
To build the Demo you'll additionally need:
2323
* libshumate-dev
2424

25-
Run `meson build` to configure the build environment:
25+
Run `meson setup` to configure the build environment:
2626

27-
meson build --prefix=/usr
27+
meson setup build --prefix=/usr
2828

2929
This command creates a `build` directory. For all following commands, change to
3030
the build directory before running them.

data/granite.metainfo.xml.in

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,48 @@
2727
<update_contact>contact_at_elementary.io</update_contact>
2828

2929
<releases>
30-
<release version="7.7.0" date="2025-02-10" urgency="medium">
30+
<release version="7.7.0" date="2025-09-30" urgency="medium">
3131
<description>
32+
<p>New Icons:</p>
33+
<ul>
34+
<li>View icons for columns, grids, lists, and reader mode. Plus horizontal and vertical ellipsis icons</li>
35+
<li>Start and End show/hide sidebar icons</li>
36+
<li>Emoji category icons used by GTK's emoji picker</li>
37+
<li>Eye icons required by Gtk.PasswordEntry</li>
38+
</ul>
3239
<p>New Features:</p>
3340
<ul>
34-
<li>Granite.CssClass.NUMERIC</li>
41+
<li>Box is an orientable widget that includes standardized spacing and linked styles</li>
42+
<li>ListItem is a standard list widget that includes styles and spacing</li>
43+
<li>ToolBox is a vertical layout widget for top and bottom toolbars</li>
44+
<li>new style class constants for labels: CssClass.NUMERIC and CssClass.MONOSPACE</li>
45+
<li>StyleManager handles automatically setting dark and light modes as well as system accent colors using Portals</li>
46+
<li>BackButton is a standardized navigation button that activates "navigation.pop" and includes a shortcut tooltip</li>
3547
</ul>
3648
<p>Improvements:</p>
3749
<ul>
50+
<li>accel_to_string now uses the word "Super" instead of the "⌘" symbol</li>
51+
<li>HeaderLabel has a new property for H1-H4 sizes and H2 styles are now bolder</li>
52+
<li>CssClass.CARD is now rounded by default</li>
3853
<li>Updated translations</li>
3954
</ul>
55+
<p>Deprecations:</p>
56+
<ul>
57+
<li>Utils.set_color_primary. Modern apps have moved to more of a split paned design and this style is no longer very fashionable</li>
58+
<li>Nearly all of the old `STYLE_CLASS` constants have been deprecated. Some of them have been replaced by `CssClass` constants, others by widgets.</li>
59+
</ul>
60+
<p>Demo Improvements:</p>
61+
<ul>
62+
<li>More demo pages with more widgets</li>
63+
<li>Color scheme switcher in the sidebar</li>
64+
</ul>
4065
</description>
66+
<issues>
67+
<issue url="https://github.com/elementary/granite/issues/742">adw-entry-apply-symbolic</issue>
68+
<issue url="https://github.com/elementary/granite/issues/802">Provide native support for libshumate</issue>
69+
<issue url="https://github.com/elementary/granite/issues/874">Default icon themes by non-Pantheon desktops may have missing icons or use incorrect icons</issue>
70+
<issue url="https://github.com/elementary/granite/issues/883">PopoverAccelLabel styles broken in Demo</issue>
71+
</issues>
4172
</release>
4273

4374
<release version="7.6.0" date="2024-11-21" urgency="medium">

demo/GraniteDemo.vala

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ public class Granite.Demo : Gtk.Application {
2929
var overlaybar_view = new OverlayBarView ();
3030
var toast_view = new ToastView ();
3131
var settings_uris_view = new SettingsUrisView ();
32-
var style_manager_view = new StyleManagerView ();
3332
var utils_view = new UtilsView ();
3433
var video_view = new VideoView ();
3534
var placeholder = new WelcomeView ();
@@ -42,7 +41,6 @@ public class Granite.Demo : Gtk.Application {
4241
main_stack.add_titled (placeholder, "placeholder", "Placeholder");
4342
main_stack.add_titled (box_view, "box", "Box");
4443
main_stack.add_titled (lists_view, "lists", "Lists & Grids");
45-
main_stack.add_titled (style_manager_view, "style_manager", "StyleManager");
4644
main_stack.add_titled (accel_label_view, "accel_label", "AccelLabel");
4745
main_stack.add_titled (css_view, "css", "Style Classes");
4846
main_stack.add_titled (date_time_picker_view, "pickers", "Date & Time");
@@ -70,10 +68,45 @@ public class Granite.Demo : Gtk.Application {
7068
vexpand = true
7169
};
7270

71+
var dont_button = new Gtk.ToggleButton () {
72+
action_name = "app.color-scheme",
73+
action_target = new Variant.uint32 (Granite.Settings.ColorScheme.NO_PREFERENCE),
74+
icon_name = "preferences-system-symbolic",
75+
tooltip_text = "Follow system setting"
76+
};
77+
78+
var force_light = new Gtk.ToggleButton () {
79+
action_name = "app.color-scheme",
80+
action_target = new Variant.uint32 (Granite.Settings.ColorScheme.LIGHT),
81+
group = dont_button,
82+
icon_name = "display-brightness-symbolic",
83+
tooltip_text = "Light"
84+
};
85+
86+
var force_dark = new Gtk.ToggleButton () {
87+
action_name = "app.color-scheme",
88+
action_target = new Variant.uint32 (Granite.Settings.ColorScheme.DARK),
89+
group = force_light,
90+
icon_name = "weather-clear-night-symbolic",
91+
tooltip_text = "Dark"
92+
};
93+
94+
var style_box = new Granite.Box (HORIZONTAL, LINKED) {
95+
homogeneous = true,
96+
margin_start = 6,
97+
margin_bottom = 6,
98+
margin_end = 6,
99+
margin_top = 6
100+
};
101+
style_box.append (force_light);
102+
style_box.append (dont_button);
103+
style_box.append (force_dark);
104+
73105
var start_box = new Granite.ToolBox () {
74106
content = stack_sidebar
75107
};
76108
start_box.add_top_bar (start_header);
109+
start_box.add_bottom_bar (style_box);
77110
start_box.add_css_class (Granite.STYLE_CLASS_SIDEBAR);
78111

79112
var paned = new Gtk.Paned (Gtk.Orientation.HORIZONTAL) {
@@ -92,6 +125,19 @@ public class Granite.Demo : Gtk.Application {
92125

93126
add_window (window);
94127
window.show ();
128+
129+
var style_manager = Granite.StyleManager.get_default ();
130+
131+
var style_action = new SimpleAction.stateful ("color-scheme", VariantType.UINT32, new Variant.uint32 (style_manager.color_scheme));
132+
style_action.activate.connect ((parameter) => {
133+
style_manager.color_scheme = (Granite.Settings.ColorScheme) parameter.get_uint32 ();
134+
});
135+
136+
style_manager.notify ["color-scheme"].connect (() => {
137+
style_action.set_state (new Variant.uint32 (style_manager.color_scheme));
138+
});
139+
140+
add_action (style_action);
95141
}
96142

97143
public static int main (string[] args) {

demo/Views/AccelLabelView.vala

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,13 @@ public class AccelLabelView : DemoPage {
1313
var popover_label = new Gtk.Label ("In a Popover:");
1414
popover_label.halign = Gtk.Align.END;
1515

16-
var lock_button = new Gtk.Button () {
16+
var lock_button = new PopoverMenuItem () {
1717
child = new Granite.AccelLabel ("Lock", "<Super>L")
1818
};
19-
lock_button.add_css_class ("model");
2019

21-
var logout_button = new Gtk.Button () {
20+
var logout_button = new PopoverMenuItem () {
2221
child = new Granite.AccelLabel ("Log Out…", "<Ctrl><Alt>Delete")
2322
};
24-
logout_button.add_css_class ("model");
2523

2624
var lock_item = new GLib.MenuItem (null, null);
2725
lock_item.set_attribute_value ("custom", "lock");
@@ -55,4 +53,10 @@ public class AccelLabelView : DemoPage {
5553

5654
child = grid;
5755
}
56+
57+
private class PopoverMenuItem : Gtk.Button {
58+
class construct {
59+
set_css_name ("modelbutton");
60+
}
61+
}
5862
}

demo/Views/BoxView.vala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ public class BoxView : DemoPage {
1212
};
1313

1414
var single_box = new Granite.Box (HORIZONTAL);
15-
single_box.append (new Gtk.Image.from_icon_name ("application-default-icon") { icon_size = LARGE });
16-
single_box.append (new Gtk.Image.from_icon_name ("application-default-icon") { icon_size = LARGE });
15+
single_box.append (new Gtk.Image.from_icon_name ("package-x-generic") { icon_size = LARGE });
16+
single_box.append (new Gtk.Image.from_icon_name ("package-x-generic") { icon_size = LARGE });
1717

1818
var single_container = new Granite.Box (VERTICAL);
1919
single_container.append (single_header);
@@ -24,8 +24,8 @@ public class BoxView : DemoPage {
2424
};
2525

2626
var double_box = new Granite.Box (HORIZONTAL, DOUBLE);
27-
double_box.append (new Gtk.Image.from_icon_name ("application-default-icon") { icon_size = LARGE });
28-
double_box.append (new Gtk.Image.from_icon_name ("application-default-icon") { icon_size = LARGE });
27+
double_box.append (new Gtk.Image.from_icon_name ("package-x-generic") { icon_size = LARGE });
28+
double_box.append (new Gtk.Image.from_icon_name ("package-x-generic") { icon_size = LARGE });
2929

3030
var double_container = new Granite.Box (VERTICAL);
3131
double_container.append (double_header);

demo/Views/HyperTextViewGrid.vala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ public class HyperTextViewGrid : DemoPage {
2727
var hypertext_scrolled_window = new Gtk.ScrolledWindow () {
2828
height_request = 300,
2929
width_request = 600,
30-
child = hypertext_textview
30+
child = hypertext_textview,
31+
has_frame = true
3132
};
32-
hypertext_scrolled_window.add_css_class (Granite.STYLE_CLASS_FRAME);
3333

3434
var box = new Granite.Box (VERTICAL, NONE) {
3535
halign = CENTER,

0 commit comments

Comments
 (0)