summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-03-04 17:33:55 +0000
committerTofu Linden <tofu.linden@lindenlab.com>2010-03-04 17:33:55 +0000
commit3d81e9e7f1c1abd6a63eaec7608b9664a61cba1f (patch)
tree010bfb56c9fb214300a1626c915a51fa76e9f55c /indra
parente57cba8dcfe550ef0b0e205ebcc429ea33714065 (diff)
parent57f4565bb8e0e1efc5fcbb8178a8605d72c8c996 (diff)
PE merge.
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llsys.cpp27
-rw-r--r--indra/llcommon/llsys.h15
-rw-r--r--indra/llui/lltabcontainer.cpp7
-rw-r--r--indra/newview/installers/windows/install_icon.icobin25214 -> 367958 bytes
-rw-r--r--indra/newview/installers/windows/uninstall_icon.icobin25214 -> 367958 bytes
-rw-r--r--indra/newview/llappviewer.cpp32
-rw-r--r--indra/newview/llfloaterpreference.cpp8
-rw-r--r--indra/newview/llimfloater.cpp15
-rw-r--r--indra/newview/llimview.cpp2
-rw-r--r--indra/newview/llpanelclassified.cpp168
-rw-r--r--indra/newview/llpanelclassified.h48
-rw-r--r--indra/newview/llviewerfloaterreg.cpp2
-rw-r--r--indra/newview/res/ll_icon.icobin364590 -> 367958 bytes
-rw-r--r--indra/newview/secondlife.icnsbin135209 -> 180809 bytes
-rw-r--r--indra/newview/skins/default/xui/en/floater_im_session.xml6
-rw-r--r--indra/newview/skins/default/xui/en/floater_publish_classified.xml82
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_classified_info.xml117
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_classified.xml29
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml7
20 files changed, 490 insertions, 77 deletions
diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index 0272c55db2..0ed700b9da 100644
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -775,6 +775,33 @@ void LLMemoryInfo::stream(std::ostream& s) const
#endif
}
+S32 LLDisplayInfo::getDisplayWidth() const
+{
+#if LL_WINDOWS
+ return ::GetSystemMetrics(SM_CXVIRTUALSCREEN);
+#elif LL_DARWIN
+ return 1024; //*FIXME
+#elif LL_SOLARIS
+ return 1024; //*FIXME
+#else
+ return 1024; //*FIXME
+#endif
+}
+
+S32 LLDisplayInfo::getDisplayHeight() const
+{
+#if LL_WINDOWS
+ return ::GetSystemMetrics(SM_CYVIRTUALSCREEN);
+#elif LL_DARWIN
+ return 768; //*FIXME
+#elif LL_SOLARIS
+ return 768; //*FIXME
+#else
+ return 768; //*FIXME
+#endif
+}
+
+
std::ostream& operator<<(std::ostream& s, const LLOSInfo& info)
{
info.stream(s);
diff --git a/indra/llcommon/llsys.h b/indra/llcommon/llsys.h
index c2c45bec9a..aa3fdd485b 100644
--- a/indra/llcommon/llsys.h
+++ b/indra/llcommon/llsys.h
@@ -122,6 +122,21 @@ public:
U32 getPhysicalMemoryClamped() const; ///< Memory size in clamped bytes
};
+//=============================================================================
+//
+// CLASS LLDisplayInfo
+class LL_COMMON_API LLDisplayInfo
+
+/*! @brief Class to query the information about some display settings
+*/
+{
+public:
+ LLDisplayInfo(){}; ///< Default constructor
+
+ S32 getDisplayWidth() const; ///< display width
+ S32 getDisplayHeight() const; ///< display height
+
+};
LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLOSInfo& info);
LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLCPUInfo& info);
diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp
index 1dcfb4e296..30fc7babae 100644
--- a/indra/llui/lltabcontainer.cpp
+++ b/indra/llui/lltabcontainer.cpp
@@ -2061,12 +2061,5 @@ void LLTabContainer::commitHoveredButton(S32 x, S32 y)
tuple->mButton->onCommit();
}
}
- /**
- * EXT - 4572 (Click and hold the left mouse button doesn't let you browse tabbed IM floater)
- *
- * During hovering mouse(with left mouse button hold) over tabs, a newly just activated corresponding
- * to the tab(that is hovered in the given instant of time) panel may caught mouse capture.
- */
- gFocusMgr.setMouseCapture(this);
}
}
diff --git a/indra/newview/installers/windows/install_icon.ico b/indra/newview/installers/windows/install_icon.ico
index 1e00530c90..efe6c4f323 100644
--- a/indra/newview/installers/windows/install_icon.ico
+++ b/indra/newview/installers/windows/install_icon.ico
Binary files differ
diff --git a/indra/newview/installers/windows/uninstall_icon.ico b/indra/newview/installers/windows/uninstall_icon.ico
index c4ec6c70bd..05e1546860 100644
--- a/indra/newview/installers/windows/uninstall_icon.ico
+++ b/indra/newview/installers/windows/uninstall_icon.ico
Binary files differ
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 948d38befb..6d4c90c2b9 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -304,7 +304,8 @@ static std::string gLaunchFileOnQuit;
// Used on Win32 for other apps to identify our window (eg, win_setup)
const char* const VIEWER_WINDOW_CLASSNAME = "Second Life";
-
+static const S32 FIRST_RUN_WINDOW_WIDTH = 1024;
+static const S32 FIRST_RUN_WINDOW_HRIGHT = 768;
//----------------------------------------------------------------------------
// List of entries from strings.xml to always replace
@@ -2362,12 +2363,35 @@ bool LLAppViewer::initWindow()
// store setting in a global for easy access and modification
gNoRender = gSavedSettings.getBOOL("DisableRendering");
+ S32 window_x = gSavedSettings.getS32("WindowX");
+ S32 window_y = gSavedSettings.getS32("WindowY");
+ S32 window_width = gSavedSettings.getS32("WindowWidth");
+ S32 window_height = gSavedSettings.getS32("WindowHeight");
+
+ bool show_maximized = gSavedSettings.getBOOL("WindowMaximized");
+
+ bool first_run = gSavedSettings.getBOOL("FirstLoginThisInstall");
+
+ if (first_run)//for first login
+ {
+ window_width = FIRST_RUN_WINDOW_WIDTH;//yep hardcoded
+ window_height = FIRST_RUN_WINDOW_HRIGHT;
+
+ //if screen resolution is lower then 1024*768 then show maximized
+ LLDisplayInfo display_info;
+ if(display_info.getDisplayWidth() <= FIRST_RUN_WINDOW_WIDTH
+ || display_info.getDisplayHeight()<=FIRST_RUN_WINDOW_HRIGHT)
+ {
+ show_maximized = true;
+ }
+ }
+
// always start windowed
BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth");
gViewerWindow = new LLViewerWindow(gWindowTitle,
VIEWER_WINDOW_CLASSNAME,
- gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"),
- gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
+ window_x, window_y,
+ window_width, window_height,
FALSE, ignorePixelDepth);
LLNotificationsUI::LLNotificationManager::getInstance();
@@ -2378,7 +2402,7 @@ bool LLAppViewer::initWindow()
gViewerWindow->toggleFullscreen(FALSE);
}
- if (gSavedSettings.getBOOL("WindowMaximized"))
+ if (show_maximized)
{
gViewerWindow->mWindow->maximize();
gViewerWindow->getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio"));
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 224514dd48..839d3f0c21 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1289,7 +1289,7 @@ BOOL LLPanelPreference::postBuild()
if (hasChild("media_enabled"))
{
bool media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia");
- getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
+
getChild<LLCheckBoxCtrl>("media_enabled")->set(media_enabled);
getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(media_enabled);
}
@@ -1297,7 +1297,11 @@ BOOL LLPanelPreference::postBuild()
{
getChild<LLCheckBoxCtrl>("music_enabled")->set(gSavedSettings.getBOOL("AudioStreamingMusic"));
}
-
+ if (hasChild("voice_call_friends_only_check"))
+ {
+ getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
+ }
+
apply();
return true;
}
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 8cdc50eb70..77eaebb0bc 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -127,12 +127,6 @@ void LLIMFloater::onFocusReceived()
{
LLIMModel::getInstance()->setActiveSessionID(mSessionID);
- // return focus to the input field when active tab in the multitab container is clicked.
- if (isChatMultiTab() && mInputEditor)
- {
- mInputEditor->setFocus(TRUE);
- }
-
LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(mSessionID, true);
}
@@ -682,15 +676,6 @@ void LLIMFloater::onInputEditorFocusReceived( LLFocusableElement* caller, void*
//in disconnected state IM input editor should be disabled
self->mInputEditor->setEnabled(!gDisconnected);
}
-
- // when IM Floater is a part of the multitab container LLTabContainer set focus to the first
- // child on tab button's mouse up. This leads input field lost focus. See EXT-3852.
- if (isChatMultiTab())
- {
- // So, clear control captured mouse to prevent LLTabContainer set focus on the panel's first child.
- // do not pass self->mInputEditor, this leads to have "Edit Text" mouse pointer wherever it is.
- gFocusMgr.setMouseCapture(NULL);
- }
}
// static
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 1dc601e260..b3f085ef6d 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -1565,7 +1565,7 @@ void LLCallDialog::onOpen(const LLSD& key)
LLDockableFloater::onOpen(key);
// it should be over the all floaters. EXT-5116
- gFloaterView->bringToFront(this);
+ gFloaterView->bringToFront(this, FALSE);
}
void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id)
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 6f0b7df935..d59a7d752e 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -1166,6 +1166,7 @@ LLPanelClassifiedInfo::LLPanelClassifiedInfo()
, mTeleportClicksNew(0)
, mMapClicksNew(0)
, mProfileClicksNew(0)
+ , mSnapshotCtrl(NULL)
{
sAllPanels.push_back(this);
}
@@ -1195,7 +1196,8 @@ BOOL LLPanelClassifiedInfo::postBuild()
mScrollingPanelMinHeight = mScrollContainer->getScrolledViewRect().getHeight();
mScrollingPanelWidth = mScrollingPanel->getRect().getWidth();
- mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect();
+ mSnapshotCtrl = getChild<LLTextureCtrl>("classified_snapshot");
+ mSnapshotRect = getDefaultSnapshotRect();
return TRUE;
}
@@ -1229,7 +1231,8 @@ void LLPanelClassifiedInfo::reshape(S32 width, S32 height, BOOL called_from_pare
mScrollingPanel->reshape(mScrollingPanelWidth + scrollbar_size, scroll_height);
}
- mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect();
+ mSnapshotRect = getDefaultSnapshotRect();
+ stretchSnapshot();
}
void LLPanelClassifiedInfo::onOpen(const LLSD& key)
@@ -1249,6 +1252,7 @@ void LLPanelClassifiedInfo::onOpen(const LLSD& key)
resetData();
resetControls();
+ scrollToTop();
setClassifiedId(key["classified_id"]);
setClassifiedName(key["name"]);
@@ -1359,12 +1363,7 @@ void LLPanelClassifiedInfo::setClassifiedLocation(const std::string& location)
void LLPanelClassifiedInfo::setSnapshotId(const LLUUID& id)
{
- childSetValue("classified_snapshot", id);
- if(!mSnapshotStreched)
- {
- LLUICtrl* snapshot = getChild<LLUICtrl>("classified_snapshot");
- snapshot->setRect(mSnapshotRect);
- }
+ mSnapshotCtrl->setValue(id);
mSnapshotStreched = false;
}
@@ -1374,7 +1373,10 @@ void LLPanelClassifiedInfo::draw()
// Stretch in draw because it takes some time to load a texture,
// going to try to stretch snapshot until texture is loaded
- stretchSnapshot();
+ if(!mSnapshotStreched)
+ {
+ stretchSnapshot();
+ }
}
LLUUID LLPanelClassifiedInfo::getSnapshotId()
@@ -1474,10 +1476,9 @@ void LLPanelClassifiedInfo::stretchSnapshot()
// *NOTE dzaporozhan
// Could be moved to LLTextureCtrl
- LLTextureCtrl* texture_ctrl = getChild<LLTextureCtrl>("classified_snapshot");
- LLViewerFetchedTexture* texture = texture_ctrl->getTexture();
+ LLViewerFetchedTexture* texture = mSnapshotCtrl->getTexture();
- if(!texture || mSnapshotStreched)
+ if(!texture)
{
return;
}
@@ -1485,11 +1486,16 @@ void LLPanelClassifiedInfo::stretchSnapshot()
if(0 == texture->getOriginalWidth() || 0 == texture->getOriginalHeight())
{
// looks like texture is not loaded yet
- llinfos << "Missing image size" << llendl;
return;
}
LLRect rc = mSnapshotRect;
+ // *HACK dzaporozhan
+ // LLTextureCtrl uses BTN_HEIGHT_SMALL as bottom for texture which causes
+ // drawn texture to be smaller than expected. (see LLTextureCtrl::draw())
+ // Lets increase texture height to force texture look as expected.
+ rc.mBottom -= BTN_HEIGHT_SMALL;
+
F32 t_width = texture->getFullWidth();
F32 t_height = texture->getFullHeight();
@@ -1499,11 +1505,26 @@ void LLPanelClassifiedInfo::stretchSnapshot()
t_height *= ratio;
rc.setCenterAndSize(rc.getCenterX(), rc.getCenterY(), llfloor(t_width), llfloor(t_height));
- texture_ctrl->setRect(rc);
+ mSnapshotCtrl->setShape(rc);
mSnapshotStreched = true;
}
+LLRect LLPanelClassifiedInfo::getDefaultSnapshotRect()
+{
+ // Using scroll container makes getting default rect a hard task
+ // because rect in postBuild() and in first reshape() is not the same.
+ // Using snapshot_panel makes it easier to reshape snapshot.
+ return getChild<LLUICtrl>("snapshot_panel")->getLocalRect();
+}
+
+void LLPanelClassifiedInfo::scrollToTop()
+{
+ LLScrollContainer* scrollContainer = findChild<LLScrollContainer>("profile_scroll");
+ if (scrollContainer)
+ scrollContainer->goToTop();
+}
+
void LLPanelClassifiedInfo::onMapClick()
{
LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal());
@@ -1536,6 +1557,7 @@ LLPanelClassifiedEdit::LLPanelClassifiedEdit()
: LLPanelClassifiedInfo()
, mIsNew(false)
, mCanClose(false)
+ , mPublishFloater(NULL)
{
}
@@ -1587,6 +1609,8 @@ BOOL LLPanelClassifiedEdit::postBuild()
childSetAction("save_changes_btn", boost::bind(&LLPanelClassifiedEdit::onSaveClick, this));
childSetAction("set_to_curr_location_btn", boost::bind(&LLPanelClassifiedEdit::onSetLocationClick, this));
+ mSnapshotCtrl->setOnSelectCallback(boost::bind(&LLPanelClassifiedEdit::onTextureSelected, this));
+
return TRUE;
}
@@ -1596,6 +1620,8 @@ void LLPanelClassifiedEdit::onOpen(const LLSD& key)
mIsNew = classified_id.isNull();
+ scrollToTop();
+
if(mIsNew)
{
setAvatarId(gAgent.getID());
@@ -1641,6 +1667,9 @@ void LLPanelClassifiedEdit::onOpen(const LLSD& key)
enableEditing(false);
}
+ std::string save_btn_label = isNew() ? getString("publish_label") : getString("save_label");
+ childSetLabelArg("save_changes_btn", "[LABEL]", save_btn_label);
+
resetDirty();
setInfoLoaded(false);
}
@@ -1709,12 +1738,12 @@ void LLPanelClassifiedEdit::resetDirty()
getChild<LLUICtrl>("price_for_listing")->resetDirty();
}
-void LLPanelClassifiedEdit::setSaveCallback(const commit_callback_t& cb)
+void LLPanelClassifiedEdit::setSaveCallback(const commit_signal_t::slot_type& cb)
{
- getChild<LLButton>("save_changes_btn")->setClickedCallback(cb);
+ mSaveButtonClickedSignal.connect(cb);
}
-void LLPanelClassifiedEdit::setCancelCallback(const commit_callback_t& cb)
+void LLPanelClassifiedEdit::setCancelCallback(const commit_signal_t::slot_type& cb)
{
getChild<LLButton>("cancel_btn")->setClickedCallback(cb);
}
@@ -1734,6 +1763,22 @@ bool LLPanelClassifiedEdit::canClose()
return mCanClose;
}
+void LLPanelClassifiedEdit::draw()
+{
+ LLPanel::draw();
+
+ // Need to re-stretch on every draw because LLTextureCtrl::onSelectCallback
+ // does not trigger callbacks when user navigates through images.
+ stretchSnapshot();
+}
+
+void LLPanelClassifiedEdit::stretchSnapshot()
+{
+ LLPanelClassifiedInfo::stretchSnapshot();
+
+ getChild<LLUICtrl>("edit_icon")->setShape(mSnapshotCtrl->getRect());
+}
+
void LLPanelClassifiedEdit::sendUpdate()
{
LLAvatarClassifiedInfo c_data;
@@ -1821,6 +1866,11 @@ S32 LLPanelClassifiedEdit::getPriceForListing()
return childGetValue("price_for_listing").asInteger();
}
+void LLPanelClassifiedEdit::setPriceForListing(S32 price)
+{
+ childSetValue("price_for_listing", price);
+}
+
void LLPanelClassifiedEdit::onSetLocationClick()
{
setPosGlobal(gAgent.getPositionGlobal());
@@ -1864,9 +1914,45 @@ void LLPanelClassifiedEdit::onSaveClick()
}
}
+ if(isNew())
+ {
+ mPublishFloater = LLFloaterReg::findTypedInstance<LLPublishClassifiedFloater>(
+ "publish_classified", LLSD());
+
+ if(!mPublishFloater)
+ {
+ mPublishFloater = LLFloaterReg::getTypedInstance<LLPublishClassifiedFloater>(
+ "publish_classified", LLSD());
+
+ mPublishFloater->setPublishClickedCallback(boost::bind
+ (&LLPanelClassifiedEdit::onPublishFloaterPublishClicked, this));
+ }
+
+ // set spinner value before it has focus or value wont be set
+ mPublishFloater->setPrice(getPriceForListing());
+ mPublishFloater->openFloater(mPublishFloater->getKey());
+ mPublishFloater->center();
+ }
+ else
+ {
+ doSave();
+ }
+}
+
+void LLPanelClassifiedEdit::doSave()
+{
mCanClose = true;
sendUpdate();
resetDirty();
+
+ mSaveButtonClickedSignal(this, LLSD());
+}
+
+void LLPanelClassifiedEdit::onPublishFloaterPublishClicked()
+{
+ setPriceForListing(mPublishFloater->getPrice());
+
+ doSave();
}
std::string LLPanelClassifiedEdit::getLocationNotice()
@@ -1913,4 +1999,52 @@ void LLPanelClassifiedEdit::onTexturePickerMouseLeave(LLUICtrl* ctrl)
ctrl->setVisible(FALSE);
}
+void LLPanelClassifiedEdit::onTextureSelected()
+{
+ setSnapshotId(mSnapshotCtrl->getValue().asUUID());
+}
+
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////
+
+LLPublishClassifiedFloater::LLPublishClassifiedFloater(const LLSD& key)
+ : LLFloater(key)
+{
+}
+
+LLPublishClassifiedFloater::~LLPublishClassifiedFloater()
+{
+}
+
+BOOL LLPublishClassifiedFloater::postBuild()
+{
+ LLFloater::postBuild();
+
+ childSetAction("publish_btn", boost::bind(&LLFloater::closeFloater, this, false));
+ childSetAction("cancel_btn", boost::bind(&LLFloater::closeFloater, this, false));
+
+ return TRUE;
+}
+
+void LLPublishClassifiedFloater::setPrice(S32 price)
+{
+ childSetValue("price_for_listing", price);
+}
+
+S32 LLPublishClassifiedFloater::getPrice()
+{
+ return childGetValue("price_for_listing").asInteger();
+}
+
+void LLPublishClassifiedFloater::setPublishClickedCallback(const commit_signal_t::slot_type& cb)
+{
+ getChild<LLButton>("publish_btn")->setClickedCallback(cb);
+}
+
+void LLPublishClassifiedFloater::setCancelClickedCallback(const commit_signal_t::slot_type& cb)
+{
+ getChild<LLButton>("cancel_btn")->setClickedCallback(cb);
+}
+
//EOF
diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h
index 43b47d4e3e..78f095a9bb 100644
--- a/indra/newview/llpanelclassified.h
+++ b/indra/newview/llpanelclassified.h
@@ -202,6 +202,23 @@ private:
void* mUserData;
};
+class LLPublishClassifiedFloater : public LLFloater
+{
+public:
+ LLPublishClassifiedFloater(const LLSD& key);
+ virtual ~LLPublishClassifiedFloater();
+
+ /*virtual*/ BOOL postBuild();
+
+ void setPrice(S32 price);
+ S32 getPrice();
+
+ void setPublishClickedCallback(const commit_signal_t::slot_type& cb);
+ void setCancelClickedCallback(const commit_signal_t::slot_type& cb);
+
+private:
+};
+
class LLPanelClassifiedInfo : public LLPanel, public LLAvatarPropertiesObserver
{
public:
@@ -280,10 +297,18 @@ protected:
void stretchSnapshot();
+ LLRect getDefaultSnapshotRect();
+
+ void scrollToTop();
+
void onMapClick();
void onTeleportClick();
void onExit();
+ bool mSnapshotStreched;
+ LLRect mSnapshotRect;
+ LLTextureCtrl* mSnapshotCtrl;
+
private:
LLUUID mAvatarId;
@@ -292,9 +317,6 @@ private:
LLUUID mParcelId;
bool mInfoLoaded;
- bool mSnapshotStreched;
- LLRect mSnapshotRect;
-
LLScrollContainer* mScrollContainer;
LLPanel* mScrollingPanel;
@@ -331,9 +353,9 @@ public:
/*virtual*/ void resetDirty();
- void setSaveCallback(const commit_callback_t& cb);
+ void setSaveCallback(const commit_signal_t::slot_type& cb);
- void setCancelCallback(const commit_callback_t& cb);
+ void setCancelCallback(const commit_signal_t::slot_type& cb);
/*virtual*/ void resetControls();
@@ -341,6 +363,10 @@ public:
bool canClose();
+ void draw();
+
+ void stretchSnapshot();
+
protected:
LLPanelClassifiedEdit();
@@ -357,6 +383,8 @@ protected:
S32 getPriceForListing();
+ void setPriceForListing(S32 price);
+
U8 getFlags();
std::string getLocationNotice();
@@ -369,12 +397,22 @@ protected:
void onChange();
void onSaveClick();
+ void doSave();
+
+ void onPublishFloaterPublishClicked();
+
void onTexturePickerMouseEnter(LLUICtrl* ctrl);
void onTexturePickerMouseLeave(LLUICtrl* ctrl);
+ void onTextureSelected();
+
private:
bool mIsNew;
bool mCanClose;
+
+ LLPublishClassifiedFloater* mPublishFloater;
+
+ commit_signal_t mSaveButtonClickedSignal;
};
#endif // LL_LLPANELCLASSIFIED_H
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 8370c98470..65e9d8971a 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -117,6 +117,7 @@
#include "llmoveview.h"
#include "llnearbychat.h"
#include "llpanelblockedlist.h"
+#include "llpanelclassified.h"
#include "llpreviewanim.h"
#include "llpreviewgesture.h"
#include "llpreviewnotecard.h"
@@ -219,6 +220,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("preview_sound", "floater_preview_sound.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewSound>, "preview");
LLFloaterReg::add("preview_texture", "floater_preview_texture.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewTexture>, "preview");
LLFloaterReg::add("properties", "floater_inventory_item_properties.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterProperties>);
+ LLFloaterReg::add("publish_classified", "floater_publish_classified.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPublishClassifiedFloater>);
LLFloaterReg::add("telehubs", "floater_telehub.xml",&LLFloaterReg::build<LLFloaterTelehub>);
LLFloaterReg::add("test_inspectors", "floater_test_inspectors.xml",
diff --git a/indra/newview/res/ll_icon.ico b/indra/newview/res/ll_icon.ico
index c35a3fa3a3..87985b9285 100644
--- a/indra/newview/res/ll_icon.ico
+++ b/indra/newview/res/ll_icon.ico
Binary files differ
diff --git a/indra/newview/secondlife.icns b/indra/newview/secondlife.icns
index ceb6036e0e..4560d4bb24 100644
--- a/indra/newview/secondlife.icns
+++ b/indra/newview/secondlife.icns
Binary files differ
diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml
index d2e5473157..25016e0673 100644
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -2,6 +2,7 @@
<floater
legacy_header_height="18"
background_visible="true"
+ default_tab_group="1"
follows="all"
height="350"
layout="topleft"
@@ -18,12 +19,14 @@
min_height="190">
<layout_stack
animate="false"
+ default_tab_group="2"
follows="all"
height="320"
width="360"
layout="topleft"
orientation="horizontal"
name="im_panels"
+ tab_group="1"
top="20"
left="0">
<layout_panel
@@ -35,7 +38,9 @@
auto_resize="false"
user_resize="true" />
<layout_panel
+ default_tab_group="3"
left="0"
+ tab_group="2"
top="0"
height="200"
width="245"
@@ -75,6 +80,7 @@
label="To"
layout="bottomleft"
name="chat_editor"
+ tab_group="3"
width="240">
</line_editor>
</layout_panel>
diff --git a/indra/newview/skins/default/xui/en/floater_publish_classified.xml b/indra/newview/skins/default/xui/en/floater_publish_classified.xml
new file mode 100644
index 0000000000..3225843d09
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_publish_classified.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ can_minimize="false"
+ height="200"
+ layout="topleft"
+ name="publish_classified"
+ help_topic="price_for_listing"
+ title="Publishing Classified"
+ width="320">
+ <text
+ top="20"
+ follows="top|left"
+ font="SansSerif"
+ height="60"
+ layout="topleft"
+ left="15"
+ word_wrap="true"
+ name="explanation_text">
+
+Your classified ad will run for one week from the date it is published.
+
+Remember, Classified fees are non-refundable.
+
+ </text>
+ <spinner
+ decimal_digits="0"
+ follows="left|top"
+ halign="left"
+ height="23"
+ increment="1"
+ label_width="70"
+ label="Price for Ad: "
+ v_pad="10"
+ layout="topleft"
+ left="15"
+ value="50"
+ min_val="50"
+ max_val="99999"
+ name="price_for_listing"
+ top_pad="10"
+ tool_tip="Price for listing."
+ width="150" />
+ <text
+ follows="top|left"
+ font="SansSerif"
+ height="60"
+ layout="topleft"
+ left_pad="5"
+ top_delta="0"
+ word_wrap="true"
+ value="L$"
+ name="l$_text" />
+ <text
+ follows="top|right"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="15"
+ name="more_info_text"
+ top_pad="-20"
+ width="300">
+More info (link to classified help)
+ </text>
+ <button
+ follows="top|left"
+ height="22"
+ label="Publish"
+ layout="topleft"
+ left="105"
+ name="publish_btn"
+ top="160"
+ width="100" />
+ <button
+ follows="top|left"
+ height="22"
+ label="Cancel"
+ layout="topleft"
+ left_pad="5"
+ name="cancel_btn"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 4264b86a72..a2540237c8 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -249,7 +249,7 @@ Save all changes to clothing/body parts?
Non-friends won't know that you've choosen to ignore their calls and instant messages.
<usetemplate
name="okbutton"
- yestext="Yes"/>
+ yestext="OK"/>
</notification>
<notification
diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml
index a8c72e03bd..932e34d694 100644
--- a/indra/newview/skins/default/xui/en/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml
@@ -22,6 +22,14 @@
name="l$_price">
L$[PRICE]
</panel.string>
+ <panel.string
+ name="click_through_text_fmt">
+ [TELEPORT] teleport, [MAP] map, [MAP] profile
+ </panel.string>
+ <panel.string
+ name="date_fmt">
+ [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
+ </panel.string>
<button
follows="top|right"
height="23"
@@ -66,15 +74,25 @@
height="610"
left="0"
width="285">
+ <panel
+ name="snapshot_panel"
+ layout="topleft"
+ follows="left|top|right"
+ height="197"
+ left="10"
+ top="10"
+ width="275"
+ >
<texture_picker
enabled="false"
follows="left|top|right"
height="197"
- width="272"
layout="topleft"
- left="11"
+ left="0"
name="classified_snapshot"
- top="10" />
+ top="0"
+ width="275" />
+ </panel>
<text_editor
allow_scroll="false"
bg_visible="false"
@@ -101,7 +119,7 @@
left="10"
name="classified_location_label"
text_color="white"
- top_pad="10"
+ top_pad="5"
value="Location:"
width="250" />
<text_editor
@@ -129,7 +147,7 @@
text_color="white"
top_pad="10"
value="Content Type:"
- width="250" />
+ width="140" />
<text_editor
allow_scroll="false"
bg_visible="false"
@@ -137,11 +155,11 @@
h_pad="0"
height="18"
layout="topleft"
- left="10"
+ left_pad="0"
name="content_type"
read_only="true"
- width="290"
- top_pad="15"
+ width="150"
+ top_pad="-10"
v_pad="0"
value="[content type]" />
<text
@@ -152,9 +170,9 @@
left="10"
name="category_label"
text_color="white"
- top_pad="10"
+ top_pad="0"
value="Category:"
- width="250" />
+ width="140" />
<text_editor
allow_html="true"
allow_scroll="false"
@@ -163,11 +181,11 @@
h_pad="0"
height="18"
layout="topleft"
- left="10"
+ left_pad="0"
name="category"
read_only="true"
- width="290"
- top_pad="5"
+ width="150"
+ top_pad="-10"
v_pad="0"
value="[category]" />
<text
@@ -176,11 +194,38 @@
height="10"
layout="topleft"
left="10"
+ name="creation_date_label"
+ text_color="white"
+ top_pad="0"
+ value="Creation date:"
+ width="140" />
+ <text_editor
+ allow_scroll="false"
+ bg_visible="false"
+ follows="left|top"
+ h_pad="0"
+ halign="left"
+ height="16"
+ layout="topleft"
+ left_pad="0"
+ name="creation_date"
+ read_only="true"
+ top_pad="-10"
+ tool_tip="Creation date"
+ v_pad="0"
+ value="[date]"
+ width="150" />
+ <text
+ follows="left|top"
+ font.style="BOLD"
+ height="10"
+ layout="topleft"
+ left="10"
name="price_for_listing_label"
text_color="white"
- top_pad="10"
+ top_pad="5"
value="Price for listing:"
- width="250" />
+ width="140" />
<text_editor
allow_scroll="false"
bg_visible="false"
@@ -189,10 +234,10 @@
halign="left"
height="16"
layout="topleft"
- left="10"
+ left_pad="0"
name="price_for_listing"
read_only="true"
- top_pad="5"
+ top_pad="-10"
tool_tip="Price for listing."
v_pad="0"
value="[price]"
@@ -209,6 +254,44 @@
height="250">
<layout_panel
auto_resize="false"
+ name="clickthrough_layout_panel"
+ layout="topleft"
+ follows="top|left"
+ left="0"
+ top="0"
+ width="290"
+ height="26"
+ user_resize="false">
+ <text
+ follows="left|top"
+ font.style="BOLD"
+ height="10"
+ layout="topleft"
+ left="0"
+ name="click_through_label"
+ text_color="white"
+ top_pad="0"
+ value="Clicks:"
+ width="140" />
+ <text_editor
+ allow_scroll="false"
+ bg_visible="false"
+ follows="left|top"
+ h_pad="0"
+ halign="left"
+ height="16"
+ layout="topleft"
+ left_pad="0"
+ name="click_through_text"
+ read_only="true"
+ top_pad="-10"
+ tool_tip="Click through data"
+ v_pad="0"
+ value="[clicks]"
+ width="150" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
name="price_layout_panel"
layout="topleft"
follows="top|left"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
index 6cc6c51fe0..c1b352031f 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
@@ -16,6 +16,12 @@
name="location_notice">
(will update after save)
</panel.string>
+ <string name="publish_label">
+ Publish
+ </string>
+ <string name="save_label">
+ Save
+ </string>
<button
follows="top|right"
height="23"
@@ -62,24 +68,33 @@
height="690"
left="0"
width="285">
+ <panel
+ name="snapshot_panel"
+ layout="topleft"
+ follows="left|top|right"
+ height="197"
+ left="10"
+ top="10"
+ width="272">
<texture_picker
follows="left|top|right"
height="197"
width="272"
layout="topleft"
- top="10"
- left="11"
+ top="0"
+ left="0"
name="classified_snapshot" />
- <icon
+ <icon
height="197"
image_name="spacer24.tga"
layout="topleft"
name="edit_icon"
label=""
tool_tip="Click to select an image"
- top="10"
- left="11"
- width="286" />
+ top="0"
+ left="0"
+ width="272" />
+ </panel>
<text
type="string"
length="1"
@@ -272,7 +287,7 @@
<button
follows="bottom|left"
height="23"
- label="Save"
+ label="[LABEL]"
layout="topleft"
name="save_changes_btn"
left="0"
diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
index 5147bb72d0..701a14e1c5 100644
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
@@ -44,11 +44,16 @@ background_visible="true"
tab_stop="false"
top="2"
width="23" />
- <text
+ <text_editor
+ allow_scroll="false"
+ bg_visible="false"
+ read_only = "true"
layout="topleft"
name="group_name"
+ v_pad="0"
value="(Loading...)"
font="SansSerifHugeBold"
+ h_pad="0"
height="26"
left_pad="10"
text_color="LtGray"