From f1543f6199f0387f68f16131c860a1c5b0208bbb Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Tue, 13 May 2014 21:48:20 +0200 Subject: [PATCH] [DEV] correction of the filename display and management --- sources/appl/Buffer.cpp | 16 ++++++++++++---- sources/appl/BufferManager.cpp | 7 +++++-- sources/appl/Gui/MainWindows.cpp | 5 +++-- sources/appl/TextPluginCtags.cpp | 6 +++--- sources/appl/init.cpp | 12 ++++++++---- 5 files changed, 31 insertions(+), 15 deletions(-) diff --git a/sources/appl/Buffer.cpp b/sources/appl/Buffer.cpp index c237c1b..f769acb 100644 --- a/sources/appl/Buffer.cpp +++ b/sources/appl/Buffer.cpp @@ -13,6 +13,8 @@ #include #include +#undef __class__ +#define __class__ "Buffer" const char* const appl::Buffer::eventIsModify = "edn-is-modify"; const char* const appl::Buffer::eventIsSave = "edn-is-save"; @@ -143,8 +145,11 @@ appl::Buffer::~Buffer(void) { } bool appl::Buffer::loadFile(const std::string& _name) { - APPL_DEBUG("Load file : '" << _name << "'"); - m_fileName = _name; + APPL_DEBUG("Convert filename :'" << _name << "'"); + etk::FSNode file(_name); + std::string name = file.getName(); + APPL_INFO("Load file : '" << name << "'"); + m_fileName = name; m_hasFileName = true; m_isModify = true; m_cursorPos = 0; @@ -160,10 +165,13 @@ bool appl::Buffer::loadFile(const std::string& _name) { } void appl::Buffer::setFileName(const std::string& _name) { - if (m_fileName == _name) { + APPL_DEBUG("Convert filename :'" << _name << "'"); + etk::FSNode file(_name); + std::string name = file.getName(); + if (m_fileName == name) { return; } - m_fileName = _name; + m_fileName = name; m_hasFileName = true; generateEventId(eventChangeName); setModification(true); diff --git a/sources/appl/BufferManager.cpp b/sources/appl/BufferManager.cpp index 69d4b1d..ea51a65 100644 --- a/sources/appl/BufferManager.cpp +++ b/sources/appl/BufferManager.cpp @@ -6,10 +6,11 @@ * @license GPL v3 (see license file) */ +#include +#include #include #include #include -#include #include #include #include @@ -51,6 +52,7 @@ appl::Buffer* appl::BufferManager::createNewBuffer(void) { } appl::Buffer* appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) { + APPL_INFO("get(" << _fileName << "," << _createIfNeeded << ")"); for (int32_t iii = 0; iii < m_list.size(); ++iii) { if (m_list[iii] == NULL) { continue; @@ -61,7 +63,8 @@ appl::Buffer* appl::BufferManager::get(const std::string& _fileName, bool _creat } if (_createIfNeeded == true) { if (etk::FSNodeGetType(_fileName) == etk::FSN_FOLDER) { - APPL_INFO("try open a folder : " << _fileName); + APPL_WARNING("try open a folder : " << _fileName); + APPL_CRITICAL("plop"); return NULL; } appl::Buffer* tmp = new appl::Buffer(); diff --git a/sources/appl/Gui/MainWindows.cpp b/sources/appl/Gui/MainWindows.cpp index 1851def..5d1b199 100644 --- a/sources/appl/Gui/MainWindows.cpp +++ b/sources/appl/Gui/MainWindows.cpp @@ -384,9 +384,10 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) { tmpp->registerOnEvent(this, appl::Buffer::eventIsSave); tmpp->registerOnEvent(this, appl::Buffer::eventChangeName); } - setTitle(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + tmpp->getFileName()); + std::string nameFileSystem = etk::FSNode(tmpp->getFileName()).getFileSystemName(); + setTitle(std::string("Edn : ") + (tmpp->isModify()==true?" *":"") + nameFileSystem); if (m_widgetLabelFileName != NULL) { - m_widgetLabelFileName->setLabel(tmpp->getFileName() + (tmpp->isModify()==true?" *":"")); + m_widgetLabelFileName->setLabel(nameFileSystem + (tmpp->isModify()==true?" *":"")); } } diff --git a/sources/appl/TextPluginCtags.cpp b/sources/appl/TextPluginCtags.cpp index 69a5963..4936830 100644 --- a/sources/appl/TextPluginCtags.cpp +++ b/sources/appl/TextPluginCtags.cpp @@ -82,13 +82,13 @@ void appl::TextPluginCtags::jumpTo(const std::string& _name) { if (NULL == tmpWidget) { APPL_ERROR("Can not allocate widget == > display might be in error"); } else { - tmpWidget->addCtagsNewItem(myfile.getName(), lineID); + tmpWidget->addCtagsNewItem(myfile.getFileSystemName(), lineID); do { tmpFile = m_tagFolderBase + "/" + entry.file; myfile = tmpFile; lineID = entry.address.lineNumber; printTag(&entry); - tmpWidget->addCtagsNewItem(myfile.getName(), lineID); + tmpWidget->addCtagsNewItem(myfile.getFileSystemName(), lineID); } while (tagsFindNext (m_ctagFile, &entry) == TagSuccess); ewol::getContext().getWindows()->popUpWidgetPush(tmpWidget); tmpWidget->registerOnEvent(this, applEventctagsSelection, eventOpenCtagsSelectReturn); @@ -156,7 +156,7 @@ void appl::TextPluginCtags::onReceiveMessage(const ewol::object::Message& _msg) etk::FSNode tmpFilename = _msg.getData(); m_tagFilename = tmpFilename.getNameFile(); m_tagFolderBase = tmpFilename.getNameFolder(); - APPL_DEBUG("Receive load Ctags file : " << m_tagFolderBase << "/" << m_tagFilename << " "); + APPL_INFO("Receive load Ctags file : " << m_tagFolderBase << "/" << m_tagFilename << " "); loadTagFile(); } else if (_msg.getMessage() == eventOpenCtagsSelectReturn) { // parse the input data diff --git a/sources/appl/init.cpp b/sources/appl/init.cpp index 3332134..19c8b59 100644 --- a/sources/appl/init.cpp +++ b/sources/appl/init.cpp @@ -103,12 +103,16 @@ bool APP_Init(ewol::Context& _context, size_t _initId, size_t& _nbInitStep) { if (tmpppp == "-t") { ctagDetected = true; } else if (true == ctagDetected) { - APPL_INFO("Load ctag file : \"" << tmpppp << "\"" ); + etk::FSNode file(tmpppp); + std::string name = file.getName(); + APPL_INFO("Load ctag file : \"" << name << "\"" ); ctagDetected = false; - _context.getEObjectManager().multiCast().anonymousSend(ednMsgCtagsLoadFile, tmpppp); + _context.getEObjectManager().multiCast().anonymousSend(ednMsgCtagsLoadFile, name); } else { - APPL_INFO("need load file : \"" << tmpppp << "\"" ); - bufferManager->open(tmpppp); + etk::FSNode file(tmpppp); + std::string name = file.getName(); + APPL_INFO("need load file : \"" << name << "\"" ); + bufferManager->open(name); } }