📄 preferences.cpp
字号:
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 + -