Merge DRTVWR-483

master
Ansariel 2020-02-24 18:27:32 +01:00
commit 7795fbbe42
20 changed files with 6 additions and 457 deletions

View File

@ -439,7 +439,6 @@ set(viewer_SOURCE_FILES
llfloatervoiceeffect.cpp
llfloatervoicevolume.cpp
llfloaterwebcontent.cpp
llfloaterwebprofile.cpp
llfloaterwhitelistentry.cpp
llfloaterwindowsize.cpp
llfloaterworldmap.cpp
@ -1200,7 +1199,6 @@ set(viewer_HEADER_FILES
llfloatervoiceeffect.h
llfloatervoicevolume.h
llfloaterwebcontent.h
llfloaterwebprofile.h
llfloaterwhitelistentry.h
llfloaterwindowsize.h
llfloaterworldmap.h

View File

@ -809,21 +809,10 @@ void FSPanelProfileWeb::onOpen(const LLSD& key)
BOOL FSPanelProfileWeb::postBuild()
{
mWebProfileButton = getChild<LLUICtrl>("web_profile");
mLoadButton = getChild<LLUICtrl>("load");
mUrlEdit = getChild<LLLineEditor>("url_edit");
mLoadButton->setCommitCallback(boost::bind(&FSPanelProfileWeb::onCommitLoad, this, _1));
mWebProfileButton->setCommitCallback(boost::bind(&FSPanelProfileWeb::onCommitWebProfile, this, _1));
mWebProfileButton->setVisible(LLGridManager::getInstance()->isInSecondLife());
mWebBrowser = getChild<LLMediaCtrl>("profile_html");
mWebBrowser->addObserver(this);
mWebBrowser->setHomePageUrl("about:blank");
mUrlEdit->setEnabled(FALSE);
return TRUE;
}
@ -834,9 +823,6 @@ void FSPanelProfileWeb::processProperties(void* data, EAvatarProcessorType type)
const LLAvatarData* avatar_data = static_cast<const LLAvatarData*>(data);
if (avatar_data && getAvatarId() == avatar_data->avatar_id)
{
mURLHome = avatar_data->profile_url;
mUrlEdit->setValue(mURLHome);
mLoadButton->setEnabled(mURLHome.length() > 0);
enableControls();
}
}
@ -844,14 +830,11 @@ void FSPanelProfileWeb::processProperties(void* data, EAvatarProcessorType type)
void FSPanelProfileWeb::resetData()
{
mURLHome = LLStringUtil::null;
mUrlEdit->setValue(mURLHome);
mWebBrowser->navigateHome();
}
void FSPanelProfileWeb::apply(LLAvatarData* data)
{
data->profile_url = mUrlEdit->getValue().asString();
}
void FSPanelProfileWeb::updateData()
@ -882,13 +865,12 @@ void FSPanelProfileWeb::onAvatarNameCache(const LLUUID& agent_id, const LLAvatar
LLStringUtil::replaceChar(username, ' ', '.');
}
mURLWebProfile = getProfileURL(username);
mURLWebProfile = getProfileURL(username, true);
if (mURLWebProfile.empty())
{
return;
}
mWebProfileButton->setEnabled(TRUE);
if (getIsLoading()) //if the tab was opened before name was resolved, load the panel now
{
updateData();
@ -919,30 +901,6 @@ void FSPanelProfileWeb::onCommitLoad(LLUICtrl* ctrl)
}
}
void FSPanelProfileWeb::onCommitWebProfile(LLUICtrl* ctrl)
{
if (!mURLWebProfile.empty())
{
LLSD::String valstr = ctrl->getValue().asString();
if (valstr.empty())
{
mWebBrowser->setVisible(TRUE);
mPerformanceTimer.start();
mWebBrowser->navigateTo( mURLWebProfile, HTTP_CONTENT_TEXT_HTML );
}
else if (valstr == "popout")
{
// open the web profile floater
LLAvatarActions::showProfileWeb(getAvatarId());
}
else if (valstr == "external")
{
// open in external browser
LLWeb::loadURLExternal(mURLWebProfile);
}
}
}
void FSPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
{
switch(event)
@ -951,12 +909,6 @@ void FSPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e
childSetValue("status_text", LLSD( self->getStatusText() ) );
break;
case MEDIA_EVENT_LOCATION_CHANGED:
// don't set this or user will set there url to profile url
// when clicking ok on there own profile.
// childSetText("url_edit", self->getLocation() );
break;
case MEDIA_EVENT_NAVIGATE_BEGIN:
{
if (mFirstNavigate)
@ -987,11 +939,6 @@ void FSPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e
void FSPanelProfileWeb::enableControls()
{
FSPanelProfileTab::enableControls();
if (getSelfProfile() && !getEmbedded())
{
mUrlEdit->setEnabled(TRUE);
}
}
//////////////////////////////////////////////////////////////////////////

View File

@ -297,15 +297,11 @@ public:
protected:
void onCommitLoad(LLUICtrl* ctrl);
void onCommitWebProfile(LLUICtrl* ctrl);
private:
std::string mURLHome;
std::string mURLWebProfile;
LLMediaCtrl* mWebBrowser;
LLUICtrl* mWebProfileButton;
LLUICtrl* mLoadButton;
LLLineEditor* mUrlEdit;
LLFrameTimer mPerformanceTimer;
bool mFirstNavigate;

View File

@ -464,22 +464,6 @@ const LLUUID LLAvatarActions::startConference(const uuid_vec_t& ids, const LLUUI
return session_id;
}
static const char* get_profile_floater_name(const LLUUID& avatar_id)
{
// Use different floater XML for our profile to be able to save its rect.
return avatar_id == gAgentID ? "my_profile_web" : "profile_web";
}
static void on_avatar_name_show_profile(const LLUUID& agent_id, const LLAvatarName& av_name)
{
std::string url = getProfileURL(av_name.getAccountName());
// PROFILES: open in webkit window
LLFloaterWebContent::Params p;
p.url(url).id(agent_id.asString());
LLFloaterReg::showInstance(get_profile_floater_name(agent_id), p);
}
// static
void LLAvatarActions::showProfile(const LLUUID& avatar_id)
{
@ -648,16 +632,6 @@ LLFloater* LLAvatarActions::getProfileFloater(const LLUUID& avatar_id)
return floater;
}
// static
void LLAvatarActions::showProfileWeb(const LLUUID& avatar_id)
{
if (avatar_id.notNull())
{
LLAvatarNameCache::get(avatar_id, boost::bind(&on_avatar_name_show_profile, _1, _2));
}
}
//static
void LLAvatarActions::hideProfile(const LLUUID& avatar_id)
{

View File

@ -111,7 +111,6 @@ public:
static bool profileVisible(const LLUUID& avatar_id);
static bool isPickTabSelected(const LLUUID& avatar_id);
static LLFloater* getProfileFloater(const LLUUID& avatar_id);
static void showProfileWeb(const LLUUID& avatar_id);
/**
* Show avatar on world map.

View File

@ -1,81 +0,0 @@
/**
* @file llfloaterwebprofile.cpp
* @brief Avatar profile floater.
*
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
#include "llfloaterwebprofile.h"
#include "llviewercontrol.h"
LLFloaterWebProfile::LLFloaterWebProfile(const Params& key) :
LLFloaterWebContent(key)
{
}
void LLFloaterWebProfile::onOpen(const LLSD& key)
{
Params p(key);
p.show_chrome(true);
p.window_class("profile");
p.allow_address_entry(false);
p.trusted_content(true);
LLFloaterWebContent::onOpen(p);
applyPreferredRect();
}
// virtual
void LLFloaterWebProfile::handleReshape(const LLRect& new_rect, bool by_user)
{
LL_DEBUGS() << "handleReshape: " << new_rect << LL_ENDL;
if (by_user && !isMinimized())
{
LL_DEBUGS() << "Storing new rect" << LL_ENDL;
gSavedSettings.setRect("WebProfileFloaterRect", new_rect);
}
LLFloaterWebContent::handleReshape(new_rect, by_user);
}
LLFloater* LLFloaterWebProfile::create(const LLSD& key)
{
LLFloaterWebContent::Params p(key);
preCreate(p);
return new LLFloaterWebProfile(p);
}
void LLFloaterWebProfile::applyPreferredRect()
{
const LLRect preferred_rect = gSavedSettings.getRect("WebProfileFloaterRect");
LL_DEBUGS() << "Applying preferred rect: " << preferred_rect << LL_ENDL;
// Don't override position that may have been set by floater stacking code.
LLRect new_rect = getRect();
new_rect.setLeftTopAndSize(
new_rect.mLeft, new_rect.mTop,
preferred_rect.getWidth(), preferred_rect.getHeight());
setShape(new_rect);
}

View File

@ -1,59 +0,0 @@
/**
* @file llfloaterwebprofile.h
* @brief Avatar profile floater.
*
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLFLOATERWEBPROFILE_H
#define LL_LLFLOATERWEBPROFILE_H
#include "llfloaterwebcontent.h"
#include "llviewermediaobserver.h"
#include <string>
class LLMediaCtrl;
/**
* Displays avatar profile web page.
*/
class LLFloaterWebProfile
: public LLFloaterWebContent
{
LOG_CLASS(LLFloaterWebProfile);
public:
typedef LLFloaterWebContent::Params Params;
LLFloaterWebProfile(const Params& key);
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void handleReshape(const LLRect& new_rect, bool by_user = false);
static LLFloater* create(const LLSD& key);
private:
void applyPreferredRect();
};
#endif // LL_LLFLOATERWEBPROFILE_H

View File

@ -1075,14 +1075,7 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
// try as slurl first
if (!LLURLDispatcher::dispatch(url, "clicked", NULL, mTrusted))
{
if (self->isOverrideClickTarget() && target == "_navigate")
{
navigateTo(url, HTTP_CONTENT_TEXT_HTML);
}
else
{
LLWeb::loadURL(url, target, uuid);
}
LLWeb::loadURL(url, target, uuid);
}
// CP: removing this code because we no longer support popups so this breaks the flow.

View File

@ -991,28 +991,14 @@ void LLPanelProfileWeb::onOpen(const LLSD& key)
resetData();
mAvatarNameCacheConnection = LLAvatarNameCache::get(getAvatarId(), boost::bind(&LLPanelProfileWeb::onAvatarNameCache, this, _1, _2));
if (mWebBrowser->getMediaPlugin())
{
mWebBrowser->getMediaPlugin()->setOverrideClickTarget("_navigate");
}
}
BOOL LLPanelProfileWeb::postBuild()
{
mUrlEdit = getChild<LLLineEditor>("url_edit");
mLoadButton = getChild<LLUICtrl>("load");
mWebProfileButton = getChild<LLButton>("web_profile_popout_btn");
mLoadButton->setCommitCallback(boost::bind(&LLPanelProfileWeb::onCommitLoad, this, _1));
mWebProfileButton->setCommitCallback(boost::bind(&LLPanelProfileWeb::onCommitWebProfile, this));
mWebBrowser = getChild<LLMediaCtrl>("profile_html");
mWebBrowser->addObserver(this);
mWebBrowser->setHomePageUrl("about:blank");
mUrlEdit->setEnabled(FALSE);
return TRUE;
}
@ -1023,9 +1009,6 @@ void LLPanelProfileWeb::processProperties(void* data, EAvatarProcessorType type)
const LLAvatarData* avatar_data = static_cast<const LLAvatarData*>(data);
if (avatar_data && getAvatarId() == avatar_data->avatar_id)
{
mURLHome = avatar_data->profile_url;
mUrlEdit->setValue(mURLHome);
mLoadButton->setEnabled(mURLHome.length() > 0);
updateButtons();
}
}
@ -1033,14 +1016,12 @@ void LLPanelProfileWeb::processProperties(void* data, EAvatarProcessorType type)
void LLPanelProfileWeb::resetData()
{
mURLHome = LLStringUtil::null;
mUrlEdit->setValue(mURLHome);
mWebBrowser->navigateHome();
}
void LLPanelProfileWeb::apply(LLAvatarData* data)
{
data->profile_url = mUrlEdit->getValue().asString();
}
void LLPanelProfileWeb::updateData()
@ -1104,12 +1085,6 @@ void LLPanelProfileWeb::onCommitLoad(LLUICtrl* ctrl)
}
}
void LLPanelProfileWeb::onCommitWebProfile()
{
// open the web profile floater
LLAvatarActions::showProfileWeb(getAvatarId());
}
void LLPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
{
switch(event)
@ -1118,12 +1093,6 @@ void LLPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e
childSetValue("status_text", LLSD( self->getStatusText() ) );
break;
case MEDIA_EVENT_LOCATION_CHANGED:
// don't set this or user will set there url to profile url
// when clicking ok on there own profile.
// childSetText("url_edit", self->getLocation() );
break;
case MEDIA_EVENT_NAVIGATE_BEGIN:
{
if (mFirstNavigate)
@ -1142,7 +1111,6 @@ void LLPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e
LLStringUtil::format_map_t args;
args["[TIME]"] = llformat("%.2f", mPerformanceTimer.getElapsedTimeF32());
childSetValue("status_text", LLSD( getString("LoadTime", args)) );
resetLoading();
}
break;
@ -1155,11 +1123,6 @@ void LLPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e
void LLPanelProfileWeb::updateButtons()
{
LLPanelProfileTab::updateButtons();
if (getSelfProfile() && !getEmbedded())
{
mUrlEdit->setEnabled(TRUE);
}
}
//////////////////////////////////////////////////////////////////////////

View File

@ -254,15 +254,11 @@ public:
protected:
/*virtual*/ void updateButtons();
void onCommitLoad(LLUICtrl* ctrl);
void onCommitWebProfile();
private:
std::string mURLHome;
std::string mURLWebProfile;
LLMediaCtrl* mWebBrowser;
LLButton* mWebProfileButton;
LLUICtrl* mLoadButton;
LLLineEditor* mUrlEdit;
LLFrameTimer mPerformanceTimer;
bool mFirstNavigate;

View File

@ -137,7 +137,6 @@
#include "llfloateruipreview.h"
#include "llfloatervoiceeffect.h"
#include "llfloaterwebcontent.h"
#include "llfloaterwebprofile.h"
#include "llfloatervoicevolume.h"
#include "llfloaterwhitelistentry.h"
#include "llfloaterwindowsize.h"
@ -427,8 +426,6 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("outfit_snapshot", "floater_outfit_snapshot.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOutfitSnapshot>);
// <FS:CR> Search floater is deferred to login now so we can tell what grid we're in.
//LLFloaterReg::add("search", "floater_search.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSearch>);
LLFloaterReg::add("my_profile_web", "floater_my_web_profile.xml", (LLFloaterBuildFunc)&LLFloaterWebProfile::create);
LLFloaterReg::add("profile_web", "floater_web_profile.xml", (LLFloaterBuildFunc)&LLFloaterWebProfile::create);
LLFloaterReg::add("profile", "floater_profile.xml",(LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterProfile>);
LLFloaterReg::add("how_to", "floater_how_to.xml", (LLFloaterBuildFunc)&LLFloaterWebContent::create);

View File

@ -1,13 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_profile_web" label="Web">
<panel.string name="LoadTime" value="Ladezeit: [TIME] Sekunden"/>
<flyout_button name="load" label="Laden" label_selected="Laden" tool_tip="Dieses Profil im integrierten Webbrowser laden.">
<flyout_button.item label="In internem Browser öffnen" name="open_item"/>
<flyout_button.item label="In externem Browser öffnen" name="home_item"/>
</flyout_button>
<flyout_button name="web_profile" label="Profil" label_selected="Profil">
<flyout_button.item label="In separatem Fenster öffnen" name="builtin_item"/>
<flyout_button.item label="In externem Browser öffnen" name="open_item"/>
</flyout_button>
</panel>

View File

@ -9,68 +9,8 @@
name="panel_profile_web"
label="Web">
<panel.string name="LoadTime" value="Load Time: [TIME] seconds"/>
<line_editor
top_pad="5"
left="10"
height="16"
width="400"
layout="topleft"
follows="left|top"
name="url_edit"
max_length_bytes="254" />
<flyout_button
top_pad="5"
left="10"
height="18"
width="80"
layout="topleft"
follows="left|top"
name="load"
label="Load"
enabled="false"
tool_tip="Load this profile page with embedded web browser." >
<flyout_button.item
label="Open in-viewer browser"
value="popout"
name="open_item" />
<flyout_button.item
label="Open external browser"
value="external"
name="home_item" />
</flyout_button>
<loading_indicator
left_pad="100"
height="23"
width="23"
layout="topleft"
follows="top|left"
name="progress_indicator"
visible="false" />
<flyout_button
top_delta="5"
right="-10"
height="18"
width="80"
layout="topleft"
follows="right|top"
name="web_profile"
label="Profile"
enabled="false" >
<flyout_button.item
label="Popout"
value="popout"
name="builtin_item" />
<flyout_button.item
label="Open external browser"
value="external"
name="open_item" />
</flyout_button>
<web_browser
top="48"
top="10"
bottom="-18"
left="10"
right="-10"
@ -78,7 +18,6 @@
follows="all"
name="profile_html"
start_url="" />
<text
bottom="-4"
left="110"

View File

@ -13,66 +13,9 @@
name="LoadTime"
value="Load Time: [TIME] seconds"
/>
<line_editor
name="url_edit"
enabled="false"
top_pad="5"
left="10"
height="16"
width="400"
follows="left|top"
layout="topleft"
text_pad_left="4"
max_length_bytes="254"
>
(loading..)
</line_editor>
<flyout_button
name="load"
label="Load"
tool_tip="Load this profile page with embedded web browser."
enabled="false"
top_pad="5"
left="10"
height="18"
width="80"
follows="left|top"
layout="topleft"
>
<flyout_button.item
name="open_item"
label="Open in-viewer browser"
value="popout"
/>
<flyout_button.item
name="home_item"
label="Open external browser"
value="external"
/>
</flyout_button>
<loading_indicator
name="progress_indicator"
left_pad="100"
height="23"
width="23"
follows="top|left"
layout="topleft"
visible="false"
/>
<button
name="web_profile_popout_btn"
top_delta="5"
right="-10"
height="16"
width="16"
follows="right|top"
layout="topleft"
image_overlay="tearoffbox.tga"
tool_tip="Popout web profile"
/>
<web_browser
name="profile_html"
top="48"
top="10"
bottom="-18"
left="10"
right="-10"

View File

@ -1,13 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_profile_web" label="Web">
<panel.string name="LoadTime" value="Tiempo de carga: [TIME] segundos"/>
<flyout_button name="load" label="Cargar" label_selected="Cargar" tool_tip="Carga esta página del perfil con un navegador incrustado">
<flyout_button.item label="Abrir en navegador interno" name="open_item"/>
<flyout_button.item label="Abrir en navegador externo" name="home_item"/>
</flyout_button>
<flyout_button name="web_profile" label="Perfil" label_selected="Perfil">
<flyout_button.item label="Abrir" name="builtin_item"/>
<flyout_button.item label="Abrir en navegador externo" name="open_item"/>
</flyout_button>
</panel>

View File

@ -1,12 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_profile_web" label="Web">
<panel.string name="LoadTime" value="Temps de chargement : [TIME] sec."/>
<flyout_button name="load" label="Page Web" tool_tip="Afficher cette page de Web" width="90">
<flyout_button.item label="Ouvrir dans le navigateur interne" name="open_item"/>
<flyout_button.item label="Ouvrir le navigateur par défaut" name="home_item"/>
</flyout_button>
<flyout_button name="web_profile" label="Profil">
<flyout_button.item label="Ouvrir dans une fenêtre séparée" name="builtin_item"/>
<flyout_button.item label="Ouvrir le navigateur par défaut" name="open_item"/>
</flyout_button>
</panel>

View File

@ -1,12 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_profile_web" label="Web">
<panel.string name="LoadTime" value="Tempo di caricamento: [TIME] secondi"/>
<flyout_button name="load" label="Carica" label_selected="Carica" tool_tip="Caricare questo profilo nel tuo web browser.">
<flyout_button.item label="Apri con browser incorporato" name="open_item" />
<flyout_button.item label="Apri con browser esterno" name="home_item" />
</flyout_button>
<flyout_button name="web_profile" label="Profilo" label_selected="Profilo">
<flyout_button.item label="Finestra" name="builtin_item" />
<flyout_button.item label="Apri con browser esterno" name="open_item" />
</flyout_button>
</panel>

View File

@ -1,13 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_profile_web" label="ウェブ">
<panel.string name="LoadTime" value="読み込み時間: [TIME] 秒"/>
<line_editor name="url_edit" />
<flyout_button name="load" label="ロード" tool_tip="このプロフィール・ページを内蔵ブラウザーでロードします。" />
<loading_indicator name="progress_indicator" />
<flyout_button name="web_profile" label="プロフィール" />
<web_browser name="profile_html" />
<text name="status_text" />
</panel>

View File

@ -1,12 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_profile_web" label="Sieć">
<panel.string name="LoadTime" value="Załadowano w: [TIME] sekund"/>
<flyout_button name="load" label="Wczytaj" tool_tip="Wczytaj stronę tego profilu w przeglądarce internetowej.">
<flyout_button.item label="Otwórz we wbudowanej" name="open_item" />
<flyout_button.item label="Otwórz w zewnętrznej" name="home_item" />
</flyout_button>
<flyout_button name="web_profile" label="Profil">
<flyout_button.item label="Okienko" name="builtin_item" />
<flyout_button.item label="Otwórz zewn. przeglądarkę" name="open_item" />
</flyout_button>
</panel>

View File

@ -1,12 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_profile_web" label="Web">
<panel.string name="LoadTime" value="Загружено за: [TIME] секунд"/>
<flyout_button name="load" width="100" label="Открыть" tool_tip="Загрузите страницу профиля в веб-браузере.">
<flyout_button.item label="Открыть встроенным браузером" name="open_item" />
<flyout_button.item label="Открыть внешним браузером" name="home_item" />
</flyout_button>
<flyout_button name="web_profile" width="100" label="Профиль">
<flyout_button.item label="Окно" name="builtin_item" />
<flyout_button.item label="Открыть дополнительный браузер" name="open_item" />
</flyout_button>
</panel>