Get keyboard input automatically and start with search functionality

master
Zwarf 2022-03-19 10:22:56 +01:00
rodzic bff1fe273d
commit e3d19f2628
6 zmienionych plików z 30 dodań i 3 usunięć

Wyświetl plik

@ -11,12 +11,15 @@ picplanner_sources = [
'calculations/calculations_sun.c',
'calculations/calculations_moon.c',
'calculations/calculations_milky_way.c',
'search/search.c',
]
picplanner_deps = [
dependency('gtk4'),
dependency('libadwaita-1'),
dependency('shumate-1.0'),
dependency('geocode-glib-1.0'),
dependency('gweather4'),
meson.get_compiler('c').find_library('m', required: false),
]

Wyświetl plik

@ -24,7 +24,7 @@
#include "calculations/calculations_sun.h"
#include "calculations/calculations_moon.h"
#include "calculations/calculations_milky_way.h"
#include <libgweather/gweather.h>
/*
* The time of no input of map movement that has to pass until a calculation of the positions
@ -65,6 +65,21 @@ struct _PicplannerWindow
G_DEFINE_TYPE (PicplannerWindow, picplanner_window, ADW_TYPE_APPLICATION_WINDOW)
static void
search_location (GtkWidget *self,
gpointer user_data)
{
(void) self;
PicplannerWindow *window = user_data;
(void) window;
const char *search_string = gtk_editable_get_text (GTK_EDITABLE (window->search_entry));
const char *search_string_casefold = g_utf8_casefold (search_string, strlen (search_string));
g_print ("Search string: %s\n", search_string_casefold);
GWeatherLocation *world = gweather_location_get_world ();
}
static void
calculate_positions (PicplannerWindow *window)
@ -226,6 +241,8 @@ picplanner_window_class_init (PicplannerWindowClass *klass)
gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, milky_way_box);
gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, north_entry);
gtk_widget_class_bind_template_child (widget_class, PicplannerWindow, east_entry);
gtk_widget_class_bind_template_callback (widget_class, search_location);
}
@ -271,4 +288,11 @@ picplanner_window_init (PicplannerWindow *window)
* Calculate values after application start
*/
calculate_positions (window);
/*
* Setup the location searchbar to register keyboard input
*/
gtk_search_bar_connect_entry (GTK_SEARCH_BAR (window->search_bar), GTK_EDITABLE (window->search_entry));
gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (window->search_bar), GTK_WIDGET (window));
}

Wyświetl plik

@ -20,7 +20,6 @@
#include <gtk/gtk.h>
#include <adwaita.h>
#include <libsoup/soup.h>
#include "picplanner-config.h"
#include "picplanner-application.h"

Wyświetl plik

@ -88,8 +88,9 @@
<child>
<object class="GtkSearchEntry" id="search_entry">
<property name="visible">true</property>
<property name="can_focus">true</property>
<property name="can-focus">true</property>
<property name="placeholder-text">Search...</property>
<signal name="search-changed" handler="search_location"/>
</object>
</child>