History

Merge pull request #4565 from ctrlaltdavid/20422

CR for #20422 - Add the ability to manage friends via Interface

Brad Davis committed 11 years ago

Commit 605cf192 parents c7540af 349cc3211 files · +198 −50Browse files

Showing the changes to interface/src/Menu.cpp (1 of 11 files). Show all

Unified · Split

interface/src/Menu.cpp+52−0
@@ -152,6 +152,32 @@ Menu::Menu() { · 151 unmodified lines
152 152
153 addActionToQMenuAndActionHash(toolsMenu, MenuOption::Chat, Qt::Key_Backslash,153 addActionToQMenuAndActionHash(toolsMenu, MenuOption::Chat, Qt::Key_Backslash,
154 dialogsManager.data(), SLOT(showIRCLink()));154 dialogsManager.data(), SLOT(showIRCLink()));
155 addActionToQMenuAndActionHash(toolsMenu, MenuOption::AddRemoveFriends, 0,
156 qApp, SLOT(showFriendsWindow()));
157
158 QMenu* visibilityMenu = toolsMenu->addMenu("I Am Visible To");
159 {
160 QActionGroup* visibilityGroup = new QActionGroup(toolsMenu);
161 auto discoverabilityManager = DependencyManager::get<DiscoverabilityManager>();
162
163 QAction* visibleToEveryone = addCheckableActionToQMenuAndActionHash(visibilityMenu, MenuOption::VisibleToEveryone,
164 0, discoverabilityManager->getDiscoverabilityMode() == Discoverability::All,
165 this, SLOT(setVisibility()));
166 visibilityGroup->addAction(visibleToEveryone);
167
168 QAction* visibleToFriends = addCheckableActionToQMenuAndActionHash(visibilityMenu, MenuOption::VisibleToFriends,
169 0, discoverabilityManager->getDiscoverabilityMode() == Discoverability::Friends,
170 this, SLOT(setVisibility()));
171 visibilityGroup->addAction(visibleToFriends);
172
173 QAction* visibleToNoOne = addCheckableActionToQMenuAndActionHash(visibilityMenu, MenuOption::VisibleToNoOne,
174 0, discoverabilityManager->getDiscoverabilityMode() == Discoverability::None,
175 this, SLOT(setVisibility()));
176 visibilityGroup->addAction(visibleToNoOne);
177
178 connect(discoverabilityManager.data(), &DiscoverabilityManager::discoverabilityModeChanged,
179 this, &Menu::visibilityChanged);
180 }
155 181
156 addActionToQMenuAndActionHash(toolsMenu,182 addActionToQMenuAndActionHash(toolsMenu,
157 MenuOption::ToolWindow,183 MenuOption::ToolWindow,
@@ -950,3 +976,29 @@ bool Menu::menuItemExists(const QString& menu, const QString& menuitem) { · 792 unmodified lines
950 }976 }
951 return false;977 return false;
952};978};
979
980void Menu::setVisibility() {
981 auto discoverabilityManager = DependencyManager::get<DiscoverabilityManager>();
982
983 if (Menu::getInstance()->isOptionChecked(MenuOption::VisibleToEveryone)) {
984 discoverabilityManager->setDiscoverabilityMode(Discoverability::All);
985 } else if (Menu::getInstance()->isOptionChecked(MenuOption::VisibleToFriends)) {
986 discoverabilityManager->setDiscoverabilityMode(Discoverability::Friends);
987 } else if (Menu::getInstance()->isOptionChecked(MenuOption::VisibleToNoOne)) {
988 discoverabilityManager->setDiscoverabilityMode(Discoverability::None);
989 } else {
990 qDebug() << "ERROR Menu::setVisibility() called with unrecognized value.";
991 }
992}
993
994void Menu::visibilityChanged(Discoverability::Mode discoverabilityMode) {
995 if (discoverabilityMode == Discoverability::All) {
996 setIsOptionChecked(MenuOption::VisibleToEveryone, true);
997 } else if (discoverabilityMode == Discoverability::Friends) {
998 setIsOptionChecked(MenuOption::VisibleToFriends, true);
999 } else if (discoverabilityMode == Discoverability::None) {
1000 setIsOptionChecked(MenuOption::VisibleToNoOne, true);
1001 } else {
1002 qDebug() << "ERROR Menu::visibilityChanged() called with unrecognized value.";
1003 }
1004}