bool RDOEditorProject::saveProject() { if ( isModify() ) { if ( name.IsEmpty() ) { if ( !saveAsDlg() ) return false; } } else return true; save(); return true; }
// Get a file name from the user, obtain the generated HTML and then save it in that file. void CStatisticsTree::ExportHTML() { CFile htmlFile; // Save/Restore the current directory TCHAR szCurDir[MAX_PATH]; DWORD dwCurDirLen = GetCurrentDirectory(_countof(szCurDir), szCurDir); if (dwCurDirLen == 0 || dwCurDirLen >= _countof(szCurDir)) szCurDir[0] = _T('\0'); CFileDialog saveAsDlg(false, _T("html"), _T("eMule Statistics.html"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_EXPLORER, _T("HTML Files (*.html)|*.html|All Files (*.*)|*.*||"), this, 0); if (saveAsDlg.DoModal() == IDOK) { CString strHTML; strHTML.Format( CString("<html>\r\n<header>\r\n<title>eMule %s [%s]</title>\r\n" "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">" "<style type=\"text/css\">\r\n" "#pghdr { color: #000F80; font: bold 12pt/14pt Verdana, Courier New, Helvetica; }\r\n" "#pghdr2 { color: #000F80; font: bold 10pt/12pt Verdana, Courier New, Helvetica; }\r\n" "img { border: 0px; }\r\n" "a { text-decoration: none; }\r\n" "#sec { color: #000000; font: bold 9pt/11pt Verdana, Courier New, Helvetica; }\r\n" "#item { color: #000000; font: normal 8pt/10pt Verdana, Courier New, Helvetica; }\r\n" "#bdy { color: #000000; font: normal 8pt/10pt Verdana, Courier New, Helvetica; background-color: #FFFFFF; }\r\n</style>\r\n</header>\r\n" "<script language=\"JavaScript1.2\" type=\"text/javascript\">\r\n" "function obj(menu)\r\n" "{\r\n" "return (navigator.appName == \"Microsoft Internet Explorer\")?this[menu]:document.getElementById(menu);\r\n" "}\r\n" "function togglevisible(treepart)\r\n" "{\r\n" "if (this.obj(\"T\"+treepart).style.visibility == \"hidden\")\r\n" "{\r\n" "this.obj(\"T\"+treepart).style.position=\"\";\r\n" "this.obj(\"T\"+treepart).style.visibility=\"\";\r\n" "document[\"I\"+treepart].src=\"stats_visible.gif\";\r\n" "}\r\n" "else\r\n" "{\r\n" "this.obj(\"T\"+treepart).style.position=\"absolute\";\r\n" "this.obj(\"T\"+treepart).style.visibility=\"hidden\";\r\n" "document[\"I\"+treepart].src=\"stats_hidden.gif\";\r\n" "}\r\n" "}\r\n" "</script>\r\n" "<body id=\"bdy\">\r\n" "<span id=\"pghdr\"><b>eMule %s</b></span><br /><span id=\"pghdr2\">%s %s</span>\r\n<br /><br />\r\n" "%s</body></html>") , GetResString(IDS_SF_STATISTICS), thePrefs.GetUserNick(), GetResString(IDS_SF_STATISTICS), GetResString(IDS_CD_UNAME), thePrefs.GetUserNick(), GetHTMLForExport() ); htmlFile.Open(saveAsDlg.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::shareDenyWrite); CStringA strHtmlA(wc2utf8(strHTML)); htmlFile.Write(strHtmlA, strHtmlA.GetLength()); htmlFile.Close(); static const TCHAR *const s_apcFileNames[] = { _T("stats_0.gif"), _T("stats_1.gif"), _T("stats_2.gif"), _T("stats_3.gif"), _T("stats_4.gif"), _T("stats_5.gif"), _T("stats_6.gif"), _T("stats_7.gif"), _T("stats_8.gif"), _T("stats_9.gif"), _T("stats_10.gif"), _T("stats_11.gif"), _T("stats_12.gif"), _T("stats_13.gif"), _T("stats_14.gif"), _T("stats_15.gif"), _T("stats_16.gif"), _T("stats_17.gif"), _T("stats_hidden.gif"), _T("stats_space.gif"), _T("stats_visible.gif") }; CString strDst = saveAsDlg.GetPathName().Left(saveAsDlg.GetPathName().GetLength() - saveAsDlg.GetFileName().GetLength());// EC - what if directory name == filename? this should fix this CString strSrc = thePrefs.GetMuleDirectory(EMULE_WEBSERVERDIR); for (unsigned ui = 0; ui < ARRSIZE(s_apcFileNames); ui++) ::CopyFile(strSrc + s_apcFileNames[ui], strDst + s_apcFileNames[ui], false); } if (szCurDir[0] != _T('\0')) VERIFY( SetCurrentDirectory(szCurDir) ); }
void RDOEditorProject::saveAsProject() { if ( saveAsDlg() ) { save(); } }