Put snapshot related floaters always on top of the full screen preview.
Make having multiple running uploads more robust.
Fix infinite recursion when clicking on the bottom 'Snapshot' button
under certain conditions.
Unfreeze time more robust; unfreeze time out of precaution when
starting an upload (if 'Keep open' not checked).
Fixed a bug that caused all callbacks for successful feed uploads to be
ignored.
Best viewed without space changes... or maybe it doesn't matter any more.
Debug setting OtherChatsTornOff added.
Added Open new IMs in separate floaters checkbox to Adv. Chat.
Moved Show group name in chat to the right column on top of Adv. Chat panel.
So how's this work?
Two ways.. 1. The user opens a chat; 2. A chat is started from another party to the user.
In 1, we open the chat in a separate floater and focus the floater.
In 2, we check if there is a floater currently in focus before opening the chat
if so, we minimize the floater, setting focus back to whatever floater the user was focused on;
if not, we leave the new chat floater open and focused.
Note that this will NOT alter the default behavior at all, we can't be having that.
Added "Make Outfit..." to Edit menu and Create->"New Outfit" to inventory floater menu.
Cleaned up LLMakeOutfitDialog, using boost::bind and less waste.
Moved onMakeOutfitCommit() to LLMakeOutfitDialog as makeOutfit()
Also changes LLFloaterCustomize's callbacks to use boost::bind
Give new outfit dialog a title instead of a heading.
Small fix to mistake with AnnounceSnapshots xmlstuffs.
AnnounceSnapshots debug setting.
"Announce when someone takes a snapshot" added to Vanity Main Preferences.
took_a_snapshot translatable string added to strings.xml
Also in this commit:
Turned PlayTypingSound check into LLCachedControl.
In preparation for the crippling of all old viewers, the Vanity Main tab shall henceforth only be called Main, not Main (General)
This change has been made in the code comments and the UI itself.
AnnounceStreamMetadata debug setting.
"Announce music stream's metadata in local chat when tuned in" checkbox added to vanity main preferences.
Made the words Title and Artist translatable, as well as the "Now playing" string.
Fix CMakeLists being out of order.
Add setting SnapshotFeedAddLocation to keep track of user's preference whether or not to include location in uploads to profile feed.
Clean up LLFloaterFeed to take only what it needs, also gave it a boost~
Remove saveFeed() from LLFloaterSnapshot, removing the dependency on LLWebProfile.
Compile fixes for LLFloaterSnapshot.
Prettied up the upload to feed floater.
TODO: Does Location even work? I can't get it to appear, never seems to get used right in v-d either.
This is just a skeleton, roughly copied from the Postcoard
code, which is very similar. Nothing in indra/newview/llfloaterfeed.cpp
has been changed yet, apart from a few deletions (to make it compile)
and the literal replacement of "Postcard" with "Feed".
indra/newview/llfloatersnapshot.cpp was updated however to
open the new floater when one tries to upload a snapshot to the feed.
It is still needed to make a callback to saveFeed(), or rather to
move that function to the saveFeed that is in llfloatersnapshot.cpp.
Add CURLTR debug channel for libcurl API calls,
and use CURLIO only for libcurl debug output.
Note: need to set gDebugCurlTerse to true for
filtering to take effect, then pass 'debug_on'
to the LLHttpClient methods that require debugging.
Overall:
Extras tab added to radar.
Activities given tool_tip strings, TODO: Get icon entries to have tool_tips.
Added tab_min_width="0" to tab container so tabs take up only as much space as necessary.
Issue 51:
RadarAlertAge, AvatarAgeAlertDays debugs added.
RadarTextYoung color added to colors_base and gemini.
UI bits added to radar.
ALERT_TYPE_AGE, LIST_AGE, and boost::lexical_cast added.
LLAvatarListEntry is now derived from LLAvatarPropertiesObserver for processProperties and all that fun stuff. Also has mAgeAlert and mAge.
processProperties is basically copied directly from LLAvatarPanel, it can probably be bettered.
Issue 382:
mTime, getTime(), LIST_TIME
Time column.
Issue 245:
Hide columns text and checkboxes added to UI.
assessColumns() now used to determine which columns to show. Also once used during postBuild()
col_helper() function added to help decide to hide or resize a column based on given params.
checkboxes all use assessColumns as callback.
RadarColumn* debug settings added.
If you read this all, that's a sign the 'pocalypse is coming.
Add debug setting LiruFlyAfterTeleports
Add Always fly after Teleports to General tab of System preferences.
(Also, fixed tabs where spaces should be in settings.xml)
Conflicts:
indra/newview/llfloateravatarpicker.cpp - Includes to v-d style, since plain alphabetical just won't cut it. Shyotl's changes for name system, here.
indra/newview/llpanelgroupinvite.cpp - Shyotl's changes for name system, here.
Also corrected new README to have less typos and be slightly more accurate.
* Allow to pass -1 to LLImageBase::reallocateData too (default parameter),
causing it to allocate what is necessary for the size set (same
behavior as allocateData).
* Speed up LLImageRaw::scale with factor 2 or 3 by copying the data less
often and calling LLImageBase::reallocateData instead of destroying
and recreating always.
* Fix gl_rect_2d to not decrement top and right with one pixel.
* Remove the vague "Constrain Proportions" checkbox and replace it with
a new combo box and spinner to explicitly set the target aspect ratio,
allowing to set it also to something different than either the window
aspect ratio (ie, 1.6) or the target image dimension (1.0 for textures)
which was totally lacking when, for example, uploading a profile image
(which needs to be 4:3). This also allows to show snapshots on prims
of arbitrary aspects.
Debug setting LiruNoTransactionClutter has been added, and is toggled by checkbox in General preferences
This adds support for TransactionInfo message, to localize the server's transaction notifications.
Adds a notification called Payment, which unifies all three of v-d's Payment* notifications.
This is a fairly large change to view, keep in mind what was removed as it may just be in a slightly different order or position..
This commit concentrates on remembering what parameters
where used for the last snapshot (the actual source, not
the formatted one), thus - the parameters passed to
rawSnapshot() - and then shows this snapshot as if it
was just made whenever the UI parameter selection matches.
The result is that the user can make a snapshot, save
it (for example) to their harddisk and then change the
destination and upload the same thing as snapshot.
The code tries hard to make this possible by automatically
adjusting the UI parameters to match every time the destination
is changed PROVIDED it was already saved or uploaded before.
If a snapshot wasn't saved and one changes destination
then this currently doesn't happen (by you could manually
make the parameters match, and still upload it). Also, if
the resolution is changed for a particular destination then
it won't automatically adjust it again.
Obviously, snapshots are no longer refreshed when changing
destination etc. You have to explicitly click "Refresh
Snapshot" before the last one is deleted / replaced.
The Debug Setting variables reflect the (last) manual choices
in most cases (set in the onCommit functions). If such a choice
is not allowed for a different destination then the UI is
changed to reflect the current behavior and the checkbox is
disabled so the user can't change it anymore. Then, if they
change destination back - the Debug Setting variable is used
to remember their last preference. A new Debug Setting has
been added for this purpose: SnapshotLayerType (colors or depth).
The old mSnapshotUpToDate has been removed and replaced with
mShowFreezeFrameSnapshot. The old getSnapshotUpToDate() now
returns something else (than mShowFreezeFrameSnapshot), namely
whether or not the current raw snapshot was taken with the same
parameters as are currently set in the UI.
The unused functions getImageAspect() and getAspect() were
removed.
mCurImageIndex has been deleted. Index 0 now means "the last
snapshot" and index 1 is temporarily used for the Falling Away
animation.
mDataSize was renamed to mFormattedDataSize.
The size spinner arrows are now disabled too whenever the spinner
edit field is disabled.
A bug in Freeze Time was fixed, where avatars would still
rotate around their axis in place (and without that their
attachments moved!)
Pressing ESC would return keyboard control to "walking"
for the own avatar with the above as result for the own
avatar. We now intercept ESC and use it (in Freeze Time mode)
to return to the cammable preview when a 2D preview was
being shown.
* Added a radio button for "Post to my.secondlife.com feed"
* Moved the snapshot to the top of the floater.
* Increased the size of the snapshot to match the size used in V3
(floater is only 4 pixels wider though).
* Disable the "Temporary upload" checkbox when the Destination isn't the
inventory.
* Update the shown Upload Fee to L$ 0 if temporary is checked.
* Added a size chooser for the Feed destination, using exclusively
preset sizes with an aspect ratio of 4:3.
* Added two new preset sizes: 1024x1024 for texture uploads, and
1680x1050 for save to disk.
Adds finding and using libjsoncpp. Note that the old cmake file
found libjson, not the same thing.
Adds Debug Setting WebProfileNonProductionURL (next to already existing
WebProfileURL) to mimic V3's behavior and use a different URL for aditi.
These Debug Settings are using by (the new) getProfileURL() (copied
from V3 with just a minor fix).
Adds HippoGridInfo::isInProductionGrid() next to the existing
LLViewerLogin::isInProductionGrid that always returned true.
The former should only be called SL grids and then only returns
true for agni (and false for aditi et al). The latter was changed
to now always return true except on SL when the grid isn't agni.
The first is used for SL-only cases, the latter for things like
colors and for godmode decision logic.
V3's llwebprofile.cpp was fixed to compile on singu, with only real
difference that I dropped the Content-Type headers for the GET methods.
Adds a std::map for hostname (or urls) --> PerHostRequestQueue
objects. The latter keeps track of the number of added curl easy
requests and decides if a new request should be throttled or
not, as well as provides the queue to queue throttled requests.
At the moment CurlConcurrentConnectionsPerHost is set to 16,
because things really don't work without LL supporting connection
reuse if we limit it to 2. CurlConcurrentConnectionsPerHost is
also set to non-persistent so that we can easily change it in the future
(once we decide on it's final value it can be set to persistent).
Moved CURLOPT_ENCODING from CurlEasyRequest::setPost_raw, and
CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST from
CurlResponderBuffer::prepRequest, to LLURLRequest::configure,
enabling the debug setting NoVerifySSLCert for the latter
two to work as follows: old behavior if "NoVerifySSLCert"
is not set, and check neither if it is set. However, if
the (new) bool mIsAuth is set the behavior of LLXMLRPCTransaction::Impl::init
is used. This is so in a next commit we can replace
LLXMLRPCTransaction with LLURLRequest: LLXMLRPCTransaction::Impl::init
will be removed. For the same reason, when the new boolean
mNoCompression is set then CURLOPT_ENCODING is set to "identity",
otherwise the old behavior (of clearing it) is used.
Introduces AIHTTPTimeoutPolicy objects which do not just
specify a single "timeout" in seconds, but a plethora of
timings related to the life cycle of the average HTTP
transaction.
This knowledge is that moved to the Responder being
used instead of floating constants hardcoded in the
callers of http requests. This assumes that the same
timeout policy is wanted for each transaction that
uses the same Responder, which can be enforced is needed.
I added a AIHTTPTimeoutPolicy for EVERY responder,
only to make it easier later to tune timeout values
and/or to get feedback about which responder runs
into HTTP errors in debug output (especially time outs),
so that they can be tuned later. If we already understood
exactly what we were doing then most responders could
have been left alone and just return the default timeout
policy: by far most timeout policies are just a copy
of the default policy, currently.
This commit is not finished... It's a work in progress
(viewer runs fine with it though).