← Back to team overview

linuxdcpp-team team mailing list archive

[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3034: fix ADLS dirs position in partial lists

 

------------------------------------------------------------
revno: 3034
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Tue 2012-09-04 21:55:12 +0200
message:
  fix ADLS dirs position in partial lists
modified:
  dcpp/Mapper_NATPMP.cpp
  win32/DirectoryListingFrame.cpp
  win32/DirectoryListingFrame.h


--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk

Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/Mapper_NATPMP.cpp'
--- dcpp/Mapper_NATPMP.cpp	2012-09-04 18:03:19 +0000
+++ dcpp/Mapper_NATPMP.cpp	2012-09-04 19:55:12 +0000
@@ -105,7 +105,7 @@
 	if(sendRequest(port_, protocol, 3600)) {
 		natpmpresp_t response;
 		if(read(response) && response.type == respType(protocol) && response.pnu.newportmapping.mappedpublicport == port_) {
-			lifetime = std::min(3600, response.pnu.newportmapping.lifetime) / 60;
+			lifetime = std::min(3600u, response.pnu.newportmapping.lifetime) / 60;
 			return true;
 		}
 	}

=== modified file 'win32/DirectoryListingFrame.cpp'
--- win32/DirectoryListingFrame.cpp	2012-07-26 17:35:45 +0000
+++ win32/DirectoryListingFrame.cpp	2012-09-04 19:55:12 +0000
@@ -550,13 +550,12 @@
 		loaded = true;
 		addRecent();
 
-		std::for_each(dl->getRoot()->directories.cbegin(), dl->getRoot()->directories.cend(),
-			[this](DirectoryListing::Directory* d)
-		{
+		HTREEITEM adlsPos = TVI_FIRST;
+		for(auto d: dl->getRoot()->directories) {
 			if(d->getAdls()) {
-				addDir(d, treeRoot);
+				adlsPos = addDir(d, treeRoot, adlsPos);
 			}
-		});
+		}
 		refreshTree(Text::toT(Util::toNmdcFile(base)));
 
 		if(!sel.empty()) {
@@ -1072,12 +1071,13 @@
 	return Util::emptyString;
 }
 
-void DirectoryListingFrame::addDir(DirectoryListing::Directory* d, HTREEITEM parent) {
+HTREEITEM DirectoryListingFrame::addDir(DirectoryListing::Directory* d, HTREEITEM parent, HTREEITEM insertAfter) {
 	auto cached = dirCache.find(d);
-	auto item = dirs->insert(cached != dirCache.end() ? cached->second.release() : new ItemInfo(d), parent);
+	auto item = dirs->insert(cached != dirCache.end() ? cached->second.release() : new ItemInfo(d), parent, insertAfter);
 	if(d->getAdls())
 		dirs->setItemState(item, TVIS_BOLD, TVIS_BOLD);
 	updateDir(d, item);
+	return item;
 }
 
 void DirectoryListingFrame::updateDir(DirectoryListing::Directory* d, HTREEITEM parent) {

=== modified file 'win32/DirectoryListingFrame.h'
--- win32/DirectoryListingFrame.h	2012-07-12 20:49:11 +0000
+++ win32/DirectoryListingFrame.h	2012-09-04 19:55:12 +0000
@@ -269,7 +269,7 @@
 	bool handleXMouseUp(const dwt::MouseEvent& mouseEvent);
 
 	void changeDir(DirectoryListing::Directory* d);
-	void addDir(DirectoryListing::Directory* d, HTREEITEM parent);
+	HTREEITEM addDir(DirectoryListing::Directory* d, HTREEITEM parent, HTREEITEM insertAfter = TVI_LAST);
 	void updateDir(DirectoryListing::Directory* d, HTREEITEM parent);
 	HTREEITEM findItem(HTREEITEM ht, const tstring& name);
 	void selectItem(const tstring& name);