[Scummvm-cvs-logs] SF.net SVN: scummvm: [28043] scummex/branches/gsoc2007-gameresbrowser/src

zbychs at users.sourceforge.net zbychs at users.sourceforge.net
Thu Jul 12 17:39:17 CEST 2007


Revision: 28043
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28043&view=rev
Author:   zbychs
Date:     2007-07-12 08:39:17 -0700 (Thu, 12 Jul 2007)

Log Message:
-----------
Got rid of the << wxString operator. Minor fixes.

Modified Paths:
--------------
    scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h
    scummex/branches/gsoc2007-gameresbrowser/src/browser/PluginUtil.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/core/ObjectChain.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/core/pinslot.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.h
    scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/DirectoryPresenter.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummImageDetail.h

Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -127,7 +127,7 @@
 
 	wxFileName dir = wxFileName::DirName(_directoryPath);
 	if ( !(dir.IsOk() && dir.DirExists() && dir.IsDirReadable()) ) {
-		errout << wxT("IDiskDirectoryImpl::create(): unreadable dir: ") << dir.GetPath() << std::endl;
+		errout << wxT("IDiskDirectoryImpl::create(): unreadable dir: ") << dir.GetPath().c_str() << std::endl;
 		return;
 	}
 

Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -13,6 +13,7 @@
 
 #include <map>
 #include <list>
+#include <algorithm>
 
 #include "debugmem.h"
 
@@ -144,7 +145,7 @@
 		_rootObjectChain = new ObjectChain();
 	_panelMap = new PanelMap();
 	_dirMap = new DirMap();
-	_notCompletedCount = 0;
+	_notCompletedList.clear();
 }
 
 ExplorationTree::~ExplorationTree() {
@@ -193,11 +194,9 @@
 
 		infoout << wxT("INFO: ExplorationTree::onIdleRec(): completing") << std::endl;
 		kidchain->complete();
-		_notCompletedCount--;
+		//_notCompletedList.erase(item);
 		data->setCompleted(true);
 
-		//FIXME: chanhe the _notCompletedCount to a list of not completed nodes
-
 		//FIXME: This won't work for other DirectoryControllers - search for IS_DIRECTORY_CONTROLLER
 		ASSERT_STATICS_ALLOWED();
 		static BGUID directoryPresenterGUID(wxT("CoreObjects"), wxT("DirectoryPresenter"), 1);
@@ -208,25 +207,31 @@
 
 		return true;
 	}
-	getItemText(item);
 
-	wxTreeItemIdValue cookie;
+	/*wxTreeItemIdValue cookie;
 	wxTreeItemId child = _explorationTree->GetFirstChild(item, cookie);
 	while (child.IsOk()) {
 		if (onIdleRec(child))
 			return true;
 		child = _explorationTree->GetNextChild(item, cookie);
-	}
+	}*/
 
 	return false;
 }
 
 bool ExplorationTree::onIdle() {
-	if (_notCompletedCount <= 0)
+	if (_notCompletedList.empty())
 		return false;
 
-	infoout << wxT("INFO: ExplorationTree::onIdle(): trying to complete: ") << _notCompletedCount << std::endl;
-	return onIdleRec(_explorationTree->GetRootItem());
+	infoout << wxT("INFO: ExplorationTree::onIdle(): trying to complete: ") << _notCompletedList.size() << std::endl;
+	std::list<wxTreeItemId>::iterator i;
+	for (i = _notCompletedList.begin(); i != _notCompletedList.end(); ++i) {
+		if (onIdleRec(*i)) {
+			_notCompletedList.erase(i);
+			return true;
+		}
+	}
+	return false;
 }
 
 void ExplorationTree::realizeVisible(bool dirsOnly /*= true*/) {
@@ -260,7 +265,7 @@
 
 		if (!data->getCompleted()) {
 			kidchain->complete();
-			_notCompletedCount--; //FIXME: the counting is not entirely correct
+			_notCompletedList.remove(item);
 			data->setCompleted(true);
 		}
 
@@ -279,15 +284,15 @@
 
 		wxString name = getItemText(item);
 		infoout << wxT("ExplorationTree::realizeNode(): realizing chain for node: ")
-			<< name << std::endl;
+			<< name.c_str() << std::endl;
 
 		bool res = kidchain->realize();
 
 		if (!res) {
 			errout << wxT("ERROR: ExplorationTree::realizeNode(): can't realize chain for node: ")
-				<< name << std::endl;
+				<< name.c_str() << std::endl;
 			wxString outName = name + wxT(".dot");
-			errout << wxT("Dumping Object Chain to: ") << outName << std::endl;
+			errout << wxT("Dumping Object Chain to: ") << outName.c_str() << std::endl;
 			kidchain->dumpObjectChain(outName);
 
 			//delete kidchain;
@@ -326,12 +331,16 @@
 	return item;
 }
 
-wxTreeItemId ExplorationTree::appendItem(const wxTreeItemId& parent, wxString title) {
+wxTreeItemId ExplorationTree::appendItem(const wxTreeItemId& parent, wxString title, const wxTreeItemId& after) {
 	ASSERT_VALID_TREE_ITEM(parent);
 	wxTreeItemId item = _explorationTree->AppendItem(parent, title, -1, -1, NULL);
 	ASSERT_VALID_TREE_ITEM(item);
 	//_explorationTree->SetItemHasChildren(item);
-	_notCompletedCount++;
+	std::list<wxTreeItemId>::iterator i = std::find(_notCompletedList.begin(), _notCompletedList.end(), after);
+	if (i != _notCompletedList.end())
+		_notCompletedList.insert(++i, item);
+	else
+		_notCompletedList.push_front(item);
 	return item;
 }
 
@@ -339,7 +348,7 @@
 	ASSERT_VALID_TREE_ITEM(item);
 	VirtualNodeItemData* data = VirtualNodeItemData::getForNode(item);
 	if (data && !data->getCompleted())
-		_notCompletedCount--;
+		_notCompletedList.remove(item);
 	_explorationTree->Delete(item);
 }
 
@@ -374,14 +383,14 @@
 
 wxTreeItemId ExplorationTree::addRoot(wxString title) {
 	wxTreeItemId item = _explorationTree->AddRoot(title, -1, -1, NULL);
-	_notCompletedCount = 1;
+	_notCompletedList.push_back(item);
 	ASSERT_VALID_TREE_ITEM(item);
 	_explorationTree->AppendItem(item, wxT("Dummy"), -1, -1, NULL); //WORKAROUND
 	return item;
 }
 
 void ExplorationTree::deleteAllItems() {
-	_notCompletedCount = 0;
+	_notCompletedList.clear();
 	_explorationTree->DeleteAllItems();
 }
 

Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h	2007-07-12 15:39:17 UTC (rev 28043)
@@ -10,6 +10,8 @@
 #include <wx/treectrl.h>
 #include <wx/panel.h>
 
+#include <list>
+
 namespace Core {
 	class ObjectChain;
 }
@@ -46,7 +48,13 @@
 	VirtualNode* _activeNode;
 	DirMap* _dirMap;
 
-	int _notCompletedCount;
+#ifdef _MSC_VER
+#pragma warning(disable : 4251)
+#endif
+	std::list<wxTreeItemId> _notCompletedList;
+#ifdef _MSC_VER
+#pragma warning(default : 4251)
+#endif
 
 private:
 	ExplorationTree();
@@ -70,7 +78,7 @@
 	VirtualNode* getSelectedNode();
 
 	wxTreeItemId getSelected();
-	wxTreeItemId appendItem(const wxTreeItemId& parent, wxString title);
+	wxTreeItemId appendItem(const wxTreeItemId& parent, wxString title, const wxTreeItemId& after);
 	void deleteItem(const wxTreeItemId& item);
 	void deleteChildren(const wxTreeItemId& parent);
 	void setItemData(const wxTreeItemId& item, wxTreeItemData* data);

Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/PluginUtil.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/PluginUtil.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/PluginUtil.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -94,7 +94,7 @@
 
 //expects a native path
 BROWSER_API bool loadPlugin(wxString pluginPath) {
-	infoout << wxT("Registering plugin: ") << pluginPath << std::endl;
+	infoout << wxT("Registering plugin: ") << pluginPath.c_str() << std::endl;
 
 	wxDynamicLibrary* plugin = new wxDynamicLibrary(pluginPath);
 	if (plugin->IsLoaded()) {
@@ -103,13 +103,13 @@
 		if (accessor) {
 			ObjectRegistry::get()->registerPlugin((ObjectRegistry::PluginAccessor)accessor, false);
 			_plugins().push_back(plugin);
-			infoout << wxT("Registering plugin succeded: ") << pluginPath << std::endl;
+			infoout << wxT("Registering plugin succeded: ") << pluginPath.c_str() << std::endl;
 			return true;
 		}
 		errout << wxT("Loaded, but no getPlugin() symbol.") << std::endl;
 	}
 
-	errout << wxT("Registering plugin failed: ") << pluginPath << std::endl;
+	errout << wxT("Registering plugin failed: ") << pluginPath.c_str() << std::endl;
 	delete plugin;
 	return false;
 }

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/ObjectChain.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/ObjectChain.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/ObjectChain.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -579,7 +579,7 @@
 	if (!file.fail())
 		return true;
 
-	errout << wxT("Failed Dumping Object Chain to file: ") << fileName << std::endl;
+	errout << wxT("Failed Dumping Object Chain to file: ") << fileName.c_str() << std::endl;
 	return false;
 }
 
@@ -590,15 +590,15 @@
 
 	_dump_ochain_indent = 0;
 
-	os << _doi() << wxT("digraph G") << graph_count << wxT(" {") << std::endl;
-	os << _doi() << wxT("	compound=true;") << std::endl;
-	os << _doi() << wxT("	style=\"\";") << std::endl;
-	os << _doi() << wxT("	node [style=\"filled, invis\"];") << std::endl;
-	os << _doi() << wxT("") << std::endl;
+	os << _doi().c_str() << wxT("digraph G") << graph_count << wxT(" {") << std::endl;
+	os << _doi().c_str() << wxT("	compound=true;") << std::endl;
+	os << _doi().c_str() << wxT("	style=\"\";") << std::endl;
+	os << _doi().c_str() << wxT("	node [style=\"filled, invis\"];") << std::endl;
+	os << _doi().c_str() << wxT("") << std::endl;
 
 	dumpObjectChain(ochainname, os);
 
-	os << _doi() << wxT("}") << std::endl;
+	os << _doi().c_str() << wxT("}") << std::endl;
 }
 
 coreString objectNodeName(BObject* obj) {
@@ -612,11 +612,11 @@
 
 	_dump_ochain_indent++;
 	
-	os << _doi() << wxT("subgraph \"cluster_") << ochainname << wxT("\" {") << std::endl;
-	os << _doi() << wxT("	label = \"") << ochainname << wxT("\";") << std::endl;
-	os << _doi() << wxT("	color=lightgrey;") << std::endl;
-	os << _doi() << wxT("	style=\"\";") << std::endl;
-	os << _doi() << wxT("") << std::endl;
+	os << _doi().c_str() << wxT("subgraph \"cluster_") << ochainname.c_str() << wxT("\" {") << std::endl;
+	os << _doi().c_str() << wxT("	label = \"") << ochainname.c_str() << wxT("\";") << std::endl;
+	os << _doi().c_str() << wxT("	color=lightgrey;") << std::endl;
+	os << _doi().c_str() << wxT("	style=\"\";") << std::endl;
+	os << _doi().c_str() << wxT("") << std::endl;
 
 	//DUMP THE OBJECTS
 
@@ -628,22 +628,22 @@
 
 		_dump_ochain_indent++;
 
-		os << _doi() << wxT("subgraph \"cluster_") << objname << wxT("\" {") << std::endl;
-		os << _doi() << wxT("	label = \"") << objname << wxT("\";") << std::endl;
-		os << _doi() << wxT("	color=\"") << (is_realized ? wxT("blue") : wxT("red")) << wxT("\";") << std::endl;
-		os << _doi() << wxT("	style=\"rounded\";") << std::endl;
-		os << _doi() << wxT("") << std::endl;
-		os << _doi() << wxT("	\"") << objname << wxT("\";") << std::endl;
-		os << _doi() << wxT("") << std::endl;
+		os << _doi().c_str() << wxT("subgraph \"cluster_") << objname.c_str() << wxT("\" {") << std::endl;
+		os << _doi().c_str() << wxT("	label = \"") << objname.c_str() << wxT("\";") << std::endl;
+		os << _doi().c_str() << wxT("	color=\"") << (is_realized ? wxT("blue") : wxT("red")) << wxT("\";") << std::endl;
+		os << _doi().c_str() << wxT("	style=\"rounded\";") << std::endl;
+		os << _doi().c_str() << wxT("") << std::endl;
+		os << _doi().c_str() << wxT("	\"") << objname.c_str() << wxT("\";") << std::endl;
+		os << _doi().c_str() << wxT("") << std::endl;
 
 		obj->dumpObjectChains(os);
 
-		os << _doi() << wxT("}") << std::endl << std::endl;
+		os << _doi().c_str() << wxT("}") << std::endl << std::endl;
 
 		_dump_ochain_indent--;
 	}
 	
-	os << _doi() << wxT("") << std::endl;
+	os << _doi().c_str() << wxT("") << std::endl;
 
 	//DUMP THE CONNECTIONS
 
@@ -659,17 +659,17 @@
 		coreString sobjname = objectNodeName(sobj);
 		coreString pobjname = objectNodeName(pobj);
 
-		os << _doi();
-		os << wxT("\"") << pobjname << wxT("\"");
+		os << _doi().c_str();
+		os << wxT("\"") << pobjname.c_str() << wxT("\"");
 		os << wxT(" -> ");
-		os << wxT("\"") << sobjname << wxT("\"");
-		os << wxT(" [label = \"") << slot->get_desc().getInterfaceGUID().identifier << wxT("\", ");
-		os << wxT("lhead=\"cluster_") << sobjname << wxT("\" , ltail=\"cluster_") << pobjname << wxT("\" ]");
+		os << wxT("\"") << sobjname.c_str() << wxT("\"");
+		os << wxT(" [label = \"") << slot->get_desc().getInterfaceGUID().identifier.c_str() << wxT("\", ");
+		os << wxT("lhead=\"cluster_") << sobjname.c_str() << wxT("\" , ltail=\"cluster_") << pobjname.c_str() << wxT("\" ]");
 		os << wxT(";") << std::endl;
 	}
 	_dump_ochain_indent--;
 
-	os << _doi() << wxT("}") << std::endl << std::endl;
+	os << _doi().c_str() << wxT("}") << std::endl << std::endl;
 
 	_dump_ochain_indent--;
 }

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -72,7 +72,7 @@
 }*/
 
 CORE_API streamout& operator<<(streamout& os, const BGUID& guid) {
-	return os << wxT("BGUID(") << guid.facility << wxT(", ") << guid.identifier << wxT(", ")
+	return os << wxT("BGUID(") << guid.facility.c_str() << wxT(", ") << guid.identifier.c_str() << wxT(", ")
 		<< guid.version << wxT(")");
 }
 

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/pinslot.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/pinslot.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/pinslot.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -30,7 +30,7 @@
 		flags(_flags) {}
 
 CORE_API streamout& operator<<(streamout& os, const _PinSlotDesc& desc) {
-	return os << wxT("PinSlotDesc(") << desc.getName() << wxT(", ") << desc.getInterfaceGUID() << wxT(", ")
+	return os << wxT("PinSlotDesc(") << desc.getName().c_str() << wxT(", ") << desc.getInterfaceGUID() << wxT(", ")
 		<< desc.getFlags() << wxT(")");
 }
 
@@ -221,7 +221,7 @@
 	std::set<BObject*>::const_iterator i;
 	for (i = _initializedObjects.begin(); i != _initializedObjects.end(); ++i) {
 		BObject* obj = *i;
-		infoout << obj->dumpName() << wxT(":\t\t") << obj << std::endl;
+		infoout << obj->dumpName().c_str() << wxT(":\t\t") << obj << std::endl;
 	}
 
 	infoout << wxT("---------- DONE DUMPING INITIALIZED OBJECTS ----------") << std::endl;
@@ -254,7 +254,7 @@
 	_dump_realize_indent--;
 	dump_realize_indent();
 	infoout << (result ? wxT("REALIZED:  ") : wxT("R-FAILED:  "));
-	infoout << this->dumpName() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
+	infoout << this->dumpName().c_str() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
 }
 
 void BObject::dumpUnrealizing(ObjectChain* ochain) {}
@@ -265,7 +265,7 @@
 void BObject::dumpRealizing(ObjectChain* ochain) {
 	dump_realize_indent();
 	infoout << wxT("REALIZING:");
-	infoout << this->dumpName() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
+	infoout << this->dumpName().c_str() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
 	ASSERT_STATICS_ALLOWED();
 	_dump_realize_indent++;
 }
@@ -275,13 +275,13 @@
 	_dump_realize_indent--;
 	dump_realize_indent();
 	infoout << (result ? wxT("REALIZED:  ") : wxT("R-FAILED:  "));
-	infoout << this->dumpName() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
+	infoout << this->dumpName().c_str() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
 }
 
 void BObject::dumpUnrealizing(ObjectChain* ochain) {
 	dump_realize_indent();
 	infoout << wxT("UNREALIZING: ");
-	infoout << this->dumpName() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
+	infoout << this->dumpName().c_str() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
 	ASSERT_STATICS_ALLOWED();
 	_dump_realize_indent++;
 }
@@ -291,7 +291,7 @@
 	_dump_realize_indent--;
 	dump_realize_indent();
 	infoout << wxT("UNREALIZED:  ");
-	infoout << this->dumpName() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
+	infoout << this->dumpName().c_str() << wxT("\t\t") << this << wxT(" oc: ") << ochain << std::endl;
 }
 
 #endif

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -16,9 +16,9 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
 
-CORE_API const wxString& wxEndl() {
+CORE_API const wxChar* wxEndl() {
 	//ASSERT_STATICS_ALLOWED();
-	static wxString safe(wxT("\n"));
+	static wxChar* safe(wxT("\n"));
 	return safe;
 }
 

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.h	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/tostring.h	2007-07-12 15:39:17 UTC (rev 28043)
@@ -99,12 +99,14 @@
 	#error streamout not defined
 #endif
 
+#ifdef ALLOW_WXSTRING_STREAM_INSERTION_OPERATOR
 inline
-streamout& operator<<(streamout& os, const wxString& str) {
+CORE_API streamout& operator<<(streamout& os, const wxString& str) {
 	return os << str.c_str();
 }
+#endif
 
-CORE_API const wxString& wxEndl();
+CORE_API const wxChar* wxEndl();
 
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////

Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/DirectoryPresenter.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/DirectoryPresenter.cpp	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/DirectoryPresenter.cpp	2007-07-12 15:39:17 UTC (rev 28043)
@@ -118,13 +118,20 @@
 
 	infoout << wxT("DirectoryPresenter::expand(): ") << _idirectory->getName().c_str() << std::endl;
 
+	wxTreeItemId after;
+
 	const idir_list_t& subdirs = _idirectory->getSubDirs();
 	idir_list_t::const_iterator j;
 	for (j = subdirs.begin(); j != subdirs.end(); ++j) {
+	//Reverse order: insert it ExplotrationTree._notCompletedList from bottom to top
+	//idir_list_t& subdirs = const_cast<idir_list_t&>(_idirectory->getSubDirs()); //HACK
+	//idir_list_t::reverse_iterator j;
+	//for (j = subdirs.rbegin(); j != subdirs.rend(); ++j) {
 		IDirectory* idirectory = *j;
 
 		wxTreeItemId kidTreeItem = ExplorationTree::get()->appendItem(
-			parent->getTreeItem(), idirectory->getName());
+			parent->getTreeItem(), idirectory->getName(), after);
+		after = kidTreeItem;
 
 		RCPtr<VirtualNode> virtualDir( new VirtualDirectory(kidTreeItem, idirectory) );
 
@@ -138,7 +145,7 @@
 		ObjectChain* kidchain = prepareKidChain(virtualDir, parsers);
 		if (!kidchain) {
 			errout << wxT("ERROR: DirectoryPresenter::expand(): can't prepare kid chain for dir: ")
-				<< idirectory->getName() << std::endl;
+				<< idirectory->getName().c_str() << std::endl;
 			ExplorationTree::get()->deleteItem(kidTreeItem);
 		} else {
 			itemData->setObjectChain(kidchain);
@@ -149,10 +156,15 @@
 	const ifile_list_t& files = _idirectory->getFiles();
 	ifile_list_t::const_iterator i;
 	for (i = files.begin(); i != files.end(); ++i) {
+	//Reverse order: insert it ExplotrationTree._notCompletedList from bottom to top
+	//ifile_list_t& files = const_cast<ifile_list_t&>(_idirectory->getFiles()); //HACK
+	//ifile_list_t::reverse_iterator i;
+	//for (i = files.rbegin(); i != files.rend(); ++i) {
 		IFile* ifile = *i;
 
 		wxTreeItemId kidTreeItem = ExplorationTree::get()->appendItem(
-			parent->getTreeItem(), ifile->getName());
+			parent->getTreeItem(), ifile->getName(), after);
+		after = kidTreeItem;
 
 		//CAUTION: Do *not* create BObjects with bare 'new' and expect them to work! you'll get
 		//         segfaults! You have to wrap them like this: RCPtr<BObject>(new BObject()),
@@ -180,7 +192,7 @@
 		ObjectChain* kidchain = prepareKidChain(virtualNode, parsers);
 		if (!kidchain) {
 			errout << wxT("ERROR: DirectoryPresenter::expand(): can't prepare kid chain for file: ")
-				<< ifile->getName() << wxT(" file type: ") << outFileType.getFileTypeGUID() << std::endl;
+				<< ifile->getName().c_str() << wxT(" file type: ") << outFileType.getFileTypeGUID() << std::endl;
 			ExplorationTree::get()->deleteItem(kidTreeItem);
 		} else {
 			itemData->setObjectChain(kidchain);

Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummImageDetail.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummImageDetail.h	2007-07-12 08:52:07 UTC (rev 28042)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummImageDetail.h	2007-07-12 15:39:17 UTC (rev 28043)
@@ -308,7 +308,7 @@
 	ASSERT(paletteID);
 	ScummPALBlock* palBlock = dynamic_cast<ScummPALBlock*>(paletteID);
 	if (!palBlock) {
-		errout << wxT("Image::drawBG(): unknown image format (pal)") << std::endl;
+		errout << wxT("Image::drawObject(): unknown image format (pal)") << std::endl;
 		return false;
 	}
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list