Sidebar layout: - Replace AdwNavigationSplitView with GtkPaned for a resizable sidebar with a persistent width stored in GSettings. - Apply navigation-sidebar CSS class to the content Stack only (not the ToolbarView) so both header bars share the same colour and height. - Override Adwaita's automatic paned-first-child header tint and gap via application-level CSS. - Remove the gap between the sidebar header and the first list item. - Add toggle-sidebar button and F9 shortcut; sidebar visibility and width are persisted across restarts. Loading indicator: - Replace the large AdwSpinner status page + header Stack with a small Gtk.Spinner (16×16) in the header Stack so the header height never changes during loading. Article row: - Add hexpand to title and excerpt labels so text reflows when the sidebar is resized. Content: - Inline CSS into the HTML template at load time (/*INJECT_CSS*/ placeholder) so WebKit does not need a custom URI scheme handler. - Fix max-width centering and padding for article body and header. - Fix embedded video/iframe auto-opening in browser by checking NavigationType::LinkClicked instead of is_user_gesture(). Content filters: - Add Preferences dialog with a TextView for content-rewrite rules stored in GSettings (content-filters key). - Rule format: "domain find replace [find replace …]" one per line. - Rules are applied to article HTML before display and reloaded on every refresh. Shortcuts: - Add Ctrl+W to close, Ctrl+Q to quit, F1 for keyboard shortcuts overlay, j/k and arrow-key navigation via a capture-phase controller so keys work regardless of which widget has focus. Misc: - Set window title to "FeedTheMonkey" (fixes Hyprland title bar). - Update About dialog website URL.
64 lines
No EOL
2.1 KiB
XML
64 lines
No EOL
2.1 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
DO NOT EDIT!
|
|
This file was @generated by blueprint-compiler. Instead, edit the
|
|
corresponding .blp file and regenerate this file with blueprint-compiler.
|
|
-->
|
|
<interface>
|
|
<requires lib="gtk" version="4.0"/>
|
|
<template class="ArticleRow" parent="GtkBox">
|
|
<property name="orientation">1</property>
|
|
<property name="margin-top">12</property>
|
|
<property name="margin-bottom">12</property>
|
|
<property name="margin-start">12</property>
|
|
<property name="margin-end">12</property>
|
|
<property name="spacing">4</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="orientation">0</property>
|
|
<property name="spacing">4</property>
|
|
<child>
|
|
<object class="GtkLabel" id="feed_title_label">
|
|
<property name="hexpand">true</property>
|
|
<property name="xalign">0</property>
|
|
<property name="ellipsize">3</property>
|
|
<style>
|
|
<class name="dim-label"/>
|
|
<class name="caption"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="date_label">
|
|
<property name="xalign">1</property>
|
|
<style>
|
|
<class name="dim-label"/>
|
|
<class name="caption"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="title_label">
|
|
<property name="hexpand">true</property>
|
|
<property name="xalign">0</property>
|
|
<property name="wrap">true</property>
|
|
<property name="lines">2</property>
|
|
<property name="ellipsize">3</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="excerpt_label">
|
|
<property name="hexpand">true</property>
|
|
<property name="xalign">0</property>
|
|
<property name="ellipsize">3</property>
|
|
<property name="lines">1</property>
|
|
<style>
|
|
<class name="dim-label"/>
|
|
<class name="caption"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</template>
|
|
</interface> |