コード例 #1
0
ファイル: LoginDlg.cpp プロジェクト: vladios13/image-uploader
void CLoginDlg::Accept()
{
	LoginInfo li;
	TCHAR Buffer[256];

	GetDlgItemText(IDC_LOGINEDIT, Buffer, 256);
	li.Login = WCstringToUtf8(Buffer);

	if ( li.Login.empty() ) {
		MessageBox(TR("Логин не может быть пустым"),TR("Ошибка"), MB_ICONERROR);
		return;
	}
	std::string serverNameA = WCstringToUtf8(serverProfile_.serverName());
	if ( !ignoreExistingAccount_ &&  createNew_ && Settings.ServersSettings[serverNameA].find(li.Login ) != Settings.ServersSettings[serverNameA].end() ) {
		MessageBox(TR("Учетная запись с таким именем уже существует."),TR("Ошибка"), MB_ICONERROR);
		return;
	}

	if ( li.Login != WCstringToUtf8(accountName_) ) {
		serverProfile_.clearFolderInfo();
	}

	accountName_ = Buffer;
	serverProfile_.setProfileName(Buffer);
	GetDlgItemText(IDC_PASSWORDEDIT, Buffer, 256);
	li.Password = WCstringToUtf8(Buffer);
	li.DoAuth = SendDlgItemMessage(IDC_DOAUTH, BM_GETCHECK) != FALSE;

	serverProfile_.serverSettings().authData = li;
	EndDialog(IDOK);
}
コード例 #2
0
LRESULT CServerParamsDlg::OnClickedOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	std::map<std::string,std::string>::iterator it;
	CString login = GuiTools::GetDlgItemText(m_hWnd, IDC_LOGINEDIT);
	serverProfile_.setProfileName(login);
	ServerSettingsStruct &serverSettings = serverProfile_.serverSettings();
	serverSettings.authData.DoAuth = GuiTools::GetCheck(m_hWnd, IDC_DOAUTH);
	serverSettings.authData.Login    = WCstringToUtf8( login );
	serverSettings.authData.Password = WCstringToUtf8( GuiTools::GetDlgItemText(m_hWnd, IDC_PASSWORDEDIT) );

	for(it = m_paramNameList.begin(); it!= m_paramNameList.end(); ++it)
	{

		CString name = it->first.c_str();
		CString humanName = it->second.c_str();
	
		HPROPERTY pr = m_wndParamList.FindProperty(humanName);
		CComVariant vValue;
		pr->GetValue(&vValue);

		serverSettings.params[WCstringToUtf8(name)]= WCstringToUtf8(vValue.bstrVal);	      
	}

	


	EndDialog(wID);
	return 0;
}
コード例 #3
0
ファイル: LoginDlg.cpp プロジェクト: vladios13/image-uploader
LRESULT CLoginDlg::OnDeleteAccountClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	std::map <std::string, ServerSettingsStruct>& ss = Settings.ServersSettings[WCstringToUtf8(serverProfile_.serverName())];
	ss.erase(WCstringToUtf8(accountName_));

	accountName_ = "";
	EndDialog(IDOK);
	return 0;
}
コード例 #4
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;
}
コード例 #5
0
LRESULT CNewFolderDlg::OnClickedOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
	m_sTitle= GuiTools::GetWindowText(GetDlgItem(IDC_FOLDERTITLEEDIT));
	m_folder.title = WCstringToUtf8(m_sTitle);
	m_sDescription = GuiTools::GetWindowText(GetDlgItem(IDC_FOLDERDESCREDIT));
	m_folder.summary = WCstringToUtf8(m_sDescription);
	int nAccessType = SendDlgItemMessage(IDC_ACCESSTYPECOMBO, CB_GETCURSEL);
	if(nAccessType >= 0)
	m_folder.accessType = nAccessType;
	EndDialog(wID);
	return 0;
}
コード例 #6
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
	bool CSettings::LoadAccounts(SimpleXmlNode root)
	{
		std::vector<SimpleXmlNode> servers;
		root.GetChilds("Server", servers);

		for (size_t i = 0; i < servers.size(); i++)
		{
			std::string server_name = servers[i].Attribute("Name");
			std::vector<std::string> attribs;
			servers[i].GetAttributes(attribs);
			ServerSettingsStruct tempSettings;

			for (size_t j = 0; j < attribs.size(); j++)
			{
				std::string attribName = attribs[j];

				if (attribName.empty())
					continue;
				if ( attribName.substr(0, 1) == "_")
				{
					std::string value = servers[i].Attribute(attribName);
					attribName = attribName.substr(1, attribName.size() - 1);
					if (!value.empty())
						tempSettings.params[attribName] = value;
				}
			}
			tempSettings.authData.DoAuth = servers[i].AttributeBool("Auth");
#if !defined  (IU_CLI) && !defined(IU_SHELLEXT)
			

			std::string encodedLogin = servers[i].Attribute("Login");
			CEncodedPassword login;
			login.fromEncodedData(encodedLogin.c_str());
			tempSettings.authData.Login = WCstringToUtf8(login);

			std::string encodedPass = servers[i].Attribute("Password");
			CEncodedPassword pass;
			pass.fromEncodedData(encodedPass.c_str());
			tempSettings.authData.Password = WCstringToUtf8(pass);
#else
	tempSettings.authData.Login =servers[i].Attribute("Login");
#endif

			tempSettings.defaultFolder.setId( servers[i].Attribute("DefaultFolderId"));
			tempSettings.defaultFolder.viewUrl = servers[i].Attribute("DefaultFolderUrl");
			tempSettings.defaultFolder.setTitle(servers[i].Attribute("DefaultFolderTitle"));

				ServersSettings[server_name][tempSettings.authData.Login] = tempSettings ;
		}
		return true;
	}
コード例 #7
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
	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;
	}
コード例 #8
0
ファイル: LoginDlg.cpp プロジェクト: vladios13/image-uploader
DWORD CLoginDlg::Run()
{
	CScriptUploadEngine *plugin_ = 0;
	if (!m_UploadEngine->PluginName.empty() ) {

		LoginInfo li;
		CString login =GuiTools::GetDlgItemText(m_hWnd, IDC_LOGINEDIT); 
		li.Login = WCstringToUtf8(login);
		std::string serverNameA = WCstringToUtf8(serverProfile_.serverName());
		if ( !ignoreExistingAccount_ && createNew_ && Settings.ServersSettings[serverNameA].find(li.Login ) != Settings.ServersSettings[serverNameA].end() ) {
			MessageBox(TR("Учетная запись с таким именем уже существует."),TR("Ошибка"), MB_ICONERROR);
			OnProcessFinished();
		}

		ignoreExistingAccount_ = true;

		if ( li.Login != WCstringToUtf8(accountName_) ) {
			serverProfile_.clearFolderInfo();
		}

		accountName_ = login;
		serverProfile_.setProfileName(login);
		li.Password = WCstringToUtf8(GuiTools::GetDlgItemText(m_hWnd, IDC_PASSWORDEDIT));
		li.DoAuth = SendDlgItemMessage(IDC_DOAUTH, BM_GETCHECK) != FALSE;
		ServerSettingsStruct& ss = serverProfile_.serverSettings();
		ss.authData = li;
		plugin_ = iuPluginManager.getPlugin(m_UploadEngine->Name, m_UploadEngine->PluginName, ss);
		if ( !plugin_->supportsBeforehandAuthorization() ) {
			OnProcessFinished();
			return 0;
		}

		IU_ConfigureProxy(NetworkClient_);
		plugin_->setNetworkClient(&NetworkClient_);
		int res = plugin_->doLogin();
		if ( res ) {
			OnProcessFinished();
			MessageBox(TR("Авторизация была выполнена успешно"));
			Accept();
			
			return 0;
		} else {
			doLoginLabel_.SetLabel( TR("Не удалось авторизоваться. Попробовать еще раз."));
		}
		
	}
	OnProcessFinished();
	return 0;
}
コード例 #9
0
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;
}
コード例 #10
0
bool CFileDownloader::getNextJob(DownloadFileListItem& item)
{
	bool result = false;
	m_CS.Lock();
	if (!m_fileList.empty() && !m_NeedStop)
	{
		item = *m_fileList.begin();

		std::string url;
		url = item.url;
		m_fileList.erase(m_fileList.begin());

		std::string ext = IuCoreUtils::ExtractFileExt(url);
		std::string fileName = IuCoreUtils::ExtractFileName(url);
		CString wFileName =
			GetUniqFileName(IuCommonFunctions::IUTempFolder + Utf8ToWstring(fileName.c_str()).c_str());
		std::string filePath = WCstringToUtf8(wFileName);

		// Creating file
		FILE* f = _tfopen(wFileName, L"wb");
		if (f)
			fclose(f);
		item.fileName = filePath;
		result = true;
	}

	m_CS.Unlock();
	return result;
}
コード例 #11
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
ServerSettingsStruct& ServerProfile::serverSettings() {
	ServerSettingsStruct& res = Settings.ServersSettings[WCstringToUtf8((LPCTSTR)serverName_)][WCstringToUtf8((LPCTSTR)profileName_)];
	res.setParam("FolderID", folderId_);
	res.setParam("FolderUrl", folderUrl_);
	res.setParam("FolderTitle", folderTitle_);
	return res;
}
コード例 #12
0
bool CFloatingWindow::OnQueueFinished(CFileQueueUploader*) {
	m_bIsUploading = false;
	bool usedDirectLink = true;

	if ( uploadType_ == utImage ) {
		CString url;
		if ((Settings.UseDirectLinks || lastUploadedItem_.fileListItem.downloadUrl.empty()) && !lastUploadedItem_.fileListItem.imageUrl.empty() )
			url = Utf8ToWstring(lastUploadedItem_.fileListItem.imageUrl).c_str();
		else if ((!Settings.UseDirectLinks || lastUploadedItem_.fileListItem.imageUrl.empty()) && !lastUploadedItem_.fileListItem.downloadUrl.empty() ) {
			url = Utf8ToWstring(lastUploadedItem_.fileListItem.downloadUrl).c_str();
			usedDirectLink = false;
		}


		if (url.IsEmpty())
		{
			ShowBaloonTip(TR("Не удалось загрузить снимок :("), _T("Image Uploader"));
			return true;
		}

		CHistoryManager* mgr = ZBase::get()->historyManager();
		std_tr::shared_ptr<CHistorySession> session = mgr->newSession();
		HistoryItem hi;
		hi.localFilePath = source_file_name_;
		hi.serverName = server_name_;
		hi.directUrl =  (lastUploadedItem_.fileListItem.imageUrl);
		hi.thumbUrl = (lastUploadedItem_.fileListItem.thumbUrl);
		hi.viewUrl = (lastUploadedItem_.fileListItem.downloadUrl);
		hi.uploadFileSize = lastUploadedItem_.fileListItem.fileSize; // IuCoreUtils::getFileSize(WCstringToUtf8(ImageFileName));
		session->AddItem(hi);

		if ( Settings.TrayIconSettings.ShortenLinks ) {
			std_tr::shared_ptr<UrlShorteningTask> task(new UrlShorteningTask(WCstringToUtf8(url)));

			CUploadEngineData *ue = Settings.urlShorteningServer.uploadEngineData();
			if ( !ue ) {
				ShowImageUploadedMessage(url);
				return false;

			}
			CAbstractUploadEngine * e = _EngineList->getUploadEngine(ue,Settings.urlShorteningServer.serverSettings());
			if ( !e ) {
				ShowImageUploadedMessage(url);
				return false;
			}
			e->setUploadData(ue);
			ServerSettingsStruct& settings = Settings.urlShorteningServer.serverSettings();
			e->setServerSettings(settings);
			e->setUploadData(ue);
			uploadType_ = utShorteningImageUrl;
			UploadTaskUserData* uploadTaskUserData = new UploadTaskUserData;
			uploadTaskUserData->linkTypeToShorten = usedDirectLink ? _T("ImageUrl") : _T("DownloadUrl");
			m_FileQueueUploader->AddUploadTask(task, reinterpret_cast<UploadTaskUserData*>(uploadTaskUserData), e);
			m_FileQueueUploader->start();
		} else {
			ShowImageUploadedMessage(url);
		}
	}
	return true;
}
コード例 #13
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
	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;
	}
コード例 #14
0
void CThumbEditor::SaveParams()
{
	if(FrameColor.IsWindowEnabled())
		thumb_->setColor("FrameColor", COLORREF2RGB(FrameColor.GetColor()));
	if(Color1.IsWindowEnabled())
		thumb_->setColor("GradientColor1", COLORREF2RGB(Color1.GetColor()));
	if(ThumbTextColor.IsWindowEnabled())
		thumb_->setColor("TextColor", COLORREF2RGB(ThumbTextColor.GetColor()));

	if(StrokeColor.IsWindowEnabled())
		thumb_->setColor("StrokeColor", COLORREF2RGB(StrokeColor.GetColor()));
	
	if(Color2.IsWindowEnabled())
	thumb_->setColor("GradientColor2", COLORREF2RGB(Color2.GetColor()));
	
	if(thumb_->existsParam("DrawFrame"))
	{
		bool DrawFrame = SendDlgItemMessage(IDC_DRAWFRAME, BM_GETCHECK)!=0;
		thumb_->setParam("DrawFrame", DrawFrame);
	}
	if(thumb_->existsParam("FrameWidth"))
		thumb_->setParam("FrameWidth", GetDlgItemInt(IDC_FRAMEWIDTH));
	
	CString text  = GuiTools::GetWindowText(GetDlgItem(IDC_THUMBTEXT));
	bool AddText  = SendDlgItemMessage(IDC_ADDFILESIZE, BM_GETCHECK)!=0;
	
	thumb_->setParamString("Text", WCstringToUtf8(text));
	if(thumb_->existsParam("DrawText"))
		thumb_->setParam("DrawText", AddText);

	//if(thumb_->existsParam("Font"))
	{
		CString res;
		FontToString(&ThumbFont, res);
		thumb_->setParamString("Font", WCstringToUtf8(res));
	}

}
コード例 #15
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
	bool CSettings::SaveConvertProfiles(SimpleXmlNode root)
	{
		std::map<CString, ImageConvertingParams>::iterator it;
		for (it = ConvertProfiles.begin(); it != ConvertProfiles.end(); ++it)
		{
			SimpleXmlNode profile = root.CreateChild("Profile");
			ImageConvertingParams& params = it->second;
			profile.SetAttribute("Name", WCstringToUtf8(it->first));
			SettingsManager mgr;
			SettingsNode& image = mgr["Image"];
			BindConvertProfile(image, params);
			mgr.saveToXmlNode(profile);
		}
		return true;
	}
コード例 #16
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
	bool CSettings::SaveServerProfiles(SimpleXmlNode root)
	{
		for ( ServerProfilesMap::iterator it = ServerProfiles.begin(); it != ServerProfiles.end(); ++it) {
			SimpleXmlNode serverProfileNode = root.CreateChild("ServerProfile");
		
			std::string profileName = WCstringToUtf8(it->first);
			
			//ServerProfile sp = ;
			SettingsManager mgr;
			it->second.bind(mgr.root());
			mgr["@ServerProfileId"].bind(profileName);

			mgr.saveToXmlNode(serverProfileNode);
		}
		return true;
	}
コード例 #17
0
void CHistoryWindow::LoadHistoryFile(CString fileName)
{
	m_delayedFileName = fileName;
	if(!m_treeView.isRunning())
	{
		
		m_treeView.ResetContent();

		delete m_historyReader;
		m_historyReader = new CHistoryReader();
		m_historyReader->loadFromFile(WCstringToUtf8(historyFolder + fileName));
		FillList(m_historyReader);
		m_delayedFileName = "";
	}
	else
	{
		::EnableWindow(GetDlgItem(IDC_MONTHCOMBO), false);
		::EnableWindow(GetDlgItem(IDCANCEL), false);
		m_treeView.EnableWindow(false);
		m_treeView.abortLoadingThreads();
	}
}
コード例 #18
0
LRESULT CFloatingWindow::OnShortenUrlClipboard(WORD wNotifyCode, WORD wID, HWND hWndCtl) {
	if (  m_FileQueueUploader && m_FileQueueUploader->IsRunning() ) {
		return false;
	}
	delete m_FileQueueUploader;
	m_FileQueueUploader =  new CFileQueueUploader;
	m_FileQueueUploader->setCallback(this);

 	CString url;
	WinUtils::GetClipboardText(url);
	if ( !url.IsEmpty() && !WebUtils::DoesTextLookLikeUrl(url) ) {
		return false;
	}

	std_tr::shared_ptr<UrlShorteningTask> task(new UrlShorteningTask(WCstringToUtf8(url)));

	CUploadEngineData *ue = Settings.urlShorteningServer.uploadEngineData();
	CAbstractUploadEngine * e = _EngineList->getUploadEngine(ue, Settings.urlShorteningServer.serverSettings());
	if ( !e ) {
		return false;
	}
	e->setUploadData(ue);
	ServerSettingsStruct& settings = Settings.urlShorteningServer.serverSettings();
	e->setServerSettings(settings);

	
	e->setUploadData(ue);
	uploadType_ = utUrl;
	m_FileQueueUploader->AddUploadTask(task, 0, e);
	m_FileQueueUploader->start();

	CString msg;
	msg.Format(TR("Cокращаю ссылку \"%s\" с помощью %s"), (LPCTSTR)url,
		(LPCTSTR)Utf8ToWstring(ue->Name).c_str());
	ShowBaloonTip(msg, _T("Image Uploader"));
	return 0;
}
コード例 #19
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
}
コード例 #20
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
bool CSettings::LoadSettings(std::string szDir, std::string fileName, bool LoadFromRegistry ) {
	fileName_ = !szDir.empty() ? szDir + ( (!fileName .empty())? fileName : "Settings.xml") 
		: SettingsFolder + ( !fileName.empty() ? fileName : "Settings.xml");
	//std::cout<< fileName_;
	//MessageBoxA(0,fileName_.c_str(),0,0);
	if ( !IuCoreUtils::FileExists( fileName_)  ) {
		return true;
	}
	SimpleXml xml;
	xml.LoadFromFile( fileName_ );
	mgr_.loadFromXmlNode( xml.getRoot("ImageUploader").GetChild("Settings") );

	SimpleXmlNode settingsNode = xml.getRoot( "ImageUploader" ).GetChild( "Settings" );

#if !defined(IU_CLI) && !defined( IU_SHELLEXT) && !defined(IU_SERVERLISTTOOL)
	std::string temp;
	if ( !settingsNode["Image"]["Format"].IsNull() ) {
		// for compatibility with old version configuration file
		LoadConvertProfile( "Old profile", settingsNode );
	}

	if ( CmdLine.IsOption(_T("afterinstall") )) {
		if ( CmdLine.IsOption(_T("usenewicon") )) {
			UseNewIcon = true;
		} else {
			UseNewIcon = false;
		}
		SaveSettings();
	}
	
	// Migrating from 1.3.0 to 1.3.1 (added ImageEditor has been addded)
	if (settingsNode["ImageEditor"].IsNull() ) {
		if ( Settings.TrayIconSettings.TrayScreenshotAction == TRAY_SCREENSHOT_UPLOAD ) {
			TrayIconSettings.TrayScreenshotAction = TRAY_SCREENSHOT_OPENINEDITOR;
		}
		
	}
	LoadConvertProfiles( settingsNode.GetChild("Image").GetChild("Profiles") );
	LoadServerProfiles( settingsNode.GetChild("Uploading").GetChild("ServerProfiles") );
#endif
	LoadAccounts( xml.getRoot( "ImageUploader" ).GetChild( "Settings" ).GetChild( "ServersParams" ) );
#if !defined(IU_CLI) && !defined( IU_SHELLEXT) && !defined(IU_SERVERLISTTOOL)
	// Fixing profies
	if ( !imageServer.profileName().IsEmpty() &&  ServersSettings[WCstringToUtf8(imageServer.serverName())].find(WCstringToUtf8(imageServer.profileName())) == ServersSettings[WCstringToUtf8(imageServer.serverName())].end() ) {
		imageServer.setProfileName("");
	}

	if ( !fileServer.profileName().IsEmpty() &&  ServersSettings[WCstringToUtf8(fileServer.serverName())].find(WCstringToUtf8(fileServer.profileName())) == ServersSettings[WCstringToUtf8(fileServer.serverName())].end() ) {
		fileServer.setProfileName("");
	}
	if ( !contextMenuServer.profileName().IsEmpty() &&  ServersSettings[WCstringToUtf8(contextMenuServer.serverName())].find(WCstringToUtf8(contextMenuServer.profileName())) == ServersSettings[WCstringToUtf8(contextMenuServer.serverName())].end() ) {
		contextMenuServer.setProfileName("");
	}

	if ( !quickScreenshotServer.profileName().IsEmpty() &&  ServersSettings[WCstringToUtf8(quickScreenshotServer.serverName())].find(WCstringToUtf8(quickScreenshotServer.profileName())) == ServersSettings[WCstringToUtf8(quickScreenshotServer.serverName())].end() ) {
		quickScreenshotServer.setProfileName("");
	}

	if ( !urlShorteningServer.profileName().IsEmpty() &&  ServersSettings[WCstringToUtf8(urlShorteningServer.serverName())].find(WCstringToUtf8(urlShorteningServer.profileName())) == ServersSettings[WCstringToUtf8(urlShorteningServer.serverName())].end() ) {
		urlShorteningServer.setProfileName("");
	}
	if ( UploadBufferSize == 65536) {
		UploadBufferSize = 1024 * 1024;
	}
#endif
#if !defined(IU_CLI) && !defined(IU_SERVERLISTTOOL)
	// Loading some settings from registry
	if ( LoadFromRegistry ) {
		CRegistry Reg;
		Reg.SetRootKey( HKEY_LOCAL_MACHINE );
		if ( Reg.SetKey("Software\\Zenden.ws\\Image Uploader", false ) ) {
			ExplorerContextMenu = Reg.ReadBool("ExplorerContextMenu", false);

		} else {
			ExplorerContextMenu = false;
		}
	}
	CRegistry Reg;
	Reg.SetRootKey( HKEY_CURRENT_USER );
	if ( Reg.SetKey("Software\\Zenden.ws\\Image Uploader", false ) ) {
		ExplorerCascadedMenu = Reg.ReadBool( "ExplorerCascadedMenu", true);
		ExplorerVideoContextMenu = Reg.ReadBool( "ExplorerVideoContextMenu", true);
	} 
	CRegistry Reg2;
	Reg2.SetRootKey(HKEY_CURRENT_USER);
	if ( Reg2.SetKey("Software\\Zenden.ws\\Image Uploader", false ) ) {
		AutoStartup = Reg2.ReadBool("AutoStartup", false);
	}

	if ( VideoSettings.Engine != VideoEngineDirectshow &&  VideoSettings.Engine != VideoEngineFFmpeg && VideoSettings.Engine != VideoEngineAuto   ){
		VideoSettings.Engine = VideoEngineAuto;
	}
	if ( !IsFFmpegAvailable() ){
		VideoSettings.Engine = VideoEngineDirectshow;
	}
#endif
	return true;
}
コード例 #21
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
inline std::string myToString(const CHotkeyList& value) {
	return WCstringToUtf8(value.toString());
}
コード例 #22
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
inline std::string myToString(const CEncodedPassword& value) {
	return WCstringToUtf8(value.toEncodedData());
}
コード例 #23
0
ファイル: Settings.cpp プロジェクト: vladios13/image-uploader
/* LOGFONT serialization support */
inline std::string myToString(const LOGFONT& value) {
	CString res;
	FontToString( &value, res );
	return WCstringToUtf8(res);
}
コード例 #24
0
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
}
コード例 #25
0
void CFloatingWindow::UploadScreenshot(const CString& realName, const CString& displayName)
{
	delete m_FileQueueUploader;
	m_FileQueueUploader =  0;
	lastUploadedItem_.fileListItem = CFileQueueUploader::FileListItem();
	lastUploadedItem_.imageUrlShortened.Empty();
	lastUploadedItem_.downloadUrlShortened.Empty();

	m_FileQueueUploader = new CFileQueueUploader();
	m_FileQueueUploader->setCallback(this);
	ServerProfile &serverProfile = Settings.quickScreenshotServer;
	CUploadEngineData* engineData = serverProfile.uploadEngineData();
	if (!engineData)
		engineData = _EngineList->byIndex(_EngineList->getRandomImageServer());
	if (!engineData)
		return;

	CImageConverter imageConverter;
	Thumbnail thumb;
	CString templateName = Settings.quickScreenshotServer.getImageUploadParams().getThumb().TemplateName;
	if ( templateName.IsEmpty() ) {
		templateName = _T("default");
	}
	CString thumbTemplateFileName = IuCommonFunctions::GetDataFolder() + _T("\\Thumbnails\\") + templateName +
		_T(".xml");

	if (!thumb.LoadFromFile(WCstringToUtf8(thumbTemplateFileName)))
	{
		WriteLog(logError, _T("CFloatingWindow"), TR("Не могу загрузить файл миниатюры!")+CString(_T("\r\n")) + thumbTemplateFileName);
		return;
	}
	imageConverter.setEnableProcessing(Settings.quickScreenshotServer.getImageUploadParams().ProcessImages);
	imageConverter.setImageConvertingParams(Settings.ConvertProfiles[Settings.quickScreenshotServer.getImageUploadParams().ImageProfileName]);
	imageConverter.setThumbCreatingParams(Settings.quickScreenshotServer.getImageUploadParams().getThumb());
	bool GenThumbs = Settings.quickScreenshotServer.getImageUploadParams().CreateThumbs &&
	   ((!Settings.quickScreenshotServer.getImageUploadParams().UseServerThumbs) || (!engineData->SupportThumbnails));
	imageConverter.setThumbnail(&thumb);
	imageConverter.setGenerateThumb(GenThumbs);
	imageConverter.Convert(realName);

	CAbstractUploadEngine* engine = _EngineList->getUploadEngine(engineData, serverProfile.serverSettings());
	if (!engine)
		return;

	m_FileQueueUploader->setUploadSettings(engine);

	source_file_name_ = WCstringToUtf8(realName);
	server_name_ = engineData->Name;
	std::string utf8FileName = WCstringToUtf8(imageConverter.getImageFileName());
	lastUploadedItem_.fileListItem.fileSize = IuCoreUtils::getFileSize(utf8FileName);
	m_FileQueueUploader->AddFile(utf8FileName, WCstringToUtf8(displayName), 0, engine);
	
	CString thumbFileName = imageConverter.getThumbFileName();
	if (!thumbFileName.IsEmpty())
		m_FileQueueUploader->AddFile(WCstringToUtf8(thumbFileName), WCstringToUtf8(thumbFileName),
		                             reinterpret_cast<void*>(1), engine);

	m_bIsUploading = true;
	uploadType_ = utImage;
	m_FileQueueUploader->start();
	CString msg;
	msg.Format(TR("Идет загрузка \"%s\" на сервер %s"), (LPCTSTR) GetOnlyFileName(displayName),
	           (LPCTSTR)Utf8ToWstring(engineData->Name).c_str());
	ShowBaloonTip(msg, TR("Загрузка снимка"));
}