93 lines
2.8 KiB
C++
93 lines
2.8 KiB
C++
/**
|
|
* @file llfloaterbanduration.cpp
|
|
*
|
|
* $LicenseInfo:firstyear=2004&license=viewerlgpl$
|
|
* Second Life Viewer Source Code
|
|
* Copyright (C) 2018, 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 "llfloaterbanduration.h"
|
|
|
|
#include "llfloaterreg.h"
|
|
#include "llspinctrl.h"
|
|
#include "llradiogroup.h"
|
|
|
|
LLFloaterBanDuration::LLFloaterBanDuration(const LLSD& target)
|
|
: LLFloater(target)
|
|
{
|
|
}
|
|
|
|
bool LLFloaterBanDuration::postBuild()
|
|
{
|
|
childSetAction("ok_btn", boost::bind(&LLFloaterBanDuration::onClickBan, this));
|
|
childSetAction("cancel_btn", boost::bind(&LLFloaterBanDuration::onClickCancel, this));
|
|
|
|
getChild<LLUICtrl>("ban_duration_radio")->setCommitCallback(boost::bind(&LLFloaterBanDuration::onClickRadio, this));
|
|
getChild<LLRadioGroup>("ban_duration_radio")->setSelectedIndex(0);
|
|
getChild<LLUICtrl>("ban_hours")->setEnabled(false);
|
|
|
|
return true;
|
|
}
|
|
|
|
LLFloaterBanDuration* LLFloaterBanDuration::show(select_callback_t callback, uuid_vec_t ids)
|
|
{
|
|
LLFloaterBanDuration* floater = LLFloaterReg::showTypedInstance<LLFloaterBanDuration>("ban_duration");
|
|
if (!floater)
|
|
{
|
|
LL_WARNS() << "Cannot instantiate ban duration floater" << LL_ENDL;
|
|
return NULL;
|
|
}
|
|
|
|
floater->mSelectionCallback = callback;
|
|
floater->mAvatar_ids = ids;
|
|
|
|
return floater;
|
|
}
|
|
|
|
void LLFloaterBanDuration::onClickRadio()
|
|
{
|
|
getChild<LLUICtrl>("ban_hours")->setEnabled(getChild<LLRadioGroup>("ban_duration_radio")->getSelectedIndex() != 0);
|
|
}
|
|
|
|
void LLFloaterBanDuration::onClickCancel()
|
|
{
|
|
closeFloater();
|
|
}
|
|
|
|
void LLFloaterBanDuration::onClickBan()
|
|
{
|
|
if (mSelectionCallback)
|
|
{
|
|
S32 time = 0;
|
|
if (getChild<LLRadioGroup>("ban_duration_radio")->getSelectedIndex() != 0)
|
|
{
|
|
LLSpinCtrl* hours_spin = getChild<LLSpinCtrl>("ban_hours");
|
|
if (hours_spin)
|
|
{
|
|
time = (S32)(LLDate::now().secondsSinceEpoch() + (hours_spin->getValue().asInteger() * 3600));
|
|
}
|
|
}
|
|
mSelectionCallback(mAvatar_ids, time);
|
|
}
|
|
closeFloater();
|
|
}
|
|
|