Skip to content
Snippets Groups Projects
Commit 1138419a authored by Enris Nogare Von Tein's avatar Enris Nogare Von Tein
Browse files

Added some documentation, loading screens now show the correct screen underneath

parent 43b1ec35
No related branches found
No related tags found
1 merge request!11Issue 3063 stg4clnr
{"login":"root","name":"MEGA ROOT","email":"root@root.com","city":null,"status":"ok","msg":"Get informations of user successful","code":"002"}
\ No newline at end of file
{"login":"root","name":"Alessandro Elias","email":"ae11@c3sl.ufpr.br","city":null,"status":"ok","msg":"Get informations of user successful","code":"002"}
\ No newline at end of file
1725600 testando-sem-crc-2.r1.tar.gz
1725528 testando.r1.tar.gz
{"uploadid":"QzD0kFOzZ5W22miyHCooFOsN85ypK4ZsjRp","status":"ok","code":"003","msg":"New upload succesful"}
\ No newline at end of file
{"uploadid":"0EFU45ZEhSpi7r3vRDv2zZW7stBu76SC10g","status":"ok","code":"003","msg":"New upload succesful"}
\ No newline at end of file
No preview for this file type
......@@ -23,11 +23,11 @@ void tela_upload_antigo(GtkWidget *w,gpointer p){
char *old_upload;
old_upload = malloc(255*sizeof(char));
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
janela_ant = (GtkWidget*) data_ant->dado1;
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
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
button_continua_upload = GTK_WIDGET(gtk_builder_get_object(builder, "button_continua_upload"));
button_nao_continua = GTK_WIDGET(gtk_builder_get_object(builder, "button_nao_continua"));
......@@ -66,10 +66,10 @@ void tela_principal(GtkWidget *w,gpointer p){
g_spawn_command_line_sync("./squash.sh 1", NULL, NULL, &status, NULL); // Executa o script
}
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
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
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
FILE *upload_antigo = fopen(".progress.out", "w");
fclose(upload_antigo);
......@@ -129,8 +129,8 @@ void tela_login(){
GtkWidget *window_login, *button_login, *entry_login, *entry_passwd, *label_login_erro;
GtkBuilder *builder;
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
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
printf("Linha %d\n", __LINE__);
window_login = GTK_WIDGET(gtk_builder_get_object(builder, "window_login"));
......
......@@ -4,8 +4,11 @@
<requires lib="gtk+" version="3.10"/>
<object class="GtkMessageDialog" id="error_dialog">
<property name="can_focus">False</property>
<property name="type">popup</property>
<property name="window_position">center</property>
<property name="icon">openslx_icon</property>
<property name="type_hint">dialog</property>
<property name="gravity">center</property>
<property name="message_type">error</property>
<property name="buttons">ok</property>
<property name="text" translatable="yes">Algum dos passos do processo não foi completado com sucesso. </property>
......@@ -58,6 +61,7 @@ O programa irá sair agora.</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">10</property>
<property name="margin_bottom">5</property>
<property name="row_spacing">10</property>
<property name="column_spacing">10</property>
<child>
......@@ -476,6 +480,7 @@ Se precisar de ajuda, ative
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">10</property>
<property name="margin_bottom">5</property>
<property name="row_spacing">35</property>
<property name="column_spacing">10</property>
<property name="column_homogeneous">True</property>
......@@ -486,6 +491,7 @@ Se precisar de ajuda, ative
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Segue com a geração da imagem.</property>
<property name="margin_right">5</property>
</object>
<packing>
<property name="left_attach">2</property>
......@@ -567,6 +573,7 @@ instalar softwares</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Abre o software Gerenciador de Pacotes do Ubuntu para te auxiliar a instalar os pacotes desejados. Essa opção pode ser demorada pois o software é pesado. Se estiver utilizando um computador mais velho tente optar pelo Shell.</property>
<property name="margin_right">5</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -702,6 +709,7 @@ disponível no nosso site.
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">10</property>
<property name="margin_bottom">5</property>
<property name="row_spacing">15</property>
<property name="column_spacing">10</property>
<child>
......@@ -1251,6 +1259,8 @@ em outras máquinas!</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">10</property>
<property name="margin_right">5</property>
<property name="margin_bottom">5</property>
<property name="row_spacing">5</property>
<child>
<object class="GtkGrid" id="grid8">
......@@ -1417,6 +1427,10 @@ em outras máquinas!</property>
<object class="GtkGrid" id="grid10">
<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_top">5</property>
<property name="margin_bottom">5</property>
<child>
<object class="GtkFrame" id="frame5">
<property name="visible">True</property>
......
......@@ -12,18 +12,31 @@
#include <gdk/gdk.h>
#include <glib.h>
void stg4_tela_confirmacao_upload(GtkWidget *w,gpointer p){
//void stg4_tela_confirmacao_upload(GtkWidget *w,gpointer p){
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; //*loading_screen; // Para quando for implementado
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");
dados *data_ant = p;
puts("Aqui8");
janela_ant = (GtkWidget*) data_ant->dado1;
puts("Aqui7");
builder = data_ant->builder;
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");
......@@ -51,6 +64,7 @@ void stg4_tela_confirmacao_upload(GtkWidget *w,gpointer p){
gtk_widget_hide(janela_ant);
puts("Aqui4");
gtk_widget_hide(loading);
gtk_widget_show_all(window_stg4_upload_confirm);
puts("Aqui5");
}
......@@ -60,7 +74,7 @@ void stg4_tela_img_select(GtkWidget *w,gpointer p){
GtkWidget *window_escolha_imagem, *janela_ant, *button_update_img; //*loading_screen; // Para quando for implementado
GtkBuilder *builder;
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
janela_ant = (GtkWidget*) data_ant->dado1;
builder = data_ant->builder;
int status;
......@@ -82,7 +96,78 @@ void stg4_tela_img_select(GtkWidget *w,gpointer p){
gtk_widget_hide(janela_ant);
gtk_widget_show_all(window_escolha_imagem);
}
// // A função que exibe a 3a tela do programa, a tela final
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;
GtkBuilder *builder;
char *texto_tempo_upload, *temp;
texto_tempo_upload = malloc(255*sizeof(char));
temp = malloc(255*sizeof(char));
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
janela_ant = (GtkWidget*) data_ant->dado1;
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
GtkWidget *loading;
loading = data_ant->dado6;
pid = data_ant->pid;
//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);
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__);
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_hide(loading);
gtk_widget_show_all(window_stg4_final);
printf("Linha %d\n", __LINE__);
}
void stg4_clique_2a_tela(GtkWidget *w,gpointer p){
GPid pid;
......@@ -104,7 +189,7 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){
texto_tempo_upload = malloc(255*sizeof(char));
temp = malloc(255*sizeof(char));
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
janela_ant = (GtkWidget*) data_ant->dado1;
builder = data_ant->builder;
......@@ -116,7 +201,6 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){
struct dados *data = malloc(sizeof(*data));
//tmscripts = acha_tm_scripts();
acha_tm_scripts(tmscripts);
strcpy(version, gtk_entry_get_text(GTK_ENTRY(data_ant->dado4)));
......@@ -133,8 +217,8 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){
//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);
//strcpy(argv[0], CLONE_STG4_SCRIPT_DUMMY);
strcpy(argv[0], CLONE_STG4_SCRIPT);
strcpy(argv[0], CLONE_STG4_SCRIPT_DUMMY);
//strcpy(argv[0], CLONE_STG4_SCRIPT);
strcpy(argv[1], tmscripts);
......@@ -159,39 +243,23 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){
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");
}
//, environ);
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->dado1 = data_ant->dado1;
data->pid = pid;
handler = sai_do_script;
handler = stg4_2a_tela;
//handler = sai_do_script_teste;
g_child_watch_add(pid, handler, data);
printf("Linha %d\n", __LINE__);
/*
* checa_sucesso(); //Checa se o script foi executado corretamente
strcpy(pasta_do_stg4, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado3)));
strcpy(version, gtk_entry_get_text(GTK_ENTRY(data_ant->dado4)));
strcat(version, gtk_entry_get_text(GTK_ENTRY(data_ant->dado5)));
//strcpy(local, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado2)));
strcpy(local, gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data_ant->dado3)));
strcat(local, "/pasta-");
strcat(local, version);
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data_ant->dado6))){
execlp("./squash.sh", "./squash.sh", "0", local, version, "1",pasta_do_stg4, NULL);// se o usuário decidiu remover os arquivos não compactados
}else{
execlp("./squash.sh", "./squash.sh", "0", local, version, "0",pasta_do_stg4, NULL);// Se o usuário decidiu não remover os arquivos compactados
}
* */
/* printf("Linha %d\n", __LINE__);
printf("Linha %d\n", __LINE__);
button_help_4at = GTK_WIDGET(gtk_builder_get_object(builder, "button_help_4at"));
......@@ -218,8 +286,8 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){
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), 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);
......@@ -228,7 +296,7 @@ void stg4_clique_2a_tela(GtkWidget *w,gpointer p){
printf("Linha %d\n", __LINE__);
gtk_widget_show_all(window_stg4_final);
printf("Linha %d\n", __LINE__);
*/
}
......@@ -238,7 +306,7 @@ void stg4_clique_1a_tela(GtkWidget *w,gpointer p){
GtkWidget *window_stg4_escolha, *janela_ant, *button_clonar, *entry_imagem, *file_chooser_local, *button_help_2at, *check_button_remove;
GtkBuilder *builder;
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
janela_ant = (GtkWidget*) data_ant->dado1;
builder = data_ant->builder;
......@@ -281,7 +349,7 @@ 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;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
janela_ant = (GtkWidget*) data_ant->dado1;
builder = data_ant->builder;
......
......@@ -8,7 +8,8 @@
#include <sys/wait.h>
void stg4_tela_confirmacao_upload(GtkWidget *w,gpointer p);
//void stg4_tela_confirmacao_upload(GtkWidget *w,gpointer p);
void stg4_tela_confirmacao_upload(GPid pid, gint status,gpointer p);
// A função que exibe a quarta tela do programa, a tela final
......
......@@ -17,6 +17,32 @@
#include <sys/types.h>
#include <signal.h>
void logout(){
CURL *curl;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0");
curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1 );
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookie");
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookie");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 0);
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
//curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.0.6/slx-admin/api.php?do=webservice");
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);
}
}
int checa_upload_antigo(){
FILE *upload_in_progress;
......@@ -287,14 +313,14 @@ 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
int faz_login_dummy(GtkWidget *w, gpointer p){
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
tela_principal(NULL, data_ant);
return 1;
}
int faz_login(GtkWidget *w, gpointer p){
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
CURL *curl;
char *data = malloc(255*sizeof(char));
strcpy(data, "login=");
......@@ -381,7 +407,7 @@ int faz_login(GtkWidget *w, gpointer p){
//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);
// stg4_tela_confirmacao_upload(NULL, p);
}//Função de teste dummy
//função de teste que faz upload da imagem teste.r1
......@@ -389,6 +415,7 @@ void faz_upload_teste(GtkWidget *w, gpointer p){
GtkWidget *loading, *window_stg4_upload_confirm;
GtkBuilder *builder;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
int i;
struct dados *data = malloc(sizeof(*data));
GPid pid;
......@@ -399,8 +426,8 @@ void faz_upload_teste(GtkWidget *w, gpointer p){
argv[i] = malloc(255*sizeof(char));
}
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
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
loading = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen"));
window_stg4_upload_confirm = GTK_WIDGET(gtk_builder_get_object(builder, "window_stg4_upload_confirm"));
......@@ -411,19 +438,20 @@ void faz_upload_teste(GtkWidget *w, gpointer p){
strcpy(argv[3], ".r1");
argv[4] = NULL;
g_spawn_async_with_pipes(NULL, argv,NULL,G_SPAWN_DO_NOT_REAP_CHILD,NULL,NULL, &pid, NULL, NULL, NULL, NULL);
handler = sai_do_script;
handler = stg4_tela_confirmacao_upload;
data->dado6 = loading;
data->dado1 = window_stg4_upload_confirm;
data->dado1 = data_ant->dado1;
data->pid = pid;
g_child_watch_add(pid, handler, data);
stg4_tela_confirmacao_upload(NULL, p);
// stg4_tela_confirmacao_upload(NULL, p);
}
void faz_upload(GtkWidget *w, gpointer p){
GtkWidget *loading;
dados *data_ant = p;
printf("Linha faz upload %d\n", __LINE__);
GtkWidget *loading, *window_stg4_upload_confirm;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
GtkBuilder *builder;
struct dados *data = malloc(sizeof(*data));
int i;
......@@ -434,22 +462,33 @@ void faz_upload(GtkWidget *w, gpointer p){
for (i=0; i < 10; i++){
argv[i] = malloc(255*sizeof(char));
}
printf("Linha %d\n", __LINE__);
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
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
loading = GTK_WIDGET(gtk_builder_get_object(builder, "loading_screen"));
window_stg4_upload_confirm = GTK_WIDGET(gtk_builder_get_object(builder, "window_stg4_upload_confirm"));
printf("Linha %d\n", __LINE__);
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;
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);
handler = sai_do_script;
printf("Linha %d\n", __LINE__);
handler = stg4_tela_confirmacao_upload;
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);
//stg4_tela_confirmacao_upload(NULL, p);
}
......@@ -6,7 +6,7 @@
#include <errno.h>
#include <sys/wait.h>
void logout();
int checa_upload_antigo();
int calcula_tempo_upload();
void gera_arquivo_dados_usuario();
......
......@@ -35,12 +35,12 @@ void acha_tm_scripts(char *path){
}
gboolean on_key_press (GtkWidget *w, GdkEventKey *event, gpointer p){ //funcção que lida com os inputs do teclado. Ver https://git.gnome.org/browse/gtk+/plain/gdk/gdkkeysyms.h para uma lista completa das Macros de teclas.
//função que lida com os inputs do teclado. Ver https://git.gnome.org/browse/gtk+/plain/gdk/gdkkeysyms.h para uma lista completa das Macros de teclas.
gboolean on_key_press (GtkWidget *w, GdkEventKey *event, gpointer p){
gpointer window, button;
window = w;
dados *data_ant = p;
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.
switch (event->keyval){
......@@ -70,51 +70,26 @@ gboolean on_key_press (GtkWidget *w, GdkEventKey *event, gpointer p){ //funcçã
return FALSE;
}
//Função que abre o software center do sistema
void abre_software_center(GtkWidget *w, gpointer p){
int status;
puts("software center");
g_spawn_command_line_sync("software-center", NULL, NULL, &status, NULL);
/*pid_t pid;
int status;
pid = fork();
g_spawn_command_line_sync("software-center", NULL, NULL, &status, NULL); //o comando "software-center" ainda não funciona, trocar por um outro funcional
//pid = 2;
if(pid == 0){
execlp("software-center", "", NULL);
perror("O comando não foi executado corretamente. Erro: Saindo do programa. "); // Caso ocorra algum erro com o execlp.
gtk_main_quit();
exit(1);
}
waitpid(pid, &status, 0); // Espera o script terminar de rodar*/
}
//Função que abre um shell para instalar os pacotes.
void abre_shell(GtkWidget *w, gpointer p){
int status;
g_spawn_command_line_sync("x-terminal-emulator", NULL, NULL, &status, NULL); // Executa o script
/*pid_t pid;
int status;
pid = fork();
g_spawn_command_line_sync("x-terminal-emulator", NULL, NULL, &status, NULL); // Abre o shell
//pid = 2;
if(pid == 0){
execlp("x-terminal-emulator", "", NULL);
perror("O comando não foi executado corretamente. Erro: Saindo do programa. "); // Caso ocorra algum erro com o execlp.
gtk_main_quit();
exit(1);
}
waitpid(pid, &status, 0); // Espera o script terminar de rodar*/
}
/*
void logout(){
CURL *curl;
......@@ -138,8 +113,10 @@ void logout(){
curl_easy_perform(curl);
}
}
}*/
//Função que sai do programa, fazendo logout antes
void sair(GtkWidget *w, gpointer p){
logout();
......@@ -157,17 +134,15 @@ int checa_sucesso(){
GtkWidget *dialogo;
GtkBuilder *builder;
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
//controle = (char*) malloc(5*sizeof(char));
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
dialogo = GTK_WIDGET(gtk_builder_get_object(builder, "error_dialog"));
dialogo = GTK_WIDGET(gtk_builder_get_object(builder, "error_dialog")); //Carrega o dialogo de erro
resultado = fopen(".result.out", "r"); // .result.out é o arquivo que armazena se o script foi executado corretamente ou não
if(resultado != NULL){
fread(&controle, sizeof(char), 1, resultado);
fread(&controle, sizeof(char), 1, resultado); //Lê a saida do script
printf("Controle = %c\n", controle);
if(controle == 's'){ //Caso o script não tenha sido executado com sucesso o programa informa o usuário por meio de uma janela de dialogo do GTK
......@@ -178,7 +153,7 @@ int checa_sucesso(){
return(1);
}else{
gtk_dialog_run(GTK_DIALOG(dialogo));
gtk_dialog_run(GTK_DIALOG(dialogo)); //Mostra a janela de erro
gtk_widget_destroy(dialogo);
system("rm .result.out"); // Remove o arquivo após a verificação para não dar conflito com o segundo script e execuções futuras do programa
gtk_main_quit();
......@@ -186,7 +161,7 @@ int checa_sucesso(){
}
}
}else{ //Se o arquivo não existir algo de errado aconteceu na execução do programa, como por exemplo o usuário não informou nenhum campo na segunda tela.
}else{ //Se o arquivo não existir algo de errado aconteceu na execução do programa, como por exemplo o usuário não informou nenhum campo na tela de clonagem.
puts("Arquivo não encontrado, erro crítico. Saíndo do programa.");
gtk_main_quit();
exit(1);
......@@ -194,39 +169,38 @@ int checa_sucesso(){
return(0);
}
// Acha o caminho para o tm-scripts
// Função que verifica se o usuário inseriu um nome com espaços no campo nome da imagem
void stg4_clique_2a_tela_caller(GtkWidget *w, gpointer p){
GtkWidget *entry;
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
GtkWidget *dialogo;
GtkBuilder *builder;
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
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
dialogo = GTK_WIDGET(gtk_builder_get_object(builder, "space_dialog"));
dialogo = GTK_WIDGET(gtk_builder_get_object(builder, "space_dialog")); //Carrega o dialogo de erro caso ele tenha utilizado espaços
entry = data_ant->dado4;
if(strchr(gtk_entry_get_text(GTK_ENTRY(entry)), ' ') == NULL){
stg4_clique_2a_tela(w, p);
if(strchr(gtk_entry_get_text(GTK_ENTRY(entry)), ' ') == NULL){ //Verifica se ele utilizou espaços
stg4_clique_2a_tela(w, p); //Caso ele não tenha inserido espaços
}else{
gtk_dialog_run(GTK_DIALOG(dialogo));
gtk_dialog_run(GTK_DIALOG(dialogo)); //Caso tenha inserido espaços
gtk_widget_destroy(dialogo);
}
}
//Altera o texto da janela de ajuda
void altera_texto_help(GtkWidget *w, gpointer p){
const char *nome;
int nome_int;
GtkWidget *label;
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
label = data_ant->dado1;
nome = gtk_widget_get_name(w);
......@@ -259,13 +233,14 @@ void altera_texto_help(GtkWidget *w, gpointer p){
}
//Janela de ajuda
void help_screen(GtkWidget *w, gpointer p){
GtkWidget *window_help, *button_help_inicio, *button_help_2a_tela, *button_help_3a_tela, *button_help_4a_tela, *button_help_5a_tela, *label_help_info;
GtkBuilder *builder;
builder = gtk_builder_new();
gtk_builder_add_from_file (builder, "openslx_gui_v01.glade", NULL);
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
button_help_inicio = GTK_WIDGET(gtk_builder_get_object(builder, "button_help_inicio"));
button_help_2a_tela = GTK_WIDGET(gtk_builder_get_object(builder, "button_help_2a_tela"));
......@@ -291,21 +266,23 @@ void help_screen(GtkWidget *w, gpointer p){
}
//Sai do script chamado, verificando o sucesso
void sai_do_script(GPid pid, gint status, gpointer p){
GtkWidget *loading;
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
loading = data_ant->dado6;
pid = data_ant->pid;
gtk_widget_hide(loading);
gtk_widget_hide(loading); //Esconde a tela de loading
//gtk_widget_show(window);
checa_sucesso();
g_spawn_close_pid(pid);
checa_sucesso(); //Checa se o script foi executdo corretamente
g_spawn_close_pid(pid); //Mata o processo do script
}
//Fecha a janela que chama essa função e mostra a janela principal
void mata_janela_e_chama_tela_principal(GtkWidget *w, gpointer p){
dados *data_ant = p;
dados *data_ant = p; //Pega os dados recebidos pela chamada da função
puts("teste3");
GtkWidget *janela_ant;
puts("teste2");
......@@ -317,6 +294,7 @@ void mata_janela_e_chama_tela_principal(GtkWidget *w, gpointer p){
puts("teste5");
}
//Chama a tela principal
void chama_tela_principal(GtkWidget *w, gpointer p){
struct dados *data = malloc(sizeof(*data));
data->dado1 = NULL;
......
......@@ -11,7 +11,8 @@
#include "upload-utils.h"
static const char UPLOAD_REQUEST[] = "request=newupload&nparts=10&name="; //nparts HAS to be the same as NUMBER_OF_PARTS
static const char API_URL[] = "http://192.168.0.6/slx-admin/api.php?do=webservice";
//static const char API_URL[] = "http://192.168.0.6/slx-admin/api.php?do=webservice";
static const char API_URL[] = "http://slxboxdev.c3sl.ufpr.br/slx-admin/api.php?do=webservice";
static const int NUMBER_OF_PARTS = 10; //
static const char CLONE_STG4_SCRIPT[] = "./clone_stage4.sh";
static const char CLONE_STG4_SCRIPT_DUMMY[] = "./clone_stage4-dummy.sh";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment