linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #03660
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2458: Save and restore the current directory of file lists
------------------------------------------------------------
revno: 2458
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Wed 2011-03-16 19:23:54 +0100
message:
Save and restore the current directory of file lists
modified:
changelog.txt
dcpp/FavoriteManager.cpp
dcpp/WindowInfo.cpp
dcpp/WindowInfo.h
dcpp/WindowManager.cpp
dcpp/WindowManager.h
dcpp/WindowManagerListener.h
win32/DirectoryListingFrame.cpp
win32/DirectoryListingFrame.h
win32/HubFrame.cpp
win32/HubFrame.h
win32/IRecent.h
win32/MDIChildFrame.h
win32/MainWindow.cpp
win32/MainWindow.h
win32/PrivateFrame.cpp
win32/PrivateFrame.h
win32/StaticFrame.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 2011-03-10 20:27:58 +0000
+++ changelog.txt 2011-03-16 18:23:54 +0000
@@ -9,6 +9,7 @@
* Better splitter resizing
* [L#730828] Prevent a stack overflow when searching within too big file lists (poy)
* [L#710359] Add finished downloads log (emtee)
+* Save and restore the current directory of file lists (poy)
-- 0.782 2011-03-05 --
* Prevent a remote crash triggered via malformed user commands (poy)
=== modified file 'dcpp/FavoriteManager.cpp'
--- dcpp/FavoriteManager.cpp 2011-01-30 20:01:21 +0000
+++ dcpp/FavoriteManager.cpp 2011-03-16 18:23:54 +0000
@@ -509,9 +509,9 @@
if(i->second.connect) {
FavoriteHubEntryList hubs = getFavoriteHubs(i->first);
for(FavoriteHubEntryList::const_iterator hub = hubs.begin(), hub_end = hubs.end(); hub != hub_end; ++hub) {
- StringMap map;
- map[WindowInfo::address] = (*hub)->getServer();
- WindowManager::getInstance()->add(WindowManager::hub(), map);
+ WindowParams params;
+ params[WindowInfo::address] = WindowParam((*hub)->getServer(), true);
+ WindowManager::getInstance()->add(WindowManager::hub(), params);
}
}
}
=== modified file 'dcpp/WindowInfo.cpp'
--- dcpp/WindowInfo.cpp 2011-01-02 17:12:02 +0000
+++ dcpp/WindowInfo.cpp 2011-03-16 18:23:54 +0000
@@ -23,13 +23,11 @@
namespace dcpp {
-const string WindowInfo::title = "Title";
-
const string WindowInfo::address = "Address";
const string WindowInfo::cid = "CID";
const string WindowInfo::fileList = "FileList";
-WindowInfo::WindowInfo(const string& id_, const StringMap& params_) :
+WindowInfo::WindowInfo(const string& id_, const WindowParams& params_) :
id(id_),
params(params_)
{
@@ -39,21 +37,22 @@
if(id != rhs.id)
return false;
- if(params.size() != rhs.params.size())
- return false;
-
- // compare each param, except "Title" which is not used for identification.
- for(StringMap::const_iterator i = params.begin(), iend = params.end(); i != iend; ++i) {
- if(i->first == title)
- continue;
- StringMap::const_iterator ri = rhs.params.find(i->first);
- if(ri == rhs.params.end())
- return false;
- if(i->second != ri->second)
- return false;
+ // compare every identifying params.
+ int rParams = 0;
+ for(auto i = rhs.params.cbegin(), iend = rhs.params.cend(); i != iend; ++i)
+ if(i->second.identifies)
+ ++rParams;
+ for(auto i = params.cbegin(), iend = params.cend(); i != iend; ++i) {
+ if(i->second.identifies) {
+ auto ri = rhs.params.find(i->first);
+ if(ri == rhs.params.end())
+ return false;
+ if(i->second.content != ri->second.content)
+ return false;
+ --rParams;
+ }
}
-
- return true;
+ return rParams == 0;
}
} // namespace dcpp
=== modified file 'dcpp/WindowInfo.h'
--- dcpp/WindowInfo.h 2011-01-02 17:12:02 +0000
+++ dcpp/WindowInfo.h 2011-03-16 18:23:54 +0000
@@ -24,18 +24,29 @@
namespace dcpp {
+struct WindowParam {
+ WindowParam() : identifies(false) { }
+ WindowParam(const string& content, bool identifies) : content(content), identifies(identifies) { }
+
+ string content;
+ bool identifies; /// whether this param determines the uniqueness of the WindowInfo holding it.
+
+ operator const string&() const { return content; }
+ template<typename T> bool operator==(const T& str) const { return content == str; }
+ bool empty() const { return content.empty(); }
+};
+
+typedef unordered_map<string, WindowParam> WindowParams;
+
class WindowInfo {
public:
- explicit WindowInfo(const string& id_, const StringMap& params_);
+ explicit WindowInfo(const string& id_, const WindowParams& params_);
GETSET(string, id, Id);
- GETSET(StringMap, params, Params);
+ GETSET(WindowParams, params, Params);
bool operator==(const WindowInfo& rhs) const;
- /// special param used for displaying; ignored for identification.
- static const string title;
-
/// special param for hub addresses.
static const string address;
=== modified file 'dcpp/WindowManager.cpp'
--- dcpp/WindowManager.cpp 2011-01-29 14:15:43 +0000
+++ dcpp/WindowManager.cpp 2011-03-16 18:23:54 +0000
@@ -21,7 +21,6 @@
#include "WindowManager.h"
-#include "WindowInfo.h"
#include "SimpleXML.h"
#include "ClientManager.h"
#include "QueueManager.h"
@@ -57,7 +56,7 @@
return Lock(cs);
}
-void WindowManager::add(const string& id, const StringMap& params) {
+void WindowManager::add(const string& id, const WindowParams& params) {
list.push_back(WindowInfo(id, params));
}
@@ -65,12 +64,12 @@
list.clear();
}
-void WindowManager::addRecent(const string& id, const StringMap& params) {
+void WindowManager::addRecent(const string& id, const WindowParams& params) {
Lock l(cs);
addRecent_(id, params, true);
}
-void WindowManager::addRecent_(const string& id, const StringMap& params, bool top) {
+void WindowManager::addRecent_(const string& id, const WindowParams& params, bool top) {
unsigned max;
{
MaxRecentItems::const_iterator i = maxRecentItems.find(id);
@@ -105,7 +104,7 @@
infoList.push_back(info);
}
-void WindowManager::updateRecent(const string& id, const StringMap& params) {
+void WindowManager::updateRecent(const string& id, const WindowParams& params) {
Lock l(cs);
RecentList::iterator ri = recent.find(id);
if(ri != recent.end()) {
@@ -147,13 +146,13 @@
}
void WindowManager::prepareSave(const WindowInfoList& infoList) const {
- for(WindowInfoList::const_iterator wi = infoList.begin(), wiend = infoList.end(); wi != wiend; ++wi) {
- StringMap::const_iterator i = wi->getParams().find(WindowInfo::cid);
+ for(auto wi = infoList.cbegin(), wiend = infoList.cend(); wi != wiend; ++wi) {
+ auto i = wi->getParams().find(WindowInfo::cid);
if(i != wi->getParams().end())
ClientManager::getInstance()->saveUser(CID(i->second));
i = wi->getParams().find(WindowInfo::fileList);
- if(i != wi->getParams().end() && !i->second.empty())
+ if(i != wi->getParams().end() && !i->second.content.empty())
QueueManager::getInstance()->noDeleteFileList(i->second);
}
}
@@ -166,13 +165,14 @@
if(id.empty())
continue;
- StringMap params;
+ WindowParams params;
xml.stepIn();
while(xml.findChild("Param")) {
const string& id_ = xml.getChildAttrib("Id");
if(id_.empty())
continue;
- params[id_] = xml.getChildData();
+ params[id_] = WindowParam(xml.getChildData(), !xml.getBoolChildAttrib("Opt")
+ && id_ != "Title"); /// @todo for back compat - remove later
}
xml.stepOut();
@@ -188,9 +188,11 @@
if(!info.getParams().empty()) {
xml.stepIn();
- for(StringMap::const_iterator i = info.getParams().begin(), iend = info.getParams().end(); i != iend; ++i) {
- xml.addTag("Param", i->second);
+ for(auto i = info.getParams().cbegin(), iend = info.getParams().cend(); i != iend; ++i) {
+ xml.addTag("Param", i->second.content);
xml.addChildAttrib("Id", i->first);
+ if(!i->second.identifies)
+ xml.addChildAttrib("Opt", true);
}
xml.stepOut();
}
=== modified file 'dcpp/WindowManager.h'
--- dcpp/WindowManager.h 2011-01-29 14:15:43 +0000
+++ dcpp/WindowManager.h 2011-03-16 18:23:54 +0000
@@ -21,6 +21,7 @@
#include "forward.h"
#include "SettingsManager.h"
+#include "WindowInfo.h"
#include "WindowManagerListener.h"
namespace dcpp {
@@ -39,13 +40,13 @@
Lock lock();
- void add(const string& id, const StringMap& params);
+ void add(const string& id, const WindowParams& params);
void clear();
/// adds the referenced window if it doesn't exist, and moves it to the top of the stack.
- void addRecent(const string& id, const StringMap& params);
+ void addRecent(const string& id, const WindowParams& params);
/// updates the title of the referenced window without changing its position in the stack.
- void updateRecent(const string& id, const StringMap& params);
+ void updateRecent(const string& id, const WindowParams& params);
const RecentList& getRecent() const { return recent; }
void setMaxRecentItems(const string& id, unsigned max);
unsigned getMaxRecentItems(const string& id) const;
@@ -67,12 +68,12 @@
WindowManager();
virtual ~WindowManager() throw();
- inline void addRecent_(const string& id, const StringMap& params) { addRecent_(id, params, false); }
- void addRecent_(const string& id, const StringMap& params, bool top);
+ inline void addRecent_(const string& id, const WindowParams& params) { addRecent_(id, params, false); }
+ void addRecent_(const string& id, const WindowParams& params, bool top);
void prepareSave(const WindowInfoList& infoList) const;
- typedef void (WindowManager::*handler_type)(const std::string&, const StringMap&);
+ typedef void (WindowManager::*handler_type)(const std::string&, const WindowParams&);
void parseTags(SimpleXML& xml, handler_type handler);
void addTag(SimpleXML& xml, const WindowInfo& info) const;
=== modified file 'dcpp/WindowManagerListener.h'
--- dcpp/WindowManagerListener.h 2011-01-02 17:12:02 +0000
+++ dcpp/WindowManagerListener.h 2011-03-16 18:23:54 +0000
@@ -20,6 +20,7 @@
#define DCPLUSPLUS_DCPP_WINDOW_MANAGER_LISTENER_H
#include "forward.h"
+#include "WindowInfo.h"
namespace dcpp {
@@ -30,7 +31,7 @@
typedef X<0> Window;
- virtual void on(Window, const string&, const StringMap&) throw() = 0;
+ virtual void on(Window, const string&, const WindowParams&) throw() = 0;
};
} // namespace dcpp
=== modified file 'win32/DirectoryListingFrame.cpp'
--- win32/DirectoryListingFrame.cpp 2011-03-15 21:16:24 +0000
+++ win32/DirectoryListingFrame.cpp 2011-03-16 18:23:54 +0000
@@ -118,8 +118,8 @@
}
}
-void DirectoryListingFrame::openOwnList(TabViewPtr parent, Activation activate) {
- openWindow(parent, Text::toT(ShareManager::getInstance()->getOwnListFile()), Util::emptyStringT,
+void DirectoryListingFrame::openOwnList(TabViewPtr parent, const tstring& dir, Activation activate) {
+ openWindow(parent, Text::toT(ShareManager::getInstance()->getOwnListFile()), dir,
HintedUser(ClientManager::getInstance()->getMe(), Util::emptyString), 0, activate);
}
@@ -128,37 +128,43 @@
i->second->close(true);
}
-const StringMap DirectoryListingFrame::getWindowParams() const {
- StringMap ret;
- ret[WindowInfo::title] = Text::fromT(getText());
- ret[WindowInfo::cid] = dl->getUser().user->getCID().toBase32();
- ret[WindowInfo::fileList] = (dl->getUser() == ClientManager::getInstance()->getMe()) ? "" : path;
- ret["Hub"] = dl->getUser().hint;
- ret["Speed"] = Util::toString(speed);
+WindowParams DirectoryListingFrame::getWindowParams() const {
+ WindowParams ret;
+ addRecentParams(ret);
+ ret[WindowInfo::cid] = WindowParam(dl->getUser().user->getCID().toBase32(), false);
+ ret[WindowInfo::fileList] = WindowParam((dl->getUser() == ClientManager::getInstance()->getMe()) ? "" : path, true);
+ ItemInfo* ii = dirs->getSelectedData();
+ if(ii && ii->type == ItemInfo::DIRECTORY)
+ ret["Directory"] = WindowParam(dl->getPath(ii->dir), false);
+ ret["Hub"] = WindowParam(dl->getUser().hint, false);
+ ret["Speed"] = WindowParam(Util::toString(speed), false);
return ret;
}
-void DirectoryListingFrame::parseWindowParams(TabViewPtr parent, const StringMap& params) {
- StringMap::const_iterator path = params.find(WindowInfo::fileList);
- StringMap::const_iterator hub = params.find("Hub");
- StringMap::const_iterator speed = params.find("Speed");
+void DirectoryListingFrame::parseWindowParams(TabViewPtr parent, const WindowParams& params) {
+ auto path = params.find(WindowInfo::fileList);
+ auto dir = params.find("Directory");
+ auto hub = params.find("Hub");
+ auto speed = params.find("Speed");
if(path != params.end() && speed != params.end()) {
Activation activate = parseActivateParam(params) ? FORCE_ACTIVE : FORCE_INACTIVE;
if(path->second.empty()) {
- openOwnList(parent, activate);
+ openOwnList(parent, (dir == params.end()) ? Util::emptyStringT : Text::toT(dir->second), activate);
} else if(File::getSize(path->second) != -1) {
UserPtr u = DirectoryListing::getUserFromFilename(path->second);
if(u) {
- openWindow(parent, Text::toT(path->second), Util::emptyStringT, HintedUser(u,
- (hub == params.end()) ? Util::emptyString : hub->second), Util::toInt64(speed->second), activate);
+ openWindow(parent, Text::toT(path->second),
+ (dir == params.end()) ? Util::emptyStringT : Text::toT(dir->second),
+ HintedUser(u, (hub == params.end()) ? Util::emptyString : hub->second),
+ Util::toInt64(speed->second), activate);
}
}
}
}
-bool DirectoryListingFrame::isFavorite(const StringMap& params) {
- StringMap::const_iterator path = params.find(WindowInfo::fileList);
- if(path != params.end() && path->second != "OwnList" && File::getSize(path->second) != -1) {
+bool DirectoryListingFrame::isFavorite(const WindowParams& params) {
+ auto path = params.find(WindowInfo::fileList);
+ if(path != params.end() && !(path->second.content == "OwnList") && File::getSize(path->second) != -1) {
UserPtr u = DirectoryListing::getUserFromFilename(path->second);
if(u)
return FavoriteManager::getInstance()->isFavoriteUser(u);
@@ -397,6 +403,8 @@
}
void DirectoryListingFrame::postClosing() {
+ updateRecent();
+
clearList();
SettingsManager::getInstance()->set(SettingsManager::DIRECTORYLISTINGFRAME_ORDER, WinUtil::toString(files->getColumnOrder()));
=== modified file 'win32/DirectoryListingFrame.h'
--- win32/DirectoryListingFrame.h 2011-03-10 18:29:54 +0000
+++ win32/DirectoryListingFrame.h 2011-03-16 18:23:54 +0000
@@ -74,12 +74,12 @@
static void openWindow_(TabViewPtr parent, const tstring& aFile, const tstring& aDir, const HintedUser& aUser, int64_t aSpeed, Activation activate);
public:
static void openWindow(TabViewPtr parent, const HintedUser& aUser, const string& txt, int64_t aSpeed);
- static void openOwnList(TabViewPtr parent, Activation activate = FOLLOW_SETTING);
+ static void openOwnList(TabViewPtr parent, const tstring& dir = Util::emptyStringT, Activation activate = FOLLOW_SETTING);
static void closeAll();
- const StringMap getWindowParams() const;
- static void parseWindowParams(TabViewPtr parent, const StringMap& params);
- static bool isFavorite(const StringMap& params);
+ WindowParams getWindowParams() const;
+ static void parseWindowParams(TabViewPtr parent, const WindowParams& params);
+ static bool isFavorite(const WindowParams& params);
private:
enum {
=== modified file 'win32/HubFrame.cpp'
--- win32/HubFrame.cpp 2011-03-15 22:39:48 +0000
+++ win32/HubFrame.cpp 2011-03-16 18:23:54 +0000
@@ -97,21 +97,21 @@
(*i)->resortForFavsFirst(true);
}
-const StringMap HubFrame::getWindowParams() const {
- StringMap ret;
- ret[WindowInfo::title] = Text::fromT(getText());
- ret[WindowInfo::address] = url;
+WindowParams HubFrame::getWindowParams() const {
+ WindowParams ret;
+ addRecentParams(ret);
+ ret[WindowInfo::address] = WindowParam(url, true);
return ret;
}
-void HubFrame::parseWindowParams(TabViewPtr parent, const StringMap& params) {
- StringMap::const_iterator i = params.find(WindowInfo::address);
+void HubFrame::parseWindowParams(TabViewPtr parent, const WindowParams& params) {
+ auto i = params.find(WindowInfo::address);
if(i != params.end())
openWindow(parent, i->second, parseActivateParam(params));
}
-bool HubFrame::isFavorite(const StringMap& params) {
- StringMap::const_iterator i = params.find(WindowInfo::address);
+bool HubFrame::isFavorite(const WindowParams& params) {
+ auto i = params.find(WindowInfo::address);
if(i != params.end())
return FavoriteManager::getInstance()->isFavoriteHub(i->second);
return false;
=== modified file 'win32/HubFrame.h'
--- win32/HubFrame.h 2011-03-02 21:33:22 +0000
+++ win32/HubFrame.h 2011-03-16 18:23:54 +0000
@@ -70,9 +70,9 @@
static void closeFavGroup(const string& group, bool reversed);
static void resortUsers();
- const StringMap getWindowParams() const;
- static void parseWindowParams(TabViewPtr parent, const StringMap& params);
- static bool isFavorite(const StringMap& params);
+ WindowParams getWindowParams() const;
+ static void parseWindowParams(TabViewPtr parent, const WindowParams& params);
+ static bool isFavorite(const WindowParams& params);
private:
friend class MainWindow;
=== modified file 'win32/IRecent.h'
--- win32/IRecent.h 2011-01-02 17:12:02 +0000
+++ win32/IRecent.h 2011-03-16 18:23:54 +0000
@@ -32,9 +32,17 @@
WindowManager::getInstance()->addRecent(t().getId(), t().getWindowParams());
}
+ void updateRecent() {
+ WindowManager::getInstance()->updateRecent(t().getId(), t().getWindowParams());
+ }
+
void setText(const tstring& text) {
t().MDIChildFrame<T>::setText(text);
- WindowManager::getInstance()->updateRecent(t().getId(), t().getWindowParams());
+ updateRecent();
+ }
+
+ void addRecentParams(WindowParams& params) const {
+ params["Title"] = WindowParam(Text::fromT(t().getText()), false);
}
};
=== modified file 'win32/MDIChildFrame.h'
--- win32/MDIChildFrame.h 2011-03-15 19:52:17 +0000
+++ win32/MDIChildFrame.h 2011-03-16 18:23:54 +0000
@@ -24,6 +24,7 @@
#include "AspectStatus.h"
#include <dwt/widgets/Menu.h>
#include <dcpp/SettingsManager.h>
+#include <dcpp/WindowInfo.h>
#include "resource.h"
template<typename T>
@@ -131,7 +132,7 @@
getParent()->setIcon(this, WinUtil::tabIcon(iconId));
}
- static bool parseActivateParam(const StringMap& params) {
+ static bool parseActivateParam(const WindowParams& params) {
auto i = params.find("Active");
return i != params.end() && i->second == "1";
}
@@ -141,8 +142,8 @@
return Util::emptyString;
}
- virtual const StringMap getWindowParams() const {
- return StringMap();
+ virtual WindowParams getWindowParams() const {
+ return WindowParams();
}
private:
=== modified file 'win32/MainWindow.cpp'
--- win32/MainWindow.cpp 2011-03-15 21:16:24 +0000
+++ win32/MainWindow.cpp 2011-03-16 18:23:54 +0000
@@ -615,18 +615,18 @@
WinUtil::menuIcon(IDI_SETTINGS), true, true);
popup->appendSeparator();
- WindowManager::RecentList::const_iterator it = recent.find(T::id);
+ auto it = recent.find(T::id);
if(it == recent.end()) {
popup->appendItem(T_("(No recent item found)"), 0, 0, false);
} else {
dwt::IconPtr favIcon = WinUtil::menuIcon(favIconId);
- const WindowManager::WindowInfoList& list = it->second;
- for(WindowManager::WindowInfoList::const_iterator i = list.begin(), iend = list.end(); i != iend; ++i) {
- StringMap params = i->getParams();
+ const auto& list = it->second;
+ for(auto i = list.cbegin(), iend = list.cend(); i != iend; ++i) {
+ const auto& params = i->getParams();
- StringMap::const_iterator title = params.find(WindowInfo::title);
+ auto title = params.find("Title");
if(title == params.end() || title->second.empty())
continue;
@@ -643,7 +643,7 @@
{
WindowManager* wm = WindowManager::getInstance();
auto lock = wm->lock();
- const WindowManager::RecentList& recent = wm->getRecent();
+ const auto& recent = wm->getRecent();
typedef void (MainWindow::*configureF)(const string&, const tstring&);
configureF f = &MainWindow::handleConfigureRecent;
@@ -804,7 +804,7 @@
auto child = static_cast<MDIChildFrame<dwt::Container>*>(*i);
auto params = child->getWindowParams();
if(child == active)
- params["Active"] = "1";
+ params["Active"] = WindowParam("1", false);
wm->add(child->getId(), params);
}
}
@@ -1429,7 +1429,7 @@
}
}
-void MainWindow::on(WindowManagerListener::Window, const string& id, const StringMap& params) throw() {
+void MainWindow::on(WindowManagerListener::Window, const string& id, const WindowParams& params) throw() {
if(0);
#define compare_id(frame) else if(frame::id == id) callAsync([this, params] { frame::parseWindowParams(getTabView(), params); })
compare_id(HubFrame);
=== modified file 'win32/MainWindow.h'
--- win32/MainWindow.h 2011-03-02 21:33:22 +0000
+++ win32/MainWindow.h 2011-03-16 18:23:54 +0000
@@ -219,7 +219,7 @@
virtual void on(PartialList, const HintedUser&, const string& text) throw();
// WindowManagerListener
- virtual void on(WindowManagerListener::Window, const string& id, const StringMap& params) throw();
+ virtual void on(WindowManagerListener::Window, const string& id, const WindowParams& params) throw();
};
#endif // !defined(MAIN_FRM_H)
=== modified file 'win32/PrivateFrame.cpp'
--- win32/PrivateFrame.cpp 2011-03-15 21:16:24 +0000
+++ win32/PrivateFrame.cpp 2011-03-16 18:23:54 +0000
@@ -85,27 +85,27 @@
}
}
-const StringMap PrivateFrame::getWindowParams() const {
- StringMap ret;
- ret[WindowInfo::title] = Text::fromT(getText());
- ret[WindowInfo::cid] = replyTo.getUser().user->getCID().toBase32();
- ret["Hub"] = replyTo.getUser().hint;
- ret["LogPath"] = getLogPath();
+WindowParams PrivateFrame::getWindowParams() const {
+ WindowParams ret;
+ addRecentParams(ret);
+ ret[WindowInfo::cid] = WindowParam(replyTo.getUser().user->getCID().toBase32(), true);
+ ret["Hub"] = WindowParam(replyTo.getUser().hint, false);
+ ret["LogPath"] = WindowParam(getLogPath(), false);
return ret;
}
-void PrivateFrame::parseWindowParams(TabViewPtr parent, const StringMap& params) {
- StringMap::const_iterator cid = params.find(WindowInfo::cid);
- StringMap::const_iterator hub = params.find("Hub");
+void PrivateFrame::parseWindowParams(TabViewPtr parent, const WindowParams& params) {
+ auto cid = params.find(WindowInfo::cid);
+ auto hub = params.find("Hub");
if(cid != params.end() && hub != params.end()) {
- StringMap::const_iterator logPath = params.find("LogPath");
+ auto logPath = params.find("LogPath");
openWindow(parent, HintedUser(ClientManager::getInstance()->getUser(CID(cid->second)), hub->second), Util::emptyStringT,
logPath != params.end() ? logPath->second : Util::emptyString, parseActivateParam(params));
}
}
-bool PrivateFrame::isFavorite(const StringMap& params) {
- StringMap::const_iterator cid = params.find(WindowInfo::cid);
+bool PrivateFrame::isFavorite(const WindowParams& params) {
+ auto cid = params.find(WindowInfo::cid);
if(cid != params.end()) {
UserPtr u = ClientManager::getInstance()->getUser(CID(cid->second));
if(u)
=== modified file 'win32/PrivateFrame.h'
--- win32/PrivateFrame.h 2011-01-09 14:54:10 +0000
+++ win32/PrivateFrame.h 2011-03-16 18:23:54 +0000
@@ -63,9 +63,9 @@
static void closeAll();
static void closeAllOffline();
- const StringMap getWindowParams() const;
- static void parseWindowParams(TabViewPtr parent, const StringMap& params);
- static bool isFavorite(const StringMap& params);
+ WindowParams getWindowParams() const;
+ static void parseWindowParams(TabViewPtr parent, const WindowParams& params);
+ static bool isFavorite(const WindowParams& params);
void sendMessage(const tstring& msg, bool thirdPerson = false);
=== modified file 'win32/StaticFrame.h'
--- win32/StaticFrame.h 2011-01-09 21:22:07 +0000
+++ win32/StaticFrame.h 2011-03-16 18:23:54 +0000
@@ -53,7 +53,7 @@
}
}
- static void parseWindowParams(TabViewPtr parent, const StringMap& params) {
+ static void parseWindowParams(TabViewPtr parent, const WindowParams& params) {
openWindow(parent, false, BaseType::parseActivateParam(params));
}