Test fix for sorting

pull/91/head
parent 560ee4369c
commit 2c8cbbfa1e

@ -166,20 +166,24 @@ void on_activate(GtkTreeView *self, main_window *widgets){
void on_config_autostart_clicked(GtkCellRenderer *, char *path, main_window *widgets){
GtkTreeIter filter_iter;
GtkTreeIter iter;
GtkTreeIter iter,itor;
GtkTreeModel *model;
GtkTreeModel *filter;
GtkTreeModel *sort;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
filter = GTK_TREE_MODEL(widgets->SystemFilter);
sort = GTK_TREE_MODEL(widgets->SystemSort);
} else {
model = GTK_TREE_MODEL(widgets->UserList);
filter = GTK_TREE_MODEL(widgets->UserFilter);
sort = GTK_TREE_MODEL(widgets->UserSort);
}
GtkTreePath *path_converted = gtk_tree_path_new_from_string(path);
gtk_tree_model_get_iter(filter,&filter_iter,path_converted);
gtk_tree_model_get_iter(sort,&filter_iter,path_converted);
{
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&filter_iter);
gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sort),&itor,&filter_iter);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&itor);
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,0,&status,5,&name,-1);
@ -224,20 +228,24 @@ void on_config_autostart_clicked(GtkCellRenderer *, char *path, main_window *wid
void on_config_autostop_clicked(GtkCellRenderer *, char *path, main_window *widgets){
GtkTreeIter filter_iter;
GtkTreeIter iter;
GtkTreeIter iter,itor;
GtkTreeModel *model;
GtkTreeModel *filter;
GtkTreeModel *sort;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
filter = GTK_TREE_MODEL(widgets->SystemFilter);
sort = GTK_TREE_MODEL(widgets->SystemSort);
} else {
model = GTK_TREE_MODEL(widgets->UserList);
filter = GTK_TREE_MODEL(widgets->UserFilter);
sort = GTK_TREE_MODEL(widgets->UserSort);
}
GtkTreePath *path_converted = gtk_tree_path_new_from_string(path);
gtk_tree_model_get_iter(filter,&filter_iter,path_converted);
gtk_tree_model_get_iter(sort,&filter_iter,path_converted);
{
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&filter_iter);
gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sort),&itor,&filter_iter);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&itor);
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,1,&status,5,&name,-1);
@ -283,20 +291,24 @@ void on_config_autostop_clicked(GtkCellRenderer *, char *path, main_window *widg
void on_config_block_clicked(GtkCellRenderer *, char *path, main_window *widgets){
GtkTreeIter filter_iter;
GtkTreeIter iter;
GtkTreeIter iter,itor;
GtkTreeModel *model;
GtkTreeModel *filter;
GtkTreeModel *sort;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
filter = GTK_TREE_MODEL(widgets->SystemFilter);
sort = GTK_TREE_MODEL(widgets->SystemSort);
} else {
model = GTK_TREE_MODEL(widgets->UserList);
filter = GTK_TREE_MODEL(widgets->UserFilter);
sort = GTK_TREE_MODEL(widgets->UserSort);
}
GtkTreePath *path_converted = gtk_tree_path_new_from_string(path);
gtk_tree_model_get_iter(filter,&filter_iter,path_converted);
gtk_tree_model_get_iter(sort,&filter_iter,path_converted);
{
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&filter_iter);
gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sort),&itor,&filter_iter);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&itor);
gboolean status = 0;
char *name;
gtk_tree_model_get(model,&iter,2,&status,5,&name,-1);
@ -346,20 +358,24 @@ void on_system_autostart_confirmed(GtkWidget *,char *service_command){
void on_system_autostart_clicked(GtkCellRenderer *, char *path, main_window *widgets){
GtkTreeIter filter_iter;
GtkTreeIter iter;
GtkTreeIter iter,itor;
GtkTreeModel *model;
GtkTreeModel *filter;
GtkTreeModel *sort;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
filter = GTK_TREE_MODEL(widgets->SystemFilter);
sort = GTK_TREE_MODEL(widgets->SystemSort);
} else {
model = GTK_TREE_MODEL(widgets->UserList);
filter = GTK_TREE_MODEL(widgets->UserFilter);
sort = GTK_TREE_MODEL(widgets->UserSort);
}
GtkTreePath *path_converted = gtk_tree_path_new_from_string(path);
gtk_tree_model_get_iter(filter,&filter_iter,path_converted);
gtk_tree_model_get_iter(sort,&filter_iter,path_converted);
{
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&filter_iter);
gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sort),&itor,&filter_iter);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&itor);
gboolean status = 0;
char *service_name;
gtk_tree_model_get(model,&iter,3,&status,5,&service_name,-1);
@ -439,11 +455,11 @@ void on_filter_changed(GtkWidget *, main_window *widgets){
if (page == 0){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),NULL);
gtk_tree_model_filter_refilter(widgets->SystemFilter);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_TREE_MODEL(widgets->SystemFilter));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_TREE_MODEL(widgets->SystemSort));
} else if (page == 1){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),NULL);
gtk_tree_model_filter_refilter(widgets->UserFilter);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserFilter));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserSort));
}
}
@ -452,20 +468,24 @@ void on_system_kill_confirmed(GtkWidget *,char *service_name){
}
void on_system_launch_clicked(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter, filter_iter;
GtkTreeIter iter, itor, filter_iter;
GtkTreeModel *model;
GtkTreeModel *filter;
GtkTreeModel *sort;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
model = GTK_TREE_MODEL(widgets->SystemList);
filter = GTK_TREE_MODEL(widgets->SystemFilter);
sort = GTK_TREE_MODEL(widgets->SystemSort);
} else {
model = GTK_TREE_MODEL(widgets->UserList);
filter = GTK_TREE_MODEL(widgets->UserFilter);
sort = GTK_TREE_MODEL(widgets->UserSort);
}
GtkTreePath *path_converted = gtk_tree_path_new_from_string(path);
gtk_tree_model_get_iter(filter,&filter_iter,path_converted);
gtk_tree_model_get_iter(sort,&filter_iter,path_converted);
{
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&filter_iter);
gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(sort),&itor,&filter_iter);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(filter),&iter,&itor);
gboolean status = 0;
char *service_name;
gtk_tree_model_get(model,&iter,4,&status,5,&service_name,-1);
@ -1094,9 +1114,17 @@ gboolean yon_interface_list_models_disconnect(main_window *widgets){
return G_SOURCE_REMOVE;
}
void on_sort_activate(GtkTreeViewColumn *self, main_window *widgets){
if (self == gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->SystemUpperTree),2)){
gtk_tree_view_column_clicked(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->SystemUnitsTree),6));
} else {
gtk_tree_view_column_clicked(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->UserUnitsTree),6));
}
}
gboolean yon_interface_list_models_connect(main_window *widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_TREE_MODEL(widgets->SystemFilter));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserFilter));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SystemUnitsTree),GTK_TREE_MODEL(widgets->SystemSort));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->UserUnitsTree),GTK_TREE_MODEL(widgets->UserSort));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->ConfigMainTree),GTK_TREE_MODEL(widgets->ConfigList));
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->TimersMainTree),GTK_TREE_MODEL(widgets->TimersList));
@ -1786,7 +1814,9 @@ void yon_main_window_complete(main_window *widgets){
widgets->SystemEditButton=yon_gtk_builder_get_widget(builder,"SystemEditButton");
widgets->SystemPropertiesButton=yon_gtk_builder_get_widget(builder,"SystemPropertiesButton");
widgets->SystemFilter = GTK_TREE_MODEL_FILTER(gtk_builder_get_object(builder,"SystemFilter"));
widgets->SystemSort = GTK_TREE_MODEL_SORT(gtk_builder_get_object(builder,"SystemSort"));
widgets->UserFilter = GTK_TREE_MODEL_FILTER(gtk_builder_get_object(builder,"UserFilter"));
widgets->UserSort = GTK_TREE_MODEL_SORT(gtk_builder_get_object(builder,"UserSort"));
widgets->SystemStatusButton=yon_gtk_builder_get_widget(builder,"SystemStatusButton");
widgets->ConfigAutostartCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ConfigAutostartCell"));
widgets->ConfigAutostopCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ConfigAutostopCell"));
@ -1929,6 +1959,9 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->TimersUpdateButton),"clicked",G_CALLBACK(on_interface_update),widgets);
g_signal_connect(G_OBJECT(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->SystemUpperTree),2)),"clicked",G_CALLBACK(on_sort_activate),widgets);
g_signal_connect(G_OBJECT(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->UsersUpperTree),2)),"clicked",G_CALLBACK(on_sort_activate),widgets);
if (getuid()==0){
gtk_widget_set_sensitive(widgets->UserServiceUpdateButton,0);
gtk_widget_set_sensitive(widgets->UserPrevButton,0);

@ -260,7 +260,9 @@ typedef struct {
GtkWidget *DeactivateLabel;
GtkTreeModelFilter *SystemFilter;
GtkTreeModelSort *SystemSort;
GtkTreeModelFilter *UserFilter;
GtkTreeModelSort *UserSort;
GtkCellRenderer *ConfigAutostartCell;
GtkCellRenderer *ConfigAutostopCell;
@ -538,4 +540,5 @@ gboolean yon_user_set(struct system_user_data *data);
gboolean yon_system_set(struct system_services_data *data);
gboolean yon_interface_list_models_connect(main_window *widgets);
gboolean yon_interface_list_models_disconnect(main_window *widgets);
void on_sort_activate(GtkTreeViewColumn *self, main_window *widgets);
#endif

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-services">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-services.css -->
@ -64,6 +64,9 @@
<object class="GtkTreeModelFilter" id="SystemFilter">
<property name="child-model">SystemList</property>
</object>
<object class="GtkTreeModelSort" id="SystemSort">
<property name="model">SystemFilter</property>
</object>
<object class="GtkListStore" id="TimersList">
<columns>
<!-- column-name gchararray1 -->
@ -361,6 +364,9 @@
<object class="GtkTreeModelFilter" id="UserFilter">
<property name="child-model">UserList</property>
</object>
<object class="GtkTreeModelSort" id="UserSort">
<property name="model">UserFilter</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -926,6 +932,7 @@
<object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Service</property>
<property name="clickable">True</property>
</object>
</child>
</object>
@ -956,6 +963,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<property name="clickable">True</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererToggle" id="ConfigAutostartCell"/>
<attributes>
@ -970,6 +979,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostop</property>
<property name="clickable">True</property>
<property name="sort-column-id">1</property>
<child>
<object class="GtkCellRendererToggle" id="ConfigAutostopCell"/>
<attributes>
@ -984,6 +995,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Block</property>
<property name="clickable">True</property>
<property name="sort-column-id">2</property>
<child>
<object class="GtkCellRendererToggle" id="ConfigBlockCell"/>
<attributes>
@ -998,6 +1011,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<property name="clickable">True</property>
<property name="sort-column-id">3</property>
<child>
<object class="GtkCellRendererToggle" id="SystemAutostartCell"/>
<attributes>
@ -1012,6 +1027,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Launched</property>
<property name="clickable">True</property>
<property name="sort-column-id">4</property>
<child>
<object class="GtkCellRendererToggle" id="SystemLaunchedCell"/>
<attributes>
@ -1026,6 +1043,8 @@
<property name="fixed-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Unit</property>
<property name="clickable">True</property>
<property name="sort-column-id">5</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
@ -1040,6 +1059,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes"> </property>
<property name="clickable">True</property>
<property name="sort-column-id">6</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
@ -1527,6 +1548,7 @@
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Service</property>
<property name="clickable">True</property>
</object>
</child>
</object>
@ -1557,6 +1579,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<property name="clickable">True</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererToggle" id="UserConfigAutostartCell"/>
<attributes>
@ -1571,6 +1595,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostop</property>
<property name="clickable">True</property>
<property name="sort-column-id">1</property>
<child>
<object class="GtkCellRendererToggle" id="UserConfigAutostopCell"/>
<attributes>
@ -1585,6 +1611,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Block</property>
<property name="clickable">True</property>
<property name="sort-column-id">2</property>
<child>
<object class="GtkCellRendererToggle" id="UserConfigBlockCell"/>
<attributes>
@ -1599,6 +1627,7 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Autostart</property>
<property name="clickable">True</property>
<child>
<object class="GtkCellRendererToggle" id="UserSystemAutostartCell"/>
<attributes>
@ -1613,6 +1642,8 @@
<property name="sizing">fixed</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Launched</property>
<property name="clickable">True</property>
<property name="sort-column-id">4</property>
<child>
<object class="GtkCellRendererToggle" id="UserSystemLaunchedCell"/>
<attributes>
@ -1627,6 +1658,8 @@
<property name="fixed-width">10</property>
<property name="min-width">20</property>
<property name="title" translatable="yes">Unit</property>
<property name="clickable">True</property>
<property name="sort-column-id">5</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
@ -1641,6 +1674,8 @@
<property name="min-width">20</property>
<property name="title" translatable="yes"> </property>
<property name="expand">True</property>
<property name="clickable">True</property>
<property name="sort-column-id">6</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>

Loading…
Cancel
Save