Commit 3ee9c0fa authored by Oleg Korshul's avatar Oleg Korshul Committed by Alexander Trofimov

работа билдера сразу в двух режимах. Чтобы тестировать сборку.

parent db9c9b13
...@@ -90,18 +90,13 @@ public: ...@@ -90,18 +90,13 @@ public:
std::cerr << sT << ": " << sE << std::endl; std::cerr << sT << ": " << sE << std::endl;
} }
bool ExecuteCommand(const std::wstring& command, bool bIsSave = true) bool ExecuteCommand(const std::wstring& command)
{ {
LOGGER_SPEED_START LOGGER_SPEED_START
std::string commandA = U_TO_UTF8(command); std::string commandA = U_TO_UTF8(command);
//commandA = "_api." + commandA; //commandA = "_api." + commandA;
#ifndef APPLY_CHANGES_IN_BUILDER
if (bIsSave)
commandA += "_api.asc_Save();";
#endif
v8::Context::Scope context_scope(m_context); v8::Context::Scope context_scope(m_context);
v8::TryCatch try_catch; v8::TryCatch try_catch;
...@@ -271,9 +266,9 @@ public: ...@@ -271,9 +266,9 @@ public:
} }
if (!bIsBreak) if (!bIsBreak)
bIsBreak = !this->ExecuteCommand(L"_api.asc_nativeInitBuilder();", false); bIsBreak = !this->ExecuteCommand(L"_api.asc_nativeInitBuilder();");
if (!bIsBreak) if (!bIsBreak)
bIsBreak = !this->ExecuteCommand(L"_api.asc_SetSilentMode(true);", false); bIsBreak = !this->ExecuteCommand(L"_api.asc_SetSilentMode(true);");
LOGGER_SPEED_LAP("open") LOGGER_SPEED_LAP("open")
...@@ -331,7 +326,7 @@ public: ...@@ -331,7 +326,7 @@ public:
return false; return false;
if (_formatDst == NSDoctRenderer::DoctRendererFormat::PDF) if (_formatDst == NSDoctRenderer::DoctRendererFormat::PDF)
this->ExecuteCommand(L"_api.asc_SetSilentMode(false);", false); this->ExecuteCommand(L"_api.asc_SetSilentMode(false);");
std::wstring strError; std::wstring strError;
bool bIsError = Doct_renderer_SaveFile_ForBuilder(_formatDst, bool bIsError = Doct_renderer_SaveFile_ForBuilder(_formatDst,
...@@ -344,7 +339,7 @@ public: ...@@ -344,7 +339,7 @@ public:
strError); strError);
if (_formatDst == NSDoctRenderer::DoctRendererFormat::PDF) if (_formatDst == NSDoctRenderer::DoctRendererFormat::PDF)
this->ExecuteCommand(L"_api.asc_SetSilentMode(true);", false); this->ExecuteCommand(L"_api.asc_SetSilentMode(true);");
return bIsError; return bIsError;
} }
...@@ -377,9 +372,13 @@ namespace NSDoctRenderer ...@@ -377,9 +372,13 @@ namespace NSDoctRenderer
std::wstring m_sX2tPath; std::wstring m_sX2tPath;
CV8RealTimeWorker* m_pWorker; CV8RealTimeWorker* m_pWorker;
bool m_bIsSaveWithDoctrendererMode;
public: public:
CDocBuilder_Private(bool bIsCheckSystemFonts) CDocBuilder_Private(bool bIsCheckSystemFonts)
{ {
m_bIsSaveWithDoctrendererMode = false;
m_sX2tPath = NSFile::GetProcessDirectory(); m_sX2tPath = NSFile::GetProcessDirectory();
m_pWorker = NULL; m_pWorker = NULL;
...@@ -795,10 +794,11 @@ namespace NSDoctRenderer ...@@ -795,10 +794,11 @@ namespace NSDoctRenderer
std::wstring sFileBin = L"/Editor.bin"; std::wstring sFileBin = L"/Editor.bin";
#ifdef APPLY_CHANGES_IN_BUILDER if (!m_bIsSaveWithDoctrendererMode)
{
this->m_pWorker->SaveFileWithChanges(type, m_sFileDir + L"/Editor2.bin"); this->m_pWorker->SaveFileWithChanges(type, m_sFileDir + L"/Editor2.bin");
sFileBin = L"/Editor2.bin"; sFileBin = L"/Editor2.bin";
#endif }
NSStringUtils::CStringBuilder oBuilder; NSStringUtils::CStringBuilder oBuilder;
...@@ -810,11 +810,10 @@ namespace NSDoctRenderer ...@@ -810,11 +810,10 @@ namespace NSDoctRenderer
oBuilder.WriteString(std::to_wstring(type)); oBuilder.WriteString(std::to_wstring(type));
oBuilder.WriteString(L"</m_nFormatTo><m_sThemeDir>"); oBuilder.WriteString(L"</m_nFormatTo><m_sThemeDir>");
oBuilder.WriteEncodeXmlString(L"./sdkjs/slide/themes"); oBuilder.WriteEncodeXmlString(L"./sdkjs/slide/themes");
#ifdef APPLY_CHANGES_IN_BUILDER if (!m_bIsSaveWithDoctrendererMode)
oBuilder.WriteString(L"</m_sThemeDir><m_bDontSaveAdditional>true</m_bDontSaveAdditional>"); oBuilder.WriteString(L"</m_sThemeDir><m_bDontSaveAdditional>true</m_bDontSaveAdditional>");
#else else
oBuilder.WriteString(L"</m_sThemeDir><m_bFromChanges>true</m_bFromChanges><m_bDontSaveAdditional>true</m_bDontSaveAdditional>"); oBuilder.WriteString(L"</m_sThemeDir><m_bFromChanges>true</m_bFromChanges><m_bDontSaveAdditional>true</m_bDontSaveAdditional>");
#endif
oBuilder.WriteString(L"<m_nCsvTxtEncoding>46</m_nCsvTxtEncoding><m_nCsvDelimiter>4</m_nCsvDelimiter>"); oBuilder.WriteString(L"<m_nCsvTxtEncoding>46</m_nCsvTxtEncoding><m_nCsvDelimiter>4</m_nCsvDelimiter>");
oBuilder.WriteString(L"<m_sFontDir>"); oBuilder.WriteString(L"<m_sFontDir>");
oBuilder.WriteEncodeXmlString(NSFile::GetProcessDirectory() + L"/sdkjs/common"); oBuilder.WriteEncodeXmlString(NSFile::GetProcessDirectory() + L"/sdkjs/common");
...@@ -1262,6 +1261,12 @@ namespace NSDoctRenderer ...@@ -1262,6 +1261,12 @@ namespace NSDoctRenderer
else if (L"pdf" == _builder_params[0]) else if (L"pdf" == _builder_params[0])
nFormat = AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF; nFormat = AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF;
if (m_pInternal->m_bIsSaveWithDoctrendererMode)
{
// перед сохранением в такой схеме нужно скинуть изменения
this->ExecuteCommand(L"_api.asc_Save();");
}
this->SaveFile(nFormat, _builder_params[1].c_str()); this->SaveFile(nFormat, _builder_params[1].c_str());
} }
} }
...@@ -1278,6 +1283,13 @@ namespace NSDoctRenderer ...@@ -1278,6 +1283,13 @@ namespace NSDoctRenderer
return true; return true;
} }
void CDocBuilder::SetProperty(const char* param)
{
std::string sParam = std::string(param);
if (sParam == "--use-doctrenderer-scheme")
m_pInternal->m_bIsSaveWithDoctrendererMode = true;
}
void CDocBuilder::Initialize() void CDocBuilder::Initialize()
{ {
CV8Worker::Initialize(); CV8Worker::Initialize();
......
...@@ -25,6 +25,8 @@ namespace NSDoctRenderer ...@@ -25,6 +25,8 @@ namespace NSDoctRenderer
bool RunTextW(const wchar_t* commands); bool RunTextW(const wchar_t* commands);
bool RunTextA(const char* commands); bool RunTextA(const char* commands);
void SetProperty(const char* param);
public: public:
static void Initialize(); static void Initialize();
static void Dispose(); static void Dispose();
......
...@@ -850,8 +850,6 @@ void CreateNativeObject(const v8::FunctionCallbackInfo<v8::Value>& args); ...@@ -850,8 +850,6 @@ void CreateNativeObject(const v8::FunctionCallbackInfo<v8::Value>& args);
void CreateNativeObjectBuilder(const v8::FunctionCallbackInfo<v8::Value>& args); void CreateNativeObjectBuilder(const v8::FunctionCallbackInfo<v8::Value>& args);
void CreateNativeMemoryStream(const v8::FunctionCallbackInfo<v8::Value>& args); void CreateNativeMemoryStream(const v8::FunctionCallbackInfo<v8::Value>& args);
#define APPLY_CHANGES_IN_BUILDER
#if 0 #if 0
class CLoggerSpeed class CLoggerSpeed
{ {
......
...@@ -56,6 +56,18 @@ int main(int argc, char *argv[]) ...@@ -56,6 +56,18 @@ int main(int argc, char *argv[])
if (true) if (true)
{ {
NSDoctRenderer::CDocBuilder oBuilder(true); NSDoctRenderer::CDocBuilder oBuilder(true);
for (int i = 0; i < (argc - 1); ++i)
{
#ifdef WIN32
std::wstring sW(argv[i]);
std::string sParam(sW.begin(), sW.end());
#else
std::string sParam(argv[i]);
#endif
oBuilder.SetProperty(sParam.c_str());
}
oBuilder.Run(sBuildFile.c_str()); oBuilder.Run(sBuildFile.c_str());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment