44
46
m_settingsMenu = std::make_shared<Menu>();
47
for (auto link : m_manager->links().get()) {
48
auto wifi_link = std::dynamic_pointer_cast<networking::wifi::Link>(link);
49
m_wifiLink = std::make_shared<WifiLinkItem>(wifi_link);
51
m_actionGroupMerger->add(*m_wifiLink);
52
m_menu->append(*m_wifiLink);
53
m_settingsMenu->append(*m_wifiLink);
55
// just take the first one now.
56
/// @todo multiple links and links()->changed()
49
m_switch = std::make_shared<SwitchItem>(_("Wi-Fi"), "wifi", "enable");
51
/// @todo don't now really care about actully being able to detach the whole
52
/// wifi chipset. on touch devices we always have wifi.
53
if (m_manager->hasWifi().get()) {
54
m_actionGroupMerger->add(*m_switch);
55
m_menu->append(*m_switch);
56
m_settingsMenu->append(*m_switch);
59
m_switch->state().set(m_manager->wifiEnabled().get());
60
m_manager->wifiEnabled().changed().connect([this](bool value) {
61
m_switch->state().set(value);
63
m_switch->activated().connect([this](){
64
if (m_switch->state().get()) {
65
if (!m_manager->enableWifi()) {
66
/// try to work around the switch getting out of state on unity8 side
67
m_switch->state().set(false);
70
if (!m_manager->disableWifi())
71
m_switch->state().set(true);
76
m_manager->links().changed().connect(std::bind(&Private::updateLinks, this));
60
79
m_openWifiSettings = std::make_shared<TextItem>(_("Wi-Fi settings…"), "wifi", "settings");
61
80
m_openWifiSettings->activated().connect([](){
62
81
UrlDispatcher::send("settings:///system/wifi", [](std::string url, bool success){
69
88
m_menu->append(*m_openWifiSettings);
93
// remove all and recreate. we have top 1 now anyway
95
m_actionGroupMerger->remove(*m_wifiLink);
96
m_menu->removeAll(*m_wifiLink);
97
m_settingsMenu->removeAll(*m_wifiLink);
101
for (auto link : m_manager->links().get()) {
102
auto wifi_link = std::dynamic_pointer_cast<networking::wifi::Link>(link);
103
m_wifiLink = std::make_shared<WifiLinkItem>(wifi_link);
105
m_actionGroupMerger->add(*m_wifiLink);
106
m_menu->append(*m_wifiLink);
107
m_settingsMenu->append(*m_wifiLink);
109
// just take the first one