Commit Graph

89 Commits

Author SHA1 Message Date
Inusaito Sayori
7871be05af Login entry must be a map to construct an LLSavedLoginEntry, not just defined.
Login Screen Crash Fix.
2015-01-06 15:33:50 -05:00
Inusaito Sayori
a29b50b4cd Fix crash signature 86
Cleans up a buncha lame code in llpanellogin.cpp
Removes some static silliness from the old days.
Removes RememberLogin because RememberName serves its purpose.
Stylistic fixups~
Removes some pointless functions.
2014-12-30 16:49:40 -05:00
Inusaito Sayori
48e6a4f535 LLPanelLogin code cleanup 2014-12-12 20:33:36 -05:00
Inusaito Sayori
1c5872da0c Fix the grids combobox on the login panel not being scrollable because of constantly reordering grids
Still select the current grid, just use its index number to select it, instead of hacking it to the top of the combo box.
2014-07-23 18:12:18 -04:00
Inusaito Sayori
576069a84d Fox knot 2014-06-14 16:26:29 -04:00
Inusaito Sayori
21e1359b37 Confirmation for removing users, also reposition the remove button icon 2014-06-14 15:38:33 -04:00
Inusaito Sayori
1f7751618e Solve Issue 1541: Remove old Logins
Little trash button next to the username box added, as its tooltip explains, if you have a valid entry selected and you click it, that entry will be removed.
My test avatar was a fake entry by the name Garbage Tax
Just thought I'd give that to the googles... enjoy~
2014-06-12 01:27:54 -04:00
Lirusaito
0f1ecf66ab Possible Fix for Issue 1499: Login screen disappears on non-SL grids after logging failure
Also should fix when this would happen on poor/dead connections.
2014-04-27 18:50:37 -04:00
Inusaito Sayori
364a13017c Merge remote-tracking branch 'fairydust/master' 2014-04-15 19:57:31 -04:00
Inusaito Sayori
70e92a1cea More helpful fixes and touchups from Cinder 2014-03-27 20:10:06 -04:00
Drake Arconis
71d9084a95 Clean out old OGPX stuff 2014-03-01 17:34:22 -05:00
Inusaito Sayori
af58636c7c Fix the Login Panel such that it persists until a successful login and maintains ui values between failed logins
When the login panel used to die, it now hides instead, we only truly kill it upon successful login.
Much of the opening and setting behaviors have been cleaned up to ensure fields are autofilled by the viewer without any user action once
Everything else like changing saved logins will still work the same.
2014-02-02 16:45:37 -05:00
Aleric Inglewood
ea0e25b92b Make entering a Login URI in the grid manager more robust.
Before, when anything but the exact correct Login URI was entered, the
user would either get no error, or a pop up saying "Cannot retrieve grid
info from server."

With this patch, that pop up includes what went wrong and stresses that
they check if they entered the correct Login URI and where to find it.

I was motivated to write this after looking at crash report 8405 where
a user who had downloaded Singularity for the very first time crashed
twice when entering things like "aviworlds" and " aviworlds.com:8002"
(not the space), and "http:aviworlds.com:8002" (missing '//').

Especially in the light of FS accepting Login URI without the 'http://',
a lot of grid websites (like that of aviworlds) might instruct users
to enter the url without http://. Ie, this user was told to enter
just "aviworlds.com:8002", and when that failed was instructed to
add 'http' in front of it...

Now the code accepts also really WEIRD things, but will never mess
up a good entry. For example, if you enter "pssshht:aviworlds.com:8002"
then that will work, as a side effect. The real objective however is
of course to let things work like: "aviworlds.com:8002  ",
"http:aviworlds.com:8002", " http:/aviworlds.com:8002", and to give
a usable error message when there is a typo in the hostname (Cannot
resolve hostname) or they forget to add a port number (404, or
connection refused), plus the text "Make sure you entered the correct
Login URI. An example of a Login URI is: \"http://cool.grid.com:8002/\",
this url can usually be found on the website of the grid."
2013-11-19 22:00:34 +01:00
Inusaito Sayori
2333a684a3 Feature Request: Allow typing login uris into the grids combo box on the login screen
Furthermore, users may now type in grid name, grid nick, or grid login uri into the box and it will resolve to an existing grid they've used before, or (for uris only) try to add the new grid with the data it provides.
Input will have trailing and leading spaces trimmed.

Thanks to Diva Canto for this brilliant request!
2013-09-30 17:18:41 -04:00
Inusaito Sayori
e9ca27322b Run trim on input start locations, in case copy paste brought some spaces along for the ride 2013-09-19 23:40:14 -04:00
Inusaito Sayori
ae9eb0003e Fix Issue 938: Pressing enter on the login screen doesn't log in
Fixes side issue with location combo's focus not being lost during onClickConnect
2013-08-06 21:30:09 -04:00
Inusaito Sayori
3fa69e0337 Fix creating dummy ui warning on the login panel
Part of my ongoing work to fix enter not working on the login screen
2013-08-05 20:19:56 -04:00
Latif Khalifa
74c3903393 Always send version and channel to the login page 2013-07-29 19:08:02 +02:00
Latif Khalifa
b70c306e5f Pass-through login splash page that allows update notifications.
Page source: https://github.com/singularity-viewer/login-page
2013-07-22 16:31:20 +02:00
Lirusaito
dfb4370a56 Remove iamHereLogin remnants overlooked in 62f03bc489 2013-07-10 08:12:13 -04:00
Latif Khalifa
62f03bc489 Fix loading the splash page from some broken OpenSim servers
Remove HTTP HEAD request that was made before the attempt to load
the splash web page before the URL was handed over to the WebKit
plugin
2013-07-08 21:18:09 +02:00
Shyotl
bbb0bd54bf Fixed location combobox not updating properly when a slurl link is clicked. Reset the location combobox when a different grid is selected (added setCurrentGridChangeCallback to hippogridmanager). Moved login panel elements into a layout_stack so hiding the grid or location columns no longer leaves big empty gaps. 2013-07-05 02:28:36 -05:00
Shyotl
624141a31a A break was missing from case logic in LLPanelLogin::onUpdateStartSLURL 2013-07-03 17:21:45 -05:00
Shyotl
8310575fc3 added LLProgressView::abortShowProgress. Issue upon failed login to terminate pending loginpanel destruction which was killing the actual 'new' replacement loginpanel instead of the old to-be-deleted version. 2013-07-03 17:15:30 -05:00
Lirusaito
19367b517c Merge branch 'master' of git://github.com/Lirusaito/SingularityViewer into VoiceUpdate
Conflicts:
	indra/llui/lluictrl.cpp - Silly mergestuffs
	indra/newview/llfloatermediabrowser.cpp - deleted
	indra/newview/llpanellogin.cpp - updated functions went poof

Compile Fixies:
	indra/newview/llfloaterwater.cpp - I missed a spot with notificationsutil, it seems.
2013-06-26 12:37:31 -04:00
Lirusaito
d7d5925fd1 And finally, update the callbacks on the last few panels to use boost
Cleans up LLPanelSkins enough to remove sInstance hack.
Modernizes some callbacks on wlfPanel
2013-06-26 11:14:32 -04:00
Lirusaito
3739639295 Merge branch 'Moap' of git://github.com/Shyotl/SingularityViewer into VoiceUpdate
Conflicts:
	indra/newview/llfloateractivespeakers.h - llparticipantlist.h got changed from a panel to a layoutpanel
	indra/newview/lloverlaybar.cpp - Silly conflict, I change one line, Shyotl changes the next two.

Compile fixies:
	indra/newview/llavataractions.cpp needed to include llnotifications.h
	indra/newview/llvoicechannel.cpp needed to include llnotifications.h
2013-06-23 22:36:04 -04:00
Shyotl
9c8cfcfd0a Fixed crash upon clicking media prim (disabled prim media control floater for now). Fleshed out media browser replacement (LLFloaterWebContent). 2013-06-02 23:47:47 -05:00
Shyotl
d4a545fb16 More WIP moap changes. Browser elements now function, added many required settings and notifications, and fixed some crashes and other bugs. 2013-06-01 05:11:18 -05:00
Shyotl
ef3e918558 Initial moap commit. /VERY/ WIP. Primarily committed to clean up unstaged changes. Do not run this, even if it may compile, as it will NOT work (for a myriad of reasons)! 2013-05-31 05:33:41 -05:00
Shyotl
e8ce35ebf8 Merge branch 'master' into UICleanup
Conflicts:
	indra/llcommon/llstl.h
	indra/newview/jcfloaterareasearch.cpp
	indra/newview/jcfloaterareasearch.h
	indra/newview/llfloateranimpreview.cpp
	indra/newview/llfloateranimpreview.h
	indra/newview/llfloaterperms.cpp
	indra/newview/llfloaterproperties.cpp
	indra/newview/llpanelpermissions.cpp
	indra/newview/llviewermenu.cpp
2013-05-03 21:41:51 -05:00
Shyotl
a5dad6be5c UI cleanup.
-Added ui-local transformation matrix.
-Gutted legacy commitcallbacks throughout ui widget ctors.
-Created filter_editor ui widget which issues commit on keypress
   -search_editor commits on focus loss/enter press
   -search_editor and filter_editor now have a built in 'x' button to clear text.
-LLComboBox::setPrearrangeCallback now uses boost::function
-LLComboBox::setTextEntryCallback now uses boost::function
-LLLineEditor::setKeystrokeCallback now uses boost::function
-LLLineEditor::setPrevalidate now uses boost::function
-LLPanel::childSetKeystrokeCallback removed
-LLPanel::childSetPrevalidate removed
-LLPanel::childSetActionTextbox now uses boost::function
-LLTextBox::setClickedCallback now uses boost::function
-LLTextEditor::setKeystrokeCallback added.
-Cleaned up JCFloaterAreaSearch
2013-04-16 00:25:59 -05:00
Drake Arconis
eb25270df0 Only Aurora supports not having a last name. So lets just default it to Resident. 2013-04-09 10:51:11 -04:00
Aleric Inglewood
f9738cb611 Add getName() to every non-base class Responder object. 2013-01-11 04:15:55 +01:00
Aleric Inglewood
11f30bc28d Removed gFullName which isn't used anywhere 2012-12-16 23:17:10 +01:00
Aleric Inglewood
6f8ea87c46 Add ResponderHeadersOnly.
ResponderHeadersOnly is a base class for responders that use
HTTPClient::head or HTTPClient::getHeaderOnly. It already
has a needsHeaders() that return true and only allows for
completedHeaders to be overridden.

I removed the CURLOPT_HEADER option for these cases, because
that only causes the headers to be send to the writeCallback
as if they are part of the body, in addition to the headerCallback;
That gave raise to some confusion for the existing code (ie,
unexpected errors when trying to decode the body as LLSD and
duplicated 'low speed' information for the Timeout policy code.
2012-11-13 21:46:35 +01:00
Aleric Inglewood
c0ac428179 Code cleanup
* Moved Responder stuff to LLHTTPClient.
* Renamed LLHTTPClient::Responder to LLHTTPClient::ResponderWithResult.
* Deleted LLHTTPClientAdapter and LLHTTPClientInterface.
* Renamed AICurlInterface::TransferInfo to AITransferInfo and moved it
  to llhttpclient.h
* Removed 'CURLcode code' argument from completed_headers.
2012-10-31 23:11:42 +01:00
Aleric Inglewood
0b265320a9 Code clean up.
* Removed LLCurlRequest and replaced it's last usage with LLHTTPClient API calls.
* Deleted dead code.
* Renamed all the get4/post4/put4/getByteRange4 etc, back to their
  original name without the '4'.
2012-10-31 05:01:24 +01:00
Aleric Inglewood
3e78b7c262 Allow people with last name "Resident" to login using Hippogrid manager. 2012-10-30 07:16:01 +01:00
Aleric Inglewood
2a88f7d7c4 ResponderAdapter stuff
Renamed AICurlInterface::Responder to AICurlInterface::ResponderBase,
but without the virtual 'event' methods.
Derived from that: Responder and ReponderWithCompleted, where the
first defines result = 0, ErrorWithContent and error, and the latter
completedRaw and completed.
Added HttpClient::IgnoreBody, derived from Responder and implementing
'result' doing nothing; HttpClient::Ignore is now derived from
IgnoreBody and defines the still pure virtual getHTTPTimeoutPolicy.

Added ResponderBase::decode_body, which is now the sole place
where the code makes the decision wether some response data might be
LLSD or not based on the http status result. Before it just tried
to decode everything as LLSD, which seems a bit nonsense.

ResponderWithCompleted::completed no longer does anything, since
classes derived from ResponderWithCompleted are expected to override it,
or never call it by overriding completedRaw.

Entry point is now ResponderBase::finished = 0, instead of
completedRaw, where ResponderWithCompleted implements finished by
called completedRaw, but Responder doesn't: that directly calls
result/errorWithContent/error. Or, for the hack ResponderAdapter,
the entry points are pubResult/pubErrorWithContent.
Those are now the ONLY public methods, so more confusion.
mFinished is now set in all cases.

As a result of all that, it is no longer possible to accidently
pass a responder to ResponderAdapter that would break because it
expects completed() and completedRaw() to be called.

Added LLBufferArray::writeChannelTo.

Fixed bug for BlockingResponder::body (returned reference to temporary).

LLSDMessage::ResponderAdapter now allows a "timeoutpolicy" name
to be passed (not doing so results in the default timings), so
that the timeout policy of the used responder is retained.

Fixed llfasttimerview.cpp to test LLSDSerialize::fromXML() to return
a positive value instead of non-zero, because it may return -1 when the
parsing fails (three places).

Removed LLHTTPClient::Responder as base class from
LLFloaterRegionDebugConsole completely: it isn't a responder!

Several other responder classes were simplified a bit in order to
compile again with the above changes.
2012-10-26 04:13:29 +02:00
Aleric Inglewood
3f1fb9a66e Add improved timeout handling for HTTP transactions.
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).
2012-10-05 15:53:29 +02:00
Aleric Inglewood
83b13f6a3f WIP: make everything use AICurlEasyRequestStateMachine 2012-08-20 21:18:19 +02:00
Aleric Inglewood
caef97ad36 Print all libcurl calls if -DDEBUG_CURLIO. Don't create static lib for cwdebug.
Basically, cmake doesn't support linking static libs into a shared lib.
The correct way is to just specify source files in subdirectories
directly as source files of the shared library. This patch changes that.

Also, after this commit, when DEBUG_CURLIO is defined, every call to
libcurl is printed to llinfos (or to dc::curl when using libcwd).
2012-08-05 18:51:21 +02:00
Shyotl
a6a69caa4f Merge branch 'master' of git://github.com/siana/SingularityViewer.git into V2MultiWear
Conflicts:
	indra/newview/llfloateravatarlist.cpp
	indra/newview/llfloateropenobject.cpp
	indra/newview/llinventorybridge.cpp
	indra/newview/llviewerinventory.cpp
2012-02-24 13:21:59 -06:00
Shyotl
bdeead6f8e Updated LLView:
-Removed a few extra unneeded virtuals
 -Pulled tabgroups out of llpanel and into LLView
 -removeChild doesn't support delete. Delete manually.
 -addChildAtEnd renamed to addChildInBack
 -getScreenRect renamed to calcScreenRect
 -added calcScreenBoundingRect and calcBoundingRect(which updateBoundingRect calls
 -General cleanup. Someone at LL figured out that dynamic_cast actually exists.
Fixed PieMenu not reliably centering on cursor.
Fixed context menu crash in line and text editors.
Classes with LLEditMenuHandler as a base do not need to set gEditMenuHandler to NULL, since LLEditMenuHandler's dtor does that already!
2012-02-21 21:59:22 -06:00
Siana Gearz
f7cc9c4d33 Hopefully more correctness in grid manager editor 2012-02-19 00:42:23 +01:00
Shyotl
1810a7c7f9 Updated LLFocusMgr to use boost::signals2 instead of vanilla function pointers. Also removed top-focus handling from lluictrl because it doesn't belong there. 2012-02-18 01:58:02 -06:00
Siana Gearz
acf378e9f2 Auto-version system 2012-02-09 14:03:49 +01:00
Shyotl
83e8a9076b Several gl calls now wrapped via LLRender (gGL) as prep for future changes:
glMatrixMode -> gGL.matrixMode
..GL_MODELVIEW -> LLRender::MM_MODELVIEW
..GL_POJECTION -> LLRender::MM_PROJECTION
..GL_TEXTURE -> LLRender::MM_TEXTURE
glMultMatrix -> gGL.multMatrix
glLoadMatrixf -> gGL.loadMatrix
glPushMatrix -> gGL.pushMatrix
glPopMatrix -> gGL.popMatrix
glLoadIdentity -> gGL.loadIdentity
glRotatef -> gGL.rotatef
glTransformf -> gGL.transformf
glOrtho -> gGL.ortho
glColor3f -> gGL.diffuseColor3f
glColor3fv -> gGL.diffuseColor3fv
glColor4f -> gGL.diffuseColor4f
glColor4fv -> gGL.diffuseColor4fv
glColor4ubv -> gGL.diffuseColor4ubv
glLightModelfv(GL_LIGHT_MODEL_AMBIENT -> gGL.
2011-11-21 15:55:44 -06:00
Siana Gearz
0130423d93 Rev changed grid management incompatibly -.- 2011-10-15 04:46:35 +02:00