[DEV] better display of the treeview...
This commit is contained in:
parent
bba1477118
commit
962da14ed1
@ -6,5 +6,6 @@
|
||||
{ name:"backgroungSelected", foreground:"#2f0ba4" },
|
||||
{ name:"textNormal", foreground:"#EEEEEE" },
|
||||
{ name:"textModify", foreground:"#FF0000" },
|
||||
{ name:"textNotOpen", foreground:"#808080"},
|
||||
]
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
{ name:"backgroundhide", foreground:"#606060" },
|
||||
{ name:"backgroungSelected", foreground:"#3da3f9"},
|
||||
{ name:"textNormal", foreground:"#000000"},
|
||||
{ name:"textModify", foreground:"#FF0000"}
|
||||
{ name:"textModify", foreground:"#FF0000"},
|
||||
{ name:"textNotOpen", foreground:"#808080"}
|
||||
]
|
||||
}
|
@ -44,12 +44,14 @@ appl::widget::BufferTree::BufferTree() :
|
||||
m_colorBackgroundSelect = m_paintingProperties->request("backgroungSelected");
|
||||
m_colorTextNormal = m_paintingProperties->request("textNormal");
|
||||
m_colorTextModify = m_paintingProperties->request("textModify");
|
||||
m_colorTextNotOpen = m_paintingProperties->request("textNotOpen");
|
||||
}
|
||||
|
||||
void appl::widget::BufferTree::init() {
|
||||
ewol::widget::TreeView::init();
|
||||
//propertyHide.set(true);
|
||||
propertyCanFocus.set(true);
|
||||
propertyTextIsDecorated.set(false);
|
||||
if (m_bufferManager != null) {
|
||||
m_bufferManager->signalNewBuffer2.connect(sharedFromThis(), &appl::widget::BufferTree::onNewBuffer);
|
||||
m_bufferManager->signalSelectBuffer.connect(sharedFromThis(), &appl::widget::BufferTree::onSelectBuffer);
|
||||
@ -69,7 +71,9 @@ static etk::String getCommonPathPart(const etk::String& _left, const etk::String
|
||||
return out;
|
||||
}
|
||||
|
||||
void appl::widget::BufferTree::updateFlatTree() {
|
||||
|
||||
|
||||
void appl::widget::BufferTree::generateFlatTree() {
|
||||
// Brut Force Mode...
|
||||
etk::String upperParent = "";
|
||||
etk::Vector<appl::BufferShared> tmpNewBuffer;
|
||||
@ -90,13 +94,15 @@ void appl::widget::BufferTree::updateFlatTree() {
|
||||
upperParent = getCommonPathPart(upperParent, nodeName.getNameFolder());
|
||||
APPL_ERROR("Update: " << nodeName.getFileSystemName() << " " << nodeName.getNameFolder() << " root=" << upperParent);
|
||||
}
|
||||
APPL_ERROR("update tree: " << upperParent);
|
||||
// Now we have the root path...
|
||||
// Need to feed all elements needed
|
||||
etk::FSNode nodeRoot = etk::FSNode(upperParent).getFileName();
|
||||
m_tree = etk::TreeNode<appl::TreeElement>::create(TreeElement(upperParent, true, true));
|
||||
// Need to feed all elements needed.
|
||||
etk::FSNode nodeRoot = upperParent;
|
||||
m_tree = etk::TreeNode<appl::TreeElement>::create(TreeElement(etk::FSNode(upperParent).getFileName(), true, true));
|
||||
etk::Vector<etk::FSNode*> child = nodeRoot.folderGetSubList(false, true, true, false);
|
||||
APPL_ERROR(" nbChilds: " << child.size());
|
||||
for (auto& it: child) {
|
||||
APPL_WARNING("add element: " << *it);
|
||||
APPL_ERROR("add element: " << *it);
|
||||
if (it->getNodeType() == etk::typeNode_folder) {
|
||||
auto elem = etk::TreeNode<appl::TreeElement>::create(TreeElement(it->getNameFile(), true, false));
|
||||
m_tree->addChild(elem);
|
||||
@ -106,7 +112,10 @@ void appl::widget::BufferTree::updateFlatTree() {
|
||||
}
|
||||
// TODO: ETK_FREE(etk::FSNode, it);
|
||||
}
|
||||
updateFlatTree();
|
||||
}
|
||||
|
||||
void appl::widget::BufferTree::updateFlatTree() {
|
||||
m_flatTree.setRoot(m_tree,
|
||||
[&](const TreeElement& _value){
|
||||
return true;
|
||||
@ -114,7 +123,6 @@ void appl::widget::BufferTree::updateFlatTree() {
|
||||
[&](const TreeElement& _value){
|
||||
return _value.m_isExpand;
|
||||
});
|
||||
|
||||
markToRedraw();
|
||||
}
|
||||
|
||||
@ -140,7 +148,7 @@ void appl::widget::BufferTree::removeAllElement() {
|
||||
}
|
||||
|
||||
void appl::widget::BufferTree::onNewBuffer(const ememory::SharedPtr<appl::Buffer>& _buffer) {
|
||||
updateFlatTree();
|
||||
generateFlatTree();
|
||||
/*
|
||||
ememory::SharedPtr<appl::Buffer> buffer = m_bufferManager->get(_value);
|
||||
if (buffer == null) {
|
||||
@ -228,7 +236,6 @@ void appl::widget::BufferTree::onCallbackIsModify() {
|
||||
}
|
||||
|
||||
etk::Color<> appl::widget::BufferTree::getBasicBG() {
|
||||
return etk::Color<>(0xAF,0xAF,0xAF,0xFF);
|
||||
return (*m_paintingProperties)[m_colorBackground1].getForeground();
|
||||
}
|
||||
|
||||
@ -236,6 +243,12 @@ ivec2 appl::widget::BufferTree::getMatrixSize() const {
|
||||
return ivec2(1, m_flatTree.size());
|
||||
}
|
||||
|
||||
void appl::widget::BufferTree::onItemExpandEvent(const ivec2& _pos) {
|
||||
APPL_WARNING("Event on expand on " << _pos);
|
||||
m_flatTree[_pos.y()]->getData().m_isExpand = m_flatTree[_pos.y()]->getData().m_isExpand?false:true;
|
||||
updateFlatTree();
|
||||
}
|
||||
|
||||
fluorine::Variant appl::widget::BufferTree::getData(int32_t _role, const ivec2& _pos) {
|
||||
auto elem = m_flatTree[_pos.y()];
|
||||
appl::TreeElement& value = elem->getData();
|
||||
@ -245,7 +258,7 @@ fluorine::Variant appl::widget::BufferTree::getData(int32_t _role, const ivec2&
|
||||
case ewol::widget::ListRole::FgColor:
|
||||
if (value.m_buffer == null) {
|
||||
//APPL_ERROR( m_colorBackgroundHide << " => " << (*m_paintingProperties)[m_colorBackgroundHide].getForeground());
|
||||
return (*m_paintingProperties)[m_colorTextModify].getForeground();
|
||||
return (*m_paintingProperties)[m_colorTextNotOpen].getForeground();
|
||||
}
|
||||
if (value.m_buffer->isModify() == false) {
|
||||
return (*m_paintingProperties)[m_colorTextNormal].getForeground();
|
||||
|
@ -46,10 +46,12 @@ namespace appl {
|
||||
int32_t m_colorBackgroundSelect;
|
||||
int32_t m_colorTextNormal;
|
||||
int32_t m_colorTextModify;
|
||||
int32_t m_colorTextNotOpen;
|
||||
private:
|
||||
int32_t m_selectedIdRequested;
|
||||
int32_t m_selectedID;
|
||||
void updateFlatTree();
|
||||
void generateFlatTree();
|
||||
ememory::SharedPtr<etk::TreeNode<TreeElement>> m_tree;
|
||||
etk::FlatTree<TreeElement> m_flatTree;
|
||||
ememory::SharedPtr<appl::Buffer> m_selection;
|
||||
@ -70,6 +72,7 @@ namespace appl {
|
||||
ivec2 getMatrixSize() const override;
|
||||
fluorine::Variant getData(int32_t _role, const ivec2& _pos) override;
|
||||
bool onItemEvent(const ewol::event::Input& _event, const ivec2& _pos, const vec2& _mousePosition) override;
|
||||
void onItemExpandEvent(const ivec2& _pos) override;
|
||||
private: //callback function:
|
||||
void onCallbackChangeName();
|
||||
void onCallbackIsSave();
|
||||
|
Loading…
Reference in New Issue
Block a user