[DEV] multiple save and close start to work

This commit is contained in:
2013-11-17 20:37:06 +01:00
parent e32253cd98
commit 9ca83d1718
8 changed files with 209 additions and 14 deletions

View File

@@ -13,7 +13,7 @@
#undef __class__
#define __class__ "WorkerSaveFile"
static const char* appl::WorkerSaveFile::eventSaveDone = "save-file-done";
const char* appl::WorkerSaveFile::eventSaveDone = "save-file-done";
static const char* s_saveAsValidate = "save-as-validate";
@@ -30,7 +30,16 @@ appl::WorkerSaveFile::WorkerSaveFile(const std::string& _bufferName, bool _force
autoDestroy();
return;
}
// TODO : if "" ==> it is current buffer selected ...
if (m_bufferName == "") {
// need to find the curent file ...
appl::Buffer* tmpp = m_bufferManager->getBufferSelected();
if (tmpp == NULL) {
APPL_ERROR("No selected buffer now ...");
autoDestroy();
return;
}
m_bufferName = tmpp->getFileName();
}
if (m_bufferManager->exist(m_bufferName) == false) {
APPL_ERROR("Try to save an non-existant file :" << m_bufferName);
autoDestroy();
@@ -42,6 +51,14 @@ appl::WorkerSaveFile::WorkerSaveFile(const std::string& _bufferName, bool _force
autoDestroy();
return;
}
if (_forceSaveAs == false) {
if (tmpBuffer->hasFileName() == true) {
tmpBuffer->storeFile();
generateEventId(eventSaveDone);
autoDestroy();
return;
}
}
m_chooser = new widget::FileChooser();
if (NULL == m_chooser) {
APPL_ERROR("Can not allocate widget == > display might be in error");
@@ -93,6 +110,8 @@ void appl::WorkerSaveFile::onReceiveMessage(const ewol::EMessage& _msg) {
return;
}
tmpWindows->displayWarningMessage("We can not save the file : <br/><i>" + tmpBuffer->getFileName() + "</i>");
} else {
generateEventId(eventSaveDone);
}
}
}