Skip to content

Commit

Permalink
* - Listen to feedback, act upon it and make Quilter even better.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lains committed Feb 15, 2021
1 parent 8ae3cc4 commit a54ed33
Show file tree
Hide file tree
Showing 12 changed files with 240 additions and 336 deletions.
3 changes: 2 additions & 1 deletion build-aux/flatpak/io.github.lainsce.Quilter.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"--socket=wayland",
"--socket=fallback-x11",
"--share=network",
"--share=ipc"
"--share=ipc",
"--device=dri"
],
"tags" : [
"nightly"
Expand Down
18 changes: 16 additions & 2 deletions data/io.github.lainsce.Quilter.gschema.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
<?xml version="1.0"?>
<schemalist>
<enum id='font'>
<value nick='mono' value='0'/>
<value nick='zwei' value='1'/>
<value nick='vier' value='2'/>
</enum>
<enum id='pfont'>
<value nick='serif' value='0'/>
<value nick='sans' value='1'/>
<value nick='mono' value='2'/>
</enum>
<schema id="io.github.lainsce.Quilter" path="/io/github/lainsce/Quilter/">
<key name="window-position" type="(ii)">
<default>(-1,-1)</default>
Expand Down Expand Up @@ -55,12 +65,12 @@
<summary>Last opened files</summary>
<description>The last opened files in Quilter</description>
</key>
<key name="edit-font-type" type="s">
<key name="edit-font" enum='font'>
<default>'mono'</default>
<summary>Font used on Edit View</summary>
<description>The user-preferred font to use in Edit in Quilter</description>
</key>
<key name="preview-font" type="s">
<key name="preview-font" enum='pfont'>
<default>'serif'</default>
<summary>Font used on Preview View</summary>
<description>The user-preferred font to use in Preview in Quilter</description>
Expand Down Expand Up @@ -97,6 +107,10 @@
<default>false</default>
<summary>Show (true) or Hide (false) the searchbar</summary>
</key>
<key name="statusbar" type="b">
<default>false</default>
<summary>Show (true) or Hide (false) the statusbar</summary>
</key>
<key name="highlight" type="b">
<default>true</default>
<summary>Use the Code Highlight built-in extension</summary>
Expand Down
1 change: 1 addition & 0 deletions data/styles/app-main-stylesheet.css
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@

.quilter-sidebar-box {
color: @theme_fg_color;
box-shadow: none;
}

.quilter-sidebar-box grid {
Expand Down
310 changes: 109 additions & 201 deletions data/ui/prefs_window.ui

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions data/ui/sidebar.ui
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
</child>
<style>
<class name="quilter-sidebar"/>
<class name="background"/>
</style>
</object>
</child>
Expand Down
2 changes: 1 addition & 1 deletion data/ui/statusbar.ui
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
</object>
</child>
</object>
<template class="QuilterWidgetsStatusBar" parent="GtkBox">
<template class="QuilterWidgetsStatusBar" parent="GtkRevealer">
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="valign">end</property>
Expand Down
17 changes: 13 additions & 4 deletions src/MainWindow.vala
Original file line number Diff line number Diff line change
Expand Up @@ -316,10 +316,10 @@ namespace Quilter {
app.set_accels_for_action (ACTION_PREFIX + action, accels_array);
}

// Gtk.StyleContext style = get_style_context ();
// if (Config.PROFILE == "Devel") {
// style.add_class ("devel");
// }
Gtk.StyleContext style = get_style_context ();
if (Config.PROFILE == "Devel") {
style.add_class ("devel");
}

var provider = new Gtk.CssProvider ();
provider.load_from_resource ("/io/github/lainsce/Quilter/app-main-stylesheet.css");
Expand Down Expand Up @@ -591,6 +591,14 @@ namespace Quilter {
}
}

public void show_statusbar () {
if (Quilter.Application.gsettings.get_boolean("statusbar")) {
statusbar.reveal_child = true;
} else {
statusbar.reveal_child = false;
}
}

private void set_prev_workfile () {
if (((Widgets.SideBarBox)sidebar.column.get_selected_row ()) != null) {
Quilter.Application.gsettings.set_string("current-file", ((Widgets.SideBarBox)sidebar.column.get_selected_row ()).path);
Expand All @@ -602,6 +610,7 @@ namespace Quilter {
edit_view_content.dynamic_margins ();
change_layout.begin ();
show_searchbar ();
show_statusbar ();

if (Quilter.Application.gsettings.get_boolean("focus-mode")) {
overlay_button_revealer.reveal_child = true;
Expand Down
204 changes: 87 additions & 117 deletions src/Widgets/Preferences.vala
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,77 @@
* Boston, MA 02110-1301 USA
*/
namespace Quilter {
enum Font {
QMONO,
QZWEI,
QVIER;

public string to_string () {
switch (this) {
case QMONO:
return "Quilt Mono";

case QZWEI:
return "Quilt Zwei";

case QVIER:
return "Quilt Vier";

default:
assert_not_reached();
}
}

public static Font[] all () {
return {Font.QMONO, Font.QZWEI, Font.QVIER};
}
}

enum PFont {
SERIF,
SANS,
MONO;

public string to_string () {
switch (this) {
case SERIF:
return "Serif";

case SANS:
return "Sans-serif";

case MONO:
return "Monospace";

default:
assert_not_reached();
}
}

public static PFont[] all () {
return {PFont.SERIF, PFont.SANS, PFont.MONO};
}
}

[GtkTemplate (ui = "/io/github/lainsce/Quilter/prefs_window.ui")]
public class Widgets.Preferences : Hdy.PreferencesWindow {

[GtkChild]
Gtk.ComboBoxText font_type;
Hdy.ComboRow font_type;
[GtkChild]
Hdy.ExpanderRow autosave;
Gtk.Switch autosave;
[GtkChild]
Gtk.SpinButton delay;
Gtk.Switch statusbar;
[GtkChild]
Gtk.Switch pos;

[GtkChild]
Gtk.RadioButton light;
[GtkChild]
Gtk.RadioButton sepia;
[GtkChild]
Gtk.RadioButton dark;
[GtkChild]
Hdy.ExpanderRow focus_mode;
[GtkChild]
Gtk.Switch scope;
[GtkChild]
Gtk.Switch typewriter;
[GtkChild]
Gtk.Switch sidebar;

public Gtk.RadioButton scope_paragraph;
[GtkChild]
public Gtk.RadioButton scope_sentence;
[GtkChild]
Gtk.ComboBoxText preview_font_type;
Hdy.ComboRow preview_font_type;
[GtkChild]
Gtk.Switch center;
[GtkChild]
Expand All @@ -59,120 +101,48 @@ namespace Quilter {
weak Gtk.IconTheme default_theme = Gtk.IconTheme.get_default ();
default_theme.add_resource_path ("/com/github/lainsce/quilter");

get_editor_grid ();
get_interface_grid ();
get_preview_grid ();
preferences_connect ();
}

private void get_editor_grid () {
switch (Quilter.Application.gsettings.get_string("edit-font-type")) {
case "mono":
font_type.set_active(0);
break;
case "zwei":
font_type.set_active(1);
break;
case "vier":
font_type.set_active(2);
break;
default:
font_type.set_active(0);
break;
}
private void preferences_connect () {
font_type.set_for_enum (typeof (Font), e => {
var i = e.get_value ();
var f = Font.all ()[i];

font_type.changed.connect (() => {
switch (font_type.get_active ()) {
case 0:
Quilter.Application.gsettings.set_string("edit-font-type", "mono");
break;
case 1:
Quilter.Application.gsettings.set_string("edit-font-type", "zwei");
break;
case 2:
Quilter.Application.gsettings.set_string("edit-font-type", "vier");
break;
default:
Quilter.Application.gsettings.set_string("edit-font-type", "mono");
break;
}
return f.to_string ();
});

Quilter.Application.gsettings.bind ("autosave", autosave, "enable_expansion", GLib.SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("autosave", autosave, "expanded", GLib.SettingsBindFlags.DEFAULT);

delay.set_value (Quilter.Application.gsettings.get_int("autosave-delay"));
Quilter.Application.gsettings.bind ("autosave-delay", delay, "value", GLib.SettingsBindFlags.DEFAULT);

Quilter.Application.gsettings.bind ("pos", pos, "active", GLib.SettingsBindFlags.DEFAULT);
}

private void get_interface_grid () {
var mode_type = Quilter.Application.gsettings.get_string("visual-mode");
switch (mode_type) {
case "sepia":
sepia.set_active (true);
break;
case "dark":
dark.set_active (true);
break;
case "":
default:
light.set_active (true);
break;
}

dark.clicked.connect (() => {
Quilter.Application.gsettings.set_string("visual-mode", "dark");
font_type.selected_index = (int) Quilter.Application.gsettings.get_enum("edit-font");
font_type.notify["selected-index"].connect (p => {
var i = font_type.selected_index;
Quilter.Application.gsettings.set_enum("edit-font", i);
});

sepia.clicked.connect (() => {
Quilter.Application.gsettings.set_string("visual-mode", "sepia");
});
preview_font_type.set_for_enum (typeof (PFont), e => {
var i = e.get_value ();
var f = PFont.all ()[i];

light.clicked.connect (() => {
Quilter.Application.gsettings.set_string("visual-mode", "light");
return f.to_string ();
});

Quilter.Application.gsettings.bind ("focus-mode", focus_mode, "enable_expansion", GLib.SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("focus-mode", focus_mode, "expanded", GLib.SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("focus-mode-type", scope, "active", SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("typewriter-scrolling", typewriter, "active", SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("sidebar", sidebar, "active", SettingsBindFlags.DEFAULT);
}
preview_font_type.selected_index = (int) Quilter.Application.gsettings.get_enum("preview-font");
preview_font_type.notify["selected-index"].connect (p => {
var i = preview_font_type.selected_index;
Quilter.Application.gsettings.set_enum("preview-font", i);
});

private void get_preview_grid () {
switch (Quilter.Application.gsettings.get_string("preview-font")) {
case "serif":
preview_font_type.set_active(0);
break;
case "sans":
preview_font_type.set_active(1);
break;
case "mono":
preview_font_type.set_active(2);
break;
default:
preview_font_type.set_active(0);
break;
}
scope_paragraph.toggled.connect (() => {
Quilter.Application.gsettings.set_boolean("focus-mode-type", false);
});

preview_font_type.changed.connect (() => {
switch (preview_font_type.get_active ()) {
case 0:
Quilter.Application.gsettings.set_string("preview-font", "serif");
break;
case 1:
Quilter.Application.gsettings.set_string("preview-font", "sans");
break;
case 2:
Quilter.Application.gsettings.set_string("preview-font", "mono");
break;
default:
Quilter.Application.gsettings.set_string("preview-font", "serif");
break;
}
scope_sentence.toggled.connect (() => {
Quilter.Application.gsettings.set_boolean("focus-mode-type", true);
});

Quilter.Application.gsettings.bind ("autosave", autosave, "active", GLib.SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("pos", pos, "active", GLib.SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("statusbar", statusbar, "active", GLib.SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("typewriter-scrolling", typewriter, "active", SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("center-headers", center, "active", SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("highlight", highlight, "active", SettingsBindFlags.DEFAULT);
Quilter.Application.gsettings.bind ("latex", latex, "active", SettingsBindFlags.DEFAULT);
Expand Down
6 changes: 3 additions & 3 deletions src/Widgets/SideBar.vala
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,10 @@ namespace Quilter.Widgets {
this.get_style_context ().add_class ("sidebar");
flap.reveal_flap = Quilter.Application.gsettings.get_boolean ("sidebar");
flap.notify["folded"].connect (() => {
if (flap.get_folded ()) {
Quilter.Application.gsettings.set_boolean ("sidebar", false);
if (win.titlebar.sidebar_toggler.get_active ()) {
flap.reveal_flap = true;
} else {
Quilter.Application.gsettings.set_boolean ("sidebar", true);
flap.reveal_flap = false;
}
});

Expand Down
6 changes: 3 additions & 3 deletions src/Widgets/SourceView.vala
Original file line number Diff line number Diff line change
Expand Up @@ -191,15 +191,15 @@ namespace Quilter.Widgets {
}
}

if (Quilter.Application.gsettings.get_string("edit-font-type") == "mono") {
if (Quilter.Application.gsettings.get_enum("edit-font") == 0) {
buffer_context.add_class ("mono-font");
buffer_context.remove_class ("vier-font");
buffer_context.remove_class ("zwei-font");
} else if (Quilter.Application.gsettings.get_string("edit-font-type") == "vier") {
} else if (Quilter.Application.gsettings.get_enum("edit-font") == 2) {
buffer_context.add_class ("vier-font");
buffer_context.remove_class ("zwei-font");
buffer_context.remove_class ("mono-font");
} else if (Quilter.Application.gsettings.get_string("edit-font-type") == "zwei") {
} else if (Quilter.Application.gsettings.get_enum("edit-font") == 1) {
buffer_context.add_class ("zwei-font");
buffer_context.remove_class ("vier-font");
buffer_context.remove_class ("mono-font");
Expand Down
Loading

0 comments on commit a54ed33

Please sign in to comment.