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

📄 preferences.cpp

📁 非常出名开源客户端下载的程序emule
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	prefs->m_bircacceptlinks=ini.GetBool("IRCAcceptLinks", false);
	prefs->m_bircignoreinfomessage=ini.GetBool("IRCIgnoreInfoMessage", false);
	prefs->m_bircignoreemuleprotoinfomessage=ini.GetBool("IRCIgnoreEmuleProtoInfoMessage", true);
	prefs->smartidcheck=ini.GetBool("SmartIdCheck",true);
	prefs->m_bVerbose=ini.GetBool("Verbose",false);
	prefs->m_bpreviewprio=ini.GetBool("PreviewPrio",false);
	prefs->m_bupdatequeuelist=ini.GetBool("UpdateQueueListPref",false);
	prefs->m_bmanualhighprio=ini.GetBool("ManualHighPrio",false);
	prefs->m_btransferfullchunks=ini.GetBool("FullChunkTransfers",true);
	prefs->m_bstartnextfile=ini.GetBool("StartNextFile",false);
	prefs->m_bshowoverhead=ini.GetBool("ShowOverhead",false);
	prefs->moviePreviewBackup=ini.GetBool("VideoPreviewBackupped",true);
	prefs->m_iFileBufferSize=ini.GetInt("FileBufferSizePref",16);
	prefs->m_iQueueSize=ini.GetInt("QueueSizePref",50);
	prefs->versioncheckdays=ini.GetInt("Check4NewVersionDelay",5);
	prefs->m_bDAP=ini.GetBool("DAPPref",true);
	prefs->m_bUAP=ini.GetBool("UAPPref",true);
	prefs->indicateratings=ini.GetBool("IndicateRatings",true);
	prefs->showAllNotCats=ini.GetBool("ShowAllNotCats",false);
	prefs->watchclipboard=ini.GetBool("WatchClipboard4ED2kFilelinks",false);
	prefs->log2disk=ini.GetBool("SaveLogToDisk",false);
	prefs->debug2disk=ini.GetBool("SaveDebugToDisk",false);

	prefs->versioncheckLastAutomatic=ini.GetInt("VersionCheckLastAutomatic",0);
	prefs->m_bDisableKnownClientList=ini.GetInt("DisableKnownClientList",false);
	prefs->m_bDisableQueueList=ini.GetInt("DisableQueueList",false);
	prefs->m_bCreditSystem=ini.GetInt("UseCreditSystem",true);
	prefs->scheduler=ini.GetBool("EnableScheduler",false);
	prefs->msgonlyfriends=ini.GetBool("MessagesFromFriendsOnly",false);
	prefs->msgsecure=ini.GetBool("MessageFromValidSourcesOnly",true);
	prefs->maxmsgsessions=ini.GetInt("MaxMessageSessions",50);

	sprintf(prefs->TxtEditor,"%s",ini.GetString("TxtEditor","notepad.exe"));
	sprintf(prefs->VideoPlayer,"%s",ini.GetString("VideoPlayer",""));

	sprintf(prefs->messageFilter,"%s",ini.GetString("MessageFilter","Your client has an infinite queue"));
	sprintf(prefs->commentFilter,"%s",ini.GetString("CommentFilter","http://"));
	
	//if (prefs->maxGraphDownloadRate<prefs->maxdownload) prefs->maxdownload=UNLIMITED;
	//if (prefs->maxGraphUploadRate<prefs->maxupload) prefs->maxupload=UNLIMITED;

	ini.SerGet(true, prefs->downloadColumnWidths,
		ELEMENT_COUNT(prefs->downloadColumnWidths), "DownloadColumnWidths");
	ini.SerGet(true, prefs->downloadColumnHidden,
		ELEMENT_COUNT(prefs->downloadColumnHidden), "DownloadColumnHidden");
	ini.SerGet(true, prefs->downloadColumnOrder,
		ELEMENT_COUNT(prefs->downloadColumnOrder), "DownloadColumnOrder");
	ini.SerGet(true, prefs->uploadColumnWidths,
		ELEMENT_COUNT(prefs->uploadColumnWidths), "UploadColumnWidths");
	ini.SerGet(true, prefs->uploadColumnHidden,
		ELEMENT_COUNT(prefs->uploadColumnHidden), "UploadColumnHidden");
	ini.SerGet(true, prefs->uploadColumnOrder,
		ELEMENT_COUNT(prefs->uploadColumnOrder), "UploadColumnOrder");
	ini.SerGet(true, prefs->queueColumnWidths,
		ELEMENT_COUNT(prefs->queueColumnWidths), "QueueColumnWidths");
	ini.SerGet(true, prefs->queueColumnHidden,
		ELEMENT_COUNT(prefs->queueColumnHidden), "QueueColumnHidden");
	ini.SerGet(true, prefs->queueColumnOrder,
		ELEMENT_COUNT(prefs->queueColumnOrder), "QueueColumnOrder");
	ini.SerGet(true, prefs->searchColumnWidths,
		ELEMENT_COUNT(prefs->searchColumnWidths), "SearchColumnWidths");
	ini.SerGet(true, prefs->searchColumnHidden,
		ELEMENT_COUNT(prefs->searchColumnHidden), "SearchColumnHidden");
	ini.SerGet(true, prefs->searchColumnOrder,
		ELEMENT_COUNT(prefs->searchColumnOrder), "SearchColumnOrder");
	ini.SerGet(true, prefs->sharedColumnWidths,
		ELEMENT_COUNT(prefs->sharedColumnWidths), "SharedColumnWidths");
	ini.SerGet(true, prefs->sharedColumnHidden,
		ELEMENT_COUNT(prefs->sharedColumnHidden), "SharedColumnHidden");
	ini.SerGet(true, prefs->sharedColumnOrder,
		ELEMENT_COUNT(prefs->sharedColumnOrder), "SharedColumnOrder");
	ini.SerGet(true, prefs->serverColumnWidths,
		ELEMENT_COUNT(prefs->serverColumnWidths), "ServerColumnWidths");
	ini.SerGet(true, prefs->serverColumnHidden,
		ELEMENT_COUNT(prefs->serverColumnHidden), "ServerColumnHidden");
	ini.SerGet(true, prefs->serverColumnOrder,
		ELEMENT_COUNT(prefs->serverColumnOrder), "ServerColumnOrder");
	ini.SerGet(true, prefs->clientListColumnWidths,
		ELEMENT_COUNT(prefs->clientListColumnWidths), "ClientListColumnWidths");
	ini.SerGet(true, prefs->clientListColumnHidden,
		ELEMENT_COUNT(prefs->clientListColumnHidden), "ClientListColumnHidden");
	ini.SerGet(true, prefs->clientListColumnOrder,
		ELEMENT_COUNT(prefs->clientListColumnOrder), "ClientListColumnOrder");

	// Barry - Provide a mechanism for all tables to store/retrieve sort order
	prefs->tableSortItemDownload = ini.GetInt("TableSortItemDownload", 0);
	prefs->tableSortItemUpload = ini.GetInt("TableSortItemUpload", 0);
	prefs->tableSortItemQueue = ini.GetInt("TableSortItemQueue", 0);
	prefs->tableSortItemSearch = ini.GetInt("TableSortItemSearch", 0);
	prefs->tableSortItemShared = ini.GetInt("TableSortItemShared", 0);
	prefs->tableSortItemServer = ini.GetInt("TableSortItemServer", 0);
	prefs->tableSortItemClientList = ini.GetInt("TableSortItemClientList", 0);
	prefs->tableSortAscendingDownload = ini.GetBool("TableSortAscendingDownload", true);
	prefs->tableSortAscendingUpload = ini.GetBool("TableSortAscendingUpload", true);
	prefs->tableSortAscendingQueue = ini.GetBool("TableSortAscendingQueue", true);
	prefs->tableSortAscendingSearch = ini.GetBool("TableSortAscendingSearch", true);
	prefs->tableSortAscendingShared = ini.GetBool("TableSortAscendingShared", true);
	prefs->tableSortAscendingServer = ini.GetBool("TableSortAscendingServer", true);
	prefs->tableSortAscendingClientList = ini.GetBool("TableSortAscendingClientList", true);

	if (prefs->statsAverageMinutes<1) prefs->statsAverageMinutes=5;

	CString buffer2;
	for (int i=0;i<15;i++) {
		buffer2.Format("StatColor%i",i);
		sprintf(buffer,ini.GetString(buffer2,"0"));
		prefs->statcolors[i]=_atoi64(buffer);
		if (prefs->statcolors[i]==0) {ResetStatsColor(i);}
	}

	sprintf(buffer,ini.GetString("TotalDownloadedBytes",0,"Statistics"));
	prefs->totalDownloadedBytes=_atoi64(buffer);

	sprintf(buffer,ini.GetString("TotalUploadedBytes",0,"Statistics"));
	prefs->totalUploadedBytes=_atoi64(buffer);

	// Web Server
	sprintf(prefs->m_sWebPassword,"%s",ini.GetString("Password", "","WebServer"));
	sprintf(prefs->m_sWebLowPassword,"%s",ini.GetString("PasswordLow", ""));
	prefs->m_nWebPort=ini.GetInt("Port", 4711);
	prefs->m_bWebEnabled=ini.GetBool("Enabled", false);
	prefs->m_bWebUseGzip=ini.GetBool("UseGzip", true);
	prefs->m_bWebLowEnabled=ini.GetBool("UseLowRightsUser", false);
	prefs->m_nWebPageRefresh=ini.GetInt("PageRefreshTime", 120);
	sprintf(prefs->m_sWebResDir,"%s",ini.GetString("RessourcesPath","http://www.emule-project.net/files/res/"));

	prefs->dontcompressavi=ini.GetBool("DontCompressAvi",false);

	LoadCats();

	SetLanguage();
}

void CPreferences::LoadCats() {
	CString ixStr,catinif,cat_a,cat_b,cat_c;
	char buffer[100];

	catinif.Format("%sCategory.ini",appdir);

	// default cat
	Category_Struct* newcat=new Category_Struct();
	sprintf(newcat->title,"");
	sprintf(newcat->incomingpath,"");
	sprintf(newcat->comment,"");
	newcat->color=0;
	AddCat(newcat);

	if (!PathFileExists(catinif)) return;

	CIni catini( catinif, "Category" );
	int max=catini.GetInt("Count",0,"General");

	for (int ix=1;ix<=max;ix++){
		ixStr.Format("Cat#%i",ix);

		Category_Struct* newcat=new Category_Struct();
		sprintf(newcat->title,catini.GetString("Title","",ixStr));
		sprintf(newcat->incomingpath,catini.GetString("Incoming","",ixStr));
		MakeFoldername(newcat->incomingpath);
		sprintf(newcat->comment,catini.GetString("Comment","",ixStr));
		
		sprintf(buffer,catini.GetString("Color","0",ixStr));
		newcat->color=_atoi64(buffer);

		AddCat(newcat);
		if (!PathFileExists(newcat->incomingpath)) ::CreateDirectory(newcat->incomingpath,0);
	}
}

WORD CPreferences::GetWindowsVersion(){
	static bWinVerAlreadyDetected = false;
	if(!bWinVerAlreadyDetected)
	{	
		bWinVerAlreadyDetected = true;
		m_wWinVer = DetectWinVersion();	
	}	
	return m_wWinVer;
}

uint16 CPreferences::GetDefaultMaxConperFive(){
	switch (GetWindowsVersion()){
		case _WINVER_98_:
			return 5;
		case _WINVER_95_:	
		case _WINVER_ME_:
			return MAXCON5WIN9X;
		case _WINVER_2K_:
		case _WINVER_XP_:
			return MAXCONPER5SEC;
		default:
			return MAXCONPER5SEC;
	}
}

// Barry - Provide a mechanism for all tables to store/retrieve sort order
int CPreferences::GetColumnSortItem(Table t) const
{
	switch(t) 
	{
		case tableDownload:
			return prefs->tableSortItemDownload;
		case tableUpload:
			return prefs->tableSortItemUpload;
		case tableQueue:
			return prefs->tableSortItemQueue;
		case tableSearch:
			return prefs->tableSortItemSearch;
		case tableShared:
			return prefs->tableSortItemShared;
		case tableServer:
			return prefs->tableSortItemServer;
		case tableClientList:
			return prefs->tableSortItemClientList;
	}
	return 0;
}

// Barry - Provide a mechanism for all tables to store/retrieve sort order
bool CPreferences::GetColumnSortAscending(Table t) const
{
	switch(t) 
	{
		case tableDownload:
			return prefs->tableSortAscendingDownload;
		case tableUpload:
			return prefs->tableSortAscendingUpload;
		case tableQueue:
			return prefs->tableSortAscendingQueue;
		case tableSearch:
			return prefs->tableSortAscendingSearch;
		case tableShared:
			return prefs->tableSortAscendingShared;
		case tableServer:
			return prefs->tableSortAscendingServer;
		case tableClientList:
			return prefs->tableSortAscendingClientList;
	}
	return true;
}

// Barry - Provide a mechanism for all tables to store/retrieve sort order
void CPreferences::SetColumnSortItem(Table t, int sortItem)
{
	switch(t) 
	{
		case tableDownload:
			prefs->tableSortItemDownload = sortItem;
			break;
		case tableUpload:
			prefs->tableSortItemUpload = sortItem;
			break;
		case tableQueue:
			prefs->tableSortItemQueue = sortItem;
			break;
		case tableSearch:
			prefs->tableSortItemSearch = sortItem;
			break;
		case tableShared:
			prefs->tableSortItemShared = sortItem;
			break;
		case tableServer:
			prefs->tableSortItemServer = sortItem;
			break;
		case tableClientList:
			prefs->tableSortItemClientList = sortItem;
			break;
	}
}

// Barry - Provide a mechanism for all tables to store/retrieve sort order
void CPreferences::SetColumnSortAscending(Table t, bool sortAscending)
{
	switch(t) 
	{
		case tableDownload:
			prefs->tableSortAscendingDownload = sortAscending;
			break;
		case tableUpload:
			prefs->tableSortAscendingUpload = sortAscending;
			break;
		case tableQueue:
			prefs->tableSortAscendingQueue = sortAscending;
			break;
		case tableSearch:
			prefs->tableSortAscendingSearch = sortAscending;
			break;
		case tableShared:
			prefs->tableSortAscendingShared = sortAscending;
			break;
		case tableServer:
			prefs->tableSortAscendingServer = sortAscending;
			break;
		case tableClientList:
			prefs->tableSortAscendingClientList = sortAscending;
			break;
	}
}

void CPreferences::SetLanguage() {
	switch(prefs->languageID) {
		// read from ini and supported by the program?
		case MAKELANGID(LANG_ENGLISH,SUBLANG_DEFAULT):setlocale( LC_ALL, "english");break;
		case MAKELANGID(LANG_GERMAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "german");break;
		case MAKELANGID(LANG_FRENCH,SUBLANG_DEFAULT):setlocale( LC_ALL, "french");break;
		case MAKELANGID(LANG_DANISH,SUBLANG_DEFAULT):setlocale( LC_ALL, "danish");break;
		case MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH):setlocale( LC_ALL, "spanish");break;
		case MAKELANGID(LANG_DUTCH,SUBLANG_DEFAULT):setlocale( LC_ALL, "dutch");break;
		case MAKELANGID(LANG_RUSSIAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "russian");break;
		case MAKELANGID(LANG_SLOVENIAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "");break;
		case MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED):setlocale( LC_ALL, "chs");break;
		case MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_TRADITIONAL):setlocale( LC_ALL, "cht");break;
		case MAKELANGID(LANG_LITHUANIAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "");break;
		case MAKELANGID(LANG_POLISH,SUBLANG_DEFAULT):setlocale( LC_ALL, "polish");break;
		case MAKELANGID(LANG_KOREAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "korean");break;
		case MAKELANGID(LANG_PORTUGUESE,SUBLANG_PORTUGUESE_BRAZILIAN):setlocale( LC_ALL, "ptb");break;
		case MAKELANGID(LANG_PORTUGUESE,SUBLANG_PORTUGUESE):setlocale( LC_ALL, "ptg");break;
		case MAKELANGID(LANG_SWEDISH,SUBLANG_DEFAULT):setlocale( LC_ALL, "swedish");break;
		case MAKELANGID(LANG_NORWEGIAN,SUBLANG_NORWEGIAN_BOKMAL):setlocale( LC_ALL, "norwegian");break;
		case MAKELANGID(LANG_FINNISH,SUBLANG_DEFAULT):setlocale( LC_ALL, "finnish");break;
		case MAKELANGID(LANG_ITALIAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "italian");break;
		case MAKELANGID(LANG_BULGARIAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "hun");break;
		case MAKELANGID(LANG_CATALAN,SUBLANG_DEFAULT):setlocale( LC_ALL, "");break;
		case MAKELANGID(LANG_GREEK,SUBLANG_DEFAULT):setlocale( LC_ALL, "greek");break;
		case MAKELANGID(LANG_LATVIAN ,SUBLANG_DEFAULT):setlocale( LC_ALL, "");break;
		case MAKELANGID(LANG_TURKISH ,SUBLANG_DEFAULT):setlocale( LC_ALL, "turkish");break;
		case MAKELANGID(LANG_HUNGARIAN ,SUBLANG_DEFAULT):setlocale( LC_ALL, "hungarian");break;
		case MAKELANGID(LANG_ESTONIAN ,SUBLANG_DEFAULT):setlocale( LC_ALL, "");break;
		case MAKELANGID(LANG_ARABIC ,SUBLANG_ARABIC_UAE):setlocale( LC_ALL, "");break;
		default:{
			uint8 nLocalLang = ::GetThreadLocale();
			
            CString strLng1 = GetResString(IDS_MB_LANGUAGEINFO,MAKELANGID(LANG_ENGLISH,SUBLANG_DEFAULT));
			CString strLng2 = "";
			switch(nLocalLang) {
				case	LANG_GREEK:
				case 	LANG_GERMAN:
				case 	LANG_FRENCH:
				case 	LANG_DANISH:
				case 	LANG_SPANISH:
				case 	LANG_DUTCH:
				case 	LANG_RUSSIAN:
				case 	LANG_SLOVENIAN:
				case 	LANG_CHINESE:
				case 	LANG_LITHUANIAN:
				case 	LANG_NORWEGIAN:
				case 	LANG_POLISH:
				case 	LANG_KOREAN:
				case 	LANG_PORTUGUESE:
				case 	LANG_SWEDISH:
				case	LANG_FINNISH:
				case	LANG_ITALIAN:
				case	LANG_BULGARIAN:
				case	LANG_CATALAN:
				case	LANG_LATVIAN:
				case	LANG_TURKISH:
				case	LANG_HUNGARIAN:
				case	LANG_ESTONIAN:
				case	LANG_ARABIC:
				{
					prefs->languageID =  MAKELANGID(nLocalLang,SUBLANG_DEFAULT);
					SetThreadLocale(prefs->languageID);
					strLng2 = GetResString(IDS_MB_LANGUAGEINFO,prefs->languageID);
					break;
				}
				default:
					prefs->languageID = MAKELANGID(LANG_ENGLISH,SUBLANG_DEFAULT);
					SetThreadLocale(prefs->languageID);
			}

			CString strMessage = strLng1 + CString("\n\n") + strLng2;;
			MessageBox(0, strMessage.GetBuffer(),"Language",64);
		}
	}
	SetThreadLocale(prefs->languageID);

	// if loading a string fails, set language to English
	if (GetResString(IDS_MB_LANGUAGEINFO,prefs->languageID).GetLength()==0) {
		prefs->languageID = MAKELANGID(LANG_ENGLISH,SUBLANG_DEFAULT);
		SetThreadLocale(prefs->languageID);
	}
}

void CPreferences::RemoveCat(int index)	{
	if (index>=0 && index<catMap.GetCount()) { 
		Category_Struct* delcat;
		delcat=catMap.GetAt(index); 
		catMap.RemoveAt(index); 
		delete delcat;
	}
}

⌨️ 快捷键说明

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