WIP source window

pull/113/head
parent 3ef8cbf442
commit 58755b9fda
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -256,6 +256,21 @@ double yon_size_long_convert_to_mod(double size, char mod){
return final_size;
}
void on_source_changed(GtkComboBox *self){
GtkWidget *devices_combo = g_object_get_data(G_OBJECT(self),"target");
GtkWidget *path_button = g_object_get_data(G_OBJECT(self),"button");
GtkWidget *path_combo = g_object_get_data(G_OBJECT(self),"combo");
if (gtk_combo_box_get_active(self)){
gtk_widget_show(path_button);
gtk_widget_show(path_combo);
gtk_widget_hide(devices_combo);
} else{
gtk_widget_hide(path_button);
gtk_widget_hide(path_combo);
gtk_widget_show(devices_combo);
}
}
source_element *yon_source_element_new(){
source_element *element = new(source_element);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_source_element);
@ -263,12 +278,30 @@ source_element *yon_source_element_new(){
element->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
element->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo");
element->PathEntry = yon_gtk_builder_get_widget(builder,"PathEntry");
element->DeviceCombo = yon_gtk_builder_get_widget(builder,"DeviceCombo");
element->PathButton = yon_gtk_builder_get_widget(builder,"PathButton");
element->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
g_signal_connect(G_OBJECT(element->RemoveButton),"clicked",G_CALLBACK(on_source_remove),element);
g_signal_connect(G_OBJECT(element->PathButton),"clicked",G_CALLBACK(on_source_choose),element);
g_signal_connect(G_OBJECT(element->TypeCombo),"changed",G_CALLBACK(on_source_changed),element);
g_object_set_data(G_OBJECT(element->PathButton),"combo",element->TypeCombo);
g_object_set_data(G_OBJECT(element->PathButton),"target_combo",element->TypeCombo);
g_object_set_data(G_OBJECT(element->TypeCombo),"target",element->DeviceCombo);
g_object_set_data(G_OBJECT(element->TypeCombo),"button",element->PathButton);
g_object_set_data(G_OBJECT(element->TypeCombo),"combo",element->PathEntry);
int size;
config_str parts = yon_config_load(get_parts_and_devices_command, &size);
for (int i=0;i<size;i++){
int parsed_size;
config_str parsed = yon_char_parse(parts[i],&parsed_size,";");
if (!strcmp(parsed[0],"part")){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(element->DeviceCombo),parsed[1],parsed[1]);
}
yon_char_parsed_free(parsed,parsed_size);
}
gtk_combo_box_set_active(GTK_COMBO_BOX(element->DeviceCombo),0);
yon_char_parsed_free(parts,size);
return element;
}
@ -291,7 +324,7 @@ void yon_source_update(source_window *window){
}
void on_source_add(GtkWidget *,source_window *window){
const char *path = gtk_entry_get_text(GTK_ENTRY(window->PathEntry));
const char *path = gtk_widget_get_visible(window->PathEntry)?gtk_entry_get_text(GTK_ENTRY(window->PathEntry)):gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->DeviceCombo));
if (!g_hash_table_contains(window->sources,path)){
g_hash_table_add(window->sources,yon_char_new(path));
yon_source_update(window);
@ -311,9 +344,6 @@ void on_source_choose(GtkWidget *self){
GtkWidget *target_entry = g_object_get_data(G_OBJECT(self),"target");
GtkWidget *target_mode = g_object_get_data(G_OBJECT(self),"combo");
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(target_mode))){
case 0: {
} break;
case 1:{
filechooser_window *dialog = yon_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(dialog->Window),OPEN_LABEL,icon_path,"filechooser_window");
@ -343,6 +373,8 @@ void on_source_choose(GtkWidget *self){
void on_source_accept(GtkWidget *,source_window *window){
if (gtk_switch_get_active(GTK_SWITCH(window->AutoSwitch))){
yon_config_register(source_parameter,source_parameter_command,"auto");
on_subwindow_close(window->Window);
return;
}
guint size;
config_str paths = (config_str)g_hash_table_get_keys_as_array(window->sources,&size);
@ -380,6 +412,7 @@ source_window *yon_source_window_new(){
window->AutoSwitch = yon_gtk_builder_get_widget(builder,"AutoSwitch");
window->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo");
window->PathEntry = yon_gtk_builder_get_widget(builder,"PathEntry");
window->DeviceCombo = yon_gtk_builder_get_widget(builder,"DeviceCombo");
window->PathButton = yon_gtk_builder_get_widget(builder,"PathButton");
window->AddButton = yon_gtk_builder_get_widget(builder,"AddButton");
window->AddBox = yon_gtk_builder_get_widget(builder,"AddBox");
@ -389,13 +422,25 @@ source_window *yon_source_window_new(){
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_source_accept),window);
g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_source_add),window);
g_signal_connect(G_OBJECT(window->PathButton),"clicked",G_CALLBACK(on_source_choose),window);
g_signal_connect(G_OBJECT(window->AutoSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->AddBox);
g_signal_connect(G_OBJECT(window->AutoSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->TypeCombo);
g_signal_connect(G_OBJECT(window->AutoSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->AddButton);
g_signal_connect(G_OBJECT(window->AutoSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->PathButton);
g_signal_connect(G_OBJECT(window->AutoSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->PathEntry);
g_signal_connect(G_OBJECT(window->TypeCombo),"changed",G_CALLBACK(on_source_changed),window);
g_signal_connect(G_OBJECT(window->AutoSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),gtk_widget_get_parent(window->AddBox));
g_object_set_data(G_OBJECT(window->PathButton),"combo",window->TypeCombo);
g_object_set_data(G_OBJECT(window->PathButton),"target",window->PathEntry);
g_object_set_data(G_OBJECT(window->TypeCombo),"target",window->DeviceCombo);
g_object_set_data(G_OBJECT(window->TypeCombo),"button",window->PathButton);
g_object_set_data(G_OBJECT(window->TypeCombo),"combo",window->PathEntry);
int size;
config_str parts = yon_config_load(get_parts_and_devices_command, &size);
for (int i=0;i<size;i++){
int parsed_size;
config_str parsed = yon_char_parse(parts[i],&parsed_size,";");
if (!strcmp(parsed[0],"part")){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->DeviceCombo),parsed[1],parsed[1]);
}
yon_char_parsed_free(parsed,parsed_size);
}
gtk_combo_box_set_active(GTK_COMBO_BOX(window->DeviceCombo),0);
yon_char_parsed_free(parts,size);
return window;
}

@ -923,6 +923,7 @@ typedef struct {
GtkWidget *AutoSwitch;
GtkWidget *TypeCombo;
GtkWidget *PathEntry;
GtkWidget *DeviceCombo;
GtkWidget *PathButton;
GtkWidget *AddButton;
GtkWidget *AddBox;
@ -933,6 +934,7 @@ typedef struct {
GtkWidget *MainBox;
GtkWidget *TypeCombo;
GtkWidget *PathEntry;
GtkWidget *DeviceCombo;
GtkWidget *PathButton;
GtkWidget *RemoveButton;
@ -1197,4 +1199,5 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets);
int yon_advanced_section_append(advanced_section *section);
gboolean on_format_changed(GtkWidget *self, gboolean state, advanced_partition *part);
int yon_layouts_get();
void on_link(GtkWidget *self, char* uri, gpointer );
void on_link(GtkWidget *self, char* uri, gpointer );
void on_source_changed(GtkComboBox *self);

@ -1,8 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.zoom-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkBox" id="MainBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -26,7 +36,6 @@
</child>
<child>
<object class="GtkEntry" id="PathEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
@ -36,8 +45,19 @@
</packing>
</child>
<child>
<object class="GtkButton" id="PathButton">
<object class="GtkComboBoxText" id="DeviceCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="active">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="PathButton">
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
@ -48,7 +68,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="position">3</property>
</packing>
</child>
<child>
@ -64,18 +84,8 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="position">4</property>
</packing>
</child>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.zoom-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
</interface>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
@ -131,6 +131,7 @@
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
@ -142,7 +143,6 @@
<child>
<object class="GtkComboBoxText" id="TypeCombo">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="active">0</property>
<items>
@ -159,8 +159,6 @@
</child>
<child>
<object class="GtkEntry" id="PathEntry">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
</object>
<packing>
@ -170,9 +168,19 @@
</packing>
</child>
<child>
<object class="GtkButton" id="PathButton">
<object class="GtkComboBoxText" id="DeviceCombo">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="active">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="PathButton">
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
@ -183,13 +191,12 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AddButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
@ -200,7 +207,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="position">4</property>
</packing>
</child>
</object>
@ -213,7 +220,6 @@
<child>
<object class="GtkBox" id="AddBox">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
@ -1532,40 +1532,90 @@ and help you install UBLinux on your computer</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkScrolledWindow">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkViewport">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<object class="GtkSwitch">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="label" translatable="yes">Default</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<child>
<object class="GtkListBox" id="OSSoftwareListBox">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="selection-mode">none</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkListBox" id="OSSoftwareListBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="selection-mode">none</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>

Loading…
Cancel
Save