Ansariel 2021-05-12 01:59:17 +02:00
commit cbddc4a71b
7 changed files with 132 additions and 119 deletions

View File

@ -360,7 +360,7 @@ static BOOL isDefault(const std::string& scheme, U16 port)
void LLURI::parseAuthorityAndPathUsingOpaque()
{
if (mScheme == "http" || mScheme == "https" || mScheme == "hop" || mScheme == "inworldz" || mScheme == "iw" ||
if (mScheme == "http" || mScheme == "https" || mScheme == "hop" ||
mScheme == "ftp" || mScheme == "secondlife" ||
mScheme == "x-grid-location-info")
{

View File

@ -42,7 +42,7 @@
// <FS:AW> hop:// protocol>
//#define APP_HEADER_REGEX "((x-grid-location-info://[-\\w\\.]+/app)|(secondlife:///app))"
#define APP_HEADER_REGEX "(((hop|x-grid-location-info)://[-\\w\\.\\:\\@]+/app)|((hop|secondlife|inworldz|iw):///app))"
#define APP_HEADER_REGEX "(((hop|x-grid-location-info)://[-\\w\\.\\:\\@]+/app)|((hop|secondlife):///app))"
// </FS:AW>
// Utility functions
@ -354,9 +354,8 @@ std::string LLUrlEntryHTTPNoProtocol::getTooltip(const std::string &url) const
LLUrlEntryInvalidSLURL::LLUrlEntryInvalidSLURL()
: LLUrlEntryBase()
{
// <FS:Ansariel> Inworldz special
//mPattern = boost::regex("(http://(maps.secondlife.com|slurl.com)/secondlife/|secondlife://(/app/(worldmap|teleport)/)?)[^ /]+(/-?[0-9]+){1,3}(/?(\\?title|\\?img|\\?msg)=\\S*)?/?",
mPattern = boost::regex("(https?://(maps.secondlife.com|slurl.com)/secondlife/|(secondlife|inworldz|iw)://(/app/(worldmap|teleport)/)?)[^ /]+(/-?[0-9]+){1,3}(/?(\\?title|\\?img|\\?msg)=\\S*)?/?",
// <FS:Beq> remove legacy Inworldz URI support. restore previous with addition of https
mPattern = boost::regex("(https?://(maps.secondlife.com|slurl.com)/secondlife/|secondlife://(/app/(worldmap|teleport)/)?)[^ /]+(/-?[0-9]+){1,3}(/?(\\?title|\\?img|\\?msg)=\\S*)?/?",
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_http.xml";
mTooltip = LLTrans::getString("TooltipHttpUrl");
@ -1099,7 +1098,7 @@ LLUrlEntryObjectIM::LLUrlEntryObjectIM()
{
// <FS:AW> hop:// protocol; Ansa: Stop at first space so we can use it in notifications!
//mPattern = boost::regex("secondlife:///app/objectim/[\\da-f-]+\?\\S*\\w",
mPattern = boost::regex("(hop|secondlife|inworldz|iw):///app/objectim/[\\da-f-]+\?[^ \t\r\n\v\f]*",
mPattern = boost::regex("(hop|secondlife):///app/objectim/[\\da-f-]+\?[^ \t\r\n\v\f]*",
// </FS:AW>
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_objectim.xml";
@ -1228,9 +1227,7 @@ void LLUrlEntryParcel::processParcelInfo(const LLParcelData& parcel_data)
//
LLUrlEntryPlace::LLUrlEntryPlace()
{
// <FS:Ansariel> Inworldz special
//mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+/?(\\d+/\\d+/\\d+|\\d+/\\d+)/?", // <AW: hop:// protocol>
mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|((secondlife|inworldz|iw)://)))\\S+/?(\\d+/\\d+/\\d+|\\d+/\\d+)/?", // <AW: hop:// protocol>
mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+/?(\\d+/\\d+/\\d+|\\d+/\\d+)/?", // <AW: hop:// protocol>
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slurl.xml";
mTooltip = LLTrans::getString("TooltipSLURL");
@ -1413,7 +1410,7 @@ std::string LLUrlEntryTeleport::getLocation(const std::string &url) const
///
FSUrlEntryWear::FSUrlEntryWear()
{
mPattern = boost::regex("(hop|secondlife|inworldz|iw):///app/wear_folder/\\S+",
mPattern = boost::regex("(hop|secondlife):///app/wear_folder/\\S+",
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slapp.xml";
mTooltip = LLTrans::getString("TooltipFSUrlEntryWear");
@ -1431,7 +1428,7 @@ std::string FSUrlEntryWear::getLabel(const std::string &url, const LLUrlLabelCal
//
LLUrlEntrySL::LLUrlEntrySL()
{
mPattern = boost::regex("(hop|secondlife|inworldz|iw)://(\\w+)?(:\\d+)?/\\S+", // <AW: hop:// protocol>
mPattern = boost::regex("(hop|secondlife)://(\\w+)?(:\\d+)?/\\S+", // <AW: hop:// protocol>
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slapp.xml";
mTooltip = LLTrans::getString("TooltipSLAPP");
@ -1449,7 +1446,7 @@ std::string LLUrlEntrySL::getLabel(const std::string &url, const LLUrlLabelCallb
///
FSHelpDebugUrlEntrySL::FSHelpDebugUrlEntrySL()
{
mPattern = boost::regex("(hop|secondlife|inworldz|iw):///app/fshelp/showdebug/\\S+",
mPattern = boost::regex("(hop|secondlife):///app/fshelp/showdebug/\\S+",
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slapp.xml";
mTooltip = LLTrans::getString("TooltipFSHelpDebugSLUrl");
@ -1468,7 +1465,7 @@ std::string FSHelpDebugUrlEntrySL::getLabel(const std::string &url, const LLUrlL
//
LLUrlEntrySLLabel::LLUrlEntrySLLabel()
{
mPattern = boost::regex("\\[(hop|secondlife|inworldz|iw)://\\S+[ \t]+[^\\]]+\\]", // <AW: hop:// protocol>
mPattern = boost::regex("\\[(hop|secondlife)://\\S+[ \t]+[^\\]]+\\]", // <AW: hop:// protocol>
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slapp.xml";
mTooltip = LLTrans::getString("TooltipSLAPP");

View File

@ -1385,10 +1385,6 @@ std::string LLGridManager::getAppSLURLBase(const std::string& grid)
{
ret = mGridList[grid][GRID_APP_SLURL_BASE].asString();
}
else if (grid == INWORLDZ_URI)
{
ret = "inworldz:///app";
}
else
{
std::string app_base;

View File

@ -59,11 +59,6 @@ const char* LLSLURL::SLURL_REGION_PATH = "region";
const char* LLSLURL::SIM_LOCATION_HOME = "home";
const char* LLSLURL::SIM_LOCATION_LAST = "last";
// Inworldz special
const char* LLSLURL::SLURL_INWORLDZ_SCHEME = "inworldz";
const char* LLSLURL::SLURL_IW_SCHEME = "iw";
const char* LLSLURL::PLACES_INWORLDZ_COM = "places.inworldz.com";
// resolve a simstring from a slurl
LLSLURL::LLSLURL(const std::string& slurl)
: mHypergrid(false)
@ -244,55 +239,6 @@ LLSLURL::LLSLURL(const std::string& slurl)
path_array.insert(0, slurl_uri.hostNameAndPort());
}
}
else if (slurl_uri.scheme() == LLSLURL::SLURL_INWORLDZ_SCHEME ||
slurl_uri.scheme() == LLSLURL::SLURL_IW_SCHEME)
{
LL_DEBUGS("SLURL") << "inworldz scheme" << LL_ENDL;
mGrid = INWORLDZ_URI;
if (path_array[0].asString() == LLSLURL::SLURL_APP_PATH)
{
// it's in the form iw://<grid>/(app)
// so parse the grid name to derive the grid ID
if (!slurl_uri.hostNameAndPort().empty())
{
LL_DEBUGS("SLURL") << "(inworldz|iw)://<grid>/app" << LL_ENDL;
mGrid = LLGridManager::getInstance()->getGridByProbing(slurl_uri.hostNameAndPort());
if (mGrid.empty())
{
mGrid = LLGridManager::getInstance()->getGridByProbing(slurl_uri.hostName());
}
}
else if (path_array[0].asString() == LLSLURL::SLURL_APP_PATH)
{
LL_DEBUGS("SLURL") << "(inworldz|iw):///app" << LL_ENDL;
// for app style slurls, where no grid name is specified, assume the currently
// selected or logged in grid.
mGrid = LLGridManager::getInstance()->getGridId();
}
if (mGrid.empty() && LLStartUp::getStartupState() == STATE_STARTED)
{
// we couldn't find the grid in the grid manager, so bail
LL_WARNS("SLURL")<<"unable to find grid"<<LL_ENDL;
return;
}
mType = APP;
path_array.erase(0);
}
else
{
// it wasn't a /inworldz/<region> or /app/<params>, so it must be iw://<region>
// therefore the hostname will be the region name, and it's a location type
mType = LOCATION;
// 'normalize' it so the region name is in fact the head of the path_array
path_array.insert(0, slurl_uri.hostName());
}
}
else if((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME)
|| (slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME)
|| (slurl_uri.scheme() == LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME)
@ -309,13 +255,6 @@ LLSLURL::LLSLURL(const std::string& slurl)
else
mGrid = default_grid;
}
// places.inworldz.com isn't your regular everyday slurl
else if (slurl_uri.hostName() == LLSLURL::PLACES_INWORLDZ_COM)
{
// likewise, places.inworldz.com implies inworldz and a location
mGrid = INWORLDZ_URI;
mType = LOCATION;
}
else
{
LL_DEBUGS("SLURL") << "slurl style Standalone" << LL_ENDL;
@ -402,7 +341,7 @@ LLSLURL::LLSLURL(const std::string& slurl)
LL_DEBUGS("SLURL") << "It's a location hop" << LL_ENDL;
mType = LOCATION;
}
else if (slurl_uri.hostName() != LLSLURL::PLACES_INWORLDZ_COM)
else
{
LL_DEBUGS("SLURL") << "Not a valid https/http/x-grid-location-info slurl " << slurl << LL_ENDL;
// not a valid https/http/x-grid-location-info slurl, so it'll likely just be a URL

View File

@ -19,14 +19,53 @@
<check_box label="Awatara" name="JoystickAvatarEnabled"/>
<check_box label="Budow." name="JoystickBuildEnabled"/>
<check_box label="Kamerę latając" name="JoystickFlycamEnabled"/>
<stat_view label="Monitor Joysticka" name="axis_view">
<stat_bar label="Oś 0" name="axis0"/>
<stat_bar label="Oś 1" name="axis1"/>
<stat_bar label="Oś 2" name="axis2"/>
<stat_bar label="Oś 3" name="axis3"/>
<stat_bar label="Oś 4" name="axis4"/>
<stat_bar label="Oś 5" name="axis5"/>
</stat_view>
<text name="joystick_monitor_label">
Monitor joysticka
</text>
<icon name="button_light_0" tool_tip="Przycisk joysticka 0" />
<icon name="button_light_1" tool_tip="Przycisk joysticka 1" />
<icon name="button_light_2" tool_tip="Przycisk joysticka 2" />
<icon name="button_light_3" tool_tip="Przycisk joysticka 3" />
<icon name="button_light_4" tool_tip="Przycisk joysticka 4" />
<icon name="button_light_5" tool_tip="Przycisk joysticka 5" />
<icon name="button_light_6" tool_tip="Przycisk joysticka 6" />
<icon name="button_light_7" tool_tip="Przycisk joysticka 7" />
<icon name="button_light_8" tool_tip="Przycisk joysticka 8" />
<icon name="button_light_9" tool_tip="Przycisk joysticka 9" />
<icon name="button_light_10" tool_tip="Przycisk joysticka 10" />
<icon name="button_light_11" tool_tip="Przycisk joysticka 11" />
<icon name="button_light_12" tool_tip="Przycisk joysticka 12" />
<icon name="button_light_13" tool_tip="Przycisk joysticka 13" />
<icon name="button_light_14" tool_tip="Przycisk joysticka 14" />
<icon name="button_light_15" tool_tip="Przycisk joysticka 15" />
<scroll_container name="joystick_monitor_axes_scroller">
<container_view name="joystick_monitor_axes_container">
<stat_view name="axis_view_0">
<stat_bar label="Oś 0" name="axis0" />
</stat_view>
<stat_view name="axis_view_1">
<stat_bar label="Oś 1" name="axis1" />
</stat_view>
<stat_view name="axis_view_2">
<stat_bar label="Oś 2" name="axis2" />
</stat_view>
<stat_view name="axis_view_3">
<stat_bar label="Oś 3" name="axis3" />
</stat_view>
<stat_view name="axis_view_4">
<stat_bar label="Oś 4" name="axis4" />
</stat_view>
<stat_view name="axis_view_5">
<stat_bar label="Oś 5" name="axis5" />
</stat_view>
<stat_view name="axis_view_6">
<stat_bar label="Oś 6" name="axis6" />
</stat_view>
<stat_view name="axis_view_7">
<stat_bar label="Oś 7" name="axis7" />
</stat_view>
</container_view>
</scroll_container>
<text name="XScale">
Skala X
</text>

View File

@ -86,7 +86,7 @@
<combo_box.item label="Siatka: Lokalna" name="Local"/>
<combo_box.item label="Siatka: Względna" name="Reference"/>
</combo_box>
<check_box label="Rozciągaj obie strony" name="checkbox uniform"/>
<check_box label="Rozciągaj obie strony" name="checkbox uniform" width="145" />
<check_box label="Rozciągaj tekstury" name="checkbox stretch textures"/>
<check_box label="Przyciągaj do siatki" name="checkbox snap to grid"/>
<check_box label="Edytuj oś jak gł. obiekt" name="checkbox actual root"/>

View File

@ -1,17 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Joystick" title="Конфигурация джойстика">
<floater.string name="JoystickDisabled">
никто
Нет
</floater.string>
<text name="joystick_lbl" width="60">
Джойстик:
</text>
<spinner label="Ось X" name="JoystickAxis1"/>
<spinner label="Ось Y" name="JoystickAxis2"/>
<spinner label="Ось Z" name="JoystickAxis0"/>
<spinner label="Наклон" name="JoystickAxis4"/>
<spinner label="Рыскание" name="JoystickAxis5"/>
<spinner label="Вращение" name="JoystickAxis3"/>
<spinner label="Масштаб" name="JoystickAxis6"/>
<spinner label="Ось Наклона" name="JoystickAxis4"/>
<spinner label="Ось Рыскания" name="JoystickAxis5"/>
<spinner label="Ось Вращения" name="JoystickAxis3"/>
<spinner label="Ось Масштаба" name="JoystickAxis6"/>
<check_box label="Масштабирование" name="ZoomDirect"/>
<check_box label="3D курсор" name="Cursor3D"/>
<check_box label="3D курсор" name="Cursor3D" left="320" />
<check_box label="Автоуровень" name="AutoLeveling"/>
<text name="Control Modes:">
Режимы управления:
@ -19,60 +22,99 @@
<check_box label="Аватар" name="JoystickAvatarEnabled"/>
<check_box label="Стройка" name="JoystickBuildEnabled"/>
<check_box label="Камера" name="JoystickFlycamEnabled"/>
<stat_view label="Монитор джойстика" name="axis_view">
<stat_bar label="Ось 0" name="axis0"/>
<stat_bar label="Ось 1" name="axis1"/>
<stat_bar label="Ось 2" name="axis2"/>
<stat_bar label="Ось 3" name="axis3"/>
<stat_bar label="Ось 4" name="axis4"/>
<stat_bar label="Ось 5" name="axis5"/>
</stat_view>
<text name="joystick_monitor_label">
Монитор джойстика
</text>
<icon name="button_light_0" tool_tip="Кнопка 0"/>
<icon name="button_light_1" tool_tip="Кнопка 1"/>
<icon name="button_light_2" tool_tip="Кнопка 2"/>
<icon name="button_light_3" tool_tip="Кнопка 3"/>
<icon name="button_light_4" tool_tip="Кнопка 4"/>
<icon name="button_light_5" tool_tip="Кнопка 5"/>
<icon name="button_light_6" tool_tip="Кнопка 6"/>
<icon name="button_light_7" tool_tip="Кнопка 7"/>
<icon name="button_light_8" tool_tip="Кнопка 8"/>
<icon name="button_light_9" tool_tip="Кнопка 9"/>
<icon name="button_light_10" tool_tip="Кнопка 10"/>
<icon name="button_light_11" tool_tip="Кнопка 11"/>
<icon name="button_light_12" tool_tip="Кнопка 12"/>
<icon name="button_light_13" tool_tip="Кнопка 13"/>
<icon name="button_light_14" tool_tip="Кнопка 14"/>
<icon name="button_light_15" tool_tip="Кнопка 15"/>
<scroll_container name="joystick_monitor_axes_scroller">
<container_view name="joystick_monitor_axes_container">
<stat_view name="axis_view_0">
<stat_bar label="Ось 0" name="axis0"/>
</stat_view>
<stat_view name="axis_view_1">
<stat_bar label="Ось 1" name="axis1"/>
</stat_view>
<stat_view name="axis_view_2">
<stat_bar label="Ось 2" name="axis2"/>
</stat_view>
<stat_view name="axis_view_3">
<stat_bar label="Ось 3" name="axis3"/>
</stat_view>
<stat_view name="axis_view_4">
<stat_bar label="Ось 4" name="axis4"/>
</stat_view>
<stat_view name="axis_view_5">
<stat_bar label="Ось 5" name="axis5"/>
</stat_view>
<stat_view name="axis_view_6">
<stat_bar label="Ось 6" name="axis6"/>
</stat_view>
<stat_view name="axis_view_7">
<stat_bar label="Ось 7" name="axis7"/>
</stat_view>
</container_view>
</scroll_container>
<text name="XScale">
Масштаб по X
Шкала X
</text>
<text name="YScale">
Масштаб по Y
Шкала Y
</text>
<text name="ZScale">
Масштаб по Z
Шкала Z
</text>
<text name="PitchScale">
Масштаб наклона
Шкала наклона
</text>
<text name="YawScale">
Масштаб рыскания
Шкала рыскания
</text>
<text name="RollScale">
Масштаб вращения
Шкала вращения
</text>
<text name="XDeadZone">
Невидимая зона по X
Своб.зона X
</text>
<text name="YDeadZone">
Невидимая зона по Y
Своб.зона Y
</text>
<text name="ZDeadZone">
Невидимая зона по Z
Своб.зона Z
</text>
<text name="PitchDeadZone">
Невид. зона наклона
Своб.зона Наклона
</text>
<text name="YawDeadZone">
Невид. зона рыскания
Своб.зона Рыскания
</text>
<text name="RollDeadZone">
Невид. зона вращения
Своб.зона Вращения
</text>
<text name="Feathering">
Размывка краев
Сглаживание
</text>
<text name="ZoomScale2">
Масштаб
Шкала Масштаба
</text>
<text name="ZoomDeadZone">
Невид. зона масшт.
Своб.зона Масштаба
</text>
<button label="Стандартные значения SpaceNavigator" name="SpaceNavigatorDefaults"/>
<button label="OK" label_selected="OK" name="ok_btn"/>
<button label="Стандарт для SpaceNavigator" name="SpaceNavigatorDefaults"/>
<button label="Да" label_selected="Да" name="ok_btn"/>
<button label="Отмена" label_selected="Отмена" name="cancel_btn"/>
</floater>