← Back to team overview

linuxdcpp-team team mailing list archive

[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2952: DL queue: expand newly added dirs

 

------------------------------------------------------------
revno: 2952
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Mon 2012-06-18 16:50:09 +0200
message:
  DL queue: expand newly added dirs
modified:
  changelog.txt
  win32/QueueFrame.cpp
  win32/QueueFrame.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 'changelog.txt'
--- changelog.txt	2012-06-17 13:28:34 +0000
+++ changelog.txt	2012-06-18 14:50:09 +0000
@@ -11,6 +11,7 @@
 * [L#1007103] Correct download logging after an app restart (emtee)
 * [L#1007099] Fix disabled buttons in user matching settings (poy)
 * Do not automatch queue for bad/removed sources (emtee)
+* Minor DL queue tab fixes (poy)
 
 -- 0.799 2012-05-05 --
 * Add icons (iceman50)

=== modified file 'win32/QueueFrame.cpp'
--- win32/QueueFrame.cpp	2012-06-18 14:16:49 +0000
+++ win32/QueueFrame.cpp	2012-06-18 14:50:09 +0000
@@ -163,7 +163,7 @@
 
 	for(auto& i: li) {
 		QueueItem* aQI = i.second;
-		addQueueItem(QueueItemPtr(new QueueItemInfo(*aQI)), true);
+		addQueueItem(QueueItemPtr(new QueueItemInfo(*aQI)), false);
 	}
 
 	// expand top-level directories.
@@ -232,7 +232,7 @@
 	SettingsManager::getInstance()->set(SettingsManager::QUEUEFRAME_WIDTHS, WinUtil::toString(files->getColumnWidths()));
 }
 
-void QueueFrame::addQueueItem(QueueItemPtr&& ii, bool noSort) {
+void QueueFrame::addQueueItem(QueueItemPtr&& ii, bool single) {
 	if(!ii->isSet(QueueItem::FLAG_USER_LIST)) {
 		queueSize+=ii->getSize();
 	}
@@ -242,18 +242,22 @@
 	auto p = ii.get();
 	const auto& dir = p->getPath();
 
-	bool updateDir = (directories.find(dir) == directories.end());
+	const bool newDir = directories.find(dir) == directories.end();
 	directories.emplace(dir, move(ii));
 
-	if(updateDir) {
-		addDirectory(dir, p->isSet(QueueItem::FLAG_USER_LIST));
+	if(newDir) {
+		auto node = addDirectory(dir, p->isSet(QueueItem::FLAG_USER_LIST));
+		if(single) {
+			dirs->ensureVisible(node);
+		}
 	}
+
 	if(!BOOLSETTING(QUEUEFRAME_SHOW_TREE) || isCurDir(dir)) {
 		p->update();
-		if(noSort) {
-			files->insert(files->size(), p);
+		if(single) {
+			files->insert(p); // sort
 		} else {
-			files->insert(p);
+			files->insert(files->size(), p); // no sort (resort the whole list later)
 		}
 	}
 }
@@ -973,7 +977,7 @@
 
 void QueueFrame::onAdded(QueueItemInfo* ii) {
 	dcassert(files->find(ii) == -1);
-	addQueueItem(QueueItemPtr(ii), false);
+	addQueueItem(QueueItemPtr(ii), true);
 	updateStatus();
 }
 

=== modified file 'win32/QueueFrame.h'
--- win32/QueueFrame.h	2012-06-18 14:16:49 +0000
+++ win32/QueueFrame.h	2012-06-18 14:50:09 +0000
@@ -218,7 +218,7 @@
 	void updateStatus();
 	void updateFiles();
 
-	void addQueueItem(QueueItemPtr&& ii, bool noSort);
+	void addQueueItem(QueueItemPtr&& ii, bool single);
 	void addQueueList(const QueueItem::StringMap& l);
 
 	HTREEITEM addDirectory(const string& dir, bool isFileList = false, HTREEITEM startAt = NULL);