edit.cc
来自「一个功能比较强的下载软件」· CC 代码 · 共 1,749 行 · 第 1/5 页
CC
1,749 行
if (GTK_WIDGET_SENSITIVE(get_date_check)) parent->config->get_date=GTK_TOGGLE_BUTTON(get_date_check)->active; if (GTK_WIDGET_SENSITIVE(retry_check)) parent->config->retry=GTK_TOGGLE_BUTTON(retry_check)->active; if (GTK_WIDGET_SENSITIVE(follow_link_check)){ parent->config->follow_link=0; if (GTK_TOGGLE_BUTTON(follow_link_check)->active) parent->config->follow_link=1; if (GTK_TOGGLE_BUTTON(link_as_file_check)->active) parent->config->follow_link=2; }; if (GTK_WIDGET_SENSITIVE(leave_server_check)) parent->config->leave_server=GTK_TOGGLE_BUTTON(leave_server_check)->active; if (GTK_WIDGET_SENSITIVE(leave_dir_check)) parent->config->dont_leave_dir=GTK_TOGGLE_BUTTON(leave_dir_check)->active; if (GTK_WIDGET_SENSITIVE(restart_from_begin_check)) parent->restart_from_begin=GTK_TOGGLE_BUTTON(restart_from_begin_check)->active; if (GTK_WIDGET_SENSITIVE(sleep_check)) parent->config->sleep_before_complete=GTK_TOGGLE_BUTTON(sleep_check)->active; if (GTK_WIDGET_SENSITIVE(check_time_check)) parent->config->check_time=GTK_TOGGLE_BUTTON(check_time_check)->active; if (GTK_WIDGET_SENSITIVE(change_links_check)) parent->config->change_links=GTK_TOGGLE_BUTTON(change_links_check)->active; if (GTK_WIDGET_SENSITIVE(ihate_etag_check)) parent->config->ihate_etag=GTK_TOGGLE_BUTTON(ihate_etag_check)->active; if (GTK_WIDGET_SENSITIVE(quest_sign_check)) parent->config->quest_sign_replace=GTK_TOGGLE_BUTTON(quest_sign_check)->active; if (GTK_WIDGET_SENSITIVE(ftp_dirontop_check)) parent->config->ftp_dirontop=GTK_TOGGLE_BUTTON(ftp_dirontop_check)->active; parent->config->http_recursing=parent->config->http_recurse_depth==1?0:1; if (GTK_WIDGET_SENSITIVE(split_entry)){ temp1=0; sscanf(gtk_entry_get_text(GTK_ENTRY(split_entry)),"%u",&temp1); if (temp1>1){ if (temp1>10) temp1=10; if (parent->split==NULL) parent->split=new tSplitInfo; parent->split->NumOfParts=temp1; }else{ if (parent->split) delete(parent->split); parent->split=NULL; }; }; if (GTK_WIDGET_SENSITIVE(time_check)){ if (GTK_TOGGLE_BUTTON(time_check)->active) { time_t NOW=time(NULL); struct tm date; date.tm_isdst=-1; localtime_r(&NOW,&date); sscanf(text_from_combo(hour_entry),"%i",&date.tm_hour); sscanf(text_from_combo(minute_entry),"%i",&date.tm_min); gtk_calendar_get_date(GTK_CALENDAR(calendar), (guint *)&date.tm_year, (guint *)&date.tm_mon, (guint *)&date.tm_mday); date.tm_year-=1900; date.tm_sec=0; parent->ScheduleTime=mktime(&date); if (time(NULL)<parent->ScheduleTime){ aa.schedule_download(parent); parent_in_db=0; }; } else { parent->ScheduleTime=0; }; };};void tDEdit::done() { if (parent) parent->editor=NULL; gtk_widget_destroy(window); if (filter_sel) gtk_widget_destroy(GTK_WIDGET(filter_sel)); filter_sel=NULL; delete proxy;};tDEdit::~tDEdit() { done();};/*******************************************************/static void proxy_toggle_pass_ftp(GtkWidget *parent,tProxyWidget *where) { set_editable_for_combo(where->ftp_proxy_pass,GTK_TOGGLE_BUTTON(parent)->active); gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO(where->ftp_proxy_user)->entry),GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->ftp_proxy_user,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->ftp_proxy_pass,GTK_TOGGLE_BUTTON(parent)->active);};static void proxy_toggle_pass_http(GtkWidget *parent,tProxyWidget *where) { set_editable_for_combo(where->http_proxy_pass,GTK_TOGGLE_BUTTON(parent)->active); gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO(where->http_proxy_user)->entry),GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->http_proxy_user,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->http_proxy_pass,GTK_TOGGLE_BUTTON(parent)->active);};static void proxy_toggle_socks(GtkWidget *parent,tProxyWidget *where) { set_editable_for_combo(where->socks_port,GTK_TOGGLE_BUTTON(parent)->active); set_editable_for_combo(where->socks_user,GTK_TOGGLE_BUTTON(parent)->active); set_editable_for_combo(where->socks_pass,GTK_TOGGLE_BUTTON(parent)->active); gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO(where->socks_host)->entry),GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->socks_user,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->socks_pass,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->socks_port,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(where->socks_host,GTK_TOGGLE_BUTTON(parent)->active);};static void _proxy_port_changed_(GtkEntry *entry,GtkEntry *entryh){ const char *tmp=gtk_entry_get_text(entryh); char *tmp1=index(tmp,':'); if (tmp1){ *tmp1=0; char *ns=sum_strings(tmp,":",gtk_entry_get_text(entry),NULL); *tmp1=':'; if (!equal(ns,tmp)) gtk_entry_set_text(entryh,ns); delete[] ns; };};static void _ftp_host_changed_(GtkEntry *entry,tProxyWidget *parent){ const char *tmp=gtk_entry_get_text(entry); tmp=index(tmp,':'); if (tmp){ int a=0; if (sscanf(tmp+1,"%i",&a)==1){ char str[100]; sprintf(str,"%i",a); gtk_entry_set_text(GTK_ENTRY(parent->ftp_proxy_port),str); }; };};static void _http_host_changed_(GtkEntry *entry,tProxyWidget *parent){ const char *tmp=gtk_entry_get_text(entry); tmp=index(tmp,':'); if (tmp){ int a=0; if (sscanf(tmp+1,"%i",&a)==1){ char str[100]; sprintf(str,"%i",a); gtk_entry_set_text(GTK_ENTRY(parent->http_proxy_port),str); }; };};static void _socks_host_changed_(GtkEntry *entry,tProxyWidget *parent){ const char *tmp=gtk_entry_get_text(entry); tmp=index(tmp,':'); if (tmp){ int a=0; if (sscanf(tmp+1,"%i",&a)==1){ char str[100]; sprintf(str,"%i",a); gtk_entry_set_text(GTK_ENTRY(parent->socks_port),str); }; };};void tProxyWidget::init() {// frame=gtk_frame_new(_("Proxy")); GtkWidget *proxy_frame1=gtk_frame_new("FTP"); GtkWidget *proxy_frame2=gtk_frame_new("HTTP"); GtkWidget *proxy_frame3=gtk_frame_new(_("FTP proxy type"));// gtk_container_set_border_width(GTK_CONTAINER(frame),5); gtk_container_set_border_width(GTK_CONTAINER(proxy_frame1),5); gtk_container_set_border_width(GTK_CONTAINER(proxy_frame2),5); GtkWidget *vbox=gtk_vbox_new(FALSE,0); GtkWidget *hbox=gtk_hbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(hbox),vbox,FALSE,0,0); GtkWidget *table=gtk_table_new(2,1,FALSE); gtk_container_add(GTK_CONTAINER(proxy_frame3),table); ftp_proxy_type_ftp=gtk_radio_button_new_with_label(NULL,_("FTP (wingate)")); GSList *proxy_group1=gtk_radio_button_get_group(GTK_RADIO_BUTTON(ftp_proxy_type_ftp)); gtk_table_attach_defaults(GTK_TABLE(table),ftp_proxy_type_ftp,0,1,0,1); ftp_proxy_type_http=gtk_radio_button_new_with_label(proxy_group1,"HTTP"); gtk_table_attach_defaults(GTK_TABLE(table),ftp_proxy_type_http,0,1,1,2); GtkWidget *vbox1=gtk_vbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(vbox1),proxy_frame3,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),vbox1,FALSE,0,0); GtkWidget *box1=gtk_vbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(vbox1),box1,FALSE,0,0); gtk_box_set_spacing(GTK_BOX(vbox),2); gtk_container_add(GTK_CONTAINER(proxy_frame1),hbox); ftp_proxy_check=gtk_check_button_new_with_label(_("Use this proxy for FTP")); gtk_box_pack_start(GTK_BOX(vbox),ftp_proxy_check,FALSE,0,0); ftp_proxy_host=my_gtk_combo_new(ALL_HISTORIES[PROXY_HISTORY]); g_signal_connect (G_OBJECT (GTK_COMBO(ftp_proxy_host)->entry), "changed", G_CALLBACK(_ftp_host_changed_), this); gtk_widget_set_size_request(ftp_proxy_host,120,-1); gtk_box_pack_start(GTK_BOX(vbox),ftp_proxy_host,FALSE,0,0); ftp_proxy_port=my_gtk_entry_new_with_max_length(5,0); g_signal_connect(G_OBJECT (ftp_proxy_port), "changed", G_CALLBACK(_proxy_port_changed_), GTK_COMBO(ftp_proxy_host)->entry); GtkWidget *label=gtk_label_new(_("port")); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),3); gtk_box_pack_start(GTK_BOX(hbox),ftp_proxy_port,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,0,0); ftp_proxy_user_check=gtk_check_button_new_with_label(_("need password")); g_signal_connect(G_OBJECT(ftp_proxy_user_check),"clicked",G_CALLBACK(proxy_toggle_pass_ftp),this); gtk_box_pack_start(GTK_BOX(vbox),ftp_proxy_user_check,FALSE,0,0); // ftp_proxy_user=gtk_entry_new(); ftp_proxy_user=my_gtk_combo_new(ALL_HISTORIES[USER_HISTORY]); gtk_widget_set_size_request(ftp_proxy_user,100,-1); label=gtk_label_new(_("username")); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),3); gtk_box_set_spacing(GTK_BOX(vbox),2); gtk_box_pack_start(GTK_BOX(hbox),ftp_proxy_user,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,0,0); if (CFG.REMEMBER_PASS) ftp_proxy_pass=my_gtk_combo_new(ALL_HISTORIES[PASS_HISTORY]); else{ ftp_proxy_pass=gtk_entry_new(); gtk_entry_set_visibility(GTK_ENTRY(ftp_proxy_pass),FALSE); }; gtk_widget_set_size_request(ftp_proxy_pass,100,-1); label=gtk_label_new(_("password")); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),3); gtk_box_set_spacing(GTK_BOX(vbox),2); gtk_box_pack_start(GTK_BOX(hbox),ftp_proxy_pass,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,0,0); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),3); gtk_box_pack_start(GTK_BOX(hbox),proxy_frame1,FALSE,0,0); gtk_box_pack_end(GTK_BOX(hbox),proxy_frame2,FALSE,0,0); GtkWidget *vbox_temp=gtk_vbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(vbox_temp),hbox,FALSE,0,0);// gtk_container_add(GTK_CONTAINER(frame),vbox_temp); frame=vbox_temp; no_cache=gtk_check_button_new_with_label(_("Don't get from cache")); gtk_box_pack_start(GTK_BOX(vbox_temp),no_cache,FALSE,0,0); vbox=gtk_vbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(vbox),2); gtk_container_add(GTK_CONTAINER(proxy_frame2),vbox); http_proxy_check=gtk_check_button_new_with_label(_("Use this proxy for HTTP")); gtk_box_pack_start(GTK_BOX(vbox),http_proxy_check,FALSE,0,0); http_proxy_host=my_gtk_combo_new(ALL_HISTORIES[PROXY_HISTORY]); g_signal_connect (G_OBJECT (GTK_COMBO(http_proxy_host)->entry), "changed", G_CALLBACK(_http_host_changed_), this); gtk_widget_set_size_request(http_proxy_host,120,-1); gtk_box_pack_start(GTK_BOX(vbox),http_proxy_host,FALSE,0,0); http_proxy_port=my_gtk_entry_new_with_max_length(5,0);//gtk_entry_new(); g_signal_connect(G_OBJECT (http_proxy_port), "changed", G_CALLBACK(_proxy_port_changed_), GTK_COMBO(http_proxy_host)->entry); label=gtk_label_new(_("port")); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),3); gtk_box_pack_start(GTK_BOX(hbox),http_proxy_port,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,0,0); http_proxy_user_check=gtk_check_button_new_with_label(_("need password")); g_signal_connect(G_OBJECT(http_proxy_user_check),"clicked",G_CALLBACK(proxy_toggle_pass_http),this); gtk_box_pack_start(GTK_BOX(vbox),http_proxy_user_check,FALSE,0,0); http_proxy_user=my_gtk_combo_new(ALL_HISTORIES[USER_HISTORY]); gtk_widget_set_size_request(http_proxy_user,100,-1); label=gtk_label_new(_("username")); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),3); gtk_box_pack_start(GTK_BOX(hbox),http_proxy_user,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,0,0); if (CFG.REMEMBER_PASS) http_proxy_pass=my_gtk_combo_new(ALL_HISTORIES[PASS_HISTORY]); else{ http_proxy_pass=gtk_entry_new(); gtk_entry_set_visibility(GTK_ENTRY(http_proxy_pass),FALSE); }; gtk_widget_set_size_request(http_proxy_pass,100,-1); label=gtk_label_new(_("password")); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),3); gtk_box_pack_start(GTK_BOX(hbox),http_proxy_pass,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,0,0);/* SOCKS settings */ use_socks=gtk_check_button_new_with_label(_("Use SOCKS5 proxy")); g_signal_connect(G_OBJECT(use_socks),"clicked", G_CALLBACK(proxy_toggle_socks),this); gtk_box_pack_start(GTK_BOX(vbox_temp),use_socks,FALSE,0,0); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),5); label=gtk_label_new(_("host")); socks_host=my_gtk_combo_new(ALL_HISTORIES[PROXY_HISTORY]); g_signal_connect(G_OBJECT (GTK_COMBO(socks_host)->entry), "changed", G_CALLBACK(_socks_host_changed_), this); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),socks_host,FALSE,0,0); label=gtk_label_new(_("port")); socks_port=my_gtk_entry_new_with_max_length(5,0); g_signal_connect (G_OBJECT (socks_port), "changed", G_CALLBACK(_proxy_port_changed_), GTK_COMBO(socks_host)->entry); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),socks_port,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox_temp),hbox,FALSE,0,0); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),5); label=gtk_label_new(_("username")); socks_user=gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox),socks_user,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,0,0); gtk_box_pack_start(GTK_BOX(vbox_temp),hbox,FALSE,0,0); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),5); label=gtk_label_new(_("password")); socks_pass=gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox),socks_pass,FALSE,0,0); gtk_box_pack_start(GTK_BOX(hbox),labe
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?