Merge lp:~pete-woods/indicator-network/no-aps-when-hotspot-enabled into lp:indicator-network/15.10

Proposed by Pete Woods
Status: Merged
Approved by: Pete Woods
Approved revision: 522
Merged at revision: 506
Proposed branch: lp:~pete-woods/indicator-network/no-aps-when-hotspot-enabled
Merge into: lp:indicator-network/15.10
Prerequisite: lp:~pete-woods/indicator-network/simplify-toggles
Diff against target: 472 lines (+166/-113) (has conflicts)
6 files modified
src/indicator/nmofono/kill-switch.cpp (+49/-27)
src/indicator/nmofono/kill-switch.h (+1/-3)
src/indicator/nmofono/manager-impl.cpp (+71/-70)
src/indicator/nmofono/wifi/wifi-link-impl.cpp (+38/-11)
src/indicator/nmofono/wifi/wifi-link-impl.h (+3/-1)
src/indicator/nmofono/wifi/wifi-link.h (+4/-1)
Text conflict in debian/changelog
To merge this branch: bzr merge lp:~pete-woods/indicator-network/no-aps-when-hotspot-enabled
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Indicator Applet Developers Pending
Review via email: mp+267314@code.launchpad.net

Commit message

Don't show access points when hotspot is enabled

Description of the change

Don't show access points when hotspot is enabled

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/indicator/nmofono/kill-switch.cpp'
--- src/indicator/nmofono/kill-switch.cpp 2015-08-07 09:39:56 +0000
+++ src/indicator/nmofono/kill-switch.cpp 2015-08-07 09:39:56 +0000
@@ -25,11 +25,15 @@
25#include <URfkillInterface.h>25#include <URfkillInterface.h>
26#include <URfkillKillswitchInterface.h>26#include <URfkillKillswitchInterface.h>
2727
28using namespace std;
29
28namespace nmofono30namespace nmofono
29{31{
3032
31class KillSwitch::Private33class KillSwitch::Private: public QObject
32{34{
35 Q_OBJECT
36
33public:37public:
34 enum class DeviceType38 enum class DeviceType
35 {39 {
@@ -43,15 +47,48 @@
43 nfc = 847 nfc = 8
44 };48 };
4549
50 KillSwitch& p;
51
46 std::shared_ptr<OrgFreedesktopURfkillInterface> urfkill;52 std::shared_ptr<OrgFreedesktopURfkillInterface> urfkill;
47 std::shared_ptr<OrgFreedesktopURfkillKillswitchInterface> killSwitch;53 std::shared_ptr<OrgFreedesktopURfkillKillswitchInterface> killSwitch;
4854
49 bool m_flightMode = false;55 bool m_flightMode = false;
56 State m_state = State::not_available;
5057
51 Private(std::shared_ptr<OrgFreedesktopURfkillInterface> urfkill,58 Private(KillSwitch& parent,
59 std::shared_ptr<OrgFreedesktopURfkillInterface> urfkill,
52 std::shared_ptr<OrgFreedesktopURfkillKillswitchInterface> killSwitch)60 std::shared_ptr<OrgFreedesktopURfkillKillswitchInterface> killSwitch)
53 : urfkill(urfkill),61 : p(parent),
62 urfkill(urfkill),
54 killSwitch(killSwitch) {}63 killSwitch(killSwitch) {}
64
65public Q_SLOTS:
66 void setFlightMode(bool flightMode)
67 {
68 if (flightMode == m_flightMode)
69 {
70 return;
71 }
72
73 m_flightMode = flightMode;
74 Q_EMIT p.flightModeChanged(flightMode);
75 }
76
77 void stateChanged()
78 {
79 int stateIndex = killSwitch->state();
80 if (stateIndex >= static_cast<int>(State::first_) &&
81 stateIndex <= static_cast<int>(State::last_))
82 {
83 m_state = static_cast<KillSwitch::State>(stateIndex);
84 }
85 else
86 {
87 m_state = KillSwitch::State::not_available;
88 }
89
90 Q_EMIT p.stateChanged(m_state);
91 }
55};92};
5693
5794
@@ -65,28 +102,17 @@
65 DBusTypes::URFKILL_WIFI_OBJ_PATH,102 DBusTypes::URFKILL_WIFI_OBJ_PATH,
66 systemBus);103 systemBus);
67104
68 connect(urfkill.get(), SIGNAL(FlightModeChanged(bool)), this, SLOT(setFlightMode(bool)));105 d = make_unique<Private>(*this, urfkill, killSwitch);
69 connect(killSwitch.get(), SIGNAL(StateChanged()), this, SIGNAL(stateChanged()));106 d->setFlightMode(urfkill->IsFlightMode());
70107 d->stateChanged();
71 d.reset(new Private(urfkill, killSwitch));108
72109 connect(urfkill.get(), &OrgFreedesktopURfkillInterface::FlightModeChanged, d.get(), &Private::setFlightMode);
73 setFlightMode(urfkill->IsFlightMode());110 connect(killSwitch.get(), &OrgFreedesktopURfkillKillswitchInterface::StateChanged, d.get(), &Private::stateChanged);
74}111}
75112
76KillSwitch::~KillSwitch()113KillSwitch::~KillSwitch()
77{}114{}
78115
79void KillSwitch::setFlightMode(bool flightMode)
80{
81 if (flightMode == d->m_flightMode)
82 {
83 return;
84 }
85
86 d->m_flightMode = flightMode;
87 Q_EMIT flightModeChanged(flightMode);
88}
89
90void116void
91KillSwitch::setBlock(bool block)117KillSwitch::setBlock(bool block)
92{118{
@@ -121,13 +147,7 @@
121147
122KillSwitch::State KillSwitch::state() const148KillSwitch::State KillSwitch::state() const
123{149{
124 int stateIndex = d->killSwitch->state();150 return d->m_state;
125 if (stateIndex >= static_cast<int>(State::first_) &&
126 stateIndex <= static_cast<int>(State::last_))
127 {
128 return static_cast<KillSwitch::State>(stateIndex);
129 }
130 return KillSwitch::State::not_available;
131}151}
132152
133bool KillSwitch::flightMode(bool enable)153bool KillSwitch::flightMode(bool enable)
@@ -154,3 +174,5 @@
154}174}
155175
156}176}
177
178#include "kill-switch.moc"
157179
=== modified file 'src/indicator/nmofono/kill-switch.h'
--- src/indicator/nmofono/kill-switch.h 2015-08-07 09:39:56 +0000
+++ src/indicator/nmofono/kill-switch.h 2015-08-07 09:39:56 +0000
@@ -57,11 +57,9 @@
57 bool isFlightMode();57 bool isFlightMode();
5858
59Q_SIGNALS:59Q_SIGNALS:
60 void stateChanged();60 void stateChanged(State);
61 void flightModeChanged(bool);61 void flightModeChanged(bool);
6262
63private Q_SLOTS:
64 void setFlightMode(bool);
65};63};
6664
67}65}
6866
=== modified file 'src/indicator/nmofono/manager-impl.cpp'
--- src/indicator/nmofono/manager-impl.cpp 2015-08-07 09:39:56 +0000
+++ src/indicator/nmofono/manager-impl.cpp 2015-08-07 09:39:56 +0000
@@ -271,6 +271,69 @@
271 d->updateHasWifi();271 d->updateHasWifi();
272}272}
273273
274bool
275ManagerImpl::wifiEnabled() const
276{
277 return d->m_wifiEnabled;
278}
279
280
281void
282ManagerImpl::setWifiEnabled(bool enabled)
283{
284 if (!d->m_hasWifi)
285 {
286 return;
287 }
288
289 if (d->m_wifiEnabled == enabled)
290 {
291 return;
292 }
293
294 d->setUnstoppableOperationHappening(true);
295 d->m_killSwitch->setBlock(!enabled);
296 d->nm->setWirelessEnabled(enabled);
297 d->setUnstoppableOperationHappening(false);
298}
299
300bool
301ManagerImpl::hotspotEnabled() const
302{
303 return d->m_hotspotManager->enabled();
304}
305
306void
307ManagerImpl::setHotspotEnabled(bool enabled)
308{
309 d->setUnstoppableOperationHappening(true);
310 d->m_hotspotManager->setEnabled(enabled);
311 d->setUnstoppableOperationHappening(false);
312}
313
314void
315ManagerImpl::setFlightMode(bool enabled)
316{
317 if (enabled == d->m_killSwitch->isFlightMode())
318 {
319 return;
320 }
321
322 d->setUnstoppableOperationHappening(true);
323
324 if (!d->m_killSwitch->flightMode(enabled))
325 {
326 qWarning() << "Failed to change flightmode.";
327 }
328 d->setUnstoppableOperationHappening(false);
329}
330
331Manager::FlightModeStatus
332ManagerImpl::flightMode() const
333{
334 return d->m_flightMode;
335}
336
274void337void
275ManagerImpl::nm_properties_changed(const QVariantMap &properties)338ManagerImpl::nm_properties_changed(const QVariantMap &properties)
276{339{
@@ -325,9 +388,16 @@
325 auto dev = make_shared<OrgFreedesktopNetworkManagerDeviceInterface>(388 auto dev = make_shared<OrgFreedesktopNetworkManagerDeviceInterface>(
326 NM_DBUS_SERVICE, path.path(), d->nm->connection());389 NM_DBUS_SERVICE, path.path(), d->nm->connection());
327 if (dev->deviceType() == NM_DEVICE_TYPE_WIFI) {390 if (dev->deviceType() == NM_DEVICE_TYPE_WIFI) {
328 link = make_shared<wifi::WifiLinkImpl>(dev,391 wifi::WifiLink::Ptr tmp = make_shared<wifi::WifiLinkImpl>(dev,
329 d->nm,392 d->nm,
330 d->m_killSwitch);393 d->m_killSwitch);
394
395 // Wire up enabling / disabling AP visibility to the hotspot enabled state
396 tmp->setHideAccessPoints(d->m_hotspotManager->enabled());
397 QObject::connect(d->m_hotspotManager.get(), &HotspotManager::enabledChanged,
398 tmp.get(), &wifi::WifiLink::setHideAccessPoints);
399
400 link = tmp;
331 }401 }
332 } catch (const exception &e) {402 } catch (const exception &e) {
333 qDebug() << __PRETTY_FUNCTION__ << ": failed to create Device proxy for "<< path.path() << ": ";403 qDebug() << __PRETTY_FUNCTION__ << ": failed to create Device proxy for "<< path.path() << ": ";
@@ -345,35 +415,6 @@
345}415}
346416
347417
348void
349ManagerImpl::setFlightMode(bool enabled)
350{
351#ifdef INDICATOR_NETWORK_TRACE_MESSAGES
352 qDebug() << __PRETTY_FUNCTION__ << enabled;
353#endif
354 if (enabled == d->m_killSwitch->isFlightMode())
355 {
356 return;
357 }
358
359 d->setUnstoppableOperationHappening(true);
360
361 if (!d->m_killSwitch->flightMode(enabled))
362 {
363 qWarning() << "Failed to change flightmode.";
364 }
365 d->setUnstoppableOperationHappening(false);
366}
367
368Manager::FlightModeStatus
369ManagerImpl::flightMode() const
370{
371 // - connect to each individual URfkill.Killswitch interface
372 // - make this property to reflect their combined state
373 /// @todo implement flightmode status properly when URfkill gets the flightmode API
374 return d->m_flightMode;
375}
376
377bool418bool
378ManagerImpl::unstoppableOperationHappening() const419ManagerImpl::unstoppableOperationHappening() const
379{420{
@@ -410,32 +451,6 @@
410}451}
411452
412bool453bool
413ManagerImpl::wifiEnabled() const
414{
415 return d->m_wifiEnabled;
416}
417
418
419void
420ManagerImpl::setWifiEnabled(bool enabled)
421{
422 if (!d->m_hasWifi)
423 {
424 return;
425 }
426
427 if (d->m_wifiEnabled == enabled)
428 {
429 return;
430 }
431
432 d->setUnstoppableOperationHappening(true);
433 d->m_killSwitch->setBlock(!enabled);
434 d->nm->setWirelessEnabled(enabled);
435 d->setUnstoppableOperationHappening(false);
436}
437
438bool
439ManagerImpl::roaming() const454ManagerImpl::roaming() const
440{455{
441 for (auto modem : d->m_ofonoLinks) {456 for (auto modem : d->m_ofonoLinks) {
@@ -531,12 +546,6 @@
531}546}
532547
533bool548bool
534ManagerImpl::hotspotEnabled() const
535{
536 return d->m_hotspotManager->enabled();
537}
538
539bool
540ManagerImpl::hotspotStored() const549ManagerImpl::hotspotStored() const
541{550{
542 return d->m_hotspotManager->stored();551 return d->m_hotspotManager->stored();
@@ -561,14 +570,6 @@
561}570}
562571
563void572void
564ManagerImpl::setHotspotEnabled(bool enabled)
565{
566 d->setUnstoppableOperationHappening(true);
567 d->m_hotspotManager->setEnabled(enabled);
568 d->setUnstoppableOperationHappening(false);
569}
570
571void
572ManagerImpl::setHotspotSsid(const QByteArray& ssid)573ManagerImpl::setHotspotSsid(const QByteArray& ssid)
573{574{
574 d->m_hotspotManager->setSsid(ssid);575 d->m_hotspotManager->setSsid(ssid);
575576
=== modified file 'src/indicator/nmofono/wifi/wifi-link-impl.cpp'
--- src/indicator/nmofono/wifi/wifi-link-impl.cpp 2015-08-07 09:39:56 +0000
+++ src/indicator/nmofono/wifi/wifi-link-impl.cpp 2015-08-07 09:39:56 +0000
@@ -76,6 +76,7 @@
76 QString m_name;76 QString m_name;
77 shared_ptr<OrgFreedesktopNetworkManagerConnectionActiveInterface> m_activeConnection;77 shared_ptr<OrgFreedesktopNetworkManagerConnectionActiveInterface> m_activeConnection;
78 bool m_connecting = false;78 bool m_connecting = false;
79 bool m_hideAccessPoints = false;
7980
80 void setStatus(Status status)81 void setStatus(Status status)
81 {82 {
@@ -234,7 +235,7 @@
234 } else {235 } else {
235 m_grouper[k] = make_shared<GroupedAccessPoint>(shap);236 m_grouper[k] = make_shared<GroupedAccessPoint>(shap);
236 }237 }
237 update_grouped();238 update_grouped_access_points();
238 } catch(const exception &e) {239 } catch(const exception &e) {
239 /// @bug dbus-cpp internal logic exploded240 /// @bug dbus-cpp internal logic exploded
240 // If this happens, indicator-network is in an unknown state with no clear way of241 // If this happens, indicator-network is in an unknown state with no clear way of
@@ -271,16 +272,25 @@
271 m_grouper.erase(it);272 m_grouper.erase(it);
272 }273 }
273 }274 }
274 update_grouped();275 update_grouped_access_points();
275 }276 }
276277
277 void update_grouped() {278 void update_grouped_access_points()
278 QSet<AccessPoint::Ptr> new_grouped;279 {
279 for(auto &i : m_grouper) {280 m_groupedAccessPoints.clear();
280 new_grouped.insert(i.second);281 for (auto &i : m_grouper)
281 }282 {
282 m_groupedAccessPoints = new_grouped;283 m_groupedAccessPoints.insert(i.second);
283 Q_EMIT p.accessPointsUpdated(new_grouped);284 }
285
286 if (m_hideAccessPoints)
287 {
288 Q_EMIT p.accessPointsUpdated(QSet<AccessPoint::Ptr>());
289 }
290 else
291 {
292 Q_EMIT p.accessPointsUpdated(m_groupedAccessPoints);
293 }
284 }294 }
285295
286 void state_changed(uint new_state, uint, uint)296 void state_changed(uint new_state, uint, uint)
@@ -288,7 +298,7 @@
288 updateDeviceState(new_state);298 updateDeviceState(new_state);
289 }299 }
290300
291 void kill_switch_updated()301 void kill_switch_updated(KillSwitch::State)
292 {302 {
293 updateDeviceState(m_lastState);303 updateDeviceState(m_lastState);
294 }304 }
@@ -346,8 +356,13 @@
346 return d->m_name;356 return d->m_name;
347}357}
348358
349const QSet<AccessPoint::Ptr>&359QSet<AccessPoint::Ptr>
350WifiLinkImpl::accessPoints() const {360WifiLinkImpl::accessPoints() const {
361 if (d->m_hideAccessPoints)
362 {
363 return QSet<AccessPoint::Ptr>();
364 }
365
351 return d->m_groupedAccessPoints;366 return d->m_groupedAccessPoints;
352}367}
353368
@@ -438,6 +453,18 @@
438 return QDBusObjectPath(d->m_dev->path());453 return QDBusObjectPath(d->m_dev->path());
439}454}
440455
456void
457WifiLinkImpl::setHideAccessPoints(bool hide)
458{
459 if (hide == d->m_hideAccessPoints)
460 {
461 return;
462 }
463
464 d->m_hideAccessPoints = hide;
465 d->update_grouped_access_points();
466}
467
441}468}
442}469}
443470
444471
=== modified file 'src/indicator/nmofono/wifi/wifi-link-impl.h'
--- src/indicator/nmofono/wifi/wifi-link-impl.h 2015-08-07 09:39:56 +0000
+++ src/indicator/nmofono/wifi/wifi-link-impl.h 2015-08-07 09:39:56 +0000
@@ -50,12 +50,14 @@
50 std::uint32_t characteristics() const override;50 std::uint32_t characteristics() const override;
51 Status status() const override;51 Status status() const override;
5252
53 const QSet<AccessPoint::Ptr>& accessPoints() const override;53 QSet<AccessPoint::Ptr> accessPoints() const override;
54 void connect_to(AccessPoint::Ptr accessPoint) override;54 void connect_to(AccessPoint::Ptr accessPoint) override;
55 AccessPoint::Ptr activeAccessPoint() override;55 AccessPoint::Ptr activeAccessPoint() override;
5656
57 QDBusObjectPath device_path() const;57 QDBusObjectPath device_path() const;
5858
59 void setHideAccessPoints(bool) override;
60
59private:61private:
60 struct Private;62 struct Private;
61 std::unique_ptr<Private> d;63 std::unique_ptr<Private> d;
6264
=== modified file 'src/indicator/nmofono/wifi/wifi-link.h'
--- src/indicator/nmofono/wifi/wifi-link.h 2015-04-14 11:20:17 +0000
+++ src/indicator/nmofono/wifi/wifi-link.h 2015-08-07 09:39:56 +0000
@@ -46,13 +46,16 @@
46 virtual ~WifiLink() = default;46 virtual ~WifiLink() = default;
4747
48 Q_PROPERTY(QSet<nmofono::wifi::AccessPoint::Ptr> accessPoints READ accessPoints NOTIFY accessPointsUpdated)48 Q_PROPERTY(QSet<nmofono::wifi::AccessPoint::Ptr> accessPoints READ accessPoints NOTIFY accessPointsUpdated)
49 virtual const QSet<AccessPoint::Ptr>& accessPoints() const = 0;49 virtual QSet<AccessPoint::Ptr> accessPoints() const = 0;
5050
51 virtual void connect_to(AccessPoint::Ptr accessPoint) = 0;51 virtual void connect_to(AccessPoint::Ptr accessPoint) = 0;
5252
53 Q_PROPERTY(nmofono::wifi::AccessPoint::Ptr activeAccessPoint READ activeAccessPoint NOTIFY activeAccessPointUpdated)53 Q_PROPERTY(nmofono::wifi::AccessPoint::Ptr activeAccessPoint READ activeAccessPoint NOTIFY activeAccessPointUpdated)
54 virtual AccessPoint::Ptr activeAccessPoint() = 0;54 virtual AccessPoint::Ptr activeAccessPoint() = 0;
5555
56public Q_SLOTS:
57 virtual void setHideAccessPoints(bool) = 0;
58
56Q_SIGNALS:59Q_SIGNALS:
57 void accessPointsUpdated(const QSet<AccessPoint::Ptr>&);60 void accessPointsUpdated(const QSet<AccessPoint::Ptr>&);
5861

Subscribers

People subscribed via source and target branches