summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterautoreplacesettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloaterautoreplacesettings.cpp')
-rw-r--r--indra/newview/llfloaterautoreplacesettings.cpp918
1 files changed, 459 insertions, 459 deletions
diff --git a/indra/newview/llfloaterautoreplacesettings.cpp b/indra/newview/llfloaterautoreplacesettings.cpp
index 0964daa4d5..bdcaf2dc22 100644
--- a/indra/newview/llfloaterautoreplacesettings.cpp
+++ b/indra/newview/llfloaterautoreplacesettings.cpp
@@ -1,4 +1,4 @@
-/**
+/**
* @file llfloaterautoreplacesettings.cpp
* @brief Auto Replace List floater
*
@@ -10,12 +10,12 @@
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
@@ -79,537 +79,537 @@ LLFloaterAutoReplaceSettings::LLFloaterAutoReplaceSettings(const LLSD& key)
void LLFloaterAutoReplaceSettings::onClose(bool app_quitting)
{
- cleanUp();
+ cleanUp();
}
BOOL LLFloaterAutoReplaceSettings::postBuild(void)
{
- // get copies of the current settings that we will operate on
- mEnabled = gSavedSettings.getBOOL("AutoReplace");
- LL_DEBUGS("AutoReplace") << ( mEnabled ? "enabled" : "disabled") << LL_ENDL;
-
- mSettings = LLAutoReplace::getInstance()->getSettings();
-
- // global checkbox for whether or not autoreplace is active
- LLUICtrl* enabledCheckbox = getChild<LLUICtrl>("autoreplace_enable");
- enabledCheckbox->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onAutoReplaceToggled, this));
- enabledCheckbox->setValue(LLSD(mEnabled));
-
- // top row list creation and deletion
- getChild<LLUICtrl>("autoreplace_import_list")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onImportList,this));
- getChild<LLUICtrl>("autoreplace_export_list")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onExportList,this));
- getChild<LLUICtrl>("autoreplace_new_list")->setCommitCallback( boost::bind(&LLFloaterAutoReplaceSettings::onNewList,this));
- getChild<LLUICtrl>("autoreplace_delete_list")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onDeleteList,this));
-
- // the list of keyword->replacement lists
- mListNames = getChild<LLScrollListCtrl>("autoreplace_list_name");
- mListNames->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSelectList, this));
- mListNames->setCommitOnSelectionChange(true);
-
- // list ordering
- getChild<LLUICtrl>("autoreplace_list_up")->setCommitCallback( boost::bind(&LLFloaterAutoReplaceSettings::onListUp,this));
- getChild<LLUICtrl>("autoreplace_list_down")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onListDown,this));
-
- // keyword->replacement entry add / delete
- getChild<LLUICtrl>("autoreplace_add_entry")->setCommitCallback( boost::bind(&LLFloaterAutoReplaceSettings::onAddEntry,this));
- getChild<LLUICtrl>("autoreplace_delete_entry")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onDeleteEntry,this));
-
- // entry edits
- mKeyword = getChild<LLLineEditor>("autoreplace_keyword");
- mReplacement = getChild<LLLineEditor>("autoreplace_replacement");
- getChild<LLUICtrl>("autoreplace_save_entry")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSaveEntry, this));
-
- // dialog termination ( Save Changes / Cancel )
- getChild<LLUICtrl>("autoreplace_save_changes")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSaveChanges, this));
- getChild<LLUICtrl>("autoreplace_cancel")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onCancel, this));
-
- // the list of keyword->replacement pairs
- mReplacementsList = getChild<LLScrollListCtrl>("autoreplace_list_replacements");
- mReplacementsList->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSelectEntry, this));
- mReplacementsList->setCommitOnSelectionChange(true);
-
- center();
-
- mSelectedListName.clear();
- updateListNames();
- updateListNamesControls();
- updateReplacementsList();
-
- return true;
+ // get copies of the current settings that we will operate on
+ mEnabled = gSavedSettings.getBOOL("AutoReplace");
+ LL_DEBUGS("AutoReplace") << ( mEnabled ? "enabled" : "disabled") << LL_ENDL;
+
+ mSettings = LLAutoReplace::getInstance()->getSettings();
+
+ // global checkbox for whether or not autoreplace is active
+ LLUICtrl* enabledCheckbox = getChild<LLUICtrl>("autoreplace_enable");
+ enabledCheckbox->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onAutoReplaceToggled, this));
+ enabledCheckbox->setValue(LLSD(mEnabled));
+
+ // top row list creation and deletion
+ getChild<LLUICtrl>("autoreplace_import_list")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onImportList,this));
+ getChild<LLUICtrl>("autoreplace_export_list")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onExportList,this));
+ getChild<LLUICtrl>("autoreplace_new_list")->setCommitCallback( boost::bind(&LLFloaterAutoReplaceSettings::onNewList,this));
+ getChild<LLUICtrl>("autoreplace_delete_list")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onDeleteList,this));
+
+ // the list of keyword->replacement lists
+ mListNames = getChild<LLScrollListCtrl>("autoreplace_list_name");
+ mListNames->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSelectList, this));
+ mListNames->setCommitOnSelectionChange(true);
+
+ // list ordering
+ getChild<LLUICtrl>("autoreplace_list_up")->setCommitCallback( boost::bind(&LLFloaterAutoReplaceSettings::onListUp,this));
+ getChild<LLUICtrl>("autoreplace_list_down")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onListDown,this));
+
+ // keyword->replacement entry add / delete
+ getChild<LLUICtrl>("autoreplace_add_entry")->setCommitCallback( boost::bind(&LLFloaterAutoReplaceSettings::onAddEntry,this));
+ getChild<LLUICtrl>("autoreplace_delete_entry")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onDeleteEntry,this));
+
+ // entry edits
+ mKeyword = getChild<LLLineEditor>("autoreplace_keyword");
+ mReplacement = getChild<LLLineEditor>("autoreplace_replacement");
+ getChild<LLUICtrl>("autoreplace_save_entry")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSaveEntry, this));
+
+ // dialog termination ( Save Changes / Cancel )
+ getChild<LLUICtrl>("autoreplace_save_changes")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSaveChanges, this));
+ getChild<LLUICtrl>("autoreplace_cancel")->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onCancel, this));
+
+ // the list of keyword->replacement pairs
+ mReplacementsList = getChild<LLScrollListCtrl>("autoreplace_list_replacements");
+ mReplacementsList->setCommitCallback(boost::bind(&LLFloaterAutoReplaceSettings::onSelectEntry, this));
+ mReplacementsList->setCommitOnSelectionChange(true);
+
+ center();
+
+ mSelectedListName.clear();
+ updateListNames();
+ updateListNamesControls();
+ updateReplacementsList();
+
+ return true;
}
void LLFloaterAutoReplaceSettings::updateListNames()
{
- mListNames->deleteAllItems(); // start from scratch
-
- LLSD listNames = mSettings.getListNames(); // Array of Strings
-
- for ( LLSD::array_const_iterator entry = listNames.beginArray(), end = listNames.endArray();
- entry != end;
- ++entry
- )
- {
- const std::string& listName = entry->asString();
- mListNames->addSimpleElement(listName);
- }
-
- if (!mSelectedListName.empty())
- {
- mListNames->setSelectedByValue( LLSD(mSelectedListName), true );
- }
+ mListNames->deleteAllItems(); // start from scratch
+
+ LLSD listNames = mSettings.getListNames(); // Array of Strings
+
+ for ( LLSD::array_const_iterator entry = listNames.beginArray(), end = listNames.endArray();
+ entry != end;
+ ++entry
+ )
+ {
+ const std::string& listName = entry->asString();
+ mListNames->addSimpleElement(listName);
+ }
+
+ if (!mSelectedListName.empty())
+ {
+ mListNames->setSelectedByValue( LLSD(mSelectedListName), true );
+ }
}
void LLFloaterAutoReplaceSettings::updateListNamesControls()
{
- if ( mSelectedListName.empty() )
- {
- // There is no selected list
-
- // Disable all controls that operate on the selected list
- getChild<LLButton>("autoreplace_export_list")->setEnabled(false);
- getChild<LLButton>("autoreplace_delete_list")->setEnabled(false);
- getChild<LLButton>("autoreplace_list_up")->setEnabled(false);
- getChild<LLButton>("autoreplace_list_down")->setEnabled(false);
-
- mReplacementsList->deleteAllItems();
- }
- else
- {
- // Enable the controls that operate on the selected list
- getChild<LLButton>("autoreplace_export_list")->setEnabled(true);
- getChild<LLButton>("autoreplace_delete_list")->setEnabled(true);
- getChild<LLButton>("autoreplace_list_up")->setEnabled(!selectedListIsFirst());
- getChild<LLButton>("autoreplace_list_down")->setEnabled(!selectedListIsLast());
- }
+ if ( mSelectedListName.empty() )
+ {
+ // There is no selected list
+
+ // Disable all controls that operate on the selected list
+ getChild<LLButton>("autoreplace_export_list")->setEnabled(false);
+ getChild<LLButton>("autoreplace_delete_list")->setEnabled(false);
+ getChild<LLButton>("autoreplace_list_up")->setEnabled(false);
+ getChild<LLButton>("autoreplace_list_down")->setEnabled(false);
+
+ mReplacementsList->deleteAllItems();
+ }
+ else
+ {
+ // Enable the controls that operate on the selected list
+ getChild<LLButton>("autoreplace_export_list")->setEnabled(true);
+ getChild<LLButton>("autoreplace_delete_list")->setEnabled(true);
+ getChild<LLButton>("autoreplace_list_up")->setEnabled(!selectedListIsFirst());
+ getChild<LLButton>("autoreplace_list_down")->setEnabled(!selectedListIsLast());
+ }
}
void LLFloaterAutoReplaceSettings::onSelectList()
{
- std::string previousSelectedListName = mSelectedListName;
- // only one selection allowed
- LLSD selected = mListNames->getSelectedValue();
- if (selected.isDefined())
- {
- mSelectedListName = selected.asString();
- LL_DEBUGS("AutoReplace")<<"selected list '"<<mSelectedListName<<"'"<<LL_ENDL;
- }
- else
- {
- mSelectedListName.clear();
- LL_DEBUGS("AutoReplace")<<"unselected"<<LL_ENDL;
- }
-
- updateListNamesControls();
-
- if ( previousSelectedListName != mSelectedListName )
- {
- updateReplacementsList();
- }
+ std::string previousSelectedListName = mSelectedListName;
+ // only one selection allowed
+ LLSD selected = mListNames->getSelectedValue();
+ if (selected.isDefined())
+ {
+ mSelectedListName = selected.asString();
+ LL_DEBUGS("AutoReplace")<<"selected list '"<<mSelectedListName<<"'"<<LL_ENDL;
+ }
+ else
+ {
+ mSelectedListName.clear();
+ LL_DEBUGS("AutoReplace")<<"unselected"<<LL_ENDL;
+ }
+
+ updateListNamesControls();
+
+ if ( previousSelectedListName != mSelectedListName )
+ {
+ updateReplacementsList();
+ }
}
void LLFloaterAutoReplaceSettings::onSelectEntry()
{
LLSD selectedRow = mReplacementsList->getSelectedValue();
- if (selectedRow.isDefined())
- {
- mPreviousKeyword = selectedRow.asString();
- LL_DEBUGS("AutoReplace")<<"selected entry '"<<mPreviousKeyword<<"'"<<LL_ENDL;
- mKeyword->setValue(selectedRow);
- std::string replacement = mSettings.replacementFor(mPreviousKeyword, mSelectedListName );
- mReplacement->setValue(replacement);
- enableReplacementEntry();
- mReplacement->setFocus(true);
- }
- else
- {
- // no entry selection, so the entry panel should be off
- disableReplacementEntry();
- LL_DEBUGS("AutoReplace")<<"no row selected"<<LL_ENDL;
- }
+ if (selectedRow.isDefined())
+ {
+ mPreviousKeyword = selectedRow.asString();
+ LL_DEBUGS("AutoReplace")<<"selected entry '"<<mPreviousKeyword<<"'"<<LL_ENDL;
+ mKeyword->setValue(selectedRow);
+ std::string replacement = mSettings.replacementFor(mPreviousKeyword, mSelectedListName );
+ mReplacement->setValue(replacement);
+ enableReplacementEntry();
+ mReplacement->setFocus(true);
+ }
+ else
+ {
+ // no entry selection, so the entry panel should be off
+ disableReplacementEntry();
+ LL_DEBUGS("AutoReplace")<<"no row selected"<<LL_ENDL;
+ }
}
void LLFloaterAutoReplaceSettings::updateReplacementsList()
{
- // start from scratch, since this should only be called when the list changes
- mReplacementsList->deleteAllItems();
-
- if ( mSelectedListName.empty() )
- {
- mReplacementsList->setEnabled(false);
- getChild<LLButton>("autoreplace_add_entry")->setEnabled(false);
- disableReplacementEntry();
- }
- else
- {
- // Populate the keyword->replacement list from the selected list
- const LLSD* mappings = mSettings.getListEntries(mSelectedListName);
- for ( LLSD::map_const_iterator entry = mappings->beginMap(), end = mappings->endMap();
- entry != end;
- entry++
- )
- {
- LLSD row;
- row["id"] = entry->first;
- row["columns"][0]["column"] = "keyword";
- row["columns"][0]["value"] = entry->first;
- row["columns"][1]["column"] = "replacement";
- row["columns"][1]["value"] = entry->second;
-
- mReplacementsList->addElement(row, ADD_BOTTOM);
- }
-
- mReplacementsList->deselectAllItems(false /* don't call commit */);
- mReplacementsList->setEnabled(true);
-
- getChild<LLButton>("autoreplace_add_entry")->setEnabled(true);
- disableReplacementEntry();
- }
+ // start from scratch, since this should only be called when the list changes
+ mReplacementsList->deleteAllItems();
+
+ if ( mSelectedListName.empty() )
+ {
+ mReplacementsList->setEnabled(false);
+ getChild<LLButton>("autoreplace_add_entry")->setEnabled(false);
+ disableReplacementEntry();
+ }
+ else
+ {
+ // Populate the keyword->replacement list from the selected list
+ const LLSD* mappings = mSettings.getListEntries(mSelectedListName);
+ for ( LLSD::map_const_iterator entry = mappings->beginMap(), end = mappings->endMap();
+ entry != end;
+ entry++
+ )
+ {
+ LLSD row;
+ row["id"] = entry->first;
+ row["columns"][0]["column"] = "keyword";
+ row["columns"][0]["value"] = entry->first;
+ row["columns"][1]["column"] = "replacement";
+ row["columns"][1]["value"] = entry->second;
+
+ mReplacementsList->addElement(row, ADD_BOTTOM);
+ }
+
+ mReplacementsList->deselectAllItems(false /* don't call commit */);
+ mReplacementsList->setEnabled(true);
+
+ getChild<LLButton>("autoreplace_add_entry")->setEnabled(true);
+ disableReplacementEntry();
+ }
}
void LLFloaterAutoReplaceSettings::enableReplacementEntry()
{
- LL_DEBUGS("AutoReplace")<<LL_ENDL;
- mKeyword->setEnabled(true);
- mReplacement->setEnabled(true);
- getChild<LLButton>("autoreplace_save_entry")->setEnabled(true);
- getChild<LLButton>("autoreplace_delete_entry")->setEnabled(true);
+ LL_DEBUGS("AutoReplace")<<LL_ENDL;
+ mKeyword->setEnabled(true);
+ mReplacement->setEnabled(true);
+ getChild<LLButton>("autoreplace_save_entry")->setEnabled(true);
+ getChild<LLButton>("autoreplace_delete_entry")->setEnabled(true);
}
void LLFloaterAutoReplaceSettings::disableReplacementEntry()
{
- LL_DEBUGS("AutoReplace")<<LL_ENDL;
- mPreviousKeyword.clear();
- mKeyword->clear();
- mKeyword->setEnabled(false);
- mReplacement->clear();
- mReplacement->setEnabled(false);
- getChild<LLButton>("autoreplace_save_entry")->setEnabled(false);
- getChild<LLButton>("autoreplace_delete_entry")->setEnabled(false);
+ LL_DEBUGS("AutoReplace")<<LL_ENDL;
+ mPreviousKeyword.clear();
+ mKeyword->clear();
+ mKeyword->setEnabled(false);
+ mReplacement->clear();
+ mReplacement->setEnabled(false);
+ getChild<LLButton>("autoreplace_save_entry")->setEnabled(false);
+ getChild<LLButton>("autoreplace_delete_entry")->setEnabled(false);
}
// called when the global settings checkbox is changed
void LLFloaterAutoReplaceSettings::onAutoReplaceToggled()
{
- // set our local copy of the flag, copied to the global preference in onOk
- mEnabled = childGetValue("autoreplace_enable").asBoolean();
- LL_DEBUGS("AutoReplace")<< "autoreplace_enable " << ( mEnabled ? "on" : "off" ) << LL_ENDL;
+ // set our local copy of the flag, copied to the global preference in onOk
+ mEnabled = childGetValue("autoreplace_enable").asBoolean();
+ LL_DEBUGS("AutoReplace")<< "autoreplace_enable " << ( mEnabled ? "on" : "off" ) << LL_ENDL;
}
// called when the List Up button is pressed
void LLFloaterAutoReplaceSettings::onListUp()
{
- S32 selectedRow = mListNames->getFirstSelectedIndex();
- LLSD selectedName = mListNames->getSelectedValue().asString();
-
- if ( mSettings.increaseListPriority(selectedName) )
- {
- updateListNames();
- updateListNamesControls();
- }
- else
- {
- LL_WARNS("AutoReplace")
- << "invalid row ("<<selectedRow<<") selected '"<<selectedName<<"'"
- <<LL_ENDL;
- }
+ S32 selectedRow = mListNames->getFirstSelectedIndex();
+ LLSD selectedName = mListNames->getSelectedValue().asString();
+
+ if ( mSettings.increaseListPriority(selectedName) )
+ {
+ updateListNames();
+ updateListNamesControls();
+ }
+ else
+ {
+ LL_WARNS("AutoReplace")
+ << "invalid row ("<<selectedRow<<") selected '"<<selectedName<<"'"
+ <<LL_ENDL;
+ }
}
// called when the List Down button is pressed
void LLFloaterAutoReplaceSettings::onListDown()
{
- S32 selectedRow = mListNames->getFirstSelectedIndex();
- std::string selectedName = mListNames->getSelectedValue().asString();
-
- if ( mSettings.decreaseListPriority(selectedName) )
- {
- updateListNames();
- updateListNamesControls();
- }
- else
- {
- LL_WARNS("AutoReplace")
- << "invalid row ("<<selectedRow<<") selected '"<<selectedName<<"'"
- <<LL_ENDL;
- }
+ S32 selectedRow = mListNames->getFirstSelectedIndex();
+ std::string selectedName = mListNames->getSelectedValue().asString();
+
+ if ( mSettings.decreaseListPriority(selectedName) )
+ {
+ updateListNames();
+ updateListNamesControls();
+ }
+ else
+ {
+ LL_WARNS("AutoReplace")
+ << "invalid row ("<<selectedRow<<") selected '"<<selectedName<<"'"
+ <<LL_ENDL;
+ }
}
// called when the Delete Entry button is pressed
void LLFloaterAutoReplaceSettings::onDeleteEntry()
{
LLSD selectedRow = mReplacementsList->getSelectedValue();
- if (selectedRow.isDefined())
- {
- std::string keyword = selectedRow.asString();
- mReplacementsList->deleteSelectedItems(); // delete from the control
- mSettings.removeEntryFromList(keyword, mSelectedListName); // delete from the local settings copy
- disableReplacementEntry(); // no selection active, so turn off the buttons
- }
+ if (selectedRow.isDefined())
+ {
+ std::string keyword = selectedRow.asString();
+ mReplacementsList->deleteSelectedItems(); // delete from the control
+ mSettings.removeEntryFromList(keyword, mSelectedListName); // delete from the local settings copy
+ disableReplacementEntry(); // no selection active, so turn off the buttons
+ }
}
// called when the Import List button is pressed
void LLFloaterAutoReplaceSettings::onImportList()
{
- LLFilePickerReplyThread::startPicker(boost::bind(&LLFloaterAutoReplaceSettings::loadListFromFile, this, _1), LLFilePicker::FFLOAD_XML, false);
+ LLFilePickerReplyThread::startPicker(boost::bind(&LLFloaterAutoReplaceSettings::loadListFromFile, this, _1), LLFilePicker::FFLOAD_XML, false);
}
void LLFloaterAutoReplaceSettings::loadListFromFile(const std::vector<std::string>& filenames)
{
- llifstream file;
- file.open(filenames[0].c_str());
- LLSD newList;
- if (file.is_open())
- {
- LLSDSerialize::fromXMLDocument(newList, file);
- }
- file.close();
-
- switch ( mSettings.addList(newList) )
- {
- case LLAutoReplaceSettings::AddListOk:
- mSelectedListName = LLAutoReplaceSettings::getListName(newList);
-
- updateListNames();
- updateListNamesControls();
- updateReplacementsList();
- break;
-
- case LLAutoReplaceSettings::AddListDuplicateName:
- {
- std::string newName = LLAutoReplaceSettings::getListName(newList);
- LL_WARNS("AutoReplace")<<"name '"<<newName<<"' is in use; prompting for new name"<<LL_ENDL;
- LLSD newPayload;
- newPayload["list"] = newList;
- LLSD args;
- args["DUPNAME"] = newName;
-
- LLNotificationsUtil::add("RenameAutoReplaceList", args, newPayload,
- boost::bind(&LLFloaterAutoReplaceSettings::callbackListNameConflict, this, _1, _2));
- }
- break;
-
- case LLAutoReplaceSettings::AddListInvalidList:
- LLNotificationsUtil::add("InvalidAutoReplaceList");
- LL_WARNS("AutoReplace") << "imported list was invalid" << LL_ENDL;
-
- mSelectedListName.clear();
- updateListNames();
- updateListNamesControls();
- updateReplacementsList();
- break;
-
- default:
- LL_ERRS("AutoReplace") << "invalid AddListResult" << LL_ENDL;
-
- }
+ llifstream file;
+ file.open(filenames[0].c_str());
+ LLSD newList;
+ if (file.is_open())
+ {
+ LLSDSerialize::fromXMLDocument(newList, file);
+ }
+ file.close();
+
+ switch ( mSettings.addList(newList) )
+ {
+ case LLAutoReplaceSettings::AddListOk:
+ mSelectedListName = LLAutoReplaceSettings::getListName(newList);
+
+ updateListNames();
+ updateListNamesControls();
+ updateReplacementsList();
+ break;
+
+ case LLAutoReplaceSettings::AddListDuplicateName:
+ {
+ std::string newName = LLAutoReplaceSettings::getListName(newList);
+ LL_WARNS("AutoReplace")<<"name '"<<newName<<"' is in use; prompting for new name"<<LL_ENDL;
+ LLSD newPayload;
+ newPayload["list"] = newList;
+ LLSD args;
+ args["DUPNAME"] = newName;
+
+ LLNotificationsUtil::add("RenameAutoReplaceList", args, newPayload,
+ boost::bind(&LLFloaterAutoReplaceSettings::callbackListNameConflict, this, _1, _2));
+ }
+ break;
+
+ case LLAutoReplaceSettings::AddListInvalidList:
+ LLNotificationsUtil::add("InvalidAutoReplaceList");
+ LL_WARNS("AutoReplace") << "imported list was invalid" << LL_ENDL;
+
+ mSelectedListName.clear();
+ updateListNames();
+ updateListNamesControls();
+ updateReplacementsList();
+ break;
+
+ default:
+ LL_ERRS("AutoReplace") << "invalid AddListResult" << LL_ENDL;
+
+ }
}
void LLFloaterAutoReplaceSettings::onNewList()
{
- LLSD payload;
- LLSD emptyList;
- LLAutoReplaceSettings::createEmptyList(emptyList);
- payload["list"] = emptyList;
+ LLSD payload;
+ LLSD emptyList;
+ LLAutoReplaceSettings::createEmptyList(emptyList);
+ payload["list"] = emptyList;
LLSD args;
-
- LLNotificationsUtil::add("AddAutoReplaceList", args, payload,
- boost::bind(&LLFloaterAutoReplaceSettings::callbackNewListName, this, _1, _2));
+
+ LLNotificationsUtil::add("AddAutoReplaceList", args, payload,
+ boost::bind(&LLFloaterAutoReplaceSettings::callbackNewListName, this, _1, _2));
}
bool LLFloaterAutoReplaceSettings::callbackNewListName(const LLSD& notification, const LLSD& response)
{
- LL_DEBUGS("AutoReplace")<<"called"<<LL_ENDL;
-
- LLSD newList = notification["payload"]["list"];
-
- if ( response.has("listname") && response["listname"].isString() )
- {
- std::string newName = response["listname"].asString();
- LLAutoReplaceSettings::setListName(newList, newName);
-
- switch ( mSettings.addList(newList) )
- {
- case LLAutoReplaceSettings::AddListOk:
- LL_INFOS("AutoReplace") << "added new list '"<<newName<<"'"<<LL_ENDL;
- mSelectedListName = newName;
- updateListNames();
- updateListNamesControls();
- updateReplacementsList();
- break;
-
- case LLAutoReplaceSettings::AddListDuplicateName:
- {
- LL_WARNS("AutoReplace")<<"name '"<<newName<<"' is in use; prompting for new name"<<LL_ENDL;
- LLSD newPayload;
- newPayload["list"] = notification["payload"]["list"];
- LLSD args;
- args["DUPNAME"] = newName;
-
- LLNotificationsUtil::add("RenameAutoReplaceList", args, newPayload,
- boost::bind(&LLFloaterAutoReplaceSettings::callbackListNameConflict, this, _1, _2));
- }
- break;
-
- case LLAutoReplaceSettings::AddListInvalidList:
- LLNotificationsUtil::add("InvalidAutoReplaceList");
-
- mSelectedListName.clear();
- updateListNames();
- updateListNamesControls();
- updateReplacementsList();
- break;
-
- default:
- LL_ERRS("AutoReplace") << "invalid AddListResult" << LL_ENDL;
- }
- }
- else
- {
- LL_ERRS("AutoReplace") << "adding notification response" << LL_ENDL;
- }
- return false;
+ LL_DEBUGS("AutoReplace")<<"called"<<LL_ENDL;
+
+ LLSD newList = notification["payload"]["list"];
+
+ if ( response.has("listname") && response["listname"].isString() )
+ {
+ std::string newName = response["listname"].asString();
+ LLAutoReplaceSettings::setListName(newList, newName);
+
+ switch ( mSettings.addList(newList) )
+ {
+ case LLAutoReplaceSettings::AddListOk:
+ LL_INFOS("AutoReplace") << "added new list '"<<newName<<"'"<<LL_ENDL;
+ mSelectedListName = newName;
+ updateListNames();
+ updateListNamesControls();
+ updateReplacementsList();
+ break;
+
+ case LLAutoReplaceSettings::AddListDuplicateName:
+ {
+ LL_WARNS("AutoReplace")<<"name '"<<newName<<"' is in use; prompting for new name"<<LL_ENDL;
+ LLSD newPayload;
+ newPayload["list"] = notification["payload"]["list"];
+ LLSD args;
+ args["DUPNAME"] = newName;
+
+ LLNotificationsUtil::add("RenameAutoReplaceList", args, newPayload,
+ boost::bind(&LLFloaterAutoReplaceSettings::callbackListNameConflict, this, _1, _2));
+ }
+ break;
+
+ case LLAutoReplaceSettings::AddListInvalidList:
+ LLNotificationsUtil::add("InvalidAutoReplaceList");
+
+ mSelectedListName.clear();
+ updateListNames();
+ updateListNamesControls();
+ updateReplacementsList();
+ break;
+
+ default:
+ LL_ERRS("AutoReplace") << "invalid AddListResult" << LL_ENDL;
+ }
+ }
+ else
+ {
+ LL_ERRS("AutoReplace") << "adding notification response" << LL_ENDL;
+ }
+ return false;
}
// callback for the RenameAutoReplaceList notification
bool LLFloaterAutoReplaceSettings::callbackListNameConflict(const LLSD& notification, const LLSD& response)
{
- LLSD newList = notification["payload"]["list"];
- std::string listName = LLAutoReplaceSettings::getListName(newList);
-
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- switch ( option )
- {
- case 0:
- // Replace current list
- if ( LLAutoReplaceSettings::AddListOk == mSettings.replaceList(newList) )
- {
- LL_INFOS("AutoReplace") << "replaced list '"<<listName<<"'"<<LL_ENDL;
- mSelectedListName = listName;
- updateListNames();
- updateListNamesControls();
- updateReplacementsList();
- }
- else
- {
- LL_WARNS("AutoReplace")<<"failed to replace list '"<<listName<<"'"<<LL_ENDL;
- }
- break;
-
- case 1:
- // Use New Name
- LL_INFOS("AutoReplace")<<"option 'use new name' selected"<<LL_ENDL;
- callbackNewListName(notification, response);
- break;
-
- default:
- LL_ERRS("AutoReplace")<<"invalid selected option "<<option<<LL_ENDL;
- }
-
- return false;
+ LLSD newList = notification["payload"]["list"];
+ std::string listName = LLAutoReplaceSettings::getListName(newList);
+
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ switch ( option )
+ {
+ case 0:
+ // Replace current list
+ if ( LLAutoReplaceSettings::AddListOk == mSettings.replaceList(newList) )
+ {
+ LL_INFOS("AutoReplace") << "replaced list '"<<listName<<"'"<<LL_ENDL;
+ mSelectedListName = listName;
+ updateListNames();
+ updateListNamesControls();
+ updateReplacementsList();
+ }
+ else
+ {
+ LL_WARNS("AutoReplace")<<"failed to replace list '"<<listName<<"'"<<LL_ENDL;
+ }
+ break;
+
+ case 1:
+ // Use New Name
+ LL_INFOS("AutoReplace")<<"option 'use new name' selected"<<LL_ENDL;
+ callbackNewListName(notification, response);
+ break;
+
+ default:
+ LL_ERRS("AutoReplace")<<"invalid selected option "<<option<<LL_ENDL;
+ }
+
+ return false;
}
void LLFloaterAutoReplaceSettings::onDeleteList()
{
- std::string listName = mListNames->getSelectedValue().asString();
- if ( ! listName.empty() )
- {
- if ( mSettings.removeReplacementList(listName) )
- {
- LL_INFOS("AutoReplace")<<"deleted list '"<<listName<<"'"<<LL_ENDL;
- mReplacementsList->deleteSelectedItems(); // remove from the scrolling list
- mSelectedListName.clear();
- updateListNames();
- updateListNamesControls();
- updateReplacementsList();
- }
- else
- {
- LL_WARNS("AutoReplace")<<"failed to delete list '"<<listName<<"'"<<LL_ENDL;
- }
- }
- else
- {
- LL_DEBUGS("AutoReplace")<<"no list selected for delete"<<LL_ENDL;
- }
+ std::string listName = mListNames->getSelectedValue().asString();
+ if ( ! listName.empty() )
+ {
+ if ( mSettings.removeReplacementList(listName) )
+ {
+ LL_INFOS("AutoReplace")<<"deleted list '"<<listName<<"'"<<LL_ENDL;
+ mReplacementsList->deleteSelectedItems(); // remove from the scrolling list
+ mSelectedListName.clear();
+ updateListNames();
+ updateListNamesControls();
+ updateReplacementsList();
+ }
+ else
+ {
+ LL_WARNS("AutoReplace")<<"failed to delete list '"<<listName<<"'"<<LL_ENDL;
+ }
+ }
+ else
+ {
+ LL_DEBUGS("AutoReplace")<<"no list selected for delete"<<LL_ENDL;
+ }
}
void LLFloaterAutoReplaceSettings::onExportList()
{
- std::string listName=mListNames->getFirstSelected()->getColumn(0)->getValue().asString();
- std::string listFileName = listName + ".xml";
- LLFilePickerReplyThread::startPicker(boost::bind(&LLFloaterAutoReplaceSettings::saveListToFile, this, _1, listName), LLFilePicker::FFSAVE_XML, listFileName);
+ std::string listName=mListNames->getFirstSelected()->getColumn(0)->getValue().asString();
+ std::string listFileName = listName + ".xml";
+ LLFilePickerReplyThread::startPicker(boost::bind(&LLFloaterAutoReplaceSettings::saveListToFile, this, _1, listName), LLFilePicker::FFSAVE_XML, listFileName);
}
void LLFloaterAutoReplaceSettings::saveListToFile(const std::vector<std::string>& filenames, std::string listName)
{
- llofstream file;
- const LLSD* list = mSettings.exportList(listName);
- file.open(filenames[0].c_str());
- LLSDSerialize::toPrettyXML(*list, file);
- file.close();
+ llofstream file;
+ const LLSD* list = mSettings.exportList(listName);
+ file.open(filenames[0].c_str());
+ LLSDSerialize::toPrettyXML(*list, file);
+ file.close();
}
void LLFloaterAutoReplaceSettings::onAddEntry()
{
- mPreviousKeyword.clear();
- mReplacementsList->deselectAllItems(false /* don't call commit */);
- mKeyword->clear();
- mReplacement->clear();
- enableReplacementEntry();
- mKeyword->setFocus(true);
+ mPreviousKeyword.clear();
+ mReplacementsList->deselectAllItems(false /* don't call commit */);
+ mKeyword->clear();
+ mReplacement->clear();
+ enableReplacementEntry();
+ mKeyword->setFocus(true);
}
void LLFloaterAutoReplaceSettings::onSaveEntry()
{
- LL_DEBUGS("AutoReplace")<<"called"<<LL_ENDL;
-
- if ( ! mPreviousKeyword.empty() )
- {
- // delete any existing value for the key that was editted
- LL_INFOS("AutoReplace")
- << "list '" << mSelectedListName << "' "
- << "removed '" << mPreviousKeyword
- << "'" << LL_ENDL;
- mSettings.removeEntryFromList( mPreviousKeyword, mSelectedListName );
- }
-
- LLWString keyword = mKeyword->getWText();
- LLWString replacement = mReplacement->getWText();
- if ( mSettings.addEntryToList(keyword, replacement, mSelectedListName) )
- {
- // insert the new keyword->replacement pair
- LL_INFOS("AutoReplace")
- << "list '" << mSelectedListName << "' "
- << "added '" << wstring_to_utf8str(keyword)
- << "' -> '" << wstring_to_utf8str(replacement)
- << "'" << LL_ENDL;
-
- updateReplacementsList();
- }
- else
- {
- LLNotificationsUtil::add("InvalidAutoReplaceEntry");
- LL_WARNS("AutoReplace")<<"invalid entry "
- << "keyword '" << wstring_to_utf8str(keyword)
- << "' replacement '" << wstring_to_utf8str(replacement)
- << "'" << LL_ENDL;
- }
+ LL_DEBUGS("AutoReplace")<<"called"<<LL_ENDL;
+
+ if ( ! mPreviousKeyword.empty() )
+ {
+ // delete any existing value for the key that was editted
+ LL_INFOS("AutoReplace")
+ << "list '" << mSelectedListName << "' "
+ << "removed '" << mPreviousKeyword
+ << "'" << LL_ENDL;
+ mSettings.removeEntryFromList( mPreviousKeyword, mSelectedListName );
+ }
+
+ LLWString keyword = mKeyword->getWText();
+ LLWString replacement = mReplacement->getWText();
+ if ( mSettings.addEntryToList(keyword, replacement, mSelectedListName) )
+ {
+ // insert the new keyword->replacement pair
+ LL_INFOS("AutoReplace")
+ << "list '" << mSelectedListName << "' "
+ << "added '" << wstring_to_utf8str(keyword)
+ << "' -> '" << wstring_to_utf8str(replacement)
+ << "'" << LL_ENDL;
+
+ updateReplacementsList();
+ }
+ else
+ {
+ LLNotificationsUtil::add("InvalidAutoReplaceEntry");
+ LL_WARNS("AutoReplace")<<"invalid entry "
+ << "keyword '" << wstring_to_utf8str(keyword)
+ << "' replacement '" << wstring_to_utf8str(replacement)
+ << "'" << LL_ENDL;
+ }
}
void LLFloaterAutoReplaceSettings::onCancel()
{
- cleanUp();
- closeFloater(false /* not quitting */);
+ cleanUp();
+ closeFloater(false /* not quitting */);
}
void LLFloaterAutoReplaceSettings::onSaveChanges()
{
- // put our local copy of the settings into the active copy
- LLAutoReplace::getInstance()->setSettings( mSettings );
- // save our local copy of the global feature enable/disable value
- gSavedSettings.setBOOL("AutoReplace", mEnabled);
- cleanUp();
- closeFloater(false /* not quitting */);
+ // put our local copy of the settings into the active copy
+ LLAutoReplace::getInstance()->setSettings( mSettings );
+ // save our local copy of the global feature enable/disable value
+ gSavedSettings.setBOOL("AutoReplace", mEnabled);
+ cleanUp();
+ closeFloater(false /* not quitting */);
}
void LLFloaterAutoReplaceSettings::cleanUp()
@@ -619,41 +619,41 @@ void LLFloaterAutoReplaceSettings::cleanUp()
bool LLFloaterAutoReplaceSettings::selectedListIsFirst()
{
- bool isFirst = false;
-
- if (!mSelectedListName.empty())
- {
- LLSD lists = mSettings.getListNames(); // an Array of Strings
- LLSD first = lists.get(0);
- if ( first.isString() && first.asString() == mSelectedListName )
- {
- isFirst = true;
- }
- }
- return isFirst;
+ bool isFirst = false;
+
+ if (!mSelectedListName.empty())
+ {
+ LLSD lists = mSettings.getListNames(); // an Array of Strings
+ LLSD first = lists.get(0);
+ if ( first.isString() && first.asString() == mSelectedListName )
+ {
+ isFirst = true;
+ }
+ }
+ return isFirst;
}
bool LLFloaterAutoReplaceSettings::selectedListIsLast()
{
- bool isLast = false;
-
- if (!mSelectedListName.empty())
- {
- LLSD last;
- LLSD lists = mSettings.getListNames(); // an Array of Strings
- for ( LLSD::array_const_iterator list = lists.beginArray(), listEnd = lists.endArray();
- list != listEnd;
- list++
- )
- {
- last = *list;
- }
- if ( last.isString() && last.asString() == mSelectedListName )
- {
- isLast = true;
- }
- }
- return isLast;
+ bool isLast = false;
+
+ if (!mSelectedListName.empty())
+ {
+ LLSD last;
+ LLSD lists = mSettings.getListNames(); // an Array of Strings
+ for ( LLSD::array_const_iterator list = lists.beginArray(), listEnd = lists.endArray();
+ list != listEnd;
+ list++
+ )
+ {
+ last = *list;
+ }
+ if ( last.isString() && last.asString() == mSelectedListName )
+ {
+ isLast = true;
+ }
+ }
+ return isLast;
}
/* TBD