Skip to content

Commit 41b99d1

Browse files
author
root
committed
update treeview
1 parent d439a9c commit 41b99d1

File tree

5 files changed

+137
-269
lines changed

5 files changed

+137
-269
lines changed

src/glade/bxr_plover

200 Bytes
Binary file not shown.

src/glade/main.c

Lines changed: 134 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ typedef struct Data_storage
2626
{
2727
char fpath[300]; //파일 경로
2828
char fname[20]; //파일 이름
29-
int cnt; //민감정보 총 개수(어디다 둬야할까...)
30-
int fsize; //파일 크기
29+
uint cnt; //민감정보 총 개수
30+
uint fsize; //파일 크기
3131
char stat; //파일 상태
3232

3333

@@ -37,8 +37,7 @@ data_storage ds_j[MAX_CNT]; //j: 주민번호, d: 운전면허
3737

3838
static gchar *path;
3939
int chk_tf; //chk_true false
40-
int data_flag = 1; //어떤종류의 민감정보인지 확인하기위한 flag
41-
40+
uint data_flag = 1; //어떤종류의 민감정보인지 확인하기위한 flag
4241

4342

4443
GtkWidget *detect_window,
@@ -48,31 +47,14 @@ GtkScrolledWindow *d_scrolledwindow;
4847

4948
GtkEntry *d_detect_entry;
5049

51-
GtkListStore *d_liststore;
52-
53-
GtkTreeIter iter;
54-
55-
GtkTreeSelection *d_treeselection;
56-
57-
/*
58-
GtkTreeViewColumn *d_treeview_num;
59-
GtkTreeViewColumn *d_treeview_type;
60-
GtkTreeViewColumn *d_treeview_filename;
61-
GtkTreeViewColumn *d_treeview_filelocation;
62-
GtkTreeViewColumn *d_treeview_cnt;
63-
GtkTreeViewColumn *d_treeview_stat;
64-
GtkTreeViewColumn *d_treeview_size;
65-
*/
66-
67-
6850

6951
void e_enroll_btn_clicked (GtkButton *e_enroll_btn, gpointer *data);
7052

7153
void m_window_destroy();
7254
void m_detect_btn_clicked (GtkButton *m_detect_btn, gpointer *data);
7355
void m_setting_btn_clicked (GtkButton *m_setting_btn, gpointer *data);
7456

75-
void d_detect_btn_clicked (GtkButton *d_detect_btn, GtkListStore *d_liststore);
57+
void d_detect_btn_clicked (GtkButton *d_detect_btn, gpointer *data);
7658
void d_option_btn_clicked (GtkButton *d_option_btn, gpointer *data);
7759
void d_folder_btn_clicked (GtkButton *d_folder_btn, gpointer *data);
7860
void d_close_btn_clicked (GtkButton *d_close_btn, gpointer *data);
@@ -381,10 +363,12 @@ int detect_func(gchar *path)
381363
}
382364
amqp_bytes_free(props.reply_to);
383365
}
384-
366+
367+
385368
/*
386369
wait an answer
387370
*/
371+
/*
388372
{
389373
amqp_basic_consume(conn, 1, reply_to_queue, amqp_empty_bytes, 0, 1, 0,
390374
amqp_empty_table);
@@ -475,25 +459,25 @@ int detect_func(gchar *path)
475459
476460
if (body_received != body_target)
477461
{
478-
/* Can only happen when amqp_simple_wait_frame returns <= 0 */
479-
/* We break here to close the connection */
462+
// Can only happen when amqp_simple_wait_frame returns <= 0 //
463+
// We break here to close the connection //
480464
break;
481465
}
482466
483-
/* everything was fine, we can quit now because we received the reply */
467+
// everything was fine, we can quit now because we received the reply //
484468
break;
485469
}
486470
}
487471
}
472+
*/
473+
488474

489475
/*
490476
closing
491477
*/
492-
die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS),
493-
"Closing channel");
478+
//die_on_amqp_error(amqp_channel_close(conn, 1, AMQP_REPLY_SUCCESS), "Closing channel");
494479

495-
die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS),
496-
"Closing connection");
480+
//die_on_amqp_error(amqp_connection_close(conn, AMQP_REPLY_SUCCESS), "Closing connection");
497481

498482
die_on_error(amqp_destroy_connection(conn), "Ending connection");
499483

@@ -572,47 +556,140 @@ void d_folder_btn_clicked (GtkButton *d_folder_btn, gpointer *data)
572556
return;
573557
}
574558

559+
//treeview start//
575560
enum
576561
{
577-
d_treeview_num,
562+
d_treeview_num = 0,
578563
d_treeview_type,
579564
d_treeview_filename,
580565
d_treeview_filelocation,
581566
d_treeview_cnt,
582567
d_treeview_stat,
583568
d_treeview_size,
584569
NUM_COLS
585-
};
586-
570+
} ;
587571

588-
static GtkTreeModel *model (void)
572+
static GtkTreeModel *
573+
create_and_fill_model (void)
589574
{
590-
d_liststore = gtk_list_store_new (NUM_COLS, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT);
591-
592-
/* Append a row and fill in some data */
593-
gtk_list_store_append (d_liststore, &iter);
594-
gtk_list_store_set (d_liststore, &iter,
595-
d_treeview_num, 1,
596-
d_treeview_type, "주민번호",
597-
d_treeview_filename, "test.txt",
598-
d_treeview_filelocation, "/home/joeun/test",
599-
d_treeview_cnt, 1,
600-
d_treeview_stat, "이동",
601-
d_treeview_size, "135",
602-
-1);
603-
604-
605-
return GTK_TREE_MODEL (d_liststore);
575+
GtkTreeStore *treestore;
576+
GtkTreeIter iter;
577+
578+
treestore = gtk_tree_store_new(NUM_COLS, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT);
579+
580+
for(int i = 1; i <= ds_j->cnt; i++)
581+
{
582+
gtk_tree_store_append(treestore, &iter, NULL);
583+
gtk_tree_store_set (treestore, &iter,
584+
d_treeview_num, i,
585+
d_treeview_type, "data_flag",
586+
d_treeview_filename, ds_j[i].fname,
587+
d_treeview_filelocation, ds_j[i].fpath,
588+
d_treeview_cnt, ds_j[i].cnt,
589+
d_treeview_stat, "have to define",
590+
d_treeview_size, ds_j[i].fsize,
591+
-1);
592+
}
593+
594+
return GTK_TREE_MODEL(treestore);
606595
}
607596

608-
static GtkWidget *d_treeview (void)
597+
static GtkWidget *
598+
create_view_and_model (void)
609599
{
600+
GtkTreeViewColumn *col;
601+
GtkCellRenderer *renderer;
602+
GtkWidget *view;
603+
GtkTreeModel *model;
610604

605+
view = gtk_tree_view_new();
606+
607+
/* --- Column #번호 --- */
608+
col = gtk_tree_view_column_new();
609+
610+
gtk_tree_view_column_set_title(col, "번호");
611+
612+
/* pack tree view column into tree view */
613+
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
614+
615+
renderer = gtk_cell_renderer_text_new();
616+
617+
/* pack cell renderer into tree view column */
618+
gtk_tree_view_column_pack_start(col, renderer, TRUE);
619+
620+
gtk_tree_view_column_add_attribute(col, renderer, "text", d_treeview_num);
621+
622+
/* --- Column #민감정보 종류 --- */
623+
col = gtk_tree_view_column_new();
624+
gtk_tree_view_column_set_title(col, "민감정보 종류");
625+
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
626+
renderer = gtk_cell_renderer_text_new();
627+
gtk_tree_view_column_pack_start(col, renderer, TRUE);
628+
gtk_tree_view_column_add_attribute(col, renderer, "text", d_treeview_type);
629+
630+
/* --- Column #파일 이름 --- */
631+
col = gtk_tree_view_column_new();
632+
gtk_tree_view_column_set_title(col, "파일 이름");
633+
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
634+
renderer = gtk_cell_renderer_text_new();
635+
gtk_tree_view_column_pack_start(col, renderer, TRUE);
636+
gtk_tree_view_column_add_attribute(col, renderer, "text", d_treeview_filename);
637+
638+
/* --- Column #파일 위치 --- */
639+
col = gtk_tree_view_column_new();
640+
gtk_tree_view_column_set_title(col, "파일 위치");
641+
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
642+
renderer = gtk_cell_renderer_text_new();
643+
gtk_tree_view_column_pack_start(col, renderer, TRUE);
644+
gtk_tree_view_column_add_attribute(col, renderer, "text", d_treeview_filelocation);
645+
646+
/* --- Column #민감정보 개수 --- */
647+
col = gtk_tree_view_column_new();
648+
gtk_tree_view_column_set_title(col, "민감정보 개수");
649+
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
650+
renderer = gtk_cell_renderer_text_new();
651+
gtk_tree_view_column_pack_start(col, renderer, TRUE);
652+
gtk_tree_view_column_add_attribute(col, renderer, "text", d_treeview_cnt);
653+
654+
/* --- Column #상태 --- */
655+
col = gtk_tree_view_column_new();
656+
gtk_tree_view_column_set_title(col, "상태");
657+
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
658+
renderer = gtk_cell_renderer_text_new();
659+
gtk_tree_view_column_pack_start(col, renderer, TRUE);
660+
gtk_tree_view_column_add_attribute(col, renderer, "text", d_treeview_stat);
661+
662+
/* --- Column #파일 크기 --- */
663+
col = gtk_tree_view_column_new();
664+
gtk_tree_view_column_set_title(col, "파일 크기");
665+
gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
666+
renderer = gtk_cell_renderer_text_new();
667+
gtk_tree_view_column_pack_start(col, renderer, TRUE);
668+
gtk_tree_view_column_add_attribute(col, renderer, "text", d_treeview_size);
669+
670+
model = create_and_fill_model();
671+
672+
gtk_tree_view_set_model(GTK_TREE_VIEW(view), model);
673+
674+
g_object_unref(model); /* destroy model automatically with view */
675+
676+
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(view)),
677+
GTK_SELECTION_NONE);
678+
679+
return view;
611680
}
681+
//treeview end//
612682

613-
void d_detect_btn_clicked (GtkButton *d_detect_btn, GtkListStore *d_liststore)
683+
684+
void d_detect_btn_clicked (GtkButton *d_detect_btn, gpointer *data)
614685
{
615-
//detect_func(path);
686+
GtkWidget *view;
687+
688+
detect_func(path);
689+
690+
view = create_view_and_model();
691+
gtk_container_add(GTK_CONTAINER(d_scrolledwindow), view);
692+
gtk_widget_show_all((GtkWidget *)d_scrolledwindow);
616693

617694
return;
618695
}
@@ -678,7 +755,8 @@ int main (int argc, char *argv[])
678755
{
679756
GtkBuilder *builder;
680757
GtkWidget *main_window,
681-
*enrollment_window;
758+
*enrollment_window,
759+
*view;
682760

683761
gtk_init(&argc, &argv);
684762

@@ -690,20 +768,8 @@ int main (int argc, char *argv[])
690768
detect_window = GTK_WIDGET(gtk_builder_get_object(builder, "detect_window"));
691769
setting_window = GTK_WIDGET(gtk_builder_get_object(builder, "setting_window"));
692770
d_scrolledwindow = GTK_SCROLLED_WINDOW(gtk_builder_get_object(builder, "d_scrolledwindow"));
693-
694-
d_treeview = GTK_WIDGET(gtk_builder_get_object(builder, "d_treeview"));
695-
//d_treeselection = GTK_TREE_SELECTION(gtk_builder_get_object(builder, "d_treeselection"));
696-
697-
/*
698-
d_treeview_num = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "d_treeview_num"));
699-
d_treeview_type = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "d_treeview_type"));
700-
d_treeview_filename = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "d_treeview_filename"));
701-
d_treeview_filelocation = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "d_treeview_filelocation"));
702-
d_treeview_cnt = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "d_treeview_cnt"));
703-
d_treeview_stat = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "d_treeview_stat"));
704-
d_treeview_size = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "d_treeview_size"));
705-
*/
706-
771+
772+
707773

708774

709775
//닫기x 버튼을 hide로 바꾸기//

0 commit comments

Comments
 (0)