mirror of https://github.com/daleclack/My_GtkUi
Add scan control
This commit is contained in:
parent
130ac7cc2b
commit
c92d951f20
|
@ -17,6 +17,8 @@ static void back_activated(GSimpleAction *actions,
|
|||
{
|
||||
// Show preferences window
|
||||
MyPrefs *prefs = main_win_get_prefs(MAIN_WIN(win));
|
||||
my_prefs_first_load(prefs);
|
||||
my_prefs_start_scan(prefs);
|
||||
gtk_window_present(GTK_WINDOW(prefs));
|
||||
}
|
||||
|
||||
|
|
|
@ -146,6 +146,7 @@ static gboolean prefs_win_closed(GtkWidget *window, MyDock *dock)
|
|||
{
|
||||
// For the preferences window, hide it
|
||||
gtk_widget_set_visible(window, FALSE);
|
||||
my_prefs_stop_scan(dock->prefs_win);
|
||||
gtk_image_set_from_icon_name(GTK_IMAGE(dock->image_set), "my_prefs");
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ struct _MyPrefs
|
|||
gboolean panel_mode; // Whether panel mode is activated
|
||||
DockPos dock_pos; // Dock Position
|
||||
str_vec back_vec; // Vector of backgrounds
|
||||
gboolean scan_ctrl; // Control the scan func
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE(MyPrefs, my_prefs, GTK_TYPE_WINDOW)
|
||||
|
@ -609,7 +610,7 @@ static gboolean scan_func(gpointer data)
|
|||
{
|
||||
load_image(file_name, image_item_index, is_internal, prefs);
|
||||
}
|
||||
return TRUE;
|
||||
return prefs->scan_ctrl;
|
||||
}
|
||||
|
||||
void my_prefs_first_load(MyPrefs *self)
|
||||
|
@ -875,9 +876,16 @@ static void my_prefs_class_init(MyPrefsClass *klass)
|
|||
void my_prefs_start_scan(MyPrefs *self)
|
||||
{
|
||||
// Add timer to scan the list
|
||||
self->scan_ctrl = TRUE;
|
||||
g_timeout_add(1, scan_func, self);
|
||||
}
|
||||
|
||||
void my_prefs_stop_scan(MyPrefs *self)
|
||||
{
|
||||
// Stop scan for background update
|
||||
self->scan_ctrl = FALSE;
|
||||
}
|
||||
|
||||
// Get Dock position
|
||||
DockPos my_prefs_get_dock_pos(MyPrefs *self)
|
||||
{
|
||||
|
|
|
@ -13,6 +13,8 @@ G_DECLARE_FINAL_TYPE(MyPrefs, my_prefs, MY, PREFS, GtkWindow)
|
|||
|
||||
void my_prefs_start_scan(MyPrefs *self);
|
||||
|
||||
void my_prefs_stop_scan(MyPrefs *self);
|
||||
|
||||
void my_prefs_first_load(MyPrefs *self);
|
||||
|
||||
DockPos my_prefs_get_dock_pos(MyPrefs *self);
|
||||
|
|
Loading…
Reference in New Issue