Update of /cvsroot/mahogany/M/src/gui
In directory usw-pr-cvs1:/tmp/cvs-serv16964/src/gui
Modified Files:
wxFolderTree.cpp
Log Message:
insert the folders to the correct place in the tree when they're created
Index: wxFolderTree.cpp
===================================================================
RCS file: /cvsroot/mahogany/M/src/gui/wxFolderTree.cpp,v
retrieving revision 1.187
retrieving revision 1.188
diff -b -u -2 -r1.187 -r1.188
--- wxFolderTree.cpp 11 Mar 2002 19:40:56 -0000 1.187
+++ wxFolderTree.cpp 17 Mar 2002 15:39:14 -0000 1.188
@@ -187,5 +187,6 @@
wxFolderTreeNode(wxTreeCtrl *tree,
MFolder *folder,
- wxFolderTreeNode *parent = NULL);
+ wxFolderTreeNode *parent = NULL,
+ int index = -1);
// dtor
@@ -1183,5 +1184,6 @@
wxFolderTreeNode::wxFolderTreeNode(wxTreeCtrl *tree,
MFolder *folder,
- wxFolderTreeNode *parent)
+ wxFolderTreeNode *parent,
+ int index)
{
// init member vars
@@ -1220,5 +1222,9 @@
//else: no status, don't show anything
- id = tree->AppendItem(GetParent()->GetId(), label, image, image, this);
+ wxTreeItemId idParent = GetParent()->GetId();
+ if ( index == -1 )
+ id = tree->AppendItem(idParent, label, image, image, this);
+ else
+ id = tree->InsertItem(idParent, index, label, image, image, this);
}
@@ -2753,6 +2759,33 @@
CHECK_RET( folder, "just created folder doesn't exist?" );
+ // insert the new folder at the right place
+ int pos = 0;
+ long cookie;
+ wxTreeItemId item = GetFirstChild(parent, cookie);
+ while ( item.IsOk() )
+ {
+ MFolder *folder2 = GetFolderTreeNode(item)->GetFolder();
+ int rc = CompareFoldersByTreePos(&folder, &folder2);
+ if ( rc == 0 )
+ {
+ // CompareFoldersByTreePos() doesn't look at the folder
+ // names as they are always sorted when it is called from
+ // OnTreeExpanding() but we should do it specially here
+ rc = strcmp(folder->GetName(), folder2->GetName());
+ }
+
+ if ( rc < 0 )
+ {
+ // we should insert it here
+ break;
+ }
+
+ pos++;
+
+ item = GetNextChild(parent, cookie);
+ }
+
// create the entry as the tree won't do it for us any more
- (void)new wxFolderTreeNode(this, folder, nodeParent);
+ (void)new wxFolderTreeNode(this, folder, nodeParent, pos);
}
else // parent has never been expanded
_______________________________________________
Mahogany-cvsupdates mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates