LRESULT CNewFolderDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	TRC(IDC_FOLDERNAMELABEL, "Название папки/альбома:");
	TRC(IDC_FOLDERDESCRLABEL, "Описание:");
	TRC(IDC_ACCESSTYPELABEL, "Доступ:");
	TRC(IDCANCEL, "Отмена");
	TRC(IDOK, "OK");
	
	
	DlgResize_Init();
	CenterWindow(GetParent());
	if(m_bCreateNewFolder)
		SetWindowText(TR("Новая папка (альбом)"));
	else
		SetWindowText(TR("Редактирование папки"));
	SetDlgItemText(IDC_FOLDERTITLEEDIT, Utf8ToWCstring(m_folder.title));
	CString text = Utf8ToWCstring(m_folder.summary);
	text.Replace(_T("\r"), _T(""));
	text.Replace(_T("\n"), _T("\r\n"));
	SetDlgItemText(IDC_FOLDERDESCREDIT, text);
	for(size_t i=0; i< m_accessTypeList.size(); i++)
	{
		SendDlgItemMessage(IDC_ACCESSTYPECOMBO, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR)Utf8ToWCstring(m_accessTypeList[i].c_str()));
	}
	SendDlgItemMessage(IDC_ACCESSTYPECOMBO, CB_SETCURSEL, m_folder.accessType);
	
	::SetFocus(GetDlgItem(IDC_FOLDERTITLEEDIT));
	return 0;  // Let the system set the focus
}
示例#2
0
LRESULT CLoginDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	CenterWindow(GetParent());

	LoginInfo li = serverProfile_.serverSettings().authData;

	SetWindowText(TR("Параметры авторизации"));
	TRC(IDC_LOGINLABEL, "Логин:");
	TRC(IDC_PASSWORDLABEL, "Пароль:");
	TRC(IDC_DOAUTH, "Выполнять авторизацию");
	TRC(IDC_DOLOGINLABEL, "Выполнить авторизацию...");
	TRC(IDCANCEL, "Отмена");
	TRC(IDC_DELETEACCOUNTLABEL, "Удалить аккаунт");

	HWND hWnd = GetDlgItem(IDC_ANIMATIONSTATIC);
	if (hWnd)
	{
		wndAnimation_.SubclassWindow(hWnd);
		if (wndAnimation_.Load(MAKEINTRESOURCE(IDR_PROGRESSGIF), _T("GIF")))
			wndAnimation_.Draw();
		wndAnimation_.ShowWindow(SW_HIDE);
	}

	doLoginLabel_.SubclassWindow(GetDlgItem(IDC_DOLOGINLABEL));
	doLoginLabel_.m_dwExtendedStyle |= HLINK_UNDERLINEHOVER | HLINK_COMMANDBUTTON; 
	doLoginLabel_.SetLabel(TR("Выполнить авторизацию..."));
	doLoginLabel_.m_clrLink = CSettings::DefaultLinkColor;
	doLoginLabel_.ShowWindow(serverSupportsBeforehandAuthorization_?SW_SHOW:SW_HIDE);

	CString deleteAccountLabelText;
	accountName_ = Utf8ToWCstring(li.Login);
	//deleteAccountLabelText.Format(R( "Удалить учетную запись \"%s\" из списка"), (LPCTSTR)accountName_);

	SetDlgItemText(IDC_LOGINEDIT, accountName_);
	SetDlgItemText(IDC_PASSWORDEDIT, Utf8ToWCstring(li.Password));
	SetDlgItemText(IDC_LOGINFRAME, Utf8ToWCstring(m_UploadEngine->Name));
	SendDlgItemMessage(IDC_DOAUTH, BM_SETCHECK, /*((li.DoAuth||createNew_)?BST_CHECKED:BST_UNCHECKED)*/true);
	::EnableWindow(GetDlgItem(IDC_DOAUTH),false);
	::EnableWindow(GetDlgItem(IDC_PASSWORDEDIT),m_UploadEngine->NeedPassword);
	::EnableWindow(GetDlgItem(IDC_PASSWORDLABEL),m_UploadEngine->NeedPassword);

	deleteAccountLabel_.SubclassWindow(GetDlgItem(IDC_DELETEACCOUNTLABEL));
	deleteAccountLabel_.m_dwExtendedStyle |= HLINK_UNDERLINEHOVER | HLINK_COMMANDBUTTON; 
//	deleteAccountLabel_.SetLabel(deleteAccountLabelText);
	deleteAccountLabel_.m_clrLink = CSettings::DefaultLinkColor;


	deleteAccountLabel_.ShowWindow((createNew_ || accountName_.IsEmpty()) ? SW_HIDE : SW_SHOW);

	
	OnClickedUseIeCookies(0, 0, 0, bHandled);
	::SetFocus(GetDlgItem(IDC_LOGINEDIT));
	return 0; 
}
示例#3
0
	bool CSettings::SaveAccounts(SimpleXmlNode root)
	{
		ServerSettingsMap::iterator it1;
		for (it1 = ServersSettings.begin(); it1 != ServersSettings.end(); ++it1)
		{
			std::map <std::string, ServerSettingsStruct>::iterator it;
			for (it = it1->second.begin(); it !=it1->second.end(); ++it)
			{
				ServerSettingsStruct & sss = it->second;
				if ( sss.isEmpty() ) {
					continue;
				}
				SimpleXmlNode serverNode = root.CreateChild("Server");
				
				serverNode.SetAttribute("Name", it1->first);

				std::map <std::string, std::string>::iterator param;
				for (param = it->second.params.begin(); param != sss.params.end(); ++param)
				{
					if (  param->first == "FolderID" || param->first == "FolderUrl" || param->first == "FolderTitle") {
						continue;
					}
					serverNode.SetAttribute("_" + param->first, param->second);
				}
				serverNode.SetAttributeBool("Auth", sss.authData.DoAuth);

	#if !defined  (IU_CLI) && !defined(IU_SHELLEXT)
				

				CEncodedPassword login(Utf8ToWCstring(sss.authData.Login));
				serverNode.SetAttribute("Login", WCstringToUtf8(login.toEncodedData()));

				CUploadEngineData* ued = _EngineList->byName(Utf8ToWCstring(it->first));
				if ( !ued || ued->NeedPassword ) { 
					CEncodedPassword pass(Utf8ToWCstring(it->second.authData.Password));
					serverNode.SetAttribute("Password", WCstringToUtf8(pass.toEncodedData()));
				}
	#else
		serverNode.SetAttribute("Login", sss.authData.Login);
	#endif
				if ( !it->second.defaultFolder.getId().empty() ) {
					serverNode.SetAttributeString("DefaultFolderId", sss.defaultFolder.getId());
					serverNode.SetAttributeString("DefaultFolderUrl", sss.defaultFolder.viewUrl);
					serverNode.SetAttributeString("DefaultFolderTitle", sss.defaultFolder.getTitle());
				}

			}
		}
		return true;
	}
LRESULT CServerParamsDlg::OnBrowseServerFolders(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) {

	
	CString login = GuiTools::GetDlgItemText(m_hWnd, IDC_LOGINEDIT);
	serverProfile_.setProfileName(login);
	ServerSettingsStruct& serverSettings = serverProfile_.serverSettings();
	
	CString password = GuiTools::GetDlgItemText(m_hWnd, IDC_PASSWORDEDIT);
	serverSettings.authData.Login = WCstringToUtf8(login);
	serverSettings.authData.Password = WCstringToUtf8(password);
	serverSettings.authData.DoAuth = GuiTools::GetCheck(m_hWnd, IDC_DOAUTH);
	CServerFolderSelect folderSelectDlg(serverProfile_);
	folderSelectDlg.m_SelectedFolder.id = serverProfile_.folderId();

	if ( folderSelectDlg.DoModal() == IDOK ) {
		CFolderItem folder = folderSelectDlg.m_SelectedFolder;
	

		if(!folder.id.empty()){
			serverProfile_.setFolderId(folder.getId());
			serverProfile_.setFolderTitle(folder.getTitle());
			serverProfile_.setFolderUrl(folder.viewUrl);
		} else {
			serverProfile_.setFolderId("");
			serverProfile_.setFolderTitle("");
			serverProfile_.setFolderUrl("");
		}

		SetDlgItemText(IDC_FOLDERNAMELABEL, Utf8ToWCstring( folder.getTitle() ));


	};
	if(!m_pluginLoader)
	{
		return 0;
	}
	m_wndParamList.ResetContent();
	m_pluginLoader->getServerParamList(m_paramNameList);
	
	std::map<std::string,std::string>::iterator it;
	for( it = m_paramNameList.begin(); it!= m_paramNameList.end(); ++it)
	{
		CString name = it->first.c_str();
		CString humanName = it->second.c_str();
		m_wndParamList.AddItem( PropCreateSimple(humanName, Utf8ToWCstring(serverSettings.params[WCstringToUtf8(name)])) );
	}

	return 0;
}
void  CQuickSetupDlg::serverChanged() {
	int serverComboElementIndex = serverComboBox_.GetCurSel();
	if ( serverComboElementIndex > 0 ) {
		std::string serverNameA = reinterpret_cast<char*>(serverComboBox_.GetItemData(serverComboElementIndex));
		CUploadEngineData * uploadEngineData =( (CUploadEngineList *)_EngineList)->byName( serverNameA );
		if ( !uploadEngineData ) {
			return ;
		}
		CString serverName = Utf8ToWCstring( uploadEngineData->Name );
		bool isFtpServer = serverName.Find(_T("FTP")) != -1;
		showFtpButton(isFtpServer);
		bool authorizationAvailable = uploadEngineData->NeedAuthorization != 0;
		showAuthorizationControls( authorizationAvailable );
		bool forceAuthorization = uploadEngineData->NeedAuthorization == 2;
		CString doAuthCheckboxText = forceAuthorization ? TR("Выполнять авторизацию") : CString(TR("У меня есть учетная запись на этом сервере") ); //+ (forceAuthorization? _T("") : TR(" (необязательно)"));
		SetDlgItemText( IDC_DOAUTHCHECKBOX, doAuthCheckboxText );
		::EnableWindow( GetDlgItem( IDC_DOAUTHCHECKBOX), !forceAuthorization);
		SendDlgItemMessage( IDC_DOAUTHCHECKBOX, BM_SETCHECK, forceAuthorization? BST_CHECKED : BST_UNCHECKED );
		CString loginLabelText = uploadEngineData->LoginLabel.empty()? CString(TR("Логин:")) : CString(Utf8ToWCstring( uploadEngineData->LoginLabel )) + _T(":");
		SetDlgItemText( IDC_LOGINLABEL, loginLabelText );
		
		doAuthCheckboxChanged();
		bool isDoAuthChecked = SendDlgItemMessage(IDC_DOAUTHCHECKBOX, BM_GETCHECK) == BST_CHECKED;
		::EnableWindow( GetDlgItem( IDC_PASSWORDEDIT),isDoAuthChecked && uploadEngineData->NeedPassword);
	} else {
		showAuthorizationControls(false);
	}
}
void CContextMenuItemDlg::generateTitle()
{
	if ( !titleEdited_ ) {	
		ServerProfile sp = imageServerSelector_->serverProfile();
		CString title;
		title.Format(TR("Загрузить на %s"), (LPCTSTR)sp.serverName());
		CString additional;
		if ( !sp.profileName().IsEmpty()) {
			additional+= sp.profileName();
		}
		if ( !sp.folderId().empty() && !sp.folderTitle().empty() ) {
			if ( !additional.IsEmpty() ) {
				additional += _T(", ");
			}
			CString temp;
			temp.Format(TR("папка \"%s\""), (LPCTSTR) Utf8ToWCstring(sp.folderTitle()) );
			additional+= temp;
		}
		if ( !additional.IsEmpty() ) {
			title += _T(" (") + additional + _T(")");
		}

		SetDlgItemText(IDC_MENUITEMTITLEEDIT, title);
	}
}
示例#7
0
void DebugMessage(const std::string& msg, bool isResponseBody)
{
	if (!isResponseBody)
		MessageBox(0, Utf8ToWCstring(msg.c_str()), _T("Uploader"), MB_ICONINFORMATION);
	else
	{
		CTextViewDlg TextViewDlg(Utf8ToWstring(msg).c_str(), CString(_T("Server reponse")), CString(_T("Server reponse:")),
		                         _T("Save to file?"));

		if (TextViewDlg.DoModal(GetActiveWindow()) == IDOK)
		{
			CFileDialog fd(false, 0, 0, 4 | 2, _T("*.*\0*.*\0\0"), GetActiveWindow());
			lstrcpy(fd.m_szFileName, _T("file.html"));
			if (fd.DoModal() == IDOK)
			{
				FILE* f = _tfopen(fd.m_szFileName, _T("wb"));
				if (f)
				{
					// WORD BOM = 0xFEFF;
					// fwrite(&BOM, sizeof(BOM),1,f);
					fwrite(msg.c_str(), msg.size(), sizeof(char), f);
					fclose(f);
				}
			}
		}
	}
}
示例#8
0
void ErrorMessage(ErrorInfo errorInfo)
{
	LogMsgType type = errorInfo.messageType == (ErrorInfo::mtWarning) ? logWarning : logError;
	CString errorMsg;

	CString infoText;
	if (!errorInfo.FileName.empty())
		infoText += TR("Файл: ") + Utf8ToWCstring(errorInfo.FileName) + _T("\n");

	if (!errorInfo.ServerName.empty())
	{
		CString serverName = Utf8ToWCstring(errorInfo.ServerName);
		if (!errorInfo.sender.empty())
			serverName += _T("(") + Utf8ToWCstring(errorInfo.sender) + _T(")");
		infoText += TR("Сервер: ") + serverName +  _T("\n");
	}

	if (!errorInfo.Url.empty())
		infoText += _T("URL: ") + Utf8ToWCstring(errorInfo.Url) + _T("\n");

	if (errorInfo.ActionIndex != -1)
		infoText += _T("Действие:") + CString(_T(" #")) + IntToStr(errorInfo.ActionIndex);

	if (infoText.Right(1) == _T("\n"))
		infoText.Delete(infoText.GetLength() - 1);
	if (!errorInfo.error.empty())
	{
		errorMsg += Utf8ToWCstring(errorInfo.error);
	}
	else
	{
		if (errorInfo.errorType == etRepeating)
		{
			errorMsg.Format(TR("Загрузка на сервер не удалась. Повторяю (%d)..."), errorInfo.RetryIndex );
		}
		else if (errorInfo.errorType == etRetriesLimitReached)
		{
			errorMsg = TR("Загрузка не сервер удалась! (лимит попыток исчерпан)");
		}
	}

	CString sender = TR("Модуль загрузки");
	if (!errorMsg.IsEmpty())
		WriteLog(type, sender, errorMsg, infoText);
}
LRESULT CHistoryWindow::OnCopyToClipboard(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	TreeItem* item = m_treeView.selectedItem();
	if(!item) return 0;
	HistoryItem* historyItem = reinterpret_cast<HistoryItem*>(item->userData());
	std::string url = historyItem->directUrl.length()?historyItem->directUrl:historyItem->viewUrl;
	IU_CopyTextToClipboard(Utf8ToWCstring(url));
	return 0;
}
示例#10
0
LRESULT CHistoryWindow::OnOpenInBrowser(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	TreeItem* item = m_treeView.selectedItem();
	if(!item) return 0;
	HistoryItem* historyItem = reinterpret_cast<HistoryItem*>(item->userData());
	std::string url = historyItem->directUrl.length()?historyItem->directUrl:historyItem->viewUrl;
	 ShellExecute(NULL, _T("open"), Utf8ToWCstring(url), NULL, NULL, SW_SHOWNORMAL);
	return 0;
}
示例#11
0
LRESULT CHistoryWindow::OnOpenFolder(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	TreeItem* item = m_treeView.selectedItem();
	if(!item) return 0;
	HistoryItem* historyItem = reinterpret_cast<HistoryItem*>(item->userData());
	std::string fileName  = historyItem->localFilePath;
	if(fileName.empty()) return 0;
	std::string directory = IuCoreUtils::ExtractFilePath(fileName);
	if(IuCoreUtils::FileExists(fileName))
	{
		ShellExecuteW(NULL, NULL, L"explorer.exe", CString(_T("/select, ")) + Utf8ToWCstring(fileName), NULL, SW_SHOWNORMAL);
	}
	else if(IuCoreUtils::DirectoryExists(directory))
	{
		ShellExecute(NULL, _T("open"), Utf8ToWCstring(directory), NULL, NULL, SW_SHOWNORMAL);
	}
	return 0;
}
示例#12
0
LRESULT CQuickSetupDlg::OnClickedOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) {


	int serverComboElementIndex = serverComboBox_.GetCurSel();
	if ( serverComboElementIndex > 0 ) {
		std::string serverNameA = reinterpret_cast<char*>(serverComboBox_.GetItemData(serverComboElementIndex));
		CUploadEngineData * uploadEngineData =( (CUploadEngineList *)_EngineList)->byName( serverNameA );
		Settings.imageServer.setServerName(Utf8ToWCstring( uploadEngineData->Name )) ;
		bool needAuth = GuiTools::GetCheck( m_hWnd, IDC_DOAUTHCHECKBOX );
		if ( needAuth ) {
			CString login = GuiTools::GetDlgItemText( m_hWnd, IDC_LOGINEDIT );
			Settings.imageServer.setProfileName(login);
			CString password = GuiTools::GetDlgItemText( m_hWnd, IDC_PASSWORDEDIT );
			if ( login.IsEmpty() ) {
				MessageBox(TR("Введите данные учетной записи"), APPNAME, MB_ICONEXCLAMATION);
				return 0;
			}
			LoginInfo& loginInfo = Settings.ServersSettings[WCstringToUtf8((LPCTSTR)Settings.getServerName())][WCstringToUtf8((LPCTSTR)(login))].authData;
			loginInfo.DoAuth = true;
			loginInfo.Login = WCstringToUtf8( login );
			loginInfo.Password = WCstringToUtf8( password );
		}
		Settings.quickScreenshotServer = Settings.imageServer;
		Settings.contextMenuServer = Settings.imageServer;
		Settings.fileServer.setServerName("zippyshare.com");

	} else {

	}

	GuiTools::GetCheck(m_hWnd, IDC_AUTOSTARTUPCHECKBOX, Settings.AutoStartup);
	Settings.AutoStartup_changed = true;

	
	Settings.ExplorerContextMenu = GuiTools::GetCheck(m_hWnd, IDC_EXPLORERINTEGRATION);
	Settings.ExplorerContextMenu_changed = Settings.ExplorerContextMenu;

	bool capturePrintScreen = GuiTools::GetCheck( m_hWnd, IDC_CAPTUREPRINTSCREENCHECKBOX );
	if ( capturePrintScreen ) {
		Settings.Hotkeys.getByFunc( _T("regionscreenshot") ).globalKey.DeSerialize("44"); // PrintScreen
		Settings.Hotkeys.getByFunc( _T("windowscreenshot") ).globalKey.DeSerialize("65580"); // Alt + PrintScreen
	} else {
		Settings.Hotkeys.getByFunc( _T("regionscreenshot") ).Clear();
		Settings.Hotkeys.getByFunc( _T("windowscreenshot") ).Clear();

	}

	if ( Settings.AutoStartup || capturePrintScreen ) {
		Settings.ShowTrayIcon        = true;
		Settings.ShowTrayIcon_changed = true;
	}
	Settings.SaveSettings();
	
	EndDialog(wID);
	return 0;
}
示例#13
0
void CHistoryWindow::FillList(CHistoryReader * mgr)
{
	bool enabledDownload = SendDlgItemMessage(IDC_DOWNLOADTHUMBS, BM_GETCHECK) == BST_CHECKED;
	m_treeView.setDownloadingEnabled(enabledDownload);
	int nSessionsCount = mgr->getSessionCount();

	m_treeView.SetRedraw(false);
	TreeItem* res = 0;
	int nFilesCount = 0;
	int64_t totalFileSize = 0;
	for(int i=0; i<nSessionsCount; i++)
	{
		 CHistorySession* ses = mgr->getSession(i);
		std::string serverName = ses->serverName();
		if(serverName.empty()) serverName = "n/a";

		std::string label = IuCoreUtils::timeStampToString(ses->timeStamp())+ "\r\n Server: "+ serverName+ " Files: " + IuCoreUtils::toString(ses->entriesCount()); 
		res = m_treeView.addEntry(ses, Utf8ToWCstring(label));
		int nCount = ses->entriesCount();
		for(int j=0; j<nCount; j++)
		{
			nFilesCount++;
			totalFileSize += ses->entry(j).uploadFileSize;
			if ( totalFileSize > 1000000000 ) {
				totalFileSize = totalFileSize;
			}
			m_treeView.addSubEntry(res, ses->entry(j),nCount<4);
		}
		//m_treeView.ExpandItem(res);
	}
	if(res)
	{
		m_treeView.SetCurSel(m_treeView.GetCount()-1);
		m_treeView.SetCurSel(-1);
	}
	m_treeView.SetRedraw(true);

	SetDlgItemInt(IDC_FILESCOUNTLABEL, nFilesCount, false);
	SetDlgItemInt(IDC_SESSIONSCOUNTLABEL, nSessionsCount, false);
	SetDlgItemText(IDC_UPLOADTRAFFICLABEL, Utf8ToWCstring(IuCoreUtils::fileSizeToString(totalFileSize)));
}
示例#14
0
	bool CSettings::LoadConvertProfile(const CString& name, SimpleXmlNode profileNode)
	{
		SettingsManager mgr;
		ImageConvertingParams params;
		std::string saveTo = profileNode.Attribute("Name");
		if (!name.IsEmpty())
			saveTo = WCstringToUtf8(name);
		SettingsNode& image = mgr["Image"];
		BindConvertProfile(image, params);
		mgr.loadFromXmlNode(profileNode);
		ConvertProfiles[Utf8ToWCstring( saveTo)] = params;
		return true;
	}
示例#15
0
bool CFloatingWindow::OnFileFinished(bool ok, CFileQueueUploader::FileListItem& result)
{
	if ( uploadType_ == utUrl ) {
		if ( ok ) {
			CString url = Utf8ToWCstring(result.imageUrl);
			IU_CopyTextToClipboard(url);
			ShowBaloonTip( TrimString(url, 70) + CString("\r\n")
				+ TR("(адрес был автоматически помещен в буфер обмена)"), TR("Короткая ссылка"));
		} else {
			ShowBaloonTip( TR("Для подробностей смотрите лог."), TR("Не удалось сократить ссылку...") );
		}
	} else if ( uploadType_ == utShorteningImageUrl) {
		if ( ok ) { 
			CString url = Utf8ToWCstring(result.imageUrl);
			UploadTaskUserData *uploadTaskUserData = reinterpret_cast<UploadTaskUserData*>(result.uploadTask->userData);

			if ( uploadTaskUserData->linkTypeToShorten == "ImageUrl" ) {
				lastUploadedItem_.imageUrlShortened = url;
			} else if ( uploadTaskUserData->linkTypeToShorten == "DownloadUrl" ) {
				lastUploadedItem_.downloadUrlShortened = url;
			}
			ShowImageUploadedMessage(url);
		} else {
			UrlShorteningTask *urlShorteningTask = (UrlShorteningTask*) result.uploadTask;
			CString url = Utf8ToWCstring(urlShorteningTask->getUrl());
			ShowImageUploadedMessage(url);
		}
	} else {
		if (ok)
		{
			if (result.uploadTask->userData == 0)
				lastUploadedItem_.fileListItem = result;
			else if (int(result.uploadTask->userData) == 1)
				lastUploadedItem_.fileListItem.thumbUrl = result.imageUrl;	
		}
	}
	return true;
}
示例#16
0
	bool CSettings::LoadServerProfiles(SimpleXmlNode root)
	{
		std::vector<SimpleXmlNode> servers;
		root.GetChilds("ServerProfile", servers);

		for (size_t i = 0; i < servers.size(); i++)
		{
			SimpleXmlNode serverProfileNode = servers[i];
			std::string profileName = serverProfileNode.Attribute("ServerProfileId");
			ServerProfile sp;
			SettingsManager mgr;
			sp.bind(mgr.root());
			
			mgr.loadFromXmlNode(serverProfileNode);
			ServerProfiles[Utf8ToWCstring(profileName)] = sp;
		}
		return true;
	}
示例#17
0
LRESULT CHistoryWindow::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	CenterWindow();
	DlgResize_Init();
	m_treeView.SubclassWindow(GetDlgItem(IDC_HISTORYTREE));
	m_treeView.onThreadsFinished.bind(this, &CHistoryWindow::threadsFinished);
	m_treeView.onThreadsStarted.bind(this, &CHistoryWindow::threadsStarted);
	TRC(IDCANCEL, "Закрыть");
	TRC(IDC_SESSIONSCOUNTDESCR, "Всего сессий:");
	TRC(IDC_FILESCOUNTDESCR, "Всего файлов:");
	TRC(IDC_UPLOADTRAFFICDESCR, "Общий объем:");
	SetWindowText(TR("История загрузок"));
	TRC(IDC_TIMEPERIODLABEL, "Период времени:");
	TRC(IDC_DOWNLOADTHUMBS, "Загружать миниатюры из Интернета");

	HWND hWnd = GetDlgItem(IDC_ANIMATIONSTATIC);
	if (hWnd)
	{
		m_wndAnimation.SubclassWindow(hWnd);
		if (m_wndAnimation.Load(MAKEINTRESOURCE(IDR_PROGRESSGIF),_T("GIF")))
			m_wndAnimation.Draw();
		m_wndAnimation.ShowWindow(SW_HIDE);
	}

	std::string fName = ZBase::get()->historyManager()->makeFileName();
	
	std::vector<CString> files;
	historyFolder = IuCoreUtils::Utf8ToWstring(Settings.SettingsFolder).c_str()+CString(_T("\\History\\"));
	WinUtils::GetFolderFileList(files, historyFolder , _T("history*.xml"));
	pcrepp::Pcre regExp("history_(\\d+)_(\\d+)", "imcu");

	for(size_t i=0; i<files.size(); i++)
	{
		m_HistoryFiles.push_back(files[i]);

		CString monthLabel = Utf8ToWCstring( IuCoreUtils::ExtractFileNameNoExt(WCstringToUtf8 (files[i])));

		
		size_t pos = 0;

		if ( regExp.search(WCstringToUtf8(monthLabel), pos) ) { 
			std::string yearStr = regExp[0];
			std::string monthStr = regExp[1];
			int year = atoi(yearStr.c_str());
			int month = atoi(monthStr.c_str());
			monthLabel.Format(_T("%d/%02d"), year, month);
		}  else {
			monthLabel.Replace(_T("history_"), _T(""));
			monthLabel.Replace(_T("_"), _T("/"));
		}


		int newItemIndex = SendDlgItemMessage(IDC_MONTHCOMBO, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)monthLabel);
		if ( newItemIndex >=0 ) {
			SendDlgItemMessage(IDC_MONTHCOMBO, CB_SETITEMDATA, newItemIndex, (LPARAM)i);
		}
	}
	int selectedIndex = files.size()-1;
	SendDlgItemMessage(IDC_MONTHCOMBO, CB_SETCURSEL, selectedIndex, 0);
	
	SendDlgItemMessage(IDC_DOWNLOADTHUMBS, BM_SETCHECK, (WPARAM)Settings.HistorySettings.EnableDownloading);
	BOOL bDummy;
	OnMonthChanged(0,0, 0,bDummy);
	m_treeView.SetFocus();
	return 1;  // Let the system set the focus
}
示例#18
0
inline void myFromString(const std::string& text, CHotkeyList& value) {
	value.DeSerialize(Utf8ToWCstring(text));
}
示例#19
0
inline void myFromString(const std::string& text, CEncodedPassword& value) {
	value.fromEncodedData(Utf8ToWCstring(text));
}
示例#20
0
inline void myFromString(const std::string& text, LOGFONT& value) {
	CString wide_text = Utf8ToWCstring(text);
	LOGFONT font;
	StringToFont(wide_text, &font);
	value = font;
}
示例#21
0
void CSettings::setFileServerID(int id)
{
	CUploadEngineData *ued = _EngineList->byIndex(id);
	fileServer.setServerName (ued ? Utf8ToWCstring(ued->Name.c_str()) :  CString() );
}
示例#22
0
LRESULT CQuickSetupDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){
	TRC(IDC_FTPSETTINGSBUTTON, "Настройки FTP");
	TRC(IDOK, "Продолжить");
	TRC(IDCANCEL, "Отмена");
	TRC(IDC_LOGINLABEL, "Логин:");
	TRC(IDC_PASSWORDLABEL, "Пароль:");
	TRC(IDC_SERVERLABEL, "На какой сервер будем загружать картинки?");
	TRC(IDC_AUTOSTARTUPCHECKBOX, "Запуск программы при старте Windows");
	TRC(IDC_CAPTUREPRINTSCREENCHECKBOX, "Перехватывать нажатия PrintScreen и Alt+PrintScreen");
	TRC(IDC_EXPLORERINTEGRATION, "Добавить пункт в контекстное меню проводника Windows");
	SetWindowText( APPNAME );
	CString titleText;
	titleText.Format(TR("%s - быстрая настройка"), APPNAME );
	SetDlgItemText(IDC_TITLE, titleText );

	CenterWindow();
	hIcon = (HICON)::LoadImage(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME), 
		IMAGE_ICON, ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON), LR_DEFAULTCOLOR);
	SetIcon(hIcon, TRUE);
	hIconSmall = GuiTools::LoadSmallIcon(IDR_MAINFRAME);
	SetIcon(hIconSmall, FALSE);
	serverComboBox_.Attach( GetDlgItem( IDC_SERVERCOMBOBOX ) );

	if ( !Settings.IsPortable ) {
		SendDlgItemMessage( IDC_AUTOSTARTUPCHECKBOX, BM_SETCHECK, BST_CHECKED, 0);
		SendDlgItemMessage( IDC_CAPTUREPRINTSCREENCHECKBOX, BM_SETCHECK, BST_CHECKED, 0);
		SendDlgItemMessage( IDC_EXPLORERINTEGRATION, BM_SETCHECK, BST_CHECKED, 0);
	}
	LogoImage.SubclassWindow(GetDlgItem( IDC_STATICLOGO ) );
	LogoImage.SetWindowPos(0, 0,0, 48, 48, SWP_NOMOVE );
	LogoImage.LoadImage(0, 0, Settings.UseNewIcon ? IDR_ICONMAINNEW : IDR_PNG1, false, GetSysColor(COLOR_BTNFACE));

	HFONT font = GetFont();
	LOGFONT alf;

	bool ok = ::GetObject(font, sizeof(LOGFONT), &alf) == sizeof(LOGFONT);

	if(ok)
	{
		alf.lfWeight = FW_BOLD;

		NewFont=CreateFontIndirect(&alf);

		HDC dc = ::GetDC(0);
		alf.lfHeight  =  - MulDiv(11, GetDeviceCaps(dc, LOGPIXELSY), 72);
		ReleaseDC(dc);
		NewFont = CreateFontIndirect(&alf);
		SendDlgItemMessage(IDC_TITLE,WM_SETFONT,(WPARAM)(HFONT)NewFont,MAKELPARAM(false, 0));
	}
	
	comboBoxImageList_.Create(16,16,ILC_COLOR32 | ILC_MASK,0,6);

	//serverComboBox_.AddItem( _T("<") + CString(TR("Случайный сервер")) + _T(">"), -1, -1, 0, static_cast<LPARAM>( -1 ) );

	HICON hImageIcon = NULL, hFileIcon = NULL;
	int selectedIndex = 0;

	//CUploadEngineData *uploadEngine = _EngineList->byIndex( Settings.getServerID() );
	std::string selectedServerName = "directupload.net" ;
	for( int i = 0; i < _EngineList->count(); i++) {	
		CUploadEngineData * ue = _EngineList->byIndex( i ); 
		if ( ue->Type !=  CUploadEngineData::TypeImageServer && ue->Type !=  CUploadEngineData::TypeFileServer ) {
			continue;
		}
		HICON hImageIcon = _EngineList->getIconForServer(ue->Name);
		int nImageIndex = -1;
		if ( hImageIcon) {
			nImageIndex = comboBoxImageList_.AddIcon( hImageIcon);
		}
		char *serverName = new char[ue->Name.length() + 1];
		lstrcpyA( serverName, ue->Name.c_str() );
		int itemIndex = serverComboBox_.AddItem( Utf8ToWCstring( ue->Name ), nImageIndex, nImageIndex, 1, reinterpret_cast<LPARAM>( serverName ) );
		if ( ue->Name == selectedServerName ){
			selectedIndex = itemIndex;
		}
	}
	serverComboBox_.SetImageList( comboBoxImageList_ );
	serverComboBox_.SetCurSel( selectedIndex );

	doAuthCheckboxChanged();
	
	serverChanged();

	return 1;  
}
示例#23
0
void CThumbEditor::LoadParams()
{
	StringToFont(_T("Tahoma,7,b,204"), &ThumbFont);
	if(thumb_->existsParam("Font"))
	{
		std::string font = thumb_->getParamString("Font");
		CString wide_text = Utf8ToWCstring(font);
		StringToFont(wide_text, &ThumbFont);
	}

	if(thumb_->existsParam("FrameWidth"))
		SetDlgItemInt(IDC_FRAMEWIDTH, thumb_->getParam("FrameWidth"));
	else 
		::EnableWindow(GetDlgItem(IDC_FRAMEWIDTH), false);

	if(thumb_->existsParam("DrawFrame"))
	{
		bool DrawFrame = thumb_->getParam("DrawFrame")!=0;
		SendDlgItemMessage(IDC_DRAWFRAME, BM_SETCHECK, DrawFrame);
	}
	else
	{
		GuiTools::EnableNextN(GetDlgItem(IDC_DRAWFRAME), 3, false);
		::EnableWindow(GetDlgItem(IDC_DRAWFRAME), false);
	}

	bool DrawText = thumb_->getParam("DrawText")!=0;
	SendDlgItemMessage(IDC_ADDFILESIZE, BM_SETCHECK, DrawText);

	

	if(thumb_->existsParam("FrameColor"))
		FrameColor.SetColor(RGB2COLORREF(thumb_->getColor("FrameColor")));
	else 
	{
		FrameColor.EnableWindow(false);
		::EnableWindow(GetDlgItem(IDC_FRAMECOLORLABEL), false);
	}

	if(thumb_->existsParam("GradientColor1"))
		Color1.SetColor(RGB2COLORREF(thumb_->getColor("GradientColor1")));
	else
	{
		Color1.EnableWindow(false);
		::EnableWindow(GetDlgItem(IDC_GRADIENTCOLOR1LABEL), false);
	}

	if(thumb_->existsParam("TextColor"))
	{
		ThumbTextColor.SetColor(RGB2COLORREF(thumb_->getColor("TextColor")));
	}
	else
	{
		ThumbTextColor.EnableWindow(false);
		::EnableWindow(GetDlgItem(IDC_THUMBTEXTCOLORLABEL), false);
	}

	if(thumb_->existsParam("StrokeColor"))
	{
		StrokeColor.SetColor(RGB2COLORREF(thumb_->getColor("StrokeColor")));
	}
	else
	{
		StrokeColor.EnableWindow(false);
		::EnableWindow(GetDlgItem(IDC_THUMBSTROKECOLORLABEL), false);
	}


	if(thumb_->existsParam("GradientColor2"))
	Color2.SetColor(RGB2COLORREF(thumb_->getColor("GradientColor2")));
	else
	{
		Color2.EnableWindow(false);
		::EnableWindow(GetDlgItem(IDC_GRADIENTCOLOR2LABEL), false);
	}
	SetDlgItemText(IDC_THUMBTEXT, Utf8ToWCstring(thumb_->getParamString("Text")));
}
LRESULT CServerParamsDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	CenterWindow(GetParent());
	TRC(IDCANCEL, "Отмена");
	TRC(IDOK, "OK");
	TRC(IDC_LOGINLABEL, "Логин:");
	TRC(IDC_PASSWORDLABEL, "Пароль:");
	TRC(IDC_DOAUTH, "Выполнять авторизацию");
	TRC(IDC_FOLDERLABEL, "Папка/альбом:");
	TRC(IDC_BROWSESERVERFOLDERS, "Выбрать...");
	TRC(IDC_PARAMETERSLABEL, "Параметры:");
	DlgResize_Init();
	CString WindowTitle;
	CString serverName = Utf8ToWCstring(m_ue->Name);
	WindowTitle.Format(TR("Параметры сервера %s"),(LPCTSTR)serverName);
	SetWindowText(WindowTitle);
	GuiTools::ShowDialogItem(m_hWnd, IDC_BROWSESERVERFOLDERS, m_ue->SupportsFolders);
	GuiTools::ShowDialogItem(m_hWnd, IDC_FOLDERLABEL, m_ue->SupportsFolders);
	GuiTools::ShowDialogItem(m_hWnd, IDC_FOLDERNAMELABEL, m_ue->SupportsFolders);
	::EnableWindow(GetDlgItem(IDC_BROWSESERVERFOLDERS), m_ue->SupportsFolders);
	GuiTools::ShowDialogItem(m_hWnd, IDC_DOAUTH, m_ue->NeedAuthorization == CUploadEngineData::naAvailable );

	GuiTools::ShowDialogItem(m_hWnd, IDC_FOLDERLABEL, m_ue->SupportsFolders );
	GuiTools::ShowDialogItem(m_hWnd, IDC_FOLDERNAMELABEL, m_ue->SupportsFolders );
	GuiTools::ShowDialogItem(m_hWnd, IDC_BROWSESERVERFOLDERS, m_ue->SupportsFolders );
	GuiTools::ShowDialogItem(m_hWnd, IDC_FOLDERICON, m_ue->SupportsFolders );

	
	ServerSettingsStruct &serverSettings = serverProfile_.serverSettings();
	LoginInfo li = serverSettings.authData;
	SetDlgItemText(IDC_LOGINEDIT, Utf8ToWCstring(li.Login));
	oldLogin_ =  Utf8ToWCstring(li.Login);
	SetDlgItemText(IDC_PASSWORDEDIT, Utf8ToWCstring(li.Password));


	SendDlgItemMessage(IDC_DOAUTH, BM_SETCHECK, (li.DoAuth ? BST_CHECKED : BST_UNCHECKED));
	doAuthChanged();
	int result = 1;
	if ( focusOnLoginControl_ && m_ue->NeedAuthorization ) {
		GuiTools::SetCheck(m_hWnd, IDC_DOAUTH, true);
		doAuthChanged();
		::SetFocus(GetDlgItem(IDC_LOGINEDIT) );
		SendDlgItemMessage(IDC_LOGINEDIT, EM_SETSEL, 0, -1);
		result = 0;
	}

	GuiTools::EnableDialogItem(m_hWnd, IDC_BROWSESERVERFOLDERS, !oldLogin_.IsEmpty());

	


	m_wndParamList.SubclassWindow(GetDlgItem(IDC_PARAMLIST));
	m_wndParamList.SetExtendedListStyle(PLS_EX_SHOWSELALWAYS | PLS_EX_SINGLECLICKEDIT);

	m_pluginLoader = iuPluginManager.getPlugin(m_ue->Name, m_ue->PluginName,serverSettings);
	if(!m_pluginLoader)
	{
		return 0;
	}
	m_pluginLoader->getServerParamList(m_paramNameList);

	std::map<std::string,std::string>::iterator it;
	for( it = m_paramNameList.begin(); it!= m_paramNameList.end(); ++it)
	{
		CString name = it->first.c_str();
		CString humanName = it->second.c_str();
		m_wndParamList.AddItem( PropCreateSimple(humanName, Utf8ToWCstring(serverSettings.params[WCstringToUtf8(name)])) );
	}
	CString folderTitle = Utf8ToWCstring( serverProfile_.folderTitle()) ;

	SetDlgItemText(IDC_FOLDERNAMELABEL, folderTitle.IsEmpty() ? (CString("<") + TR("не выбран") + CString(">")) : folderTitle);

	return 1;  // Let the system set the focus
}