Merge branch 'master' of https://github.com/highfidelity/hifi into orange

This commit is contained in:
Sam Gateau 2015-04-19 09:27:27 -07:00
commit 5335dcb236
4 changed files with 37 additions and 36 deletions

View file

@ -18,6 +18,7 @@
#include <UUID.h>
#include "DiscoverabilityManager.h"
#include "Menu.h"
const Discoverability::Mode DEFAULT_DISCOVERABILITY_MODE = Discoverability::All;
@ -96,4 +97,32 @@ void DiscoverabilityManager::setDiscoverabilityMode(Discoverability::Mode discov
emit discoverabilityModeChanged(discoverabilityMode);
}
}
}
void DiscoverabilityManager::setVisibility() {
Menu* menu = Menu::getInstance();
if (menu->isOptionChecked(MenuOption::VisibleToEveryone)) {
this->setDiscoverabilityMode(Discoverability::All);
} else if (menu->isOptionChecked(MenuOption::VisibleToFriends)) {
this->setDiscoverabilityMode(Discoverability::Friends);
} else if (menu->isOptionChecked(MenuOption::VisibleToNoOne)) {
this->setDiscoverabilityMode(Discoverability::None);
} else {
qDebug() << "ERROR DiscoverabilityManager::setVisibility() called with unrecognized value.";
}
}
void DiscoverabilityManager::visibilityChanged(Discoverability::Mode discoverabilityMode) {
Menu* menu = Menu::getInstance();
if (discoverabilityMode == Discoverability::All) {
menu->setIsOptionChecked(MenuOption::VisibleToEveryone, true);
} else if (discoverabilityMode == Discoverability::Friends) {
menu->setIsOptionChecked(MenuOption::VisibleToFriends, true);
} else if (discoverabilityMode == Discoverability::None) {
menu->setIsOptionChecked(MenuOption::VisibleToNoOne, true);
} else {
qDebug() << "ERROR DiscoverabilityManager::visibilityChanged() called with unrecognized value.";
}
}

View file

@ -36,6 +36,9 @@ public slots:
Discoverability::Mode getDiscoverabilityMode() { return static_cast<Discoverability::Mode>(_mode.get()); }
void setDiscoverabilityMode(Discoverability::Mode discoverabilityMode);
void setVisibility();
void visibilityChanged(Discoverability::Mode discoverabilityMode);
signals:
void discoverabilityModeChanged(Discoverability::Mode discoverabilityMode);

View file

@ -163,21 +163,21 @@ Menu::Menu() {
QAction* visibleToEveryone = addCheckableActionToQMenuAndActionHash(visibilityMenu, MenuOption::VisibleToEveryone,
0, discoverabilityManager->getDiscoverabilityMode() == Discoverability::All,
this, SLOT(setVisibility()));
discoverabilityManager.data(), SLOT(setVisibility()));
visibilityGroup->addAction(visibleToEveryone);
QAction* visibleToFriends = addCheckableActionToQMenuAndActionHash(visibilityMenu, MenuOption::VisibleToFriends,
0, discoverabilityManager->getDiscoverabilityMode() == Discoverability::Friends,
this, SLOT(setVisibility()));
discoverabilityManager.data(), SLOT(setVisibility()));
visibilityGroup->addAction(visibleToFriends);
QAction* visibleToNoOne = addCheckableActionToQMenuAndActionHash(visibilityMenu, MenuOption::VisibleToNoOne,
0, discoverabilityManager->getDiscoverabilityMode() == Discoverability::None,
this, SLOT(setVisibility()));
discoverabilityManager.data(), SLOT(setVisibility()));
visibilityGroup->addAction(visibleToNoOne);
connect(discoverabilityManager.data(), &DiscoverabilityManager::discoverabilityModeChanged,
this, &Menu::visibilityChanged);
discoverabilityManager.data(), &DiscoverabilityManager::visibilityChanged);
}
addActionToQMenuAndActionHash(toolsMenu,
@ -963,29 +963,3 @@ bool Menu::menuItemExists(const QString& menu, const QString& menuitem) {
}
return false;
};
void Menu::setVisibility() {
auto discoverabilityManager = DependencyManager::get<DiscoverabilityManager>();
if (Menu::getInstance()->isOptionChecked(MenuOption::VisibleToEveryone)) {
discoverabilityManager->setDiscoverabilityMode(Discoverability::All);
} else if (Menu::getInstance()->isOptionChecked(MenuOption::VisibleToFriends)) {
discoverabilityManager->setDiscoverabilityMode(Discoverability::Friends);
} else if (Menu::getInstance()->isOptionChecked(MenuOption::VisibleToNoOne)) {
discoverabilityManager->setDiscoverabilityMode(Discoverability::None);
} else {
qCDebug(interfaceapp) << "ERROR Menu::setVisibility() called with unrecognized value.";
}
}
void Menu::visibilityChanged(Discoverability::Mode discoverabilityMode) {
if (discoverabilityMode == Discoverability::All) {
setIsOptionChecked(MenuOption::VisibleToEveryone, true);
} else if (discoverabilityMode == Discoverability::Friends) {
setIsOptionChecked(MenuOption::VisibleToFriends, true);
} else if (discoverabilityMode == Discoverability::None) {
setIsOptionChecked(MenuOption::VisibleToNoOne, true);
} else {
qCDebug(interfaceapp) << "ERROR Menu::visibilityChanged() called with unrecognized value.";
}
}

View file

@ -66,9 +66,6 @@ public slots:
bool isOptionChecked(const QString& menuOption) const;
void setIsOptionChecked(const QString& menuOption, bool isChecked);
private slots:
void setVisibility();
private:
static Menu* _instance;
Menu();
@ -99,8 +96,6 @@ private:
int findPositionOfMenuItem(QMenu* menu, const QString& searchMenuItem);
int positionBeforeSeparatorIfNeeded(QMenu* menu, int requestedPosition);
void visibilityChanged(Discoverability::Mode discoverabilityMode);
QHash<QString, QAction*> _actionHash;
};