317
327
void d4x_rule_edit_apply(d4xRuleEdit *edit){
318
if (edit && edit->rule){
319
if (*(text_from_combo(edit->host))){
320
edit->rule->host.set(text_from_combo(edit->host));
322
edit->rule->host.set((char*)NULL);
323
if (*(text_from_combo(edit->path))){
324
edit->rule->path.set(text_from_combo(edit->path));
326
edit->rule->path.set((char*)NULL);
327
if (*(text_from_combo(edit->file))){
328
edit->rule->file.set(text_from_combo(edit->file));
330
edit->rule->file.set((char*)NULL);
331
if (*(text_from_combo(edit->params))){
332
edit->rule->params.set(text_from_combo(edit->params));
334
edit->rule->params.set((char*)NULL);
335
if (*(text_from_combo(edit->tag))){
336
edit->rule->tag.set(text_from_combo(edit->tag));
338
edit->rule->tag.set((char*)NULL);
329
edit->rule->host=text_from_combo(edit->host);
330
edit->rule->path=text_from_combo(edit->path);
331
edit->rule->file=text_from_combo(edit->file);
332
edit->rule->params=text_from_combo(edit->params);
333
edit->rule->tag=text_from_combo(edit->tag);
339
334
edit->rule->proto=get_proto_by_name(text_from_combo(edit->proto));
340
335
edit->rule->include=GTK_TOGGLE_BUTTON(edit->include)->active;
520
518
return d4x_rule_edit_type;
523
GtkWidget *d4x_rule_edit_new(d4xRule *rule){
521
GtkWidget *d4x_rule_edit_new(const d4x::Filter::Rule &rule){
524
522
d4xRuleEdit *edit=(d4xRuleEdit *)g_object_new(d4x_rule_edit_get_type(),NULL);
527
if (rule->host.get())
528
text_to_combo(edit->host,rule->host.get());
530
text_to_combo(edit->proto,get_name_by_proto(rule->proto));
531
if (rule->path.get())
532
text_to_combo(edit->path,rule->path.get());
533
if (rule->file.get())
534
text_to_combo(edit->file,rule->file.get());
535
if (rule->params.get())
536
text_to_combo(edit->params,rule->params.get());
538
text_to_combo(edit->tag,rule->tag.get());
539
GTK_TOGGLE_BUTTON(edit->include)->active=rule->include;
540
GTK_TOGGLE_BUTTON(edit->exclude)->active=!rule->include;
523
edit->rule=new d4x::Filter::Rule(rule);
524
text_to_combo(edit->host,rule.host.c_str());
526
text_to_combo(edit->proto,get_name_by_proto(rule.proto));
527
text_to_combo(edit->path,rule.path.c_str());
528
text_to_combo(edit->file,rule.file.c_str());
529
text_to_combo(edit->params,rule.params.c_str());
530
text_to_combo(edit->tag,rule.tag.c_str());
531
GTK_TOGGLE_BUTTON(edit->include)->active=rule.include;
532
GTK_TOGGLE_BUTTON(edit->exclude)->active=!rule.include;
542
533
return GTK_WIDGET(edit);
554
static gboolean destroy_filter_iterators(GtkTreeModel *model,GtkTreePath *path,
555
GtkTreeIter *iter,gpointer data){
558
gtk_tree_model_get_value(model,iter,FE_COL_RULE_ITER,&val);
559
d4x::Filter::iterator *it=(d4x::Filter::iterator *)g_value_get_pointer(&val);
576
566
static void d4x_filter_edit_destroy(GtkObject *widget){
577
567
g_return_if_fail(widget!=NULL);
569
d4xFilterEdit *edit=(d4xFilterEdit *)widget;
571
delete(edit->filter);
575
gtk_tree_iter_free(edit->iter);
580
gtk_tree_model_foreach(gtk_tree_view_get_model(edit->view),destroy_filter_iterators,0);
581
gtk_list_store_clear(edit->store);
579
585
if (GTK_OBJECT_CLASS (filter_parent_class)->destroy)
580
586
(* GTK_OBJECT_CLASS (filter_parent_class)->destroy) (widget);
584
void d4x_filter_edit_add_rule(d4xFilterEdit *edit,d4xRule *rule){
585
gtk_list_store_append(edit->store,&(rule->iter));
586
gtk_list_store_set(edit->store,&(rule->iter),
587
FE_COL_INC,rule->include?(char*)"+":(char*)("-"),
588
FE_COL_PROTO,rule->proto?get_name_by_proto(rule->proto):(char*)(""),
589
FE_COL_HOST,rule->host.get()?rule->host.get():(char*)(""),
590
FE_COL_PATH,rule->path.get()?rule->path.get():(char*)(""),
591
FE_COL_FILE,rule->file.get()?rule->file.get():(char*)(""),
592
FE_COL_PARAMS,rule->params.get()?rule->params.get():(char*)(""),
593
FE_COL_TAG,rule->tag.get()?rule->tag.get():(char*)(""),
590
void d4x_filter_edit_add_rule(d4xFilterEdit *edit,const d4x::Filter::Rule &rule,d4x::Filter::iterator *it){
592
gtk_list_store_append(edit->store,&iter);
593
gtk_list_store_set(edit->store,&(iter),
594
FE_COL_INC,rule.include?(char*)"+":(char*)("-"),
595
FE_COL_PROTO,rule.proto?get_name_by_proto(rule.proto):(char*)(""),
596
FE_COL_HOST,rule.host.c_str(),
597
FE_COL_PATH,rule.path.c_str(),
598
FE_COL_FILE,rule.file.c_str(),
599
FE_COL_PARAMS,rule.params.c_str(),
600
FE_COL_TAG,rule.tag.c_str(),
598
606
static void d4x_filter_edit_add_ok(GtkWidget *widget,d4xRuleEdit *edit){
599
((d4xFilterEdit *)(edit->filter_edit))->node->filter->insert(edit->rule);
600
607
d4x_rule_edit_apply(edit);
601
d4x_filter_edit_add_rule((d4xFilterEdit *)(edit->filter_edit),
608
d4x::Filter::iterator *it=new d4x::Filter::iterator(((d4xFilterEdit *)(edit->filter_edit))->filter->append(*(edit->rule)));
609
d4x_filter_edit_add_rule((d4xFilterEdit *)(edit->filter_edit),*(edit->rule),it);
603
610
gtk_widget_destroy(GTK_WIDGET(edit));
606
613
static void d4x_filter_edit_add_cancel(GtkWidget *widget,d4xRuleEdit *edit){
608
614
gtk_widget_destroy(GTK_WIDGET(edit));
611
617
static void d4x_filter_edit_add_delete(GtkWidget *widget,
613
619
d4xRuleEdit *edit){
615
620
gtk_widget_destroy(GTK_WIDGET(edit));
618
623
void d4x_filter_edit_add(GtkWidget *widget,d4xFilterEdit *edit){
619
d4xRule *rule=new d4xRule;
620
d4xRuleEdit *ruleedit=(d4xRuleEdit *)d4x_rule_edit_new(rule);
624
d4xRuleEdit *ruleedit=(d4xRuleEdit *)d4x_rule_edit_new(d4x::Filter::Rule());
621
626
gtk_widget_show_all(GTK_WIDGET(ruleedit));
622
627
gtk_window_set_modal (GTK_WINDOW(ruleedit),TRUE);
623
628
gtk_window_set_transient_for (GTK_WINDOW (ruleedit),
638
643
static void d4x_filter_edit_edit_ok(GtkWidget *widget,d4xRuleEdit *edit){
639
644
d4xFilterEdit *filtedit=(d4xFilterEdit *)(edit->filter_edit);
640
645
d4x_rule_edit_apply(edit);
641
d4xRule *rule=edit->rule;
642
gtk_list_store_set(filtedit->store,&(rule->iter),
646
d4x::Filter::Rule *rule=edit->rule;
647
gtk_list_store_set(filtedit->store,edit->iter,
643
648
FE_COL_INC,rule->include?"+":"-",
644
649
FE_COL_PROTO,rule->proto?get_name_by_proto(rule->proto):"",
645
FE_COL_HOST,rule->host.get()?rule->host.get():"",
646
FE_COL_PATH,rule->path.get()?rule->path.get():"",
647
FE_COL_FILE,rule->file.get()?rule->file.get():"",
648
FE_COL_PARAMS,rule->params.get()?rule->params.get():"",
649
FE_COL_TAG,rule->tag.get()?rule->tag.get():"",
650
FE_COL_HOST,rule->host.c_str(),
651
FE_COL_PATH,rule->path.c_str(),
652
FE_COL_FILE,rule->file.c_str(),
653
FE_COL_PARAMS,rule->params.c_str(),
654
FE_COL_TAG,rule->tag.c_str(),
657
gtk_tree_model_get_value(gtk_tree_view_get_model(filtedit->view),edit->iter,FE_COL_RULE_ITER,&val);
658
d4x::Filter::iterator *it=(d4x::Filter::iterator *)g_value_get_pointer(&val);
651
660
gtk_widget_destroy(GTK_WIDGET(edit));
657
666
GtkTreeIter iter;
658
667
if (gtk_tree_selection_get_selected(sel,&model,&iter)){
660
gtk_tree_model_get_value(model,&iter,FE_COL_RULE,&val);
661
d4xRule *rule=(d4xRule *)g_value_get_pointer(&val);
669
gtk_tree_model_get_value(model,&iter,FE_COL_RULE_ITER,&val);
670
d4x::Filter::iterator *it=(d4x::Filter::iterator *)g_value_get_pointer(&val);
662
671
g_value_unset(&val);
663
d4xRuleEdit *ruleedit=(d4xRuleEdit *)d4x_rule_edit_new(rule);
672
d4xRuleEdit *ruleedit=(d4xRuleEdit *)d4x_rule_edit_new(**it);
664
673
ruleedit->filter_edit=(GtkWidget *)edit;
674
ruleedit->iter=gtk_tree_iter_copy(&iter);
665
675
g_signal_connect(G_OBJECT(ruleedit->ok_button),"clicked",
666
676
G_CALLBACK(d4x_filter_edit_edit_ok),
700
710
GtkTreeIter iter;
701
711
if (gtk_tree_selection_get_selected(sel,&model,&iter)){
703
gtk_tree_model_get_value(model,&iter,FE_COL_RULE,&val);
704
d4xRule *rule=(d4xRule *)g_value_get_pointer(&val);
713
gtk_tree_model_get_value(model,&iter,FE_COL_RULE_ITER,&val);
714
d4x::Filter::iterator *it=(d4x::Filter::iterator *)g_value_get_pointer(&val);
705
715
g_value_unset(&val);
707
tNode *next=rule->prev;
708
gtk_tree_model_swap_rows_l(GTK_TREE_MODEL(edit->store),
709
&(rule->iter),&(((d4xRule*)next)->iter));
710
d4xFilter *filter=edit->node->filter;
712
filter->insert_before(next,rule);
713
GtkTreeIter iter_tmp;
714
memcpy(&iter_tmp,&(((d4xRule*)next)->iter),sizeof(rule->iter));
715
memcpy(&(((d4xRule*)next)->iter),&(rule->iter),sizeof(rule->iter));
716
memcpy(&(rule->iter),&iter_tmp,sizeof(rule->iter));
717
gtk_tree_selection_select_iter(sel,&(rule->iter));
717
GtkTreeIter *prev=gtk_tree_iter_copy(&iter);
718
if (gtk_tree_model_iter_next(model,&iter)){
719
gtk_list_store_swap(edit->store,prev,&iter);
721
gtk_tree_model_get_value(model,&iter,FE_COL_RULE_ITER,&val);
722
d4x::Filter::iterator *it2=(d4x::Filter::iterator *)g_value_get_pointer(&val);
723
std::iter_swap(*it,*it2);
726
gtk_tree_iter_free(prev);
725
733
GtkTreeIter iter;
726
734
if (gtk_tree_selection_get_selected(sel,&model,&iter)){
728
gtk_tree_model_get_value(model,&iter,FE_COL_RULE,&val);
729
d4xRule *rule=(d4xRule *)g_value_get_pointer(&val);
736
gtk_tree_model_get_value(model,&iter,FE_COL_RULE_ITER,&val);
737
d4x::Filter::iterator *it=(d4x::Filter::iterator *)g_value_get_pointer(&val);
730
738
g_value_unset(&val);
732
tNode *next=rule->next;
733
gtk_tree_model_swap_rows_l(GTK_TREE_MODEL(edit->store),
734
&(rule->iter),&(((d4xRule*)next)->iter));
735
d4xFilter *filter=edit->node->filter;
737
filter->insert_before(rule,next);
738
GtkTreeIter iter_tmp;
739
memcpy(&iter_tmp,&(((d4xRule*)next)->iter),sizeof(rule->iter));
740
memcpy(&(((d4xRule*)next)->iter),&(rule->iter),sizeof(rule->iter));
741
memcpy(&(rule->iter),&iter_tmp,sizeof(rule->iter));
742
gtk_tree_selection_select_iter(sel,&(rule->iter));
740
GtkTreePath *path=gtk_tree_model_get_path(model,&iter);
741
GtkTreeIter *next=gtk_tree_iter_copy(&iter);
742
if (gtk_tree_path_prev (path) && gtk_tree_model_get_iter(model,next,path)){
743
gtk_list_store_swap(edit->store,next,&iter);
745
gtk_tree_model_get_value(model,&iter,FE_COL_RULE_ITER,&val);
746
d4x::Filter::iterator *it2=(d4x::Filter::iterator *)g_value_get_pointer(&val);
747
std::iter_swap(*it,*it2);
751
gtk_tree_path_free(path);
752
gtk_tree_iter_free(next);
756
static void d4x_filter_edit_cancel(GtkWidget *widget,d4xFilterEdit *edit){
757
gtk_widget_destroy(GTK_WIDGET(edit));
747
760
static gboolean d4x_filter_edit_select(GtkTreeView *view,GdkEventButton *event,d4xFilterEdit *edit) {
748
761
if (event && event->type==GDK_2BUTTON_PRESS && event->button==1){
749
762
d4x_filter_edit_edit(GTK_WIDGET(view),edit);
808
823
gtk_box_pack_start_defaults(GTK_BOX(hbox),edit->name);
809
824
gtk_box_pack_start(GTK_BOX(edit->vbox),hbox,FALSE,FALSE,3);
811
GtkWidget *table=gtk_table_new(2,3,TRUE);
812
gtk_table_set_row_spacings(GTK_TABLE(table),3);
813
gtk_table_set_col_spacings(GTK_TABLE(table),5);
814
gtk_box_pack_start(GTK_BOX(edit->vbox),table, FALSE,FALSE,0);
826
GtkWidget *bbox1=gtk_hbutton_box_new();
827
gtk_box_set_spacing(GTK_BOX(bbox1),5);
828
gtk_box_pack_start(GTK_BOX(edit->vbox),bbox1,FALSE,FALSE,3);
816
830
GtkWidget *up=gtk_button_new_from_stock(GTK_STOCK_GO_UP);
817
gtk_table_attach_defaults(GTK_TABLE(table),up,0,1,0,1);
831
gtk_box_pack_start(GTK_BOX(bbox1),up,FALSE,FALSE,0);
818
832
g_signal_connect(G_OBJECT(up),"clicked",
819
833
G_CALLBACK(d4x_filter_edit_up),edit);
821
835
GtkWidget *down=gtk_button_new_from_stock(GTK_STOCK_GO_DOWN);
822
gtk_table_attach_defaults(GTK_TABLE(table),down,0,1,1,2);
836
gtk_box_pack_start(GTK_BOX(bbox1),down,FALSE,FALSE,0);
837
g_signal_connect(G_OBJECT(down),"clicked",
838
G_CALLBACK(d4x_filter_edit_down),edit);
824
840
GtkWidget *add=gtk_button_new_from_stock(GTK_STOCK_ADD);
825
gtk_table_attach_defaults(GTK_TABLE(table),add,1,2,0,1);
841
gtk_box_pack_start(GTK_BOX(bbox1),add,FALSE,FALSE,0);
826
842
g_signal_connect(G_OBJECT(add),"clicked",
827
843
G_CALLBACK(d4x_filter_edit_add),edit);
829
845
GtkWidget *del=gtk_button_new_from_stock(GTK_STOCK_REMOVE);
830
gtk_table_attach_defaults(GTK_TABLE(table),del,1,2,1,2);
846
gtk_box_pack_start(GTK_BOX(bbox1),del,FALSE,FALSE,0);
831
847
g_signal_connect(G_OBJECT(del),"clicked",
832
848
G_CALLBACK(d4x_filter_edit_del),edit);
834
851
edit->edit=gtk_button_new_from_stock(GTK_STOCK_PROPERTIES);
835
gtk_table_attach_defaults(GTK_TABLE(table),edit->edit,2,3,0,1);
852
gtk_box_pack_start(GTK_BOX(bbox1),edit->edit,FALSE,FALSE,0);
836
853
g_signal_connect(G_OBJECT(edit->edit),"clicked",
837
854
G_CALLBACK(d4x_filter_edit_edit),edit);
856
GtkWidget *bbox2=gtk_hbutton_box_new();
857
gtk_box_set_spacing(GTK_BOX(bbox2),5);
858
gtk_box_pack_start(GTK_BOX(edit->vbox),bbox2, FALSE,FALSE,0);
860
GtkWidget *cancel=gtk_button_new_from_stock(GTK_STOCK_CANCEL);
861
gtk_box_pack_start(GTK_BOX(bbox2),cancel,FALSE,FALSE,0);
862
g_signal_connect(G_OBJECT(cancel),"clicked",
863
G_CALLBACK(d4x_filter_edit_cancel),edit);
839
865
edit->ok=gtk_button_new_from_stock(GTK_STOCK_OK);
840
gtk_table_attach_defaults(GTK_TABLE(table),edit->ok,2,3,1,2);
841
g_signal_connect(G_OBJECT(down),"clicked",
842
G_CALLBACK(d4x_filter_edit_down),edit);
866
gtk_box_pack_start(GTK_BOX(bbox2),edit->ok,FALSE,FALSE,0);
844
868
GTK_WIDGET_SET_FLAGS(edit->ok,GTK_CAN_DEFAULT);
845
869
GTK_WIDGET_SET_FLAGS(del,GTK_CAN_DEFAULT);
846
870
GTK_WIDGET_SET_FLAGS(edit->edit,GTK_CAN_DEFAULT);
871
GTK_WIDGET_SET_FLAGS(cancel,GTK_CAN_DEFAULT);
848
873
gtk_window_set_default(GTK_WINDOW(edit),edit->ok);
873
898
return d4x_filter_edit_type;
876
GtkWidget *d4x_filter_edit_new(d4xFNode *node){
901
struct PopulateFilter{
903
PopulateFilter(d4xFilterEdit *e):edit(e){};
904
void operator()(d4x::Filter::iterator it){
905
d4x_filter_edit_add_rule(edit,*it,new d4x::Filter::iterator(it));
909
GtkWidget *d4x_filter_edit_new(const d4x::Filter &filter){
877
910
d4xFilterEdit *edit=(d4xFilterEdit *)g_object_new(d4x_filter_edit_get_type(),NULL);
879
node->filter->print(edit);
880
if (node->filter->name.get())
881
text_to_combo(edit->name,node->filter->name.get());
882
GTK_TOGGLE_BUTTON(edit->include)->active=node->filter->default_inc;
883
GTK_TOGGLE_BUTTON(edit->exclude)->active=!node->filter->default_inc;
911
edit->filter=new d4x::Filter(filter);
912
edit->filter->each_iter(PopulateFilter(edit));
913
text_to_combo(edit->name,filter.name.c_str());
914
GTK_TOGGLE_BUTTON(edit->include)->active=filter.include;
915
GTK_TOGGLE_BUTTON(edit->exclude)->active=!filter.include;
884
916
return GTK_WIDGET(edit);
1146
1177
return GTK_WIDGET(sel);
1180
GtkWidget *d4x_links_sel_new_with_referer(const char *ref){
1181
d4xLinksSel *sel=(d4xLinksSel *)d4x_links_sel_new();
1182
sel->referer=gtk_entry_new();
1183
sel->directory=gtk_entry_new();
1184
gtk_entry_set_text(GTK_ENTRY(sel->referer),ref);
1185
GtkWidget *lab=gtk_label_new(_("Referer:"));
1186
gtk_box_pack_start(GTK_BOX(sel->vbox),lab,FALSE,FALSE,0);
1187
gtk_box_pack_start(GTK_BOX(sel->vbox),sel->referer,FALSE,FALSE,0);
1188
gtk_box_reorder_child(GTK_BOX(sel->vbox),lab,1);
1189
gtk_box_reorder_child(GTK_BOX(sel->vbox),sel->referer,2);
1190
lab=gtk_label_new(_("Store into directory:"));
1191
gtk_box_pack_start(GTK_BOX(sel->vbox),lab,FALSE,FALSE,0);
1192
gtk_box_pack_start(GTK_BOX(sel->vbox),sel->directory,FALSE,FALSE,0);
1193
gtk_widget_set_sensitive(sel->directory,FALSE);
1194
gtk_box_reorder_child(GTK_BOX(sel->vbox),lab,3);
1195
gtk_box_reorder_child(GTK_BOX(sel->vbox),sel->directory,4);
1196
gtk_widget_show_all(GTK_WIDGET(sel));
1197
return GTK_WIDGET(sel);
1149
1200
GtkWidget *d4x_links_sel_new(){
1150
1201
d4xLinksSel *sel=(d4xLinksSel *)g_object_new(d4x_links_sel_get_type(),NULL);
1151
1202
gtk_box_pack_end(GTK_BOX(sel->hbbox),sel->cancel,FALSE,FALSE,0);
1440
1491
return GTK_WIDGET(edit);
1443
void d4x_alt_edit_set(d4xAltEdit *sel,tAddr *info){
1444
if (info->host.notempty()){
1445
if (info->proto==D_PROTO_FTP)
1494
void d4x_alt_edit_set(d4xAltEdit *sel,const d4x::URL &info){
1495
if (!info.host.empty()){
1496
if (info.proto==D_PROTO_FTP)
1446
1497
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sel->proxy_type_ftp),TRUE);
1448
1499
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sel->proxy_type_http),TRUE);
1449
1500
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sel->proxy_use_check),TRUE);
1450
1501
gtk_widget_set_sensitive(sel->proxy_view,TRUE);
1451
text_to_combo(sel->proxy_host,info->host.get());
1502
text_to_combo(sel->proxy_host,info.host.c_str());
1452
1503
char data[100];
1453
sprintf(data,"%i",info->port);
1504
sprintf(data,"%i",info.port);
1454
1505
text_to_combo(sel->proxy_port,data);
1455
if (info->username.notempty() && info->pass.notempty()){
1506
if (!info.user.empty() && !info.pass.empty()){
1456
1507
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sel->proxy_user_check),TRUE);
1457
text_to_combo(sel->proxy_user,info->username.get());
1458
text_to_combo(sel->proxy_pass,info->pass.get());
1459
ALL_HISTORIES[USER_HISTORY]->add(info->username.get());
1508
text_to_combo(sel->proxy_user,info.user.c_str());
1509
text_to_combo(sel->proxy_pass,info.pass.c_str());
1510
ALL_HISTORIES[USER_HISTORY]->add(info.user.c_str());
1461
1512
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sel->proxy_user_check),FALSE);
1469
void d4x_alt_edit_get(d4xAltEdit *sel,tAddr *info){
1520
void d4x_alt_edit_get(d4xAltEdit *sel,d4x::URL &info){
1470
1521
if (GTK_TOGGLE_BUTTON(sel->proxy_use_check)->active && strlen(text_from_combo(sel->proxy_host))){
1471
1522
if (GTK_TOGGLE_BUTTON(sel->proxy_type_ftp)->active)
1472
info->proto=D_PROTO_FTP;
1523
info.proto=D_PROTO_FTP;
1474
info->proto=D_PROTO_HTTP;
1475
info->host.set(text_from_combo(sel->proxy_host));
1476
REMOVE_SC_FROM_HOST(info->host.get());
1477
sscanf(text_from_combo(sel->proxy_port),"%i",&info->port);
1525
info.proto=D_PROTO_HTTP;
1526
info.host=text_from_combo(sel->proxy_host);
1527
info.host=info.host.substr(0,info.host.find(':'));
1528
sscanf(text_from_combo(sel->proxy_port),"%i",&(info.port));
1480
1531
if (GTK_TOGGLE_BUTTON(sel->proxy_user_check)->active
1481
1532
&& strlen(text_from_combo(sel->proxy_user))
1482
1533
&& strlen(text_from_combo(sel->proxy_pass))){
1483
info->username.set(text_from_combo(sel->proxy_user));
1484
info->pass.set(text_from_combo(sel->proxy_pass));
1534
info.user=text_from_combo(sel->proxy_user);
1535
info.pass=text_from_combo(sel->proxy_pass);
1486
info->username.set(NULL);
1487
info->pass.set(NULL);
1489
make_proxy_host(info->host.get(),info->port);
1540
make_proxy_host(info.host.c_str(),info.port);