This commit is contained in:
Bleak Grey 2020-06-01 03:02:17 +03:00
parent 439bd763a4
commit 5ca9db1839
6 changed files with 34 additions and 23 deletions

View File

@ -29,7 +29,7 @@
<default>20</default>
</key>
<key name="post-text-size" type="i">
<default>0</default>
<default>100</default>
</key>
<key name="live-updates" type="b">
<default>true</default>

View File

@ -4,7 +4,7 @@
<requires lib="gtk+" version="3.22"/>
<requires lib="libhandy" version="0.0"/>
<template class="TootleDialogsPreferences" parent="HdyPreferencesWindow">
<property name="default_height">600</property>
<property name="default_height">400</property>
<property name="default_width">500</property>
<property name="width_request">300</property>
<!--<property name="search_enabled">false</property>-->
@ -111,7 +111,7 @@
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="activatable_widget">post_text_size</property>
<property name="title" translatable="yes">Post text size</property>
<property name="title" translatable="yes">Post text size (%)</property>
<child type="action">
<object class="GtkSpinButton" id="post_text_size">
<property name="visible">True</property>
@ -174,10 +174,10 @@
<property name="step-increment">1</property>
</object>
<object class="GtkAdjustment" id="font_adjustment">
<property name="lower">0</property>
<property name="upper">50</property>
<property name="page-increment">1</property>
<property name="step-increment">1</property>
<property name="lower">100</property>
<property name="upper">500</property>
<property name="page-increment">10</property>
<property name="step-increment">10</property>
</object>
</interface>

View File

@ -45,7 +45,6 @@ executable(
'src/API/Attachment.vala',
'src/Widgets/Avatar.vala',
'src/Widgets/AccountsButton.vala',
'src/Widgets/AlignedLabel.vala',
'src/Widgets/RichLabel.vala',
'src/Widgets/Status.vala',
'src/Widgets/Notification.vala',

View File

@ -4,6 +4,8 @@ using Gdk;
[GtkTemplate (ui = "/com/github/bleakgrey/tootle/ui/dialogs/main.ui")]
public class Tootle.Dialogs.MainWindow: Gtk.Window, ISavedWindow {
public const string ZOOM_CLASS = "app-scalable";
[GtkChild]
protected Stack view_stack;
[GtkChild]
@ -22,11 +24,9 @@ public class Tootle.Dialogs.MainWindow: Gtk.Window, ISavedWindow {
Views.Base? last_view = null;
construct {
var provider = new Gtk.CssProvider ();
provider.load_from_resource (@"$(Build.RESOURCES)app.css");
StyleContext.add_provider_for_screen (Screen.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
CssProvider zoom_css_provider = new CssProvider ();
construct {
back_button.clicked.connect (() => back ());
Desktop.set_hotkey_tooltip (back_button, _("Back"), app.ACCEL_BACK);
@ -43,6 +43,13 @@ public class Tootle.Dialogs.MainWindow: Gtk.Window, ISavedWindow {
add_timeline_view (new Views.Federated (), app.ACCEL_TIMELINE_3, 3);
settings.bind_property ("dark-theme", Gtk.Settings.get_default (), "gtk-application-prefer-dark-theme", BindingFlags.SYNC_CREATE);
settings.notify["post-text-size"].connect (() => on_zoom_level_changed ());
var provider = new Gtk.CssProvider ();
provider.load_from_resource (@"$(Build.RESOURCES)app.css");
StyleContext.add_provider_for_screen (Screen.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
StyleContext.add_provider_for_screen (Screen.get_default (), zoom_css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
on_zoom_level_changed ();
button_press_event.connect (on_button_press);
update_header ();
@ -143,4 +150,19 @@ public class Tootle.Dialogs.MainWindow: Gtk.Window, ISavedWindow {
}
}
void on_zoom_level_changed () {
var css ="""
.%s {
font-size: %i%;
}
""".printf (ZOOM_CLASS, settings.post_text_size);
try {
zoom_css_provider.load_from_data (css);
}
catch (Error e) {
warning (@"Can't set zoom level: $(e.message)");
}
}
}

View File

@ -1,11 +0,0 @@
using Gtk;
public class Tootle.Widgets.AlignedLabel : Label {
public AlignedLabel (string text) {
label = text;
halign = Align.END;
//margin_start = 12;
}
}

View File

@ -13,6 +13,7 @@ public class Tootle.Widgets.RichLabel : Label {
single_line_mode = false;
set_line_wrap (true);
activate_link.connect (open_link);
get_style_context ().add_class (Dialogs.MainWindow.ZOOM_CLASS);
}
public RichLabel (string text) {