diff --git a/useful/stg312/.size.out b/useful/stg312/.size.out index 3d41a09ddc7853b5b4f2ab12be78f9c413854252..0d99857458ce8761e81a73517efd8809e496582d 100644 --- a/useful/stg312/.size.out +++ b/useful/stg312/.size.out @@ -1 +1 @@ -1729544 testando-sem-o-move-zuado.r1.tar.gz +1729704 teste-versao-comentada.r1.tar.gz diff --git a/useful/stg312/.upid.out b/useful/stg312/.upid.out index 3423dee6ad8b057e2362e01c654584f134554e82..bc0a8da65e34c6fd9d88ee9f973f659629268847 100644 --- a/useful/stg312/.upid.out +++ b/useful/stg312/.upid.out @@ -1 +1 @@ -{"uploadid":"yDeom6yODgayCGLSwnCqfvTyqWrg0p1PyUc","status":"ok","code":"003","msg":"New upload succesful"} \ No newline at end of file +{"uploadid":"SKwGngE2ZgVnuqkUUMZrASSGPktr5iWQQeb","status":"ok","code":"003","msg":"New upload succesful"} \ No newline at end of file diff --git a/useful/stg312/openslx_gui b/useful/stg312/openslx_gui index 12e9e866b242509371b2841bace8d660e767ccde..a60e4435be36a17ef973b96338014689d38f500b 100755 Binary files a/useful/stg312/openslx_gui and b/useful/stg312/openslx_gui differ diff --git a/useful/stg312/openslx_gui.c b/useful/stg312/openslx_gui.c index d02d7163ad85a92ae57e103b660dced0ddd96690..d3520483fc4a8e17331c72bf46cd8052ad476b00 100644 --- a/useful/stg312/openslx_gui.c +++ b/useful/stg312/openslx_gui.c @@ -16,6 +16,7 @@ #include <jansson.h> #include "upload-utils.h" +//FUnção que mostra a tela de upload antigo, caso ele exista void tela_upload_antigo(GtkWidget *w,gpointer p){ GtkWidget *window_upload_antigo, *janela_ant, *button_continua_upload, *button_nao_continua, *label_nome_imagem, *label_parte_upload; GtkBuilder *builder; @@ -24,7 +25,7 @@ void tela_upload_antigo(GtkWidget *w,gpointer p){ old_upload = malloc(255*sizeof(char)); dados *data_ant = p; //Pega os dados recebidos pela chamada da função - janela_ant = (GtkWidget*) data_ant->dado1; + janela_ant = (GtkWidget*) data_ant->dado1; //Pega a janela antiga que chamou essa nova janela builder = gtk_builder_new(); //Cria um novo Builder gtk gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL); //Carrega as coisas do arquivo .glade para utilizar nos widgets @@ -35,7 +36,7 @@ void tela_upload_antigo(GtkWidget *w,gpointer p){ label_nome_imagem = GTK_WIDGET(gtk_builder_get_object(builder, "label_nome_imagem")); label_parte_upload = GTK_WIDGET(gtk_builder_get_object(builder, "label_parte_upload")); - upload_in_progress = fopen(".progress.out", "a+"); + upload_in_progress = fopen(".progress.out", "a+"); //Abre o arquivo para ler os dados do upload antigo, abre com a+ para poder dar rewind printf("Linha %d\n", __LINE__); rewind(upload_in_progress); fscanf(upload_in_progress, "%s", old_upload); @@ -49,21 +50,23 @@ void tela_upload_antigo(GtkWidget *w,gpointer p){ data_ant->dado1 = window_upload_antigo; g_signal_connect(window_upload_antigo, "destroy", G_CALLBACK(sair), NULL); - g_signal_connect(button_continua_upload, "clicked", G_CALLBACK(faz_upload_teste), data_ant); + g_signal_connect(button_continua_upload, "clicked", G_CALLBACK(faz_upload_teste), data_ant); //Isso chama a teste pois o upload.c lida com os dados do arquivo a ser feito o upload. g_signal_connect(button_nao_continua, "clicked", G_CALLBACK(tela_principal), data_ant); - gtk_widget_hide(janela_ant); + gtk_widget_hide(janela_ant); //Esconde a janela anterior gtk_widget_show_all(window_upload_antigo); } +//tela principal do programa, chamada após o login void tela_principal(GtkWidget *w,gpointer p){ GtkWidget *janela_principal, *janela_ant, *button_stg4, *button_ajuda_tela_principal, *button_stg4_update, *label_greeting; GtkBuilder *builder; int status; + //Se não encontrou o arquivo .speed.out, calcula a velocidade de upload do usuário. if((access(".speed.out", F_OK) == -1)){ puts("Entrou no if"); - g_spawn_command_line_sync("./squash.sh 1", NULL, NULL, &status, NULL); // Executa o script + g_spawn_command_line_sync("speedtest-cli --bytes --simple > .speed.out", NULL, NULL, &status, NULL); // Executa o script } builder = gtk_builder_new(); //Cria um novo Builder gtk @@ -71,11 +74,11 @@ void tela_principal(GtkWidget *w,gpointer p){ dados *data_ant = p; //Pega os dados recebidos pela chamada da função - FILE *upload_antigo = fopen(".progress.out", "w"); + FILE *upload_antigo = fopen(".progress.out", "w"); //Zera o arquivo de upload antigo, o programa só chega aqui se o usuario ja lidou com o upload antigo fclose(upload_antigo); - if(data_ant){ - janela_ant = (GtkWidget*) data_ant->dado1; + //if(data_ant){ //ver se isso faz alguma coisa + janela_ant = (GtkWidget*) data_ant->dado1; //Pega a janela antiga que chamou essa nova janela char *greeting_text; greeting_text = malloc(255*sizeof(char)); @@ -83,23 +86,20 @@ void tela_principal(GtkWidget *w,gpointer p){ user_info dados_do_user; if(janela_ant){ - gtk_widget_hide(janela_ant); + gtk_widget_hide(janela_ant); //Esconde a janela anterior } - pega_dados_do_usuario(&dados_do_user); + pega_dados_do_usuario(&dados_do_user); //Pega os dados do usuário recebidos no login puts(dados_do_user.name); puts(dados_do_user.login); puts(dados_do_user.email); puts(dados_do_user.city); - gera_arquivo_dados_usuario(); + gera_arquivo_dados_usuario(); //Cria o user_data.info strcpy(greeting_text, dados_do_user.name); strcat(greeting_text, "!"); label_greeting = GTK_WIDGET(gtk_builder_get_object(builder, "label_greeting")); gtk_label_set_text(GTK_LABEL(label_greeting), greeting_text); - /* - * FAZ LOGIN - */ - } + //} @@ -112,7 +112,6 @@ void tela_principal(GtkWidget *w,gpointer p){ data->dado1 = janela_principal; data->builder = builder; data->dado2 = button_stg4; - data->control = 0; g_signal_connect(janela_principal, "destroy", G_CALLBACK(sair), NULL); g_signal_connect (G_OBJECT (janela_principal), "key_press_event", G_CALLBACK (on_key_press), data); //Conecta os sinais pra quando apertar uma tecla @@ -124,6 +123,7 @@ void tela_principal(GtkWidget *w,gpointer p){ gtk_widget_show_all(janela_principal); } +//Função que mostra a tela de login para o usuario void tela_login(){ GtkWidget *window_login, *button_login, *entry_login, *entry_passwd, *label_login_erro; @@ -150,20 +150,18 @@ void tela_login(){ data->dado3 = entry_login; data->dado4 = entry_passwd; data->dado5 = label_login_erro; - data->control = 0; printf("Linha %d\n", __LINE__); g_signal_connect (G_OBJECT (window_login), "key_press_event", G_CALLBACK (on_key_press), data); printf("Linha %d\n", __LINE__); g_signal_connect(entry_passwd, "activate", G_CALLBACK(faz_login), data); - g_signal_connect(button_login, "clicked", G_CALLBACK(faz_login), data); - //g_signal_connect(button_login, "clicked", G_CALLBACK(faz_login_dummy), data); - //g_signal_connect(entry_passwd, "activate", G_CALLBACK(faz_login_dummy), data); + g_signal_connect(button_login, "clicked", G_CALLBACK(faz_login), data); //Caso ele aperte enter com o foco no password printf("Linha %d\n", __LINE__); gtk_widget_show_all(window_login); } +// Main int main(int argc, char *argv[]){ XInitThreads(); gtk_init(&argc, &argv); //Inicia o GTK @@ -175,7 +173,7 @@ int main(int argc, char *argv[]){ pid_t pid; int status; - if (argc == 1){ + if (argc == 1){ //Caso seja chamado para mostrar a GUI GtkCssProvider *provider; GdkDisplay *display; @@ -194,7 +192,7 @@ int main(int argc, char *argv[]){ gtk_main(); }else{ - if (argc == 6){ + if (argc == 6){ //Se for a opção com parametros @@ -207,7 +205,6 @@ int main(int argc, char *argv[]){ gtk_entry_set_text(GTK_ENTRY(login), argv[4]); gtk_entry_set_text(GTK_ENTRY(senha), argv[5]); - data->control = 2; data->dado3 = login; data->dado4 = senha; diff --git a/useful/stg312/openslx_gui.h b/useful/stg312/openslx_gui.h index c506f53bf5ba906bc6df5d626b104cc42277829f..ddadd400eb04bbc720889c0ad10f57ca7c5d41d7 100644 --- a/useful/stg312/openslx_gui.h +++ b/useful/stg312/openslx_gui.h @@ -24,7 +24,6 @@ typedef struct dados{ GtkWidget *dado6; GtkBuilder *builder; GPid pid; - int control; user_info informacoes; }dados; diff --git a/useful/stg312/openslx_gui_v01.glade b/useful/stg312/openslx_gui_v01.glade index 1072e67e9db2b280734335381542d3442e716f5c..9dab03a942c86a66323431d83a560392ad9b2a39 100644 --- a/useful/stg312/openslx_gui_v01.glade +++ b/useful/stg312/openslx_gui_v01.glade @@ -94,7 +94,7 @@ O programa irá sair agora.</property> <property name="can_focus">False</property> <property name="halign">start</property> <property name="valign">center</property> - <property name="label" translatable="yes">Destino da Imagem:</property> + <property name="label" translatable="yes">Destino do sistema:</property> </object> </child> </object> @@ -122,7 +122,7 @@ O programa irá sair agora.</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="tooltip_text" translatable="yes">Nome da imagem desejada. Pode um nome qualquer permitido pelo Linux. Ex: ubuntu, meu_ubuntu, meu_linux, escola_xxxxx</property> - <property name="text" translatable="yes">nome-imagem</property> + <property name="text" translatable="yes">nome-sistema</property> </object> </child> </object> @@ -131,7 +131,7 @@ O programa irá sair agora.</property> <object class="GtkLabel" id="label3"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">Nome da Imagem:</property> + <property name="label" translatable="yes">Nome do seu sistema:</property> </object> </child> </object> @@ -162,8 +162,8 @@ O programa irá sair agora.</property> </child> <child> <object class="GtkCheckButton" id="check_button_remove"> - <property name="label" translatable="yes">Remover imagem -não compactada?</property> + <property name="label" translatable="yes">Remover sistema +não compactado?</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -252,11 +252,11 @@ não compactada?</property> <object class="GtkLabel" id="label_info"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">Bem vindo ao Gerador de novas Imagens + <property name="label" translatable="yes">Bem vindo ao Gerador de novos sistemas do Openslx! -Por essa interface você poderá gerar sua -própria imagem Linux com os pacotes +Por essa interface você poderá gerar seu +próprio sistema Linux com os pacotes de seu interesse! Para iniciar o processo clique em algum @@ -298,7 +298,7 @@ Se precisar de ajuda, ative <property name="can_focus">False</property> <child> <object class="GtkButton" id="button_stg4"> - <property name="label" translatable="yes">Gerar sua imagem!</property> + <property name="label" translatable="yes">Gerar seu sistema!</property> <property name="name">gerar</property> <property name="width_request">300</property> <property name="height_request">50</property> @@ -386,7 +386,7 @@ Se precisar de ajuda, ative <property name="can_focus">False</property> <child> <object class="GtkButton" id="button_stg4_update"> - <property name="label" translatable="yes">Atualizar sua imagem!</property> + <property name="label" translatable="yes">Atualizar seus sistemas!</property> <property name="name">atualizar</property> <property name="width_request">300</property> <property name="height_request">50</property> @@ -468,6 +468,7 @@ Se precisar de ajuda, ative <property name="pixbuf">pic.png</property> </object> <object class="GtkWindow" id="window_stg4_inic"> + <property name="name">instal_window</property> <property name="can_focus">False</property> <property name="title" translatable="yes">OpenSLX - Stateless extensions</property> <property name="resizable">False</property> @@ -628,12 +629,12 @@ instalar softwares</property> <property name="halign">start</property> <property name="valign">center</property> <property name="label" translatable="yes">Upload completo! -Aguarde alguns minutos e sua imagem estará +Aguarde alguns minutos e seu sistema estará disponível no nosso site para configuração. Clique no botão abaixo para ser levado ao site. Nele faça login com o mesmo login e senha que usou para logar aqui -e clique em Gerenciamento de Imagens. Edite as configurações da -imagem que fez upload e ela estará pronta para uso! +e clique em Gerenciamento de Imagens. Edite as configurações do sistema +que fez upload e ele estará pronta para uso! Caso o navegador não abra, entre no site: http://slxbox.dev.c3sl.br @@ -764,8 +765,8 @@ http://slxbox.dev.c3sl.br <property name="can_focus">False</property> <property name="halign">start</property> <property name="valign">center</property> - <property name="label" translatable="yes">A sua imagem foi gerada com sucesso! -Agora faça upload da imagem para nosso servidor!</property> + <property name="label" translatable="yes">O seu sistema foi gerado com sucesso! +Agora faça upload dele para nosso servidor!</property> </object> </child> </object> @@ -1095,7 +1096,7 @@ Agora faça upload da imagem para nosso servidor!</property> <property name="message_type">warning</property> <property name="buttons">ok</property> <property name="text" translatable="yes">Atenção!</property> - <property name="secondary_text" translatable="yes">Não é possível criar imagens com espaços no nome.</property> + <property name="secondary_text" translatable="yes">Não é possível criar sistemas com espaços no nome.</property> <child internal-child="vbox"> <object class="GtkBox" id="messagedialog-vbox3"> <property name="can_focus">False</property> diff --git a/useful/stg312/stg4.c b/useful/stg312/stg4.c index 97eb07ea1d9ad0763ee8994750bfbff9401509a9..da1ab36e787464ac53885c6f2c1cc12839610420 100644 --- a/useful/stg312/stg4.c +++ b/useful/stg312/stg4.c @@ -12,77 +12,66 @@ #include <gdk/gdk.h> #include <glib.h> -//void stg4_tela_confirmacao_upload(GtkWidget *w,gpointer p){ +//Ultima tela do sistema, mostra ao usuario o que ele deve fazer para ter a imagem habilitada void stg4_tela_confirmacao_upload(GPid pid, gint status,gpointer p){ - //pid_t pid; // Para quando for implementado - GtkWidget *window_stg4_upload_confirm, *janela_ant, *button_return_upload_confirm, *button_site; //*loading_screen; // Para quando for implementado + + GtkWidget *window_stg4_upload_confirm, *janela_ant, *button_return_upload_confirm, *button_site; GtkBuilder *builder; dados *data_ant = p; //Pega os dados recebidos pela chamada da função - ///////// GtkWidget *loading; loading = data_ant->dado6; pid = data_ant->pid; - //gtk_widget_show(window); - checa_sucesso(); - g_spawn_close_pid(pid); - ///////////// - - puts("Aqui"); + checa_sucesso(); //Checa sucesso do upload + g_spawn_close_pid(pid); //Fecha o processo de upload que estava rodando + janela_ant = (GtkWidget*) data_ant->dado1; //Pega a janela antiga que chamou essa nova janela - puts("Aqui8"); - janela_ant = (GtkWidget*) data_ant->dado1; - puts("Aqui7"); builder = gtk_builder_new(); //Cria um novo Builder gtk gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL); //Carrega as coisas do arquivo .glade para utilizar nos widgets - puts("Aqui6"); + window_stg4_upload_confirm = GTK_WIDGET(gtk_builder_get_object(builder, "window_stg4_upload_confirm")); - puts("Aqui9"); - g_signal_connect(window_stg4_upload_confirm, "destroy", G_CALLBACK(chama_tela_principal), NULL); - puts("Aqui10"); + + g_signal_connect(window_stg4_upload_confirm, "destroy", G_CALLBACK(chama_tela_principal), NULL); //Chama a tela principal ao destruir essa janela + button_return_upload_confirm = GTK_WIDGET(gtk_builder_get_object(builder, "button_return_upload_confirm")); button_site = GTK_WIDGET(gtk_builder_get_object(builder, "button_site")); - puts("Aqui11"); - //loading_screen = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen")); - puts("Aqui2"); struct dados *data = malloc(sizeof(*data)); data->dado1 = window_stg4_upload_confirm; - data->dado6 = window_stg4_upload_confirm; data->builder = builder; data->dado2 = button_return_upload_confirm; - data->control = 0; g_signal_connect (G_OBJECT (window_stg4_upload_confirm), "key_press_event", G_CALLBACK (on_key_press), data); //Conecta os sinais pra quando apertar uma tecla g_signal_connect(button_return_upload_confirm, "clicked", G_CALLBACK(mata_janela_e_chama_tela_principal), data); g_signal_connect(button_site, "clicked", G_CALLBACK(abre_site), data); - puts("Aqui3"); - gtk_widget_hide(janela_ant); - puts("Aqui4"); + + gtk_widget_hide(janela_ant); //Esconde a janela anterior + gtk_widget_hide(loading); gtk_widget_show_all(window_stg4_upload_confirm); - puts("Aqui5"); + } +//Isso não est implementado ainda, só ignore void stg4_tela_img_select(GtkWidget *w,gpointer p){ - //pid_t pid; // Para quando for implementado - GtkWidget *window_escolha_imagem, *janela_ant, *button_update_img; //*loading_screen; // Para quando for implementado + + GtkWidget *window_escolha_imagem, *janela_ant, *button_update_img; GtkBuilder *builder; dados *data_ant = p; //Pega os dados recebidos pela chamada da função - janela_ant = (GtkWidget*) data_ant->dado1; + janela_ant = (GtkWidget*) data_ant->dado1; //Pega a janela antiga que chamou essa nova janela builder = data_ant->builder; int status; window_escolha_imagem = GTK_WIDGET(gtk_builder_get_object(builder, "window_escolha_imagem")); - g_signal_connect(window_escolha_imagem, "destroy", G_CALLBACK(chama_tela_principal), NULL); + g_signal_connect(window_escolha_imagem, "destroy", G_CALLBACK(chama_tela_principal), NULL); //Chama a tela principal ao destruir essa janela button_update_img = GTK_WIDGET(gtk_builder_get_object(builder, "button_update_img")); //loading_screen = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen")); @@ -92,14 +81,13 @@ void stg4_tela_img_select(GtkWidget *w,gpointer p){ data->dado1 = window_escolha_imagem; data->builder = builder; data->dado2 = button_update_img; - data->control = 0; g_signal_connect (G_OBJECT (window_escolha_imagem), "key_press_event", G_CALLBACK (on_key_press), data); //Conecta os sinais pra quando apertar uma tecla - gtk_widget_hide(janela_ant); + gtk_widget_hide(janela_ant); //Esconde a janela anterior gtk_widget_show_all(window_escolha_imagem); } -// // A função que exibe a 3a tela do programa, a tela final +// // A função que exibe a 2a tela do programa, a tela de upload void stg4_2a_tela(GPid pid, gint status,gpointer p){ GtkWidget *window_stg4_final, *button_stg4_final_sair, *janela_ant, *button_help_4at, *button_stg4_upload, *label_tempo_upload; @@ -110,7 +98,7 @@ void stg4_2a_tela(GPid pid, gint status,gpointer p){ dados *data_ant = p; //Pega os dados recebidos pela chamada da função - janela_ant = (GtkWidget*) data_ant->dado1; + janela_ant = (GtkWidget*) data_ant->dado1; //Pega a janela antiga que chamou essa nova janela builder = gtk_builder_new(); //Cria um novo Builder gtk gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL); //Carrega as coisas do arquivo .glade para utilizar nos widgets @@ -118,58 +106,47 @@ void stg4_2a_tela(GPid pid, gint status,gpointer p){ GtkWidget *loading; loading = data_ant->dado6; pid = data_ant->pid; + checa_sucesso(); //Checa sucesso da criação da imagem + g_spawn_close_pid(pid); //Fecha o processo de criação de imagem que estava rodando - //gtk_widget_show(window); - checa_sucesso(); - g_spawn_close_pid(pid); window_stg4_final = GTK_WIDGET(gtk_builder_get_object(builder, "window_stg4_final")); - g_signal_connect(window_stg4_final, "destroy", G_CALLBACK(chama_tela_principal), NULL); + g_signal_connect(window_stg4_final, "destroy", G_CALLBACK(chama_tela_principal), NULL); //Chama a tela principal ao destruir essa janela struct dados *data = malloc(sizeof(*data)); - - data->dado2 = window_stg4_final; - data->control = 0; - button_help_4at = GTK_WIDGET(gtk_builder_get_object(builder, "button_help_4at")); button_stg4_final_sair = GTK_WIDGET(gtk_builder_get_object(builder, "button_stg4_final_sair")); button_stg4_upload = GTK_WIDGET(gtk_builder_get_object(builder, "button_stg4_upload")); label_tempo_upload = GTK_WIDGET(gtk_builder_get_object(builder, "label_tempo_upload")); - printf("Linha %d\n", __LINE__); + strcpy(texto_tempo_upload, "Tempo estimado de upload: "); - sprintf(temp, "%d",calcula_tempo_upload() ); - printf("Linha %d\n", __LINE__); + sprintf(temp, "%d",calcula_tempo_upload() ); //Estima o tempo de upload de imagem strcat(texto_tempo_upload, temp); - printf("Linha %d\n", __LINE__); strcat(texto_tempo_upload, " segundos"); - printf("Linha %d\n", __LINE__); - gtk_label_set_text(GTK_LABEL(label_tempo_upload), texto_tempo_upload); - printf("Linha %d\n", __LINE__); + gtk_label_set_text(GTK_LABEL(label_tempo_upload), texto_tempo_upload); //Modifica o texto para o tempo calculado + data->dado2 = button_stg4_final_sair; - data->dado3 = data_ant->dado4; - data->dado4 = data_ant->dado3; - data->dado5 = data_ant->dado5; + data->dado3 = data_ant->dado4; //Nome da imagem + data->dado4 = data_ant->dado3; //Pasta da imagem data->dado1 = window_stg4_final; data->builder = builder; - printf("Linha %d\n", __LINE__); + g_signal_connect (G_OBJECT (window_stg4_final), "key_press_event", G_CALLBACK (on_key_press), data); //Conecta os sinais pra quando apertar uma tecla g_signal_connect(button_help_4at, "clicked", G_CALLBACK(help_screen), NULL); - printf("Linha %d\n", __LINE__); + g_signal_connect(button_stg4_upload, "clicked", G_CALLBACK(faz_upload), data); //g_signal_connect(button_stg4_upload, "clicked", G_CALLBACK(faz_upload_teste), data); - //g_signal_connect(button_stg4_upload, "clicked", G_CALLBACK(faz_upload_dummy), data); - printf("Linha %d\n", __LINE__); - g_signal_connect(button_stg4_final_sair, "clicked", G_CALLBACK(mata_janela_e_chama_tela_principal), data); - printf("Linha %d\n", __LINE__); - gtk_widget_hide(janela_ant); - printf("Linha %d\n", __LINE__); + + + g_signal_connect(button_stg4_final_sair, "clicked", G_CALLBACK(mata_janela_e_chama_tela_principal), data); //Caso o usuario não queira fazer upload por algum motivo, volta para a janela principal + gtk_widget_hide(janela_ant); //Esconde a janela anterior gtk_widget_hide(loading); gtk_widget_show_all(window_stg4_final); - printf("Linha %d\n", __LINE__); } +//Função que chama o script que gera a imagem do usuario. void stg4_clique_2a_tela(GtkWidget *w,gpointer p){ GPid pid; @@ -179,7 +156,7 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){ int i; char *version, *home, *tmscripts, *pasta_do_stg4, *number_of_parts_str, **argv; - argv = malloc(10*sizeof(char*)); + argv = malloc(10*sizeof(char*)); //Vetor de argumentos para a g_spawn for (i=0; i < 10; i++){ argv[i] = malloc(255*sizeof(char)); } @@ -194,108 +171,52 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){ window_stg4_final = GTK_WIDGET(gtk_builder_get_object(builder, "window_stg4_final")); - g_signal_connect(window_stg4_final, "destroy", G_CALLBACK(chama_tela_principal), NULL); + g_signal_connect(window_stg4_final, "destroy", G_CALLBACK(chama_tela_principal), NULL); //Chama a tela principal ao destruir essa janela loading_screen = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen")); gtk_widget_show(loading_screen); struct dados *data = malloc(sizeof(*data)); - acha_tm_scripts(tmscripts); - - strcpy(version, gtk_entry_get_text(GTK_ENTRY(data_ant->dado4))); - - strcat(version, ".r1"); - - strcpy(home, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado3))); - + acha_tm_scripts(tmscripts); //Acha a pasta tm_scripts no sistema + strcpy(version, gtk_entry_get_text(GTK_ENTRY(data_ant->dado4))); //Pega o nome da imagem que o usuario informou + strcat(version, ".r1"); //versão será lidada pela api depois, por isso é a versão .r1 + strcpy(home, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado3))); //Pega a pasta que o usuário decidiu que a imagem será gerada strcpy(pasta_do_stg4, home); - strcat(home, "/pasta-"); - strcat(home, version); - strcat(tmscripts, "/scripts"); - - //gboolean g_spawn_async_with_pipes (const gchar *working_directory, gchar **argv, gchar **envp, GSpawnFlags flags, - // GSpawnChildSetupFunc child_setup, gpointer user_data, GPid *child_pid, GError **error); + strcat(home, "/pasta-"); //Adiciona o nome da pasta gerada para comportar a imagem não compactada + strcat(home, version); //adiciona o nome da imagem + strcat(tmscripts, "/scripts"); //Adiciona /scripts para apontar para aonde está o script de clonagem do stage4 - //strcpy(argv[0], CLONE_STG4_SCRIPT_DUMMY); + //strcpy(argv[0], CLONE_STG4_SCRIPT_DUMMY); //Se quiser testar a GUI e não gerar uma nova imagem, descomente essa linha e comente a debaixo strcpy(argv[0], CLONE_STG4_SCRIPT); - strcpy(argv[1], tmscripts); - strcpy(argv[2], pasta_do_stg4); - strcpy(argv[3], "local"); - strcpy(argv[4], home ); - strcpy(argv[5], version); - - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data_ant->dado6))) + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data_ant->dado6))) //Caso o usuário tenha selecioando que quer remover a imagem não compactada strcpy(argv[6], "1"); else strcpy(argv[6], "0"); - sprintf(number_of_parts_str, "%d", NUMBER_OF_PARTS); + sprintf(number_of_parts_str, "%d", NUMBER_OF_PARTS); //Passa como argumento o número de partes que foi dividida a imagem strcpy(argv[7], number_of_parts_str); - argv[8] = NULL; - - if(g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL)){ - puts("Deu certo o spawn"); - } + argv[8] = NULL;//ESSE ULTIMO PARAMETRO DEVE SER NULO, ele é o sentinela e informa o g_spawn onde acabam os parametros de invocação + g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL);//NAO USE FORK PARA SPAWNAR SCRIPTS, use essa função. Documentação em: https://developer.gnome.org/glib/stable/glib-Spawning-Processes.html#g-spawn-sync data->dado6 = loading_screen; data->dado2 = window_stg4_final; - data->dado4 = data_ant->dado4; - data->dado3 = data_ant->dado3; - data->dado5 = data_ant->dado5; - data->control = 0; + data->dado4 = data_ant->dado4; //Nome da imagem + data->dado3 = data_ant->dado3; //Pasta da imagem data->dado1 = data_ant->dado1; data->pid = pid; - handler = stg4_2a_tela; - //handler = sai_do_script_teste; + handler = stg4_2a_tela; //Função que será chamada quando o g_spawn sair - g_child_watch_add(pid, handler, data); - /* printf("Linha %d\n", __LINE__); + g_child_watch_add(pid, handler, data); //Chama o handler quando o spawn acabar - printf("Linha %d\n", __LINE__); - button_help_4at = GTK_WIDGET(gtk_builder_get_object(builder, "button_help_4at")); - button_stg4_final_sair = GTK_WIDGET(gtk_builder_get_object(builder, "button_stg4_final_sair")); - button_stg4_upload = GTK_WIDGET(gtk_builder_get_object(builder, "button_stg4_upload")); - label_tempo_upload = GTK_WIDGET(gtk_builder_get_object(builder, "label_tempo_upload")); - printf("Linha %d\n", __LINE__); - strcpy(texto_tempo_upload, "Tempo estimado de upload: "); - sprintf(temp, "%d",calcula_tempo_upload() ); - printf("Linha %d\n", __LINE__); - strcat(texto_tempo_upload, temp); - printf("Linha %d\n", __LINE__); - strcat(texto_tempo_upload, " segundos"); - printf("Linha %d\n", __LINE__); - gtk_label_set_text(GTK_LABEL(label_tempo_upload), texto_tempo_upload); - printf("Linha %d\n", __LINE__); - data->dado2 = button_stg4_final_sair; - data->dado3 = data_ant->dado4; - data->dado4 = data_ant->dado3; - data->dado5 = data_ant->dado5; - data->dado1 = window_stg4_final; - data->builder = builder; - printf("Linha %d\n", __LINE__); - g_signal_connect (G_OBJECT (window_stg4_final), "key_press_event", G_CALLBACK (on_key_press), data); //Conecta os sinais pra quando apertar uma tecla - g_signal_connect(button_help_4at, "clicked", G_CALLBACK(help_screen), NULL); - printf("Linha %d\n", __LINE__); - //g_signal_connect(button_stg4_upload, "clicked", G_CALLBACK(faz_upload), data); - g_signal_connect(button_stg4_upload, "clicked", G_CALLBACK(faz_upload_teste), data); - //g_signal_connect(button_stg4_upload, "clicked", G_CALLBACK(faz_upload_dummy), data); - printf("Linha %d\n", __LINE__); - g_signal_connect(button_stg4_final_sair, "clicked", G_CALLBACK(mata_janela_e_chama_tela_principal), data); - printf("Linha %d\n", __LINE__); - gtk_widget_hide(janela_ant); - printf("Linha %d\n", __LINE__); - gtk_widget_show_all(window_stg4_final); - printf("Linha %d\n", __LINE__); -*/ } @@ -306,50 +227,46 @@ void stg4_clique_1a_tela(GtkWidget *w,gpointer p){ GtkBuilder *builder; dados *data_ant = p; //Pega os dados recebidos pela chamada da função - janela_ant = (GtkWidget*) data_ant->dado1; + janela_ant = (GtkWidget*) data_ant->dado1; //Pega a janela antiga que chamou essa nova janela builder = data_ant->builder; window_stg4_escolha = GTK_WIDGET(gtk_builder_get_object(builder, "window_stg4_escolha")); - g_signal_connect(window_stg4_escolha, "destroy", G_CALLBACK(chama_tela_principal), NULL); + g_signal_connect(window_stg4_escolha, "destroy", G_CALLBACK(chama_tela_principal), NULL); //Chama a tela principal ao destruir essa janela check_button_remove = GTK_WIDGET(gtk_builder_get_object(builder, "check_button_remove")); button_help_2at = GTK_WIDGET(gtk_builder_get_object(builder, "button_help_2at")); file_chooser_local = GTK_WIDGET(gtk_builder_get_object(builder, "file_chooser_local")); button_clonar = GTK_WIDGET(gtk_builder_get_object(builder, "button_clonar")); entry_imagem = GTK_WIDGET(gtk_builder_get_object(builder, "entry_imagem")); - //entry_versao = GTK_WIDGET(gtk_builder_get_object(builder, "entry_versao")); - gtk_file_chooser_set_create_folders(GTK_FILE_CHOOSER(file_chooser_local), TRUE); + gtk_file_chooser_set_create_folders(GTK_FILE_CHOOSER(file_chooser_local), TRUE); //Ativa a opção de criar diretórios do gtk_filechooser gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(file_chooser_local), "/home"); struct dados *data = malloc(sizeof(*data)); data->dado1 = window_stg4_escolha; data->builder = builder; - data->dado2 = button_clonar; - data->dado3 = file_chooser_local; - data->dado4 = entry_imagem; - //data->dado5 = entry_versao; - data->dado6 = check_button_remove; - data->control = 0; + data->dado2 = button_clonar; //Para se o page-up for pressionado, ele avança pro próximo passo + data->dado3 = file_chooser_local; //Guarda a pasta selecionada por ele + data->dado4 = entry_imagem; //Guarda o nome da imagem + data->dado6 = check_button_remove; //Guarda se o usuario selecionou que quer deletar a imagem não compactada g_signal_connect(entry_imagem, "activate", G_CALLBACK(stg4_clique_2a_tela), data); - //g_signal_connect(entry_versao, "activate", G_CALLBACK(stg4_clique_2a_tela), data); g_signal_connect (G_OBJECT (window_stg4_escolha), "key_press_event", G_CALLBACK (on_key_press), data); //Conecta os sinais pra quando apertar uma tecla g_signal_connect(button_help_2at, "clicked", G_CALLBACK(help_screen), data); g_signal_connect(button_clonar, "clicked", G_CALLBACK(stg4_clique_2a_tela_caller), data); - gtk_widget_hide(janela_ant); + gtk_widget_hide(janela_ant); //Esconde a janela anterior gtk_widget_show_all(window_stg4_escolha); } -//função que exibe a primeira tela do stg 4, informando o usuário que ele iniciou o programa +//função que exibe a primeira tela do processo de clonagem, informando o usuário que ele deve instalar os pacotes desejados void stg4_inicio(GtkWidget *w,gpointer p){ GtkWidget *window_stg4_inic, *janela_ant, *button_geren, *button_stg4_proximo, *button_help_1at; GtkBuilder *builder; dados *data_ant = p; //Pega os dados recebidos pela chamada da função - janela_ant = (GtkWidget*) data_ant->dado1; + janela_ant = (GtkWidget*) data_ant->dado1; //Pega a janela antiga que chamou essa nova janela builder = data_ant->builder; button_help_1at = GTK_WIDGET(gtk_builder_get_object(builder, "button_help_1at")); @@ -359,25 +276,23 @@ void stg4_inicio(GtkWidget *w,gpointer p){ //button_shell = GTK_WIDGET(gtk_builder_get_object(builder, "button_shell")); - g_signal_connect(window_stg4_inic, "destroy", G_CALLBACK(chama_tela_principal), NULL); + g_signal_connect(window_stg4_inic, "destroy", G_CALLBACK(chama_tela_principal), NULL); //Chama a tela principal ao destruir essa janela struct dados *data = malloc(sizeof(*data)); data->dado1 = window_stg4_inic; data->builder = builder; data->dado2 = button_stg4_proximo; - data->control = 1; g_signal_connect (G_OBJECT (window_stg4_inic), "key_press_event", G_CALLBACK (on_key_press), data); //Conecta os sinais pra quando apertar uma tecla g_signal_connect(button_help_1at, "clicked", G_CALLBACK(help_screen), data); - if(!(strcmp(gtk_widget_get_name(w), "atualizar"))){ + if(!(strcmp(gtk_widget_get_name(w), "atualizar"))){ //Caso ele tenha clicado no botão de atualizar uma imagem g_signal_connect(button_stg4_proximo, "clicked", G_CALLBACK(stg4_tela_img_select), data); }else{ - g_signal_connect(button_stg4_proximo, "clicked", G_CALLBACK(stg4_clique_1a_tela), data); + g_signal_connect(button_stg4_proximo, "clicked", G_CALLBACK(stg4_clique_1a_tela), data); //Caso ele tenha clicado em gerar imagem } g_signal_connect(button_geren, "clicked", G_CALLBACK(abre_software_center), data); - //g_signal_connect(button_shell, "clicked", G_CALLBACK(abre_shell), data); - gtk_widget_hide(janela_ant); + gtk_widget_hide(janela_ant); //Esconde a janela anterior gtk_widget_show_all(window_stg4_inic); diff --git a/useful/stg312/upload-utils.c b/useful/stg312/upload-utils.c index e3521a05b7320f6742f88fd70f1d8ceb5199b4e4..b6abb937412914c402930c931bf81d093e938a6f 100644 --- a/useful/stg312/upload-utils.c +++ b/useful/stg312/upload-utils.c @@ -39,7 +39,7 @@ void logout(){ curl_easy_setopt(curl, CURLOPT_URL, API_URL); curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "request=logout"); - curl_easy_perform(curl); + curl_easy_perform(curl); //faz logout } } @@ -59,9 +59,9 @@ int checa_upload_antigo(){ puts(old_upload); if(!(strcmp(old_upload, "Upload"))){ - return 1; + return 1; //Tem um upload antigo } - return 0; + return 0; //Não tem um upload antigo, continua normalmente } //Estima o tempo de upload, não faz a estimativa correta, mas só deus sabe como fazer essa joça realmente. O curl faz muita coisa que demora mais que só o upload, eu assumo @@ -74,37 +74,37 @@ int calcula_tempo_upload(){ velocidade = malloc(255*sizeof(char)); int velocidade_f; - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le lixo e joga fora puts(velocidade); - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le lixo e joga fora puts(velocidade); - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le lixo e joga fora puts(velocidade); - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le lixo e joga fora puts(velocidade); - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le lixo e joga fora puts(velocidade); - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le lixo e joga fora puts(velocidade); - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le lixo e joga fora puts(velocidade); - fscanf(velocidade_upload, "%s", velocidade); + fscanf(velocidade_upload, "%s", velocidade); //Le a velocidade de upload puts(velocidade); puts("vai calcular"); - velocidade_f = atoi(velocidade); + velocidade_f = atoi(velocidade); //Transforma em float puts("calculou"); puts("chegou aqui"); - return(10*(1953)/velocidade_f*3); // *3 para levar em conta problemas de rede. *10 pois o curl demora muito mais que só fazer o upload + return((1953)/velocidade_f*3); // *3 para levar em conta problemas de rede. } //Função que gera o arquivo de dados do usuario, tanto os que foram recebidos do banco quanto informaçõs de sistema. Esse arquivo // sera submetido junto à imagem quando o upload for feito. void gera_arquivo_dados_usuario(){ - user_info dados_do_user; - pega_dados_do_usuario(&dados_do_user); + user_info dados_do_user; //Estrutura definida em openslx_gui.h para guardar os dados do usuario + pega_dados_do_usuario(&dados_do_user); //Abre o arquivo gerado no Login e coloca os dados do usuario na estrutura dados_do_user FILE *user_data_file; - user_data_file = fopen("user_data.info", "wr"); + user_data_file = fopen("user_data.info", "wr"); //Arquivo com os dados do usuario que será feito o upload fputs("Nome do criador da imagem: ", user_data_file); fputs(dados_do_user.name, user_data_file); @@ -116,13 +116,13 @@ void gera_arquivo_dados_usuario(){ fputs(dados_do_user.city, user_data_file); time_t timer; - time(&timer); + time(&timer); //pega o tempo de criação da imagem fputs("\nData da criação da imagem: ", user_data_file); - fputs(ctime(&timer), user_data_file); + fputs(ctime(&timer), user_data_file); //Coloca o tempo de criação da imagem no arquivo fclose(user_data_file); - system("uname -a >> user_data.info"); - system("lsb_release -a >> user_data.info"); + system("uname -a >> user_data.info"); //Coloca informações sobre o usuario no arquivo + system("lsb_release -a >> user_data.info"); //Coloca informações sobre o sistema no arquivo @@ -314,7 +314,7 @@ int checa_sucesso_get_info(){ } //Função que faz o Login do usuario no sistema. Utiliza a biblioteca Libcurlc para realizar as requisições http. -// Guarda as saidas em arquivos para uso posterios. Guarda o cookie para uso posterios tbm +// Guarda as saidas em arquivos para uso posterior. Guarda o cookie para uso posterior tbm int faz_login_dummy(GtkWidget *w, gpointer p){ dados *data_ant = p; //Pega os dados recebidos pela chamada da função tela_principal(NULL, data_ant); @@ -332,9 +332,9 @@ int faz_login(GtkWidget *w, gpointer p){ resp = malloc(255*sizeof(char)); puts("teste"); puts(gtk_entry_get_text(GTK_ENTRY(data_ant->dado3))); - strcat(data, gtk_entry_get_text(GTK_ENTRY(data_ant->dado3))); + strcat(data, gtk_entry_get_text(GTK_ENTRY(data_ant->dado3))); //Login do usuario strcat(data, "&passwd="); - strcat(data, gtk_entry_get_text(GTK_ENTRY(data_ant->dado4))); + strcat(data, gtk_entry_get_text(GTK_ENTRY(data_ant->dado4))); //Senha do usuario strcat(data, "&request=login"); puts(data); @@ -367,7 +367,7 @@ int faz_login(GtkWidget *w, gpointer p){ if(checa_sucesso_do_login()){ //Se o login foi bem sucedido, pega as informações do usuário printf("Linha %d\n", __LINE__); - char *data2="request=getinfo"; + char *data2="request=getinfo"; //Muda a requisição para getinfo, recebendo os dados do usuario curl_easy_setopt(curl, CURLOPT_WRITEDATA, dados_do_user); curl_easy_setopt(curl, CURLOPT_POST, 1); curl_easy_setopt(curl, CURLOPT_VERBOSE, 0); @@ -392,26 +392,21 @@ int faz_login(GtkWidget *w, gpointer p){ curl_easy_cleanup(curl); if(checa_upload_antigo()){ //Verifica se existe um upload antigo nessa máquina - tela_upload_antigo(NULL, data_ant); + tela_upload_antigo(NULL, data_ant); //Se tiver, chama a tela de uplaod antigo }else{ - if(data_ant->control == 0){ - tela_principal(NULL, data_ant); - } + tela_principal(NULL, data_ant); //Se não, chama a tela principal } return 1; } printf("Linha %d\n", __LINE__); } printf("Linha %d\n", __LINE__); - gtk_label_set_text(GTK_LABEL(data_ant->dado5), "Login nao encontrado!"); + gtk_label_set_text(GTK_LABEL(data_ant->dado5), "Login nao encontrado!"); //O login não foi bem sucedido printf("Linha %d\n", __LINE__); return 0; } //Função que faz o upload da imagem + dados para a api do site. Atualmente faz upload só de UM arquivo -void faz_upload_dummy(GtkWidget *w, gpointer p){ - // stg4_tela_confirmacao_upload(NULL, p); -}//Função de teste dummy //função de teste que faz upload da imagem teste.r1 void faz_upload_teste(GtkWidget *w, gpointer p){ @@ -423,7 +418,7 @@ void faz_upload_teste(GtkWidget *w, gpointer p){ struct dados *data = malloc(sizeof(*data)); GPid pid; GChildWatchFunc handler; - char **argv; + char **argv; //Vetor de argumentos para a g_spawn argv = malloc(10*sizeof(char*)); for (i=0; i < 10; i++){ argv[i] = malloc(255*sizeof(char)); @@ -434,19 +429,17 @@ void faz_upload_teste(GtkWidget *w, gpointer p){ loading = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen")); gtk_widget_show_all(loading); - strcpy(argv[0], "./upload"); - strcpy(argv[1], "/home/ent13/Desktop/pasta-teste"); - strcpy(argv[2], "teste"); - strcpy(argv[3], ".r1"); - argv[4] = NULL; + strcpy(argv[0], "./upload"); //Comando a ser invocado pelo shell + strcpy(argv[1], "/home/ent13/Desktop/pasta-teste"); //Local do arquivo de uplaod teste + strcpy(argv[2], "teste"); //nome da imagem + strcpy(argv[3], ".r1"); //versão da imagem + argv[4] = NULL; //ESSE ULTIMO PARAMETRO DEVE SER NULO, ele é o sentinela e informa o g_spawn onde acabam os parametros de invocação g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL); //NAO USE FORK PARA SPAWNAR SCRIPTS, use essa função. Documentação em: https://developer.gnome.org/glib/stable/glib-Spawning-Processes.html#g-spawn-sync - handler = stg4_tela_confirmacao_upload; + handler = stg4_tela_confirmacao_upload; //Função a ser chamada quando o g_spawn sair data->dado6 = loading; data->dado1 = data_ant->dado1; data->pid = pid; - g_child_watch_add(pid, handler, data); - // stg4_tela_confirmacao_upload(NULL, p); - + g_child_watch_add(pid, handler, data); //Chamará a função apontada por handler ao sair do processo criado pelo g_spawn } void faz_upload(GtkWidget *w, gpointer p){ @@ -459,7 +452,7 @@ void faz_upload(GtkWidget *w, gpointer p){ int i; GPid pid; GChildWatchFunc handler; - char **argv; + char **argv; //Vetor de argumentos do G_spawn argv = malloc(10*sizeof(char*)); for (i=0; i < 10; i++){ argv[i] = malloc(255*sizeof(char)); @@ -475,22 +468,20 @@ void faz_upload(GtkWidget *w, gpointer p){ gtk_widget_show_all(loading); printf("Linha %d\n", __LINE__); - strcpy(argv[0], "./upload"); - strcpy(argv[1], gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado4))); - strcpy(argv[2], gtk_entry_get_text(GTK_ENTRY(data_ant->dado3))); - strcpy(argv[3], ".r1"); - argv[4] = NULL; + strcpy(argv[0], "./upload"); //Comando a ser invocado pelo shell + strcpy(argv[1], gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado4))); //Caminho para a imagem criada pelo usuario + strcpy(argv[2], gtk_entry_get_text(GTK_ENTRY(data_ant->dado3))); //Nome da imagem + strcpy(argv[3], ".r1"); //versão, isso será depois lidado pela api, por isso o .r1 + argv[4] = NULL; //ESSE ULTIMO PARAMETRO DEVE SER NULO, ele é o sentinela e informa o g_spawn onde acabam os parametros de invocação printf("Linha %d\n", __LINE__); g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL); //NAO USE FORK PARA SPAWNAR SCRIPTS, use essa função. Documentação em: https://developer.gnome.org/glib/stable/glib-Spawning-Processes.html#g-spawn-sync printf("Linha %d\n", __LINE__); - handler = stg4_tela_confirmacao_upload; + handler = stg4_tela_confirmacao_upload; //Função a ser chamada quando o g_spawn sair data->dado6 = loading; data->dado1 = data_ant->dado1; data->pid = pid; printf("Linha %d\n", __LINE__); - g_child_watch_add(pid, handler, data); - //stg4_tela_confirmacao_upload(NULL, p); - + g_child_watch_add(pid, handler, data); //Chamará a função apontada por handler ao sair do processo criado pelo g_spawn } diff --git a/useful/stg312/upload-utils.h b/useful/stg312/upload-utils.h index 82e030c17d0e9de5b9bfa4f3c09fda7992864d37..1dd972c482b3952ab93b9d82c96dc238bffabc49 100644 --- a/useful/stg312/upload-utils.h +++ b/useful/stg312/upload-utils.h @@ -17,7 +17,6 @@ void gera_arquivo_dados_usuario(); int checa_sucesso_do_login(); void pega_dados_do_usuario(user_info *dados); int checa_sucesso_get_info(); -int faz_login_dummy(GtkWidget *w, gpointer p); int faz_login(GtkWidget *w, gpointer p); void faz_upload_dummy(GtkWidget *w, gpointer p); void faz_upload_teste(GtkWidget *w, gpointer p); diff --git a/useful/stg312/utils.c b/useful/stg312/utils.c index 90ff9b13c8cc6a9c147b67c9ec5694dec100811f..9c2798426ae18e9d1ee7a011e479589ec8384c16 100644 --- a/useful/stg312/utils.c +++ b/useful/stg312/utils.c @@ -42,15 +42,16 @@ gboolean on_key_press (GtkWidget *w, GdkEventKey *event, gpointer p){ window = w; dados *data_ant = p; //Pega os dados recebidos pela chamada da função button = data_ant->dado2; //Botão que da continuidade ao software, dado->2 por comodidade. + puts(gtk_widget_get_name(w)); switch (event->keyval){ - case GDK_KEY_F10: //Apertoyu f10 + case GDK_KEY_F10: //Apertou f10 help_screen(NULL, NULL); break; - case GDK_KEY_F6: //Apertoyu f6 - if(data_ant->control == 1) + case GDK_KEY_F6: //Apertou f6 + if(!strcmp(gtk_widget_get_name(w), "instal_window")) abre_shell(NULL, NULL); break; @@ -269,7 +270,7 @@ void mata_janela_e_chama_tela_principal(GtkWidget *w, gpointer p){ puts("teste2"); janela_ant = data_ant->dado1; puts("teste"); - gtk_widget_hide(janela_ant);//Nao achou isso, nao cuspiu teste 4 + gtk_widget_hide(janela_ant); //Esconde a janela anterior//Nao achou isso, nao cuspiu teste 4 puts("teste4"); g_signal_emit_by_name(janela_ant, "destroy"); puts("teste5");