summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2011-10-05 22:46:30 -0700
committerMerov Linden <merov@lindenlab.com>2011-10-05 22:46:30 -0700
commitfc5030fcfe9d3ffcbb2ad1ae0b1dacd1699a54ce (patch)
treea1a6f0aabfdbee631c8c802aef1656551a3fa32a
parent55d2e0020b62f64133151c70adc3acc084685e3e (diff)
EXP-1286 : Clean-up the mess I added to llcommandmanager. All CommandId now have a trusted UUID which is the base for indexing and comparison.
-rw-r--r--indra/llui/llcommandmanager.cpp19
-rw-r--r--indra/llui/llcommandmanager.h16
-rw-r--r--indra/newview/lltoolbarview.cpp3
3 files changed, 14 insertions, 24 deletions
diff --git a/indra/llui/llcommandmanager.cpp b/indra/llui/llcommandmanager.cpp
index 2bd50af7af..9ce7533e1b 100644
--- a/indra/llui/llcommandmanager.cpp
+++ b/indra/llui/llcommandmanager.cpp
@@ -114,7 +114,7 @@ LLCommand * LLCommandManager::getCommand(const LLCommandId& commandId)
{
LLCommand * command_match = NULL;
- CommandIndexMap::const_iterator found = mCommandIndices.find(commandId);
+ CommandIndexMap::const_iterator found = mCommandIndices.find(commandId.uuid());
if (found != mCommandIndices.end())
{
@@ -124,25 +124,10 @@ LLCommand * LLCommandManager::getCommand(const LLCommandId& commandId)
return command_match;
}
-LLCommand * LLCommandManager::getCommand(const LLUUID& commandUUID)
-{
- LLCommand * command_match = NULL;
-
- CommandUUIDMap::const_iterator found = mCommandUUIDs.find(commandUUID);
-
- if (found != mCommandUUIDs.end())
- {
- command_match = mCommands[found->second];
- }
-
- return command_match;
-}
-
void LLCommandManager::addCommand(LLCommand * command)
{
LLCommandId command_id = command->id();
- mCommandIndices[command_id] = mCommands.size();
- mCommandUUIDs[command_id.uuid()] = mCommands.size();
+ mCommandIndices[command_id.uuid()] = mCommands.size();
mCommands.push_back(command);
lldebugs << "Successfully added command: " << command->id().name() << llendl;
diff --git a/indra/llui/llcommandmanager.h b/indra/llui/llcommandmanager.h
index 8e5abd6461..8f9f956ec7 100644
--- a/indra/llui/llcommandmanager.h
+++ b/indra/llui/llcommandmanager.h
@@ -62,17 +62,24 @@ public:
mUUID = LLUUID::generateNewID(p.name);
}
+ LLCommandId(const LLUUID& uuid)
+ : mName(""),
+ mUUID(uuid)
+
+ {
+ }
+
const std::string& name() const { return mName; }
const LLUUID& uuid() const { return mUUID; }
bool operator!=(const LLCommandId& command) const
{
- return (mName != command.mName);
+ return (mUUID != command.mUUID);
}
bool operator==(const LLCommandId& command) const
{
- return (mName == command.mName);
+ return (mUUID == command.mUUID);
}
bool operator<(const LLCommandId& command) const
@@ -178,7 +185,6 @@ public:
U32 commandCount() const;
LLCommand * getCommand(U32 commandIndex);
LLCommand * getCommand(const LLCommandId& commandId);
- LLCommand * getCommand(const LLUUID& commandUUID);
static bool load();
@@ -186,13 +192,11 @@ protected:
void addCommand(LLCommand * command);
private:
- typedef std::map<LLUUID, U32> CommandUUIDMap;
- typedef std::map<LLCommandId, U32> CommandIndexMap;
+ typedef std::map<LLUUID, U32> CommandIndexMap;
typedef std::vector<LLCommand *> CommandVector;
CommandVector mCommands;
CommandIndexMap mCommandIndices;
- CommandUUIDMap mCommandUUIDs;
};
diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp
index c0408e4850..95ed603bbf 100644
--- a/indra/newview/lltoolbarview.cpp
+++ b/indra/newview/lltoolbarview.cpp
@@ -373,7 +373,8 @@ BOOL LLToolBarView::handleDrop( void* cargo_data, S32 x, S32 y, LLToolBar* toolb
//llinfos << "Merov debug : handleDrop. Drop source is a widget -> drop it in place..." << llendl;
// Get the command from its uuid
LLCommandManager& mgr = LLCommandManager::instance();
- LLCommand* command = mgr.getCommand(inv_item->getUUID());
+ LLCommandId command_id(inv_item->getUUID());
+ LLCommand* command = mgr.getCommand(command_id);
if (command)
{
// Convert the (x,y) position in rank in toolbar