Fix new connections

Preselect specified SSID when creating new wireless connection from menu
pull/1/head
Timothy Pearson 12 years ago
parent 756213b4f9
commit 083f3b3b04

@ -164,6 +164,7 @@ IPv4WidgetImpl::slotIPAddressChanged(const TQString& ip)
{
TDENetworkSingleIPConfiguration adr;
adr.ipAddress = ipadr;
adr.valid = true;
addrs.append(adr);
}
_ipv4_setting->ipConfig.ipConfigurations = addrs;

@ -69,7 +69,7 @@ class NetworkListViewItem : public KListViewItem
WirelessNetwork _net;
};
WirelessWidgetImpl::WirelessWidgetImpl(TDENetworkConnection* conn, bool new_conn, TQWidget* parent, const char* name, WFlags fl)
WirelessWidgetImpl::WirelessWidgetImpl(TDENetworkConnection* conn, bool new_conn, TQByteArray preselect_ssid, TQWidget* parent, const char* name, WFlags fl)
: WidgetInterface(parent, name, fl)
{
_wireless_setting = dynamic_cast<TDEWiFiConnection*>(conn);
@ -77,6 +77,7 @@ WirelessWidgetImpl::WirelessWidgetImpl(TDENetworkConnection* conn, bool new_conn
_security_setting = dynamic_cast<TDEWiFiConnection*>(conn);
_hasName = !_info_setting->friendlyName.isEmpty();
_new_conn = new_conn;
_preselect_ssid = preselect_ssid;
TQVBoxLayout* layout = new TQVBoxLayout(this, 1, 1);
_mainWid = new ConnectionSettingWirelessWidget(this);
@ -125,6 +126,20 @@ WirelessWidgetImpl::Activate()
// FIXME, if essid contains unprintable characters show the essid in hex
_mainWid->txtEssid->setText(_wireless_setting->SSID);
if (!_preselect_ssid.isNull()) {
TQListViewItemIterator it(_mainWid->lvEssids);
while (it.current()) {
NetworkListViewItem* item = dynamic_cast<NetworkListViewItem*>(it.current());
if (item) {
if (item->_net.getSsid() == _preselect_ssid) {
_mainWid->lvEssids->setSelected(item, true);
slotEssidChanged(item);
}
}
++it;
}
}
}
void WirelessWidgetImpl::slotEssidChanged(TQListViewItem* item)

@ -47,7 +47,7 @@ namespace ConnectionSettings
Q_OBJECT
public:
WirelessWidgetImpl(TDENetworkConnection* conn, bool new_conn, TQWidget* parent = 0, const char* name = 0, WFlags fl = 0);
WirelessWidgetImpl(TDENetworkConnection* conn, bool new_conn, TQByteArray preselect_ssid = TQByteArray(), TQWidget* parent = 0, const char* name = 0, WFlags fl = 0);
void Activate();
@ -69,6 +69,7 @@ namespace ConnectionSettings
ConnectionSettingWirelessWidget* _mainWid;
KListViewSearchLineWidget* _searchLine;
bool _new_conn;
TQByteArray _preselect_ssid;
};
}
#endif /* KNETWORKMANAGER_CONNECTION_SETTING_WIRELESS_WIDGET_H*/

@ -36,6 +36,7 @@
#include <kiconloader.h>
#include <kdebug.h>
#include <kpushbutton.h>
#include <klocale.h>
// TQt DBus headers
#include <tqdbuserror.h>
@ -55,15 +56,13 @@
#include "tdenetman-wireless_network.h"
#include "tdenetman-wireless_manager.h"
char use_new_wireless_essid = 0;
TQByteArray new_wireless_essid;
using namespace ConnectionSettings;
ConnectionSettingsDialogImpl::ConnectionSettingsDialogImpl(TDENetworkConnection* conn, bool new_conn, TQWidget* parent, const char* name, bool modal, WFlags fl)
ConnectionSettingsDialogImpl::ConnectionSettingsDialogImpl(TDENetworkConnection* conn, bool new_conn, TQByteArray networkextid, TQWidget* parent, const char* name, bool modal, WFlags fl)
: ConnectionSettingsDialog(parent, name, modal, fl)
, _conn(conn)
, _new_conn(new_conn)
, _networkextid(networkextid)
{
updateDialogForDeviceType();
@ -115,17 +114,17 @@ ConnectionSettingsDialogImpl::createWidgetsForWirelessKnownESSID(TDENetworkConne
{
TQValueList<WidgetInterface*> ret;
// Set ESSID
// _wireless_setting = dynamic_cast<Wireless*> (conn->getSetting(NM_SETTING_WIRELESS_SETTING_NAME));
// _info_setting = dynamic_cast<Info*> (conn->getSetting(NM_SETTING_CONNECTION_SETTING_NAME));
// _wireless_setting->setEssid(essid);
// if (!_hasName)
// {
// // the connection has no name yet -> just take the essid for it
// _info_setting->setName(essid);
// // Set ESSID
// TDEWiFiConnection* _wireless_setting = dynamic_cast<TDEWiFiConnection*>(conn);
// _wireless_setting->SSID = essid;
// // The connection has no name yet -> just take the essid for it
// _wireless_setting->friendlyName = TQString(essid);
// if (_wireless_setting->friendlyName == "") {
// _wireless_setting->friendlyName = "<" + i18n("hidden") + ">";
// }
// widgetlist for wireless connection
ret.append(new ConnectionSettings::WirelessWidgetImpl(conn, new_conn, essid));
ret.append(new ConnectionSettings::WirelessSecurityWidgetImpl(conn, new_conn));
ret.append(new ConnectionSettings::IPv4WidgetImpl(conn));
ret.append(new ConnectionSettings::InfoWidgetImpl(conn));
@ -210,12 +209,11 @@ ConnectionSettingsDialogImpl::createWidgetsForConnection(TDENetworkConnection* c
TQValueList<WidgetInterface*> widgets;
// TODO: move to a factory class
if (conn->type() == TDENetworkConnectionType::WiFi) {
if (use_new_wireless_essid == 0) {
if (_networkextid.isNull()) {
widgets = createWidgetsForWireless(conn, new_conn);
}
else {
createWidgetsForWirelessKnownESSID(conn, new_conn, new_wireless_essid);
new_wireless_essid = TQByteArray();
widgets = createWidgetsForWirelessKnownESSID(conn, new_conn, _networkextid);
}
}
else if (conn->type() == TDENetworkConnectionType::WiredEthernet) {

@ -50,7 +50,7 @@ class ConnectionSettingsDialogImpl : public ConnectionSettingsDialog
Q_OBJECT
public:
ConnectionSettingsDialogImpl(TDENetworkConnection* conn, bool new_conn, TQWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0);
ConnectionSettingsDialogImpl(TDENetworkConnection* conn, bool new_conn, TQByteArray networkextid = TQByteArray(), TQWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0);
~ConnectionSettingsDialogImpl();
public slots:
@ -82,6 +82,7 @@ class ConnectionSettingsDialogImpl : public ConnectionSettingsDialog
TDENetworkConnection* _conn;
TQValueList<int> _widgetIds;
bool _new_conn;
TQByteArray _networkextid;
};
#endif /* KNETWORKMANAGER_CONNECTION_SETTINGS_DIALOG_H*/

@ -30,7 +30,7 @@
#include <klocale.h>
#include <kiconloader.h>
// TDENM includes
// KNM includes
#include "tdenetman-cellular_device_tray.h"
#include "tdenetman-menuitem.h"
#include "tdenetman-menu_subhead.h"
@ -68,7 +68,7 @@ void CellularDeviceTray::newConnection()
}
// edit the new connection
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, tray(), "connect_something", false, TQt::WDestructiveClose);
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, TQByteArray(), tray(), "connect_something", false, TQt::WDestructiveClose);
dlg->show();
}

@ -159,7 +159,7 @@ void ConnectionEditorImpl::slotNewVPNConnection()
void ConnectionEditorImpl::slotEditNewConnection(TDENetworkConnection* conn)
{
// open a dialog for editing the connection
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, this, "connect_something", false, TQt::WDestructiveClose);
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, TQByteArray(), this, "connect_something", false, TQt::WDestructiveClose);
connect(dlg, TQT_SIGNAL(connectionSaved()), this, TQT_SLOT(slotRefreshConnectionList()));
dlg->show();
}
@ -189,7 +189,7 @@ void ConnectionEditorImpl::slotEditCurrentConnection()
// we need the secrets for editing
nm->loadConnectionSecrets(conn->UUID);
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, false, this, "connect_something", false, TQt::WDestructiveClose);
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, false, TQByteArray(), this, "connect_something", false, TQt::WDestructiveClose);
dlg->show();
// save all connections (if not done already)

@ -85,7 +85,7 @@ NewSecretsDialog::~NewSecretsDialog ()
void NewSecretsDialog::slotDialogEdit()
{
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(_connection, false, Tray::getInstance(), "Edit connection");
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(_connection, false, TQByteArray(), Tray::getInstance(), "Edit connection");
dlg->show();
close();
}
@ -669,13 +669,13 @@ void Tray::updateActiveConnection(TDENetworkConnectionStatus::TDENetworkConnecti
void Tray::slotDeviceAddedNotify(TDENetworkDevice* dev)
{
kdDebug() << "Tray::slotDeviceAddedNotify" << endl;
KNotifyClient::event( winId(), "tdenm-nm-device-added", i18n("New network device %1 found").arg(dev->deviceNode()) );
KNotifyClient::event( winId(), "knm-nm-device-added", i18n("New network device %1 found").arg(dev->deviceNode()) );
}
void Tray::slotDeviceRemovedNotify(TDENetworkDevice* dev)
{
kdDebug() << "Tray::slotDeviceRemovedNotify" << endl;
KNotifyClient::event( winId(), "tdenm-nm-device-removed", i18n("Network device %1 removed").arg(dev->deviceNode()) );
KNotifyClient::event( winId(), "knm-nm-device-removed", i18n("Network device %1 removed").arg(dev->deviceNode()) );
}
void Tray::slotStateChangedNotify(TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags newState, TDENetworkGlobalManagerFlags::TDENetworkGlobalManagerFlags prevState)
@ -684,16 +684,16 @@ void Tray::slotStateChangedNotify(TDENetworkGlobalManagerFlags::TDENetworkGlobal
// change tray icon according to NM's state
if (nm_state & TDENetworkGlobalManagerFlags::EstablishingLink) {
KNotifyClient::event( winId(), "tdenm-nm-connecting", i18n("NetworkManager is connecting") );
KNotifyClient::event( winId(), "knm-nm-connecting", i18n("NetworkManager is connecting") );
}
else if (nm_state & TDENetworkGlobalManagerFlags::Disconnected) {
KNotifyClient::event( winId(), "tdenm-nm-disconnected", i18n("NetworkManager is now disconnected") );
KNotifyClient::event( winId(), "knm-nm-disconnected", i18n("NetworkManager is now disconnected") );
}
else if (nm_state & TDENetworkGlobalManagerFlags::Connected) {
KNotifyClient::event( winId(), "tdenm-nm-connected", i18n("NetworkManager is now connected") );
KNotifyClient::event( winId(), "knm-nm-connected", i18n("NetworkManager is now connected") );
}
else if (nm_state & TDENetworkGlobalManagerFlags::Sleeping) {
KNotifyClient::event( winId(), "tdenm-nm-sleeping", i18n("TDENetworkManager Offline") );
KNotifyClient::event( winId(), "knm-nm-sleeping", i18n("TDENetworkManager Offline") );
}
else if (nm_state & TDENetworkGlobalManagerFlags::Unknown) {
//

@ -44,7 +44,7 @@
#include <tqdbusobjectpath.h>
// TDENM includes
// KNM includes
#include "tdenetman-wired_device_tray.h"
#include "tdenetman-menuitem.h"
#include "tdenetman-menu_subhead.h"
@ -71,7 +71,7 @@ void WiredDeviceTray::newConnection()
nm->loadConnectionAllowedValues(conn);
// edit the new connection
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, tray(), "connect_something", false, TQt::WDestructiveClose);
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, TQByteArray(), tray(), "connect_something", false, TQt::WDestructiveClose);
dlg->show();
}

@ -42,7 +42,7 @@
#include <klocale.h>
#include <knotifyclient.h>
// TDENM includes
// KNM includes
#include "tdenetman-wireless_device_tray.h"
#include "tdenetman-wireless_menuitem.h"
#include "tdenetman-wireless_network.h"
@ -52,9 +52,6 @@
using namespace ConnectionSettings;
extern char use_new_wireless_essid;
extern TQByteArray new_wireless_essid;
class WirelessDeviceTrayPrivate
{
public:
@ -82,6 +79,11 @@ TQStringList WirelessDeviceTray::getToolTipText()
}
void WirelessDeviceTray::newConnection()
{
newConnection(0);
}
void WirelessDeviceTray::newConnection(int id)
{
TDEGlobalNetworkManager* nm = KGlobal::networkManager();
@ -90,8 +92,11 @@ void WirelessDeviceTray::newConnection()
nm->loadConnectionAllowedValues(conn);
// open a dialog for editing the connection
use_new_wireless_essid = 0; // deactivate autofill for now
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, tray(), "connect_something", false, TQt::WDestructiveClose);
char use_new_wireless_essid = 0;
if ((id < 0) && newWirelessPopupSSIDMap.contains(id)) {
use_new_wireless_essid = 1;
}
ConnectionSettingsDialogImpl* dlg = new ConnectionSettingsDialogImpl(conn, true, (use_new_wireless_essid)?newWirelessPopupSSIDMap[id]:TQByteArray(), tray(), "connect_something", false, TQt::WDestructiveClose);
dlg->show();
}
@ -214,7 +219,8 @@ void WirelessDeviceTray::addWirelessNetworks(KPopupMenu* menu)
TQPopupMenu* newpopup = new TQPopupMenu(menu);
uint newnetworkItemsAdded = 0;
TQValueList<WirelessNetwork> newnets = WirelessManager::getWirelessNetworks(0, WirelessNetwork::MATCH_SSID);
newWirelessPopupSSIDMap.clear();
for (TQValueList<WirelessNetwork>::Iterator it = newnets.begin(); it != newnets.end(); ++it)
{
// Only display networks with no existing connnection
@ -229,7 +235,8 @@ void WirelessDeviceTray::addWirelessNetworks(KPopupMenu* menu)
false);
int id = newpopup->insertItem (wirelessNetworkItem, -1, -1);
newpopup->connectItem(id, this, TQT_SLOT(newConnection()));
newWirelessPopupSSIDMap[id] = (*it).getSsid();
newpopup->connectItem(id, this, TQT_SLOT(newConnection(int)));
newnetworkItemsAdded += 1;
}
@ -397,12 +404,12 @@ void WirelessDeviceTray::apPropertyChanged(TDEMACAddress BSSID, TDENetworkAPEven
void WirelessDeviceTray::slotAccessPointAdded(TDENetworkWiFiAPInfo* ap)
{
KNotifyClient::event( tray()->winId(), "tdenm-nm-network-found", i18n("TDENetworkManager New Wireless Network Found") );
KNotifyClient::event( tray()->winId(), "knm-nm-network-found", i18n("TDENetworkManager New Wireless Network Found") );
}
void WirelessDeviceTray::slotAccessPointRemoved(TDEMACAddress)
{
KNotifyClient::event( tray()->winId(), "tdenm-nm-network-gone", i18n("TDENetworkManager Wireless Network Disappeared") );
KNotifyClient::event( tray()->winId(), "knm-nm-network-gone", i18n("TDENetworkManager Wireless Network Disappeared") );
}
void WirelessDeviceTray::tdeHardwareEventHandler(TDEHardwareEvent::TDEHardwareEvent event, TQString)

@ -27,7 +27,7 @@
#ifndef KNETWORKMANAGER_WIRELESS_DEVICE_TRAY_H
#define KNETWORKMANAGER_WIRELESS_DEVICE_TRAY_H
// TDENM includes
// KNM includes
#include "tdenetman.h"
#include "devicetraycomponent.h"
#include "tdenetman-wireless_network.h"
@ -57,8 +57,9 @@ class WirelessDeviceTray : public DeviceTrayComponent
void slotUpdateDeviceState(TDENetworkConnectionStatus::TDENetworkConnectionStatus, TDENetworkConnectionStatus::TDENetworkConnectionStatus, TQString);
void slotCheckActiveAccessPoint();
void newConnection();
protected slots:
void newConnection(int);
protected slots:
void apPropertyChanged(TDEMACAddress BSSID, TDENetworkAPEventType::TDENetworkAPEventType event);
void slotAccessPointAdded(TDENetworkWiFiAPInfo*);
void slotAccessPointRemoved(TDEMACAddress);
@ -74,6 +75,7 @@ class WirelessDeviceTray : public DeviceTrayComponent
TDEWiFiConnection* findMatchingConnection(const WirelessNetwork& net, const TQValueList<TDEWiFiConnection*>& connection);
bool findMatchingNetwork(const TDEWiFiConnection* conn, const TQValueList<WirelessNetwork>& nets, WirelessNetwork& net);
void setPixmapForStates(TDENetworkConnectionStatus::TDENetworkConnectionStatus states, TQString pixmap);
TQMap<int, TQByteArray> newWirelessPopupSSIDMap;
WirelessDeviceTrayPrivate* d;

Loading…
Cancel
Save