~ubuntu-branches/ubuntu/precise/plasma-widget-networkmanagement/precise

« back to all changes in this revision

Viewing changes to applet/activatablelistwidget.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2011-03-21 13:52:36 UTC
  • mfrom: (1.1.16 upstream)
  • Revision ID: james.westby@ubuntu.com-20110321135236-mfkytyn2hujfwapm
Tags: 0.9~svngit20110312-0ubuntu1
* New upstream snapshot
* Add build-dep and runtime depends on mobile-broadband-provider-info
* Add =binary version to plasma-widget-networkmanagement depends on knm-runtime

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
// Own
22
22
#include "activatablelistwidget.h"
 
23
#include "wirelessstatus.h"
23
24
 
24
25
// Qt
25
26
#include <QGraphicsLinearLayout>
27
28
// KDE
28
29
#include <KDebug>
29
30
#include <solid/control/networkmanager.h>
 
31
#include <KToolInvocation>
30
32
 
31
33
// Plasma
32
34
#include <Plasma/Label>
47
49
#include "gsminterfaceconnectionitem.h"
48
50
 
49
51
ActivatableListWidget::ActivatableListWidget(RemoteActivatableList* activatables, QGraphicsWidget* parent) : Plasma::ScrollWidget(parent),
 
52
    m_hiddenItem(0),
50
53
    m_activatables(activatables),
51
54
    m_layout(0),
52
55
    m_vpn(false)
171
174
        { // Wireless
172
175
            WirelessNetworkItem* wni = new WirelessNetworkItem(static_cast<RemoteWirelessNetwork*>(activatable), m_widget);
173
176
            ai = wni;
 
177
            QString ssid = wni->ssid();
 
178
            if (m_hiddenConnectionInProgress.contains(ssid)) {
 
179
                kDebug() << "hidden network" << ssid << "appeared, connecting ...";
 
180
                activatable->activate();
 
181
            }
 
182
            m_hiddenConnectionInProgress.removeAll(ssid);
 
183
 
174
184
            break;
175
185
        }
176
186
        case Knm::Activatable::InterfaceConnection:
181
191
        }
182
192
        case Knm::Activatable::HiddenWirelessInterfaceConnection:
183
193
        {
184
 
            ai = new HiddenWirelessNetworkItem(static_cast<RemoteInterfaceConnection*>(activatable), m_widget);
 
194
            kWarning() << "This is handled differently, this codepath should be disabled.";
 
195
            //ai = new HiddenWirelessNetworkItem(static_cast<RemoteInterfaceConnection*>(activatable), m_widget);
185
196
            break;
186
197
        }
187
198
#ifdef COMPILE_MODEM_MANAGER_SUPPORT
205
216
 
206
217
}
207
218
 
 
219
void ActivatableListWidget::createHiddenItem()
 
220
{
 
221
    if (m_hiddenItem) {
 
222
        return;
 
223
    }
 
224
    //HiddenWirelessNetworkItem* ai = 0;
 
225
    m_hiddenItem = new HiddenWirelessNetworkItem(m_widget);
 
226
    Q_ASSERT(m_hiddenItem);
 
227
    m_hiddenItem->setupItem();
 
228
    m_layout->insertItem(1337, m_hiddenItem);
 
229
    //m_itemIndex[activatable] = ai;
 
230
    connect(m_hiddenItem, SIGNAL(disappearAnimationFinished()),
 
231
            this, SLOT(deleteItem()));
 
232
    connect(m_hiddenItem, SIGNAL(connectToHiddenNetwork(const QString&)),
 
233
            this, SLOT(connectToHiddenNetwork(const QString&)));
 
234
}
 
235
 
208
236
void ActivatableListWidget::listAppeared()
209
237
{
 
238
    createHiddenItem(); // TODO: move to end
 
239
 
210
240
    foreach (RemoteActivatable* remote, m_activatables->activatables()) {
211
241
        if (accept(remote)) {
212
242
            createItem(remote);
235
265
        delete item;
236
266
    }
237
267
    m_itemIndex.clear();
 
268
 
 
269
    delete m_hiddenItem;
 
270
    m_hiddenItem = 0;
238
271
}
239
272
 
240
273
void ActivatableListWidget::activatableAdded(RemoteActivatable * added)
245
278
    }
246
279
}
247
280
 
 
281
void ActivatableListWidget::setHasWireless(bool hasWireless)
 
282
{
 
283
    kDebug() << "++++++++++++++" << hasWireless;
 
284
    m_hasWireless = hasWireless;
 
285
    if (hasWireless) {
 
286
        createHiddenItem();
 
287
    } else {
 
288
        delete m_hiddenItem;
 
289
        m_hiddenItem = 0;
 
290
    }
 
291
}
 
292
 
248
293
void ActivatableListWidget::filter()
249
294
{
250
295
    foreach (RemoteActivatable *act, m_activatables->activatables()) {
306
351
    }
307
352
}
308
353
 
 
354
void ActivatableListWidget::connectToHiddenNetwork(const QString &ssid)
 
355
{
 
356
    m_hiddenConnectionInProgress << ssid;
 
357
    QStringList args = QStringList(ssid) << "create";
 
358
    kDebug() << "invoking networkmanagement_configshell" << args;
 
359
    KToolInvocation::kdeinitExec("networkmanagement_configshell", args);
 
360
}
309
361
// vim: sw=4 sts=4 et tw=100