Skip to content

Commit

Permalink
feat: support building without gtksourceview-5 (#190)
Browse files Browse the repository at this point in the history
  • Loading branch information
GeopJr authored May 14, 2023
1 parent 6bbec1f commit f2d804c
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 19 deletions.
7 changes: 5 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ asresources = gnome.compile_resources(

libgtk_dep = dependency('gtk4', version: '>=4.0.0', required: true)
libadwaita_dep = dependency('libadwaita-1', version: '>=1.2', required: true)
gtksourceview_dep = dependency('gtksourceview-5', required: true, version: '>=5.6.0')
gtksourceview_dep = dependency('gtksourceview-5', required: false, version: '>=5.6.0')
libwebp_dep = dependency('libwebp', required: false)

if not libwebp_dep.found ()
Expand All @@ -72,7 +72,10 @@ if libgtk_dep.version().version_compare('>=4.10.0')
add_project_arguments(['--define=GTK_4_10'], language: 'vala')
endif

if gtksourceview_dep.version().version_compare('>=5.7.1')
if not gtksourceview_dep.found ()
warning('Support for lack of gtksourceview-5 is not guaranteed.')
add_project_arguments(['--define=MISSING_GTKSOURCEVIEW'], language: 'vala')
elif gtksourceview_dep.version().version_compare('>=5.7.1')
add_project_arguments(['--define=GTKSOURCEVIEW_5_7_1'], language: 'vala')
endif

Expand Down
46 changes: 30 additions & 16 deletions src/Dialogs/Composer/EditorPage.vala
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,11 @@ public class Tuba.EditorPage : ComposerPage {
}
}

protected GtkSource.View editor;
#if MISSING_GTKSOURCEVIEW
protected TextView editor;
#else
protected GtkSource.View editor;
#endif
protected Label char_counter;

public void editor_grab_focus () {
Expand All @@ -87,7 +91,9 @@ public class Tuba.EditorPage : ComposerPage {
protected void install_editor () {
recount_chars.connect (() => {
remaining_chars = char_limit;
editor.show_completion ();
#if !MISSING_GTKSOURCEVIEW
editor.show_completion ();
#endif
});
recount_chars.connect_after (() => {
placeholder.visible = remaining_chars == char_limit;
Expand All @@ -101,7 +107,11 @@ public class Tuba.EditorPage : ComposerPage {
}
});

editor = new GtkSource.View () {
#if MISSING_GTKSOURCEVIEW
editor = new TextView () {
#else
editor = new GtkSource.View () {
#endif
vexpand = true,
hexpand = true,
top_margin = 6,
Expand All @@ -123,13 +133,15 @@ public class Tuba.EditorPage : ComposerPage {
});
editor.add_controller(keypress_controller);

editor.completion.add_provider (new Tuba.HandleProvider ());
editor.completion.add_provider (new Tuba.HashtagProvider ());
editor.completion.add_provider (new Tuba.EmojiProvider ());
editor.completion.select_on_show = true;
editor.completion.show_icons = true;
editor.completion.page_size = 3;
update_style_scheme ();
#if !MISSING_GTKSOURCEVIEW
editor.completion.add_provider (new Tuba.HandleProvider ());
editor.completion.add_provider (new Tuba.HashtagProvider ());
editor.completion.add_provider (new Tuba.EmojiProvider ());
editor.completion.select_on_show = true;
editor.completion.show_icons = true;
editor.completion.page_size = 3;
update_style_scheme ();
#endif

recount_chars.connect (() => {
remaining_chars -= editor.buffer.get_char_count ();
Expand All @@ -144,12 +156,14 @@ public class Tuba.EditorPage : ComposerPage {
editor.buffer.changed.connect (validate);
}

protected void update_style_scheme () {
var manager = GtkSource.StyleSchemeManager.get_default ();
var scheme = manager.get_scheme ("adwaita");
var buffer = editor.buffer as GtkSource.Buffer;
buffer.style_scheme = scheme;
}
#if !MISSING_GTKSOURCEVIEW
protected void update_style_scheme () {
var manager = GtkSource.StyleSchemeManager.get_default ();
var scheme = manager.get_scheme ("adwaita");
var buffer = editor.buffer as GtkSource.Buffer;
buffer.style_scheme = scheme;
}
#endif

protected Overlay overlay;
protected Label placeholder;
Expand Down
4 changes: 3 additions & 1 deletion src/Dialogs/Composer/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ sources += files(
'PollPage.vala',
)

subdir('Completion')
if gtksourceview_dep.found ()
subdir('Completion')
endif

0 comments on commit f2d804c

Please sign in to comment.