From e2e37cced861b98de8c1a7c9c0d3a50d2d90e433 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 22 May 2024 21:25:21 +0200 Subject: Fix line endlings --- indra/newview/llpanelexperiencelog.cpp | 534 ++++++++++++++++----------------- 1 file changed, 267 insertions(+), 267 deletions(-) (limited to 'indra/newview/llpanelexperiencelog.cpp') diff --git a/indra/newview/llpanelexperiencelog.cpp b/indra/newview/llpanelexperiencelog.cpp index 06c7045ab7..176da130bb 100644 --- a/indra/newview/llpanelexperiencelog.cpp +++ b/indra/newview/llpanelexperiencelog.cpp @@ -1,267 +1,267 @@ -/** - * @file llpanelexperiencelog.cpp - * @brief llpanelexperiencelog - * - * $LicenseInfo:firstyear=2014&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2014, Linden Research, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * 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 - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - - -#include "llviewerprecompiledheaders.h" -#include "llpanelexperiencelog.h" - -#include "llexperiencelog.h" -#include "llexperiencecache.h" -#include "llbutton.h" -#include "llscrolllistctrl.h" -#include "llcombobox.h" -#include "llspinctrl.h" -#include "llcheckboxctrl.h" -#include "llfloaterreg.h" -#include "llfloaterreporter.h" -#include "llinventoryfunctions.h" - - -#define BTN_PROFILE_XP "btn_profile_xp" -#define BTN_REPORT_XP "btn_report_xp" - -static LLPanelInjector register_experiences_panel("experience_log"); - - -LLPanelExperienceLog::LLPanelExperienceLog( ) - : mEventList(NULL) - , mPageSize(25) - , mCurrentPage(0) -{ - buildFromFile("panel_experience_log.xml"); -} - -bool LLPanelExperienceLog::postBuild() -{ - LLExperienceLog* log = LLExperienceLog::getInstance(); - mEventList = getChild("experience_log_list"); - mEventList->setCommitCallback(boost::bind(&LLPanelExperienceLog::onSelectionChanged, this)); - mEventList->setDoubleClickCallback( boost::bind(&LLPanelExperienceLog::onProfileExperience, this)); - - getChild("btn_clear")->setCommitCallback(boost::bind(&LLExperienceLog::clear, log)); - getChild("btn_clear")->setCommitCallback(boost::bind(&LLPanelExperienceLog::refresh, this)); - - getChild(BTN_PROFILE_XP)->setCommitCallback(boost::bind(&LLPanelExperienceLog::onProfileExperience, this)); - getChild(BTN_REPORT_XP )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onReportExperience, this)); - getChild("btn_notify" )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onNotify, this)); - getChild("btn_next" )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onNext, this)); - getChild("btn_prev" )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onPrev, this)); - - LLCheckBoxCtrl* check = getChild("notify_all"); - check->set(log->getNotifyNewEvent()); - check->setCommitCallback(boost::bind(&LLPanelExperienceLog::notifyChanged, this)); - - - LLSpinCtrl* spin = getChild("logsizespinner"); - spin->set(log->getMaxDays()); - spin->setCommitCallback(boost::bind(&LLPanelExperienceLog::logSizeChanged, this)); - - mPageSize = log->getPageSize(); - refresh(); - mNewEvent = LLExperienceLog::instance().addUpdateSignal(boost::bind(&LLPanelExperienceLog::refresh, this)); - return true; -} - -LLPanelExperienceLog* LLPanelExperienceLog::create() -{ - return new LLPanelExperienceLog(); -} - -void LLPanelExperienceLog::refresh() -{ - S32 selected = mEventList->getFirstSelectedIndex(); - mEventList->deleteAllItems(); - const LLSD events = LLExperienceLog::instance().getEvents(); - - if(events.size() == 0) - { - mEventList->setCommentText(getString("no_events")); - return; - } - - setAllChildrenEnabled(false); - - LLSD item; - bool waiting = false; - LLUUID waiting_id; - - int itemsToSkip = mPageSize*mCurrentPage; - int items = 0; - bool moreItems = false; - LLSD events_to_save = events; - if (events.isMap() && events.size() != 0) - { - LLSD::map_const_iterator day = events.endMap(); - do - { - --day; - const LLSD& dayArray = day->second; - - std::string date = day->first; - if(!LLExperienceLog::instance().isNotExpired(date)) - { - events_to_save.erase(day->first); - continue; - } - int size = dayArray.size(); - if(itemsToSkip > size) - { - itemsToSkip -= size; - continue; - } - if(items >= mPageSize && size > 0) - { - moreItems = true; - break; - } - for(int i = dayArray.size() - itemsToSkip - 1; i >= 0; i--) - { - if(items >= mPageSize) - { - moreItems = true; - break; - } - const LLSD event = dayArray[i]; - LLUUID id = event[LLExperienceCache::EXPERIENCE_ID].asUUID(); - const LLSD& experience = LLExperienceCache::instance().get(id); - if(experience.isUndefined()){ - waiting = true; - waiting_id = id; - } - if(!waiting) - { - item["id"] = event; - - LLSD& columns = item["columns"]; - columns[0]["column"] = "time"; - columns[0]["value"] = day->first+event["Time"].asString(); - columns[1]["column"] = "event"; - columns[1]["value"] = LLExperienceLog::getPermissionString(event, "ExperiencePermissionShort"); - columns[2]["column"] = "experience_name"; - columns[2]["value"] = experience[LLExperienceCache::NAME].asString(); - columns[3]["column"] = "object_name"; - columns[3]["value"] = event["ObjectName"].asString(); - mEventList->addElement(item); - } - ++items; - } - } while (day != events.beginMap()); - } - LLExperienceLog::getInstance()->setEventsToSave(events_to_save); - if(waiting) - { - mEventList->deleteAllItems(); - mEventList->setCommentText(getString("loading")); - LLExperienceCache::instance().get(waiting_id, boost::bind(&LLPanelExperienceLog::refresh, this)); - } - else - { - setAllChildrenEnabled(true); - - mEventList->setEnabled(true); - getChild("btn_next")->setEnabled(moreItems); - getChild("btn_prev")->setEnabled(mCurrentPage>0); - getChild("btn_clear")->setEnabled(mEventList->getItemCount()>0); - if(selected<0) - { - selected = 0; - } - mEventList->selectNthItem(selected); - onSelectionChanged(); - } -} - -void LLPanelExperienceLog::onProfileExperience() -{ - LLSD event = getSelectedEvent(); - if(event.isDefined()) - { - LLFloaterReg::showInstance("experience_profile", event[LLExperienceCache::EXPERIENCE_ID].asUUID(), true); - } -} - -void LLPanelExperienceLog::onReportExperience() -{ - LLSD event = getSelectedEvent(); - if(event.isDefined()) - { - LLFloaterReporter::showFromExperience(event[LLExperienceCache::EXPERIENCE_ID].asUUID()); - } -} - -void LLPanelExperienceLog::onNotify() -{ - LLSD event = getSelectedEvent(); - if(event.isDefined()) - { - LLExperienceLog::instance().notify(event); - } -} - -void LLPanelExperienceLog::onNext() -{ - mCurrentPage++; - refresh(); -} - -void LLPanelExperienceLog::onPrev() -{ - if(mCurrentPage>0) - { - mCurrentPage--; - refresh(); - } -} - -void LLPanelExperienceLog::notifyChanged() -{ - LLExperienceLog::instance().setNotifyNewEvent(getChild("notify_all")->get()); -} - -void LLPanelExperienceLog::logSizeChanged() -{ - int value = (int)(getChild("logsizespinner")->get()); - LLExperienceLog::instance().setMaxDays(value); - refresh(); -} - -void LLPanelExperienceLog::onSelectionChanged() -{ - bool enabled = (1 == mEventList->getNumSelected()); - getChild(BTN_REPORT_XP)->setEnabled(enabled); - getChild(BTN_PROFILE_XP)->setEnabled(enabled); - getChild("btn_notify")->setEnabled(enabled); -} - -LLSD LLPanelExperienceLog::getSelectedEvent() -{ - LLScrollListItem* item = mEventList->getFirstSelected(); - if(item) - { - return item->getValue(); - } - return LLSD(); -} +/** + * @file llpanelexperiencelog.cpp + * @brief llpanelexperiencelog + * + * $LicenseInfo:firstyear=2014&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2014, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * 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 + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + + +#include "llviewerprecompiledheaders.h" +#include "llpanelexperiencelog.h" + +#include "llexperiencelog.h" +#include "llexperiencecache.h" +#include "llbutton.h" +#include "llscrolllistctrl.h" +#include "llcombobox.h" +#include "llspinctrl.h" +#include "llcheckboxctrl.h" +#include "llfloaterreg.h" +#include "llfloaterreporter.h" +#include "llinventoryfunctions.h" + + +#define BTN_PROFILE_XP "btn_profile_xp" +#define BTN_REPORT_XP "btn_report_xp" + +static LLPanelInjector register_experiences_panel("experience_log"); + + +LLPanelExperienceLog::LLPanelExperienceLog( ) + : mEventList(NULL) + , mPageSize(25) + , mCurrentPage(0) +{ + buildFromFile("panel_experience_log.xml"); +} + +bool LLPanelExperienceLog::postBuild() +{ + LLExperienceLog* log = LLExperienceLog::getInstance(); + mEventList = getChild("experience_log_list"); + mEventList->setCommitCallback(boost::bind(&LLPanelExperienceLog::onSelectionChanged, this)); + mEventList->setDoubleClickCallback( boost::bind(&LLPanelExperienceLog::onProfileExperience, this)); + + getChild("btn_clear")->setCommitCallback(boost::bind(&LLExperienceLog::clear, log)); + getChild("btn_clear")->setCommitCallback(boost::bind(&LLPanelExperienceLog::refresh, this)); + + getChild(BTN_PROFILE_XP)->setCommitCallback(boost::bind(&LLPanelExperienceLog::onProfileExperience, this)); + getChild(BTN_REPORT_XP )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onReportExperience, this)); + getChild("btn_notify" )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onNotify, this)); + getChild("btn_next" )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onNext, this)); + getChild("btn_prev" )->setCommitCallback(boost::bind(&LLPanelExperienceLog::onPrev, this)); + + LLCheckBoxCtrl* check = getChild("notify_all"); + check->set(log->getNotifyNewEvent()); + check->setCommitCallback(boost::bind(&LLPanelExperienceLog::notifyChanged, this)); + + + LLSpinCtrl* spin = getChild("logsizespinner"); + spin->set(log->getMaxDays()); + spin->setCommitCallback(boost::bind(&LLPanelExperienceLog::logSizeChanged, this)); + + mPageSize = log->getPageSize(); + refresh(); + mNewEvent = LLExperienceLog::instance().addUpdateSignal(boost::bind(&LLPanelExperienceLog::refresh, this)); + return true; +} + +LLPanelExperienceLog* LLPanelExperienceLog::create() +{ + return new LLPanelExperienceLog(); +} + +void LLPanelExperienceLog::refresh() +{ + S32 selected = mEventList->getFirstSelectedIndex(); + mEventList->deleteAllItems(); + const LLSD events = LLExperienceLog::instance().getEvents(); + + if(events.size() == 0) + { + mEventList->setCommentText(getString("no_events")); + return; + } + + setAllChildrenEnabled(false); + + LLSD item; + bool waiting = false; + LLUUID waiting_id; + + int itemsToSkip = mPageSize*mCurrentPage; + int items = 0; + bool moreItems = false; + LLSD events_to_save = events; + if (events.isMap() && events.size() != 0) + { + LLSD::map_const_iterator day = events.endMap(); + do + { + --day; + const LLSD& dayArray = day->second; + + std::string date = day->first; + if(!LLExperienceLog::instance().isNotExpired(date)) + { + events_to_save.erase(day->first); + continue; + } + int size = dayArray.size(); + if(itemsToSkip > size) + { + itemsToSkip -= size; + continue; + } + if(items >= mPageSize && size > 0) + { + moreItems = true; + break; + } + for(int i = dayArray.size() - itemsToSkip - 1; i >= 0; i--) + { + if(items >= mPageSize) + { + moreItems = true; + break; + } + const LLSD event = dayArray[i]; + LLUUID id = event[LLExperienceCache::EXPERIENCE_ID].asUUID(); + const LLSD& experience = LLExperienceCache::instance().get(id); + if(experience.isUndefined()){ + waiting = true; + waiting_id = id; + } + if(!waiting) + { + item["id"] = event; + + LLSD& columns = item["columns"]; + columns[0]["column"] = "time"; + columns[0]["value"] = day->first+event["Time"].asString(); + columns[1]["column"] = "event"; + columns[1]["value"] = LLExperienceLog::getPermissionString(event, "ExperiencePermissionShort"); + columns[2]["column"] = "experience_name"; + columns[2]["value"] = experience[LLExperienceCache::NAME].asString(); + columns[3]["column"] = "object_name"; + columns[3]["value"] = event["ObjectName"].asString(); + mEventList->addElement(item); + } + ++items; + } + } while (day != events.beginMap()); + } + LLExperienceLog::getInstance()->setEventsToSave(events_to_save); + if(waiting) + { + mEventList->deleteAllItems(); + mEventList->setCommentText(getString("loading")); + LLExperienceCache::instance().get(waiting_id, boost::bind(&LLPanelExperienceLog::refresh, this)); + } + else + { + setAllChildrenEnabled(true); + + mEventList->setEnabled(true); + getChild("btn_next")->setEnabled(moreItems); + getChild("btn_prev")->setEnabled(mCurrentPage>0); + getChild("btn_clear")->setEnabled(mEventList->getItemCount()>0); + if(selected<0) + { + selected = 0; + } + mEventList->selectNthItem(selected); + onSelectionChanged(); + } +} + +void LLPanelExperienceLog::onProfileExperience() +{ + LLSD event = getSelectedEvent(); + if(event.isDefined()) + { + LLFloaterReg::showInstance("experience_profile", event[LLExperienceCache::EXPERIENCE_ID].asUUID(), true); + } +} + +void LLPanelExperienceLog::onReportExperience() +{ + LLSD event = getSelectedEvent(); + if(event.isDefined()) + { + LLFloaterReporter::showFromExperience(event[LLExperienceCache::EXPERIENCE_ID].asUUID()); + } +} + +void LLPanelExperienceLog::onNotify() +{ + LLSD event = getSelectedEvent(); + if(event.isDefined()) + { + LLExperienceLog::instance().notify(event); + } +} + +void LLPanelExperienceLog::onNext() +{ + mCurrentPage++; + refresh(); +} + +void LLPanelExperienceLog::onPrev() +{ + if(mCurrentPage>0) + { + mCurrentPage--; + refresh(); + } +} + +void LLPanelExperienceLog::notifyChanged() +{ + LLExperienceLog::instance().setNotifyNewEvent(getChild("notify_all")->get()); +} + +void LLPanelExperienceLog::logSizeChanged() +{ + int value = (int)(getChild("logsizespinner")->get()); + LLExperienceLog::instance().setMaxDays(value); + refresh(); +} + +void LLPanelExperienceLog::onSelectionChanged() +{ + bool enabled = (1 == mEventList->getNumSelected()); + getChild(BTN_REPORT_XP)->setEnabled(enabled); + getChild(BTN_PROFILE_XP)->setEnabled(enabled); + getChild("btn_notify")->setEnabled(enabled); +} + +LLSD LLPanelExperienceLog::getSelectedEvent() +{ + LLScrollListItem* item = mEventList->getFirstSelected(); + if(item) + { + return item->getValue(); + } + return LLSD(); +} -- cgit v1.2.3