⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list.cc

📁 一个功能比较强的下载软件
💻 CC
📖 第 1 页 / 共 4 页
字号:
	switch(act-100){	case MM_QUEUE_NQ:		D4X_QVT->create_init();		break;	case MM_QUEUE_NSQ:		D4X_QVT->create_init(1);		break;	case MM_QUEUE_REMOVE:		D4X_QVT->delete_queue();		break;	case MM_QUEUE_PROP:		D4X_QVT->prefs_init();		break;	};};void init_main_menu() {#include "pixmaps/logmini.xpm"#include "pixmaps/stopmini.xpm"#include "pixmaps/delmini.xpm"#include "pixmaps/runmini.xpm"	d4x_load_accelerators();	GtkItemFactoryEntry menu_items[] = {		{_(main_menu_inames[MM_FILE]),		(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Branch>"},		{_(main_menu_inames[MM_FILE_SAVE]),	main_menu_kb[MM_FILE_SAVE],	(GtkItemFactoryCallback)init_save_list,			0, (gchar *)NULL},		{_(main_menu_inames[MM_FILE_LOAD]),	main_menu_kb[MM_FILE_LOAD],	(GtkItemFactoryCallback)init_load_list,			0, (gchar *)NULL},		{_(main_menu_inames[MM_FILE_TXT]),	main_menu_kb[MM_FILE_TXT],	(GtkItemFactoryCallback)init_load_txt_list,	0, (gchar *)NULL},		{_(main_menu_inames[MM_FILE_SEP]),	(gchar *)NULL,  (GtkItemFactoryCallback)NULL,	0, "<Separator>"},		{_(main_menu_inames[MM_FILE_NEW]),	main_menu_kb[MM_FILE_NEW],	(GtkItemFactoryCallback)init_add_window,		0, (gchar *)NULL},		{_(main_menu_inames[MM_FILE_PASTE]),	main_menu_kb[MM_FILE_PASTE],	(GtkItemFactoryCallback)init_add_clipboard_window,	0, (gchar *)NULL},		{_(main_menu_inames[MM_FILE_AUTO]),	main_menu_kb[MM_FILE_AUTO],	(GtkItemFactoryCallback)d4x_automated_add,	0, (gchar *)NULL},		{_(main_menu_inames[MM_FILE_SEP]),	(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Separator>"},		{_(main_menu_inames[MM_FILE_EXIT]),	main_menu_kb[MM_FILE_EXIT],	(GtkItemFactoryCallback)ask_exit,			0, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD]),     	(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Branch>"},		{_(main_menu_inames[MM_DOWNLOAD_LOG]), 	main_menu_kb[MM_DOWNLOAD_LOG],	(GtkItemFactoryCallback)mmenu_open_logs,	100+MM_DOWNLOAD_LOG, "<ImageItem>",logmini_xpm},		{_(main_menu_inames[MM_DOWNLOAD_STOP]),	main_menu_kb[MM_DOWNLOAD_STOP],	(GtkItemFactoryCallback)stop_downloads,		100+MM_DOWNLOAD_STOP,"<ImageItem>",stopmini_xpm},		{_(main_menu_inames[MM_DOWNLOAD_EDIT]),	main_menu_kb[MM_DOWNLOAD_EDIT],	(GtkItemFactoryCallback)open_edit_for_selected,	100+MM_DOWNLOAD_EDIT, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD_DEL]),	main_menu_kb[MM_DOWNLOAD_DEL],	(GtkItemFactoryCallback)ask_delete_download,	100+MM_DOWNLOAD_DEL, "<ImageItem>",delmini_xpm},		{_(main_menu_inames[MM_DOWNLOAD_RUN]),	main_menu_kb[MM_DOWNLOAD_RUN],	(GtkItemFactoryCallback)continue_downloads,	100+MM_DOWNLOAD_RUN, "<ImageItem>",runmini_xpm},		{_(main_menu_inames[MM_DOWNLOAD_SEP]),(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Separator>"},		{_(main_menu_inames[MM_DOWNLOAD_DEL_C]),main_menu_kb[MM_DOWNLOAD_DEL_C],	(GtkItemFactoryCallback)ask_delete_completed_downloads,	0, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD_DEL_F]),main_menu_kb[MM_DOWNLOAD_DEL_F],	(GtkItemFactoryCallback)ask_delete_fataled_downloads,	0, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD_RERUN]),main_menu_kb[MM_DOWNLOAD_RERUN],	(GtkItemFactoryCallback)_rerun_failed_downloads,	0, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD_SEP]),(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Separator>"},		{_(main_menu_inames[MM_DOWNLOAD_PROTECT]),main_menu_kb[MM_DOWNLOAD_PROTECT],	(GtkItemFactoryCallback)lm_inv_protect_flag,	100+MM_DOWNLOAD_PROTECT, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD_SEP]),(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Separator>"},		{_(main_menu_inames[MM_DOWNLOAD_UNSELECT_ALL]),main_menu_kb[MM_DOWNLOAD_UNSELECT_ALL], (GtkItemFactoryCallback)mmenu_unselect_all,	100+MM_DOWNLOAD_UNSELECT_ALL, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD_SELECT_ALL]),main_menu_kb[MM_DOWNLOAD_SELECT_ALL], (GtkItemFactoryCallback)mmenu_select_all,	100+MM_DOWNLOAD_SELECT_ALL, (gchar *)NULL},		{_(main_menu_inames[MM_DOWNLOAD_INVERT]),main_menu_kb[MM_DOWNLOAD_INVERT], (GtkItemFactoryCallback)mmenu_invert_selection,	100+MM_DOWNLOAD_INVERT, (gchar *)NULL},		{_(main_menu_inames[MM_QUEUE]),	(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Branch>"},		{_(main_menu_inames[MM_QUEUE_NQ]),main_menu_kb[MM_QUEUE_NQ],	(GtkItemFactoryCallback)_mm_queue_menu_,		100+MM_QUEUE_NQ, (gchar *)NULL},		{_(main_menu_inames[MM_QUEUE_NSQ]),main_menu_kb[MM_QUEUE_NSQ],	(GtkItemFactoryCallback)_mm_queue_menu_,		100+MM_QUEUE_NSQ, (gchar *)NULL},		{_(main_menu_inames[MM_QUEUE_REMOVE]),main_menu_kb[MM_QUEUE_REMOVE],	(GtkItemFactoryCallback)_mm_queue_menu_,	100+MM_QUEUE_REMOVE, (gchar *)NULL},		{_(main_menu_inames[MM_QUEUE_PROP]),main_menu_kb[MM_QUEUE_PROP],	(GtkItemFactoryCallback)_mm_queue_menu_,	100+MM_QUEUE_PROP, (gchar *)NULL},		{_(main_menu_inames[MM_OPTIONS]),	(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Branch>"},		{_(main_menu_inames[MM_OPTIONS_SCHEDULER]),main_menu_kb[MM_OPTIONS_SCHEDULER],	(GtkItemFactoryCallback)d4x_scheduler_init,		0, (gchar *)NULL},		{_(main_menu_inames[MM_OPTIONS_PASSWORDS]),main_menu_kb[MM_OPTIONS_PASSWORDS],	(GtkItemFactoryCallback)open_passwords_window,		0, (gchar *)NULL},		{_(main_menu_inames[MM_OPTIONS_COMMON]),main_menu_kb[MM_OPTIONS_COMMON],	(GtkItemFactoryCallback)d4x_prefs_init,			0, (gchar *)NULL},		{_(main_menu_inames[MM_OPTIONS_FILTERS]),main_menu_kb[MM_OPTIONS_FILTERS],	(GtkItemFactoryCallback)d4x_filters_window_init,			0, (gchar *)NULL},		{_(main_menu_inames[MM_OPTIONS_SPEED]),	(gchar*)NULL,	(GtkItemFactoryCallback)NULL,	0, "<Branch>"},		{_(main_menu_inames[MM_OPTIONS_SPEED_1]),main_menu_kb[MM_OPTIONS_SPEED_1],	(GtkItemFactoryCallback)main_menu_speed_calback,	1, "<RadioItem>"},		{_(main_menu_inames[MM_OPTIONS_SPEED_2]),main_menu_kb[MM_OPTIONS_SPEED_2],	(GtkItemFactoryCallback)main_menu_speed_calback,	2, _(main_menu_inames[MM_OPTIONS_SPEED_1])},		{_(main_menu_inames[MM_OPTIONS_SPEED_3]),main_menu_kb[MM_OPTIONS_SPEED_3],	(GtkItemFactoryCallback)main_menu_speed_calback,	3, _(main_menu_inames[MM_OPTIONS_SPEED_2])},		{_(main_menu_inames[MM_OPTIONS_BUTTONS]),main_menu_kb[MM_OPTIONS_BUTTONS], (GtkItemFactoryCallback)buttons_configure,	0, (gchar *)NULL},		{_(main_menu_inames[MM_HELP]),		(gchar *)NULL,	(GtkItemFactoryCallback)NULL,	0, "<LastBranch>"},		{_(main_menu_inames[MM_HELP_ABOUT]),	main_menu_kb[MM_HELP_ABOUT],	(GtkItemFactoryCallback)init_about_window,		0, (gchar *)NULL},	};	int nmenu_items = sizeof(menu_items) / sizeof(menu_items[0]);	GtkAccelGroup *accel_group = gtk_accel_group_new();	main_menu_item_factory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>",accel_group);	gtk_item_factory_create_items(main_menu_item_factory, nmenu_items, menu_items, NULL);	init_load_accelerators();	MainMenu= gtk_item_factory_get_widget(main_menu_item_factory, "<main>");	_gtk_accel_group_attach(accel_group,G_OBJECT(MainWindow));	g_signal_connect(G_OBJECT (MainMenu),			   "button_press_event",			   G_CALLBACK (main_menu_prepare),			   NULL);	/* to avoid losing accelerators key */	g_signal_connect(G_OBJECT (MainMenu),			   "deactivate",			   G_CALLBACK (main_menu_enable_all),			   NULL);	main_menu_speed_prepare();	for (int i=0;i<=MM_HELP_ABOUT;i++)		if (main_menu_kb[i]){			delete[] main_menu_kb[i];			main_menu_kb[i]=NULL;		};};void main_menu_completed_empty(){	GtkWidget *menu_item;	menu_item=gtk_item_factory_get_widget(main_menu_item_factory,_(main_menu_inames[MM_DOWNLOAD_DEL_C]));	if (menu_item)		gtk_widget_set_sensitive(menu_item,FALSE);	gtk_widget_set_sensitive(ListMenuArray[LM_DELC],FALSE);	gtk_widget_set_sensitive(buttons_array[BUTTON_DEL_COMPLETED],FALSE);	dnd_trash_set_del_completed(FALSE);};void main_menu_completed_nonempty(){	GtkWidget *menu_item;	menu_item=gtk_item_factory_get_widget(main_menu_item_factory,_(main_menu_inames[MM_DOWNLOAD_DEL_C]));	if (menu_item)		gtk_widget_set_sensitive(menu_item,TRUE);	gtk_widget_set_sensitive(ListMenuArray[LM_DELC],TRUE);	gtk_widget_set_sensitive(buttons_array[BUTTON_DEL_COMPLETED],TRUE);	dnd_trash_set_del_completed(TRUE);};void main_menu_failed_empty(){	GtkWidget *menu_item;	menu_item=gtk_item_factory_get_widget(main_menu_item_factory,_(main_menu_inames[MM_DOWNLOAD_DEL_F]));	if (menu_item)		gtk_widget_set_sensitive(menu_item,FALSE);	menu_item=gtk_item_factory_get_widget(main_menu_item_factory,_(main_menu_inames[MM_DOWNLOAD_RERUN]));	if (menu_item)		gtk_widget_set_sensitive(menu_item,FALSE);	gtk_widget_set_sensitive(ListMenuArray[LM_DELF],FALSE);};void main_menu_failed_nonempty(){	GtkWidget *menu_item;	menu_item=gtk_item_factory_get_widget(main_menu_item_factory,_(main_menu_inames[MM_DOWNLOAD_DEL_F]));	if (menu_item)		gtk_widget_set_sensitive(menu_item,TRUE);	menu_item=gtk_item_factory_get_widget(main_menu_item_factory,_(main_menu_inames[MM_DOWNLOAD_RERUN]));	if (menu_item)		gtk_widget_set_sensitive(menu_item,TRUE);	gtk_widget_set_sensitive(ListMenuArray[LM_DELF],TRUE);};gint main_menu_prepare(){	GtkWidget *menu_item;	if (D4X_QUEUE->qv.last_selected){		for (int i=MM_DOWNLOAD_LOG;i<=MM_DOWNLOAD_RUN;i++){			menu_item=gtk_item_factory_get_item_by_action(main_menu_item_factory,								      i+100);			if (menu_item) gtk_widget_set_sensitive(menu_item,TRUE);		};		menu_item=gtk_item_factory_get_item_by_action(main_menu_item_factory,							      MM_DOWNLOAD_PROTECT+100);		if (menu_item) gtk_widget_set_sensitive(menu_item,TRUE);	}else{		for (int i=MM_DOWNLOAD_LOG;i<=MM_DOWNLOAD_RUN;i++){			menu_item=gtk_item_factory_get_item_by_action(main_menu_item_factory,								      i+100);			if (menu_item) gtk_widget_set_sensitive(menu_item,FALSE);		};		menu_item=gtk_item_factory_get_item_by_action(main_menu_item_factory,							      MM_DOWNLOAD_PROTECT+100);		if (menu_item) gtk_widget_set_sensitive(menu_item,FALSE);	};	if (D4X_QUEUE->qv.rows()==0){		for (int i=MM_DOWNLOAD_UNSELECT_ALL;i<=MM_DOWNLOAD_INVERT;i++){			menu_item=gtk_item_factory_get_item_by_action(main_menu_item_factory,								      i+100);			if (menu_item) gtk_widget_set_sensitive(menu_item,FALSE);		};	}else{		for (int i=MM_DOWNLOAD_UNSELECT_ALL;i<=MM_DOWNLOAD_INVERT;i++){			menu_item=gtk_item_factory_get_item_by_action(main_menu_item_factory,								      i+100);			if (menu_item) gtk_widget_set_sensitive(menu_item,TRUE);		};	};	return FALSE;};static int _fd_kb_=-1;static void d4x_menuitem_foreach(GtkWidget *widget,gpointer data){	if (GTK_IS_ACCEL_LABEL (widget) && (GTK_ACCEL_LABEL (widget))->accel_string){		char *s=unparse_percents(skip_spaces((GTK_ACCEL_LABEL (widget))->accel_string));		f_wstr(_fd_kb_,s);		delete[] s;	};};static void d4x_save_kb(int menu){	char *name=copy_without_underscore(_(main_menu_inames[menu]));	GtkWidget *menu_item=gtk_item_factory_get_widget(main_menu_item_factory,name);	delete[] name;	if (menu_item){		f_wstr(_fd_kb_,"\t<");		f_wstr(_fd_kb_,main_menu_kbnames[menu]);		f_wchar(_fd_kb_,'>');		gtk_container_foreach(GTK_CONTAINER (menu_item),d4x_menuitem_foreach,NULL);		f_wstr(_fd_kb_,"</");		f_wstr(_fd_kb_,main_menu_kbnames[menu]);		f_wstr(_fd_kb_,">\n");	};};static void d4x_lap(tQueue *q,char *menu,int name){	char *s=sum_strings(menu," ",main_menu_kbnames[name],NULL);	d4xXmlObject *xml=d4x_xml_find_obj(q,s);	delete[] s;	if (xml){		s=xml->value.get();		if (s && strlen(s)){			int alt=0,ctrl=0,shift=0;			if (strstr(s,"Ctrl+")) ctrl=1;			if (strstr(s,"Alt+")) alt=1;			if (strstr(s,"Shft+")) shift=1;			char c[2]={0,0};			c[0]=s[strlen(s)-1];			main_menu_kb[name]=sum_strings(alt?"<alt>":"",ctrl?"<control>":"",shift?"<shift>":"",c,NULL);		};	};};void d4x_load_accelerators(){	for (int i=0;i<=MM_HELP_ABOUT;i++) main_menu_kb[i]=NULL;	char *path=sum_strings(HOME_VARIABLE,"/",CFG_DIR,"/keybinds.xml",NULL);	tQueue *q=d4x_xml_parse_file(path);	delete[] path;	if (q==NULL){		main_menu_kb[MM_FILE_SAVE]=copy_string("<control>S");		main_menu_kb[MM_FILE_LOAD]=copy_string("<control>L");		main_menu_kb[MM_FILE_TXT]=copy_string("<control><alt>L");		main_menu_kb[MM_FILE_NEW]=copy_string("<control>N");		main_menu_kb[MM_FILE_PASTE]=copy_string("<control>P");		main_menu_kb[MM_FILE_AUTO]=copy_string("<control><alt>A");		main_menu_kb[MM_FILE_EXIT]=copy_string("<alt>X");		main_menu_kb[MM_DOWNLOAD_STOP]=copy_string("<alt>S");		main_menu_kb[MM_DOWNLOAD_EDIT]=copy_string("<alt>E");		main_menu_kb[MM_DOWNLOAD_DEL]=copy_string("<alt>C");		main_menu_kb[MM_DOWNLOAD_RUN]=copy_string("<alt>A");		main_menu_kb[MM_DOWNLOAD_PROTECT]=copy_string("<alt><control>P");		main_menu_kb[MM_OPTIONS_COMMON]=copy_string("<control>C");		main_menu_kb[MM_OPTIONS_FILTERS]=copy_string("<control>F");	}else{		d4x_lap(q,"file",MM_FILE_SAVE);		d4x_lap(q,"file",MM_FILE_LOAD);		d4x_lap(q,"file",MM_FILE_TXT);		d4x_lap(q,"file",MM_FILE_NEW);		d4x_lap(q,"file",MM_FILE_PASTE);		d4x_lap(q,"file",MM_FILE_AUTO);		d4x_lap(q,"file",MM_FILE_EXIT);		d4x_lap(q,"download",MM_DOWNLOAD_LOG);		d4x_lap(q,"download",MM_DOWNLOAD_STOP);		d4x_lap(q,"download",MM_DOWNLOAD_EDIT);		d4x_lap(q,"download",MM_DOWNLOAD_DEL);		d4x_lap(q,"download",MM_DOWNLOAD_RUN);		d4x_lap(q,"download",MM_DOWNLOAD_DEL_C);		d4x_lap(q,"download",MM_DOWNLOAD_DEL_F);		d4x_lap(q,"download",MM_DOWNLOAD_RERUN);		d4x_lap(q,"download",MM_DOWNLOAD_PROTECT);		d4x_lap(q,"download",MM_DOWNLOAD_UNSELECT_ALL);		d4x_lap(q,"download",MM_DOWNLOAD_SELECT_ALL);		d4x_lap(q,"download",MM_DOWNLOAD_INVERT);		d4x_lap(q,"options",MM_OPTIONS_SCHEDULER);		d4x_lap(q,"options",MM_OPTIONS_PASSWORDS);		d4x_lap(q,"options",MM_OPTIONS_COMMON);		d4x_lap(q,"options",MM_OPTIONS_FILTERS);		d4x_lap(q,"options",MM_OPTIONS_SPEED_1);		d4x_lap(q,"options",MM_OPTIONS_SPEED_2);		d4x_lap(q,"options",MM_OPTIONS_SPEED_3);		d4x_lap(q,"options",MM_OPTIONS_BUTTONS);		d4x_lap(q,"options",MM_HELP_ABOUT);		delete(q);	};};void d4x_save_accelerators(){	char *path=sum_strings(HOME_VARIABLE,"/",CFG_DIR,"/keybinds.xml",NULL);	int fd=_fd_kb_=open(path,O_TRUNC | O_CREAT |O_RDWR,S_IRUSR | S_IWUSR);	delete[] path;	if (fd<0) return;	f_wstr(fd,"<file>\n");	d4x_save_kb(MM_FILE_SAVE);	d4x_save_kb(MM_FILE_LOAD);	d4x_save_kb(MM_FILE_TXT);	d4x_save_kb(MM_FILE_NEW);	d4x_save_kb(MM_FILE_PASTE);	d4x_save_kb(MM_FILE_AUTO);	d4x_save_kb(MM_FILE_EXIT);	f_wstr(fd,"</file>\n<download>\n");	d4x_save_kb(MM_DOWNLOAD_LOG);	d4x_save_kb(MM_DOWNLOAD_STOP);	d4x_save_kb(MM_DOWNLOAD_EDIT);	d4x_save_kb(MM_DOWNLOAD_DEL);	d4x_save_kb(MM_DOWNLOAD_RUN);	d4x_save_kb(MM_DOWNLOAD_DEL_C);	d4x_save_kb(MM_DOWNLOAD_DEL_F);	d4x_save_kb(MM_DOWNLOAD_RERUN);	d4x_save_kb(MM_DOWNLOAD_PROTECT);	d4x_save_kb(MM_DOWNLOAD_UNSELECT_ALL);	d4x_save_kb(MM_DOWNLOAD_SELECT_ALL);	d4x_save_kb(MM_DOWNLOAD_INVERT);	f_wstr(fd,"</download>\n<options>\n");	d4x_save_kb(MM_OPTIONS_SCHEDULER);	d4x_save_kb(MM_OPTIONS_PASSWORDS);	d4x_save_kb(MM_OPTIONS_COMMON);	d4x_save_kb(MM_OPTIONS_FILTERS);	d4x_save_kb(MM_OPTIONS_SPEED_1);	d4x_save_kb(MM_OPTIONS_SPEED_2);	d4x_save_kb(MM_OPTIONS_SPEED_3);	d4x_save_kb(MM_OPTIONS_BUTTONS);	f_wstr(fd,"</options>\n<help>\n");	d4x_save_kb(MM_HELP_ABOUT);	f_wstr(fd,"</help>\n");	close(fd);};void my_main_quit(...) {	if (CFG.WITHOUT_FACE==0){		CFG.HIDE_MAIN_WINDOW=!gdk_window_is_visible(MainWindow->window);		gtk_timeout_remove(ListTimer);		gtk_timeout_remove(LogsTimer);		gtk_timeout_remove(GraphTimer);		D4X_QUEUE->qv.get_adj();		CFG.CLIST_SHIFT=D4X_QUEUE->qv.current_shift;		d4x_save_accelerators();	};	save_list();	save_config();	aa.done();	if (CFG.WITHOUT_FACE==0){		dnd_trash_real_destroy();		if (list_for_adding){			/* free list item by item to avoid			   searching downloads in global tDB sructure			 */			tDownload *tmp=list_for_adding->last();			while (tmp){				list_for_adding->del(tmp);				delete(tmp);				tmp=list_for_adding->last();			};			delete(list_for_adding);		};		d4x_prefs_cancel();		destroy_about_window();		gtk_widget_destroy(MainWindow);		buttons_configure_close();		d4x_scheduler_close();		d4x_filters_window_destroy();		if (AskDelete) delete(AskDelete);		if (AskDeleteCompleted) delete(AskDeleteCompleted);		if (AskDeleteFataled) delete(AskDeleteFataled);		if (AskExit) delete(AskExit);		load_save_list_cancel();	};	for (int i=0;i<LAST_HISTORY;i++)		delete(ALL_HISTORIES[i]);	if (CFG.WITHOUT_FACE==0){		gtk_main_quit();	}else{		aa.run_after_quit();		var_free(&CFG);		exit(0);	};};static void _open_edit_foreach_(GtkTreeModel *model,GtkTreePath *path,				GtkTreeIter *iter,gpointer data){	GValue val={0,};	gtk_tree_model_get_value(model,iter,NOTHING_COL,&val);	tDownload *tmp=(tDownload *)g_value_peek_pointer(&val);	g_value_unset(&val);	init_edit_window(tmp);};void open_edit_for_selected(...) {	GtkTreeSelection *sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(D4X_QUEUE->qv.ListOfDownloads));	gtk_tree_selection_selected_foreach(sel,_open_edit_foreach_,NULL);};void del_completed_downloads(...) {	aa.del_completed();	if (AskDeleteCompleted) AskDeleteCompleted->done();};void del_fataled_downloads(...) {	aa.del_fataled();	if (AskDeleteFataled) AskDeleteFataled->done();};void stop_downloads(...) {	D4X_QUEUE->qv.stop_downloads();	prepare_buttons();	aa.try_to_run_wait(D4X_QUEUE);};static void _my_main_quit_ask_exit_(GtkWidget *widget,tConfirmedDialog *parent){	CFG.CONFIRM_EXIT=!(GTK_TOGGLE_BUTTON(parent->check)->active);	my_main_quit();};void ask_exit(...) {	if (CFG.CONFIRM_EXIT) {		if (!AskExit) AskExit=new tConfirmedDialog;		if (AskExit->init(_("Do you really want to quit?"),_("Quit?")))			g_signal_connect(G_OBJECT(AskExit->ok_button),"clicked",					   G_CALLBACK(_my_main_quit_ask_exit_),					   AskExit);		AskExit->set_modal(MainWindow);	} else		my_main_quit();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -