[DEV] remove cyclic dependence on shared_ptr

This commit is contained in:
Edouard DUPIN 2014-08-08 23:25:43 +02:00
parent 39801fd265
commit 5a924f7c9d
2 changed files with 4 additions and 19 deletions

View File

@ -32,11 +32,11 @@ appl::ViewerManager::~ViewerManager() {
} }
bool appl::ViewerManager::isLastSelected(const std::shared_ptr<appl::TextViewer>& _viewer) { bool appl::ViewerManager::isLastSelected(const std::shared_ptr<appl::TextViewer>& _viewer) {
return m_viewer == _viewer; return m_viewer.lock() == _viewer;
} }
void appl::ViewerManager::setViewerSelected(const std::shared_ptr<appl::TextViewer>& _viewer, const std::shared_ptr<appl::Buffer>& _buffer) { void appl::ViewerManager::setViewerSelected(const std::shared_ptr<appl::TextViewer>& _viewer, const std::shared_ptr<appl::Buffer>& _buffer) {
if (m_viewer == _viewer) { if (m_viewer.lock() == _viewer) {
return; return;
} }
m_viewer = _viewer; m_viewer = _viewer;
@ -44,15 +44,3 @@ void appl::ViewerManager::setViewerSelected(const std::shared_ptr<appl::TextView
m_bufferManager->setBufferSelected(_buffer); m_bufferManager->setBufferSelected(_buffer);
} }
} }
void appl::ViewerManager::onReceiveMessage(const ewol::object::Message& _msg) {
APPL_DEBUG("receive message !!! " << _msg);
}
void appl::ViewerManager::onObjectRemove(const std::shared_ptr<ewol::Object>& _removeObject) {
ewol::Resource:: onObjectRemove(_removeObject);
if (_removeObject == m_viewer) {
m_viewer.reset();
return;
}
}

View File

@ -26,7 +26,7 @@ namespace appl {
virtual ~ViewerManager(); virtual ~ViewerManager();
private: private:
std::shared_ptr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager std::shared_ptr<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
std::shared_ptr<appl::TextViewer> m_viewer; std::weak_ptr<appl::TextViewer> m_viewer;
public: public:
/** /**
* @brief Set the current buffer selected * @brief Set the current buffer selected
@ -38,7 +38,7 @@ namespace appl {
* @return Pointer on the buffer selected * @return Pointer on the buffer selected
*/ */
std::shared_ptr<appl::TextViewer> getViewerSelected() { std::shared_ptr<appl::TextViewer> getViewerSelected() {
return m_viewer; return m_viewer.lock();
}; };
/** /**
* @breif Check if the element is the last request selection * @breif Check if the element is the last request selection
@ -46,9 +46,6 @@ namespace appl {
* @return true if the element is selected * @return true if the element is selected
*/ */
bool isLastSelected(const std::shared_ptr<appl::TextViewer>& _viewer); bool isLastSelected(const std::shared_ptr<appl::TextViewer>& _viewer);
public: // herited function
void onReceiveMessage(const ewol::object::Message& _msg);
void onObjectRemove(const std::shared_ptr<ewol::Object>& _removeObject);
}; };
}; };