diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/newview/llpanelclassified.cpp | 89 |
1 files changed, 73 insertions, 16 deletions
diff --git a/linden/indra/newview/llpanelclassified.cpp b/linden/indra/newview/llpanelclassified.cpp index 7908ccc..45ceeba 100644 --- a/linden/indra/newview/llpanelclassified.cpp +++ b/linden/indra/newview/llpanelclassified.cpp | |||
@@ -71,6 +71,9 @@ | |||
71 | #include "llappviewer.h" // abortQuit() | 71 | #include "llappviewer.h" // abortQuit() |
72 | 72 | ||
73 | const S32 MINIMUM_PRICE_FOR_LISTING = 50; // L$ | 73 | const S32 MINIMUM_PRICE_FOR_LISTING = 50; // L$ |
74 | const S32 MATURE_CONTENT = 1; | ||
75 | const S32 NON_MATURE_CONTENT = 2; | ||
76 | const S32 DECLINE_TO_STATE = 0; | ||
74 | 77 | ||
75 | //static | 78 | //static |
76 | std::list<LLPanelClassified*> LLPanelClassified::sAllPanels; | 79 | std::list<LLPanelClassified*> LLPanelClassified::sAllPanels; |
@@ -162,7 +165,7 @@ LLPanelClassified::LLPanelClassified(bool in_finder, bool from_search) | |||
162 | mDescEditor(NULL), | 165 | mDescEditor(NULL), |
163 | mLocationEditor(NULL), | 166 | mLocationEditor(NULL), |
164 | mCategoryCombo(NULL), | 167 | mCategoryCombo(NULL), |
165 | mMatureCheck(NULL), | 168 | mMatureCombo(NULL), |
166 | mAutoRenewCheck(NULL), | 169 | mAutoRenewCheck(NULL), |
167 | mUpdateBtn(NULL), | 170 | mUpdateBtn(NULL), |
168 | mTeleportBtn(NULL), | 171 | mTeleportBtn(NULL), |
@@ -276,13 +279,15 @@ BOOL LLPanelClassified::postBuild() | |||
276 | mCategoryCombo->setCommitCallback(onCommitAny); | 279 | mCategoryCombo->setCommitCallback(onCommitAny); |
277 | mCategoryCombo->setCallbackUserData(this); | 280 | mCategoryCombo->setCallbackUserData(this); |
278 | 281 | ||
279 | mMatureCheck = getChild<LLCheckBoxCtrl>( "classified_mature_check"); | 282 | mMatureCombo = getChild<LLComboBox>( "classified_mature_check"); |
280 | mMatureCheck->setCommitCallback(onCommitAny); | 283 | mMatureCombo->setCurrentByIndex(0); |
281 | mMatureCheck->setCallbackUserData(this); | 284 | mMatureCombo->setCommitCallback(onCommitAny); |
285 | mMatureCombo->setCallbackUserData(this); | ||
282 | if (gAgent.isTeen()) | 286 | if (gAgent.isTeen()) |
283 | { | 287 | { |
284 | // Teens don't get to set mature flag. JC | 288 | // Teens don't get to set mature flag. JC |
285 | mMatureCheck->setVisible(FALSE); | 289 | mMatureCombo->setVisible(FALSE); |
290 | mMatureCombo->setCurrentByIndex(NON_MATURE_CONTENT); | ||
286 | } | 291 | } |
287 | 292 | ||
288 | if (!mInFinder) | 293 | if (!mInFinder) |
@@ -532,7 +537,7 @@ void LLPanelClassified::sendClassifiedInfoUpdate() | |||
532 | msg->addU32Fast(_PREHASH_ParentEstate, 0); | 537 | msg->addU32Fast(_PREHASH_ParentEstate, 0); |
533 | msg->addUUIDFast(_PREHASH_SnapshotID, mSnapshotCtrl->getImageAssetID()); | 538 | msg->addUUIDFast(_PREHASH_SnapshotID, mSnapshotCtrl->getImageAssetID()); |
534 | msg->addVector3dFast(_PREHASH_PosGlobal, mPosGlobal); | 539 | msg->addVector3dFast(_PREHASH_PosGlobal, mPosGlobal); |
535 | BOOL mature = mMatureCheck->get(); | 540 | BOOL mature = mMatureCombo->getCurrentIndex() == MATURE_CONTENT; |
536 | BOOL auto_renew = FALSE; | 541 | BOOL auto_renew = FALSE; |
537 | if (mAutoRenewCheck) | 542 | if (mAutoRenewCheck) |
538 | { | 543 | { |
@@ -656,7 +661,14 @@ void LLPanelClassified::processClassifiedInfoReply(LLMessageSystem *msg, void ** | |||
656 | self->mLocationChanged = false; | 661 | self->mLocationChanged = false; |
657 | 662 | ||
658 | self->mCategoryCombo->setCurrentByIndex(category - 1); | 663 | self->mCategoryCombo->setCurrentByIndex(category - 1); |
659 | self->mMatureCheck->set(mature); | 664 | if(mature) |
665 | { | ||
666 | self->mMatureCombo->setCurrentByIndex(MATURE_CONTENT); | ||
667 | } | ||
668 | else | ||
669 | { | ||
670 | self->mMatureCombo->setCurrentByIndex(NON_MATURE_CONTENT); | ||
671 | } | ||
660 | if (self->mAutoRenewCheck) | 672 | if (self->mAutoRenewCheck) |
661 | { | 673 | { |
662 | self->mAutoRenewCheck->set(auto_renew); | 674 | self->mAutoRenewCheck->set(auto_renew); |
@@ -722,8 +734,8 @@ void LLPanelClassified::refresh() | |||
722 | mCategoryCombo->setEnabled(godlike); | 734 | mCategoryCombo->setEnabled(godlike); |
723 | mCategoryCombo->setVisible(godlike); | 735 | mCategoryCombo->setVisible(godlike); |
724 | 736 | ||
725 | mMatureCheck->setEnabled(godlike); | 737 | mMatureCombo->setEnabled(godlike); |
726 | mMatureCheck->setVisible(godlike); | 738 | mMatureCombo->setVisible(godlike); |
727 | 739 | ||
728 | // Jesse (who is the only one who uses this, as far as we can tell | 740 | // Jesse (who is the only one who uses this, as far as we can tell |
729 | // Says that he does not want a set location button - he has used it | 741 | // Says that he does not want a set location button - he has used it |
@@ -742,7 +754,7 @@ void LLPanelClassified::refresh() | |||
742 | //mPriceEditor->setEnabled(is_self); | 754 | //mPriceEditor->setEnabled(is_self); |
743 | mCategoryCombo->setEnabled(is_self); | 755 | mCategoryCombo->setEnabled(is_self); |
744 | 756 | ||
745 | mMatureCheck->setEnabled(is_self); | 757 | mMatureCombo->setEnabled(is_self); |
746 | 758 | ||
747 | if (mAutoRenewCheck) | 759 | if (mAutoRenewCheck) |
748 | { | 760 | { |
@@ -775,15 +787,60 @@ void LLPanelClassified::onClickUpdate(void* data) | |||
775 | return; | 787 | return; |
776 | }; | 788 | }; |
777 | 789 | ||
790 | // If user has not set mature, do not allow publish | ||
791 | if(self->mMatureCombo->getCurrentIndex() == DECLINE_TO_STATE) | ||
792 | { | ||
793 | LLString::format_map_t args; | ||
794 | gViewerWindow->alertXml("SetClassifiedMature", &callbackConfirmMature, self); | ||
795 | return; | ||
796 | } | ||
797 | |||
798 | // Mature content flag is set, proceed | ||
799 | self->gotMature(); | ||
800 | } | ||
801 | |||
802 | // static | ||
803 | void LLPanelClassified::callbackConfirmMature(S32 option, void* data) | ||
804 | { | ||
805 | LLPanelClassified* self = (LLPanelClassified*)data; | ||
806 | self->confirmMature(option); | ||
807 | } | ||
808 | |||
809 | // invoked from callbackConfirmMature | ||
810 | void LLPanelClassified::confirmMature(S32 option) | ||
811 | { | ||
812 | // 0 == Yes | ||
813 | // 1 == No | ||
814 | // 2 == Cancel | ||
815 | switch(option) | ||
816 | { | ||
817 | case 0: | ||
818 | mMatureCombo->setCurrentByIndex(MATURE_CONTENT); | ||
819 | break; | ||
820 | case 1: | ||
821 | mMatureCombo->setCurrentByIndex(NON_MATURE_CONTENT); | ||
822 | break; | ||
823 | default: | ||
824 | return; | ||
825 | } | ||
826 | |||
827 | // If we got here it means they set a valid value | ||
828 | gotMature(); | ||
829 | } | ||
830 | |||
831 | // Called after we have determined whether this classified has | ||
832 | // mature content or not. | ||
833 | void LLPanelClassified::gotMature() | ||
834 | { | ||
778 | // if already paid for, just do the update | 835 | // if already paid for, just do the update |
779 | if (self->mPaidFor) | 836 | if (mPaidFor) |
780 | { | 837 | { |
781 | callbackConfirmPublish(0, self); | 838 | callbackConfirmPublish(0, this); |
782 | } | 839 | } |
783 | else | 840 | else |
784 | { | 841 | { |
785 | // Ask the user how much they want to pay | 842 | // Ask the user how much they want to pay |
786 | LLFloaterPriceForListing::show( callbackGotPriceForListing, self ); | 843 | LLFloaterPriceForListing::show( callbackGotPriceForListing, this ); |
787 | } | 844 | } |
788 | } | 845 | } |
789 | 846 | ||
@@ -830,8 +887,8 @@ void LLPanelClassified::resetDirty() | |||
830 | mLocationChanged = false; | 887 | mLocationChanged = false; |
831 | if (mCategoryCombo) | 888 | if (mCategoryCombo) |
832 | mCategoryCombo->resetDirty(); | 889 | mCategoryCombo->resetDirty(); |
833 | if (mMatureCheck) | 890 | if (mMatureCombo) |
834 | mMatureCheck->resetDirty(); | 891 | mMatureCombo->resetDirty(); |
835 | if (mAutoRenewCheck) | 892 | if (mAutoRenewCheck) |
836 | mAutoRenewCheck->resetDirty(); | 893 | mAutoRenewCheck->resetDirty(); |
837 | } | 894 | } |
@@ -948,7 +1005,7 @@ BOOL LLPanelClassified::checkDirty() | |||
948 | if ( mLocationEditor ) mDirty |= mLocationEditor->isDirty(); | 1005 | if ( mLocationEditor ) mDirty |= mLocationEditor->isDirty(); |
949 | if ( mLocationChanged ) mDirty |= TRUE; | 1006 | if ( mLocationChanged ) mDirty |= TRUE; |
950 | if ( mCategoryCombo ) mDirty |= mCategoryCombo->isDirty(); | 1007 | if ( mCategoryCombo ) mDirty |= mCategoryCombo->isDirty(); |
951 | if ( mMatureCheck ) mDirty |= mMatureCheck->isDirty(); | 1008 | if ( mMatureCombo ) mDirty |= mMatureCombo->isDirty(); |
952 | if ( mAutoRenewCheck ) mDirty |= mAutoRenewCheck->isDirty(); | 1009 | if ( mAutoRenewCheck ) mDirty |= mAutoRenewCheck->isDirty(); |
953 | 1010 | ||
954 | return mDirty; | 1011 | return mDirty; |