Fixing title bar update on teleport

This commit is contained in:
Niraj Venkat 2015-06-05 13:33:14 -07:00
parent a2165e3a8a
commit a3f19e9d4c
3 changed files with 25 additions and 36 deletions

View file

@ -474,7 +474,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) :
addressManager->setPositionGetter(getPositionForPath); addressManager->setPositionGetter(getPositionForPath);
addressManager->setOrientationGetter(getOrientationForPath); addressManager->setOrientationGetter(getOrientationForPath);
connect(addressManager.data(), &AddressManager::rootPlaceNameChanged, this, &Application::updateWindowTitle); connect(addressManager.data(), &AddressManager::hostChanged, this, &Application::updateWindowTitle);
connect(this, &QCoreApplication::aboutToQuit, addressManager.data(), &AddressManager::storeCurrentAddress); connect(this, &QCoreApplication::aboutToQuit, addressManager.data(), &AddressManager::storeCurrentAddress);
#ifdef _WIN32 #ifdef _WIN32
@ -3646,7 +3646,7 @@ void Application::updateWindowTitle(){
QString connectionStatus = nodeList->getDomainHandler().isConnected() ? "" : " (NOT CONNECTED) "; QString connectionStatus = nodeList->getDomainHandler().isConnected() ? "" : " (NOT CONNECTED) ";
QString username = AccountManager::getInstance().getAccountInfo().getUsername(); QString username = AccountManager::getInstance().getAccountInfo().getUsername();
QString currentPlaceName = DependencyManager::get<AddressManager>()->getRootPlaceName(); QString currentPlaceName = DependencyManager::get<AddressManager>()->getHost();
if (currentPlaceName.isEmpty()) { if (currentPlaceName.isEmpty()) {
currentPlaceName = nodeList->getDomainHandler().getHostname(); currentPlaceName = nodeList->getDomainHandler().getHostname();

View file

@ -30,7 +30,7 @@ const QString SETTINGS_CURRENT_ADDRESS_KEY = "address";
Setting::Handle<QUrl> currentAddressHandle(QStringList() << ADDRESS_MANAGER_SETTINGS_GROUP << "address", DEFAULT_HIFI_ADDRESS); Setting::Handle<QUrl> currentAddressHandle(QStringList() << ADDRESS_MANAGER_SETTINGS_GROUP << "address", DEFAULT_HIFI_ADDRESS);
AddressManager::AddressManager() : AddressManager::AddressManager() :
_rootPlaceName(), _host(),
_rootPlaceID(), _rootPlaceID(),
_positionGetter(NULL), _positionGetter(NULL),
_orientationGetter(NULL) _orientationGetter(NULL)
@ -45,7 +45,7 @@ const QUrl AddressManager::currentAddress() const {
QUrl hifiURL; QUrl hifiURL;
hifiURL.setScheme(HIFI_URL_SCHEME); hifiURL.setScheme(HIFI_URL_SCHEME);
hifiURL.setHost(_rootPlaceName); hifiURL.setHost(_host);
hifiURL.setPath(currentPath()); hifiURL.setPath(currentPath());
return hifiURL; return hifiURL;
@ -217,6 +217,10 @@ void AddressManager::goToAddressFromObject(const QVariantMap& dataObject, const
DependencyManager::get<NodeList>()->flagTimeForConnectionStep(LimitedNodeList::ConnectionStep::HandleAddress); DependencyManager::get<NodeList>()->flagTimeForConnectionStep(LimitedNodeList::ConnectionStep::HandleAddress);
const QString DOMAIN_ID_KEY = "id";
QString domainIDString = domainObject[DOMAIN_ID_KEY].toString();
QUuid domainID(domainIDString);
if (domainObject.contains(DOMAIN_NETWORK_ADDRESS_KEY)) { if (domainObject.contains(DOMAIN_NETWORK_ADDRESS_KEY)) {
QString domainHostname = domainObject[DOMAIN_NETWORK_ADDRESS_KEY].toString(); QString domainHostname = domainObject[DOMAIN_NETWORK_ADDRESS_KEY].toString();
@ -230,10 +234,6 @@ void AddressManager::goToAddressFromObject(const QVariantMap& dataObject, const
} else { } else {
QString iceServerAddress = domainObject[DOMAIN_ICE_SERVER_ADDRESS_KEY].toString(); QString iceServerAddress = domainObject[DOMAIN_ICE_SERVER_ADDRESS_KEY].toString();
const QString DOMAIN_ID_KEY = "id";
QString domainIDString = domainObject[DOMAIN_ID_KEY].toString();
QUuid domainID(domainIDString);
qCDebug(networking) << "Possible domain change required to connect to domain with ID" << domainID qCDebug(networking) << "Possible domain change required to connect to domain with ID" << domainID
<< "via ice-server at" << iceServerAddress; << "via ice-server at" << iceServerAddress;
@ -246,8 +246,12 @@ void AddressManager::goToAddressFromObject(const QVariantMap& dataObject, const
// set our current root place name to the name that came back // set our current root place name to the name that came back
const QString PLACE_NAME_KEY = "name"; const QString PLACE_NAME_KEY = "name";
QString newRootPlaceName = rootMap[PLACE_NAME_KEY].toString(); QString placeName = rootMap[PLACE_NAME_KEY].toString();
setRootPlaceName(newRootPlaceName); if (!placeName.isEmpty()) {
setHost(placeName);
} else {
setHost(domainIDString);
}
// check if we had a path to override the path returned // check if we had a path to override the path returned
QString overridePath = reply.property(OVERRIDE_PATH_KEY).toString(); QString overridePath = reply.property(OVERRIDE_PATH_KEY).toString();
@ -381,22 +385,7 @@ bool AddressManager::handleDomainID(const QString& host) {
QRegExp domainIDRegex(UUID_REGEX_STRING, Qt::CaseInsensitive); QRegExp domainIDRegex(UUID_REGEX_STRING, Qt::CaseInsensitive);
if (domainIDRegex.indexIn(host) != -1) { return (domainIDRegex.indexIn(host) != -1);
QString domainID = domainIDRegex.cap(1);
quint16 domainPort = DEFAULT_DOMAIN_SERVER_PORT;
if (!domainIDRegex.cap(2).isEmpty()) {
domainPort = (qint16)domainIDRegex.cap(2).toInt();
}
emit lookupResultsFinished();
setDomainInfo(domainID, domainPort);
return true;
}
return false;
} }
void AddressManager::handlePath(const QString& path) { void AddressManager::handlePath(const QString& path) {
@ -474,16 +463,16 @@ bool AddressManager::handleUsername(const QString& lookupString) {
return false; return false;
} }
void AddressManager::setRootPlaceName(const QString& rootPlaceName) { void AddressManager::setHost(const QString& host) {
if (rootPlaceName != _rootPlaceName) { if (host != _host) {
_rootPlaceName = rootPlaceName; _host = host;
emit rootPlaceNameChanged(_rootPlaceName); emit hostChanged(_host);
} }
} }
void AddressManager::setDomainInfo(const QString& hostname, quint16 port) { void AddressManager::setDomainInfo(const QString& hostname, quint16 port) {
_rootPlaceName = hostname; _host = hostname;
_rootPlaceID = QUuid(); _rootPlaceID = QUuid();
qCDebug(networking) << "Possible domain change required to connect to domain at" << hostname << "on" << port; qCDebug(networking) << "Possible domain change required to connect to domain at" << hostname << "on" << port;

View file

@ -35,7 +35,7 @@ class AddressManager : public QObject, public Dependency {
Q_PROPERTY(bool isConnected READ isConnected) Q_PROPERTY(bool isConnected READ isConnected)
Q_PROPERTY(QUrl href READ currentAddress) Q_PROPERTY(QUrl href READ currentAddress)
Q_PROPERTY(QString protocol READ getProtocol) Q_PROPERTY(QString protocol READ getProtocol)
Q_PROPERTY(QString hostname READ getRootPlaceName) Q_PROPERTY(QString hostname READ getHost)
Q_PROPERTY(QString pathname READ currentPath) Q_PROPERTY(QString pathname READ currentPath)
public: public:
bool isConnected(); bool isConnected();
@ -46,8 +46,8 @@ public:
const QUuid& getRootPlaceID() const { return _rootPlaceID; } const QUuid& getRootPlaceID() const { return _rootPlaceID; }
const QString& getRootPlaceName() const { return _rootPlaceName; } const QString& getHost() const { return _host; }
void setRootPlaceName(const QString& rootPlaceName); void setHost(const QString& host);
void attemptPlaceNameLookup(const QString& lookupString, const QString& overridePath = QString()); void attemptPlaceNameLookup(const QString& lookupString, const QString& overridePath = QString());
void attemptDomainIDLookup(const QString& lookupString, const QString& overridePath = QString()); void attemptDomainIDLookup(const QString& lookupString, const QString& overridePath = QString());
@ -79,7 +79,7 @@ signals:
bool hasOrientationChange, const glm::quat& newOrientation, bool hasOrientationChange, const glm::quat& newOrientation,
bool shouldFaceLocation); bool shouldFaceLocation);
void pathChangeRequired(const QString& newPath); void pathChangeRequired(const QString& newPath);
void rootPlaceNameChanged(const QString& newRootPlaceName); void hostChanged(const QString& newHost);
protected: protected:
AddressManager(); AddressManager();
private slots: private slots:
@ -98,7 +98,7 @@ private:
bool handleUsername(const QString& lookupString); bool handleUsername(const QString& lookupString);
bool handleDomainID(const QString& host); bool handleDomainID(const QString& host);
QString _rootPlaceName; QString _host;
QUuid _rootPlaceID; QUuid _rootPlaceID;
PositionGetter _positionGetter; PositionGetter _positionGetter;
OrientationGetter _orientationGetter; OrientationGetter _orientationGetter;