From 4091c6d8af321c3aaf68b394bbac2b125a09f387 Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 3 Jan 2010 16:35:51 +0000 Subject: [PATCH] CtrlLib: Improved FileSel network browsing git-svn-id: svn://ultimatepp.org/upp/trunk@1864 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/NetNode.cpp | 8 ++++++++ uppsrc/Core/Path.h | 1 + uppsrc/CtrlLib/FileSel.cpp | 2 ++ 3 files changed, 11 insertions(+) diff --git a/uppsrc/Core/NetNode.cpp b/uppsrc/Core/NetNode.cpp index 21de3be97..5d0e3869a 100644 --- a/uppsrc/Core/NetNode.cpp +++ b/uppsrc/Core/NetNode.cpp @@ -66,6 +66,14 @@ Array NetNode::EnumRoot() return Enum0(hEnum); } +Array NetNode::EnumRemembered() +{ + HANDLE hEnum; + if(::WNetOpenEnum(RESOURCE_REMEMBERED, RESOURCETYPE_DISK, 0, NULL, &hEnum)) + return Array(); + return Enum0(hEnum); +} + Array NetNode::Enum0(HANDLE hEnum) { Array r; diff --git a/uppsrc/Core/Path.h b/uppsrc/Core/Path.h index 8d173b47a..4455a159c 100644 --- a/uppsrc/Core/Path.h +++ b/uppsrc/Core/Path.h @@ -288,6 +288,7 @@ public: void Serialize(Stream& s); static Array EnumRoot(); + static Array EnumRemembered(); NetNode(); NetNode(const NetNode& s) { *this = s; } diff --git a/uppsrc/CtrlLib/FileSel.cpp b/uppsrc/CtrlLib/FileSel.cpp index e721e31a7..1b679ab04 100644 --- a/uppsrc/CtrlLib/FileSel.cpp +++ b/uppsrc/CtrlLib/FileSel.cpp @@ -495,6 +495,7 @@ void FileSel::SearchLoad() #ifdef PLATFORM_WIN32 if(d == "\\") { netnode = NetNode::EnumRoot(); + netnode.Append(NetNode::EnumRemembered()); LoadNet(); return; } @@ -673,6 +674,7 @@ bool FileSel::OpenItem() { #ifdef PLATFORM_WIN32 if(IsNull(dir) && m.name == t_("Network")) { netnode = NetNode::EnumRoot(); + netnode.Append(NetNode::EnumRemembered()); LoadNet(); return true; }