summaryrefslogtreecommitdiffstats
path: root/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-10-17 17:38:53 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-10-17 17:38:53 +0000
commit1e0dd58661c9097fb41218ee7e3515f2d8ba8dac (patch)
treea263b4ad0c1f7fba6013f5d9854db4cb4962df82 /knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp
downloadknetworkmanager8-1e0dd58661c9097fb41218ee7e3515f2d8ba8dac.tar.gz
knetworkmanager8-1e0dd58661c9097fb41218ee7e3515f2d8ba8dac.zip
Add dead-ended knetworkmanager 0.8 source
Add copy of same for knetworkmanager 0.9 starting point git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/knetworkmanager8@1259314 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp')
-rw-r--r--knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp238
1 files changed, 238 insertions, 0 deletions
diff --git a/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp b/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp
new file mode 100644
index 0000000..387d052
--- /dev/null
+++ b/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp
@@ -0,0 +1,238 @@
+/***************************************************************************
+ *
+ * knetworkmanager-tray.cpp - A NetworkManager frontend for KDE
+ *
+ * Copyright (C) 2005, 2006 Novell, Inc.
+ *
+ * Author: Timo Hoenig <[email protected]>, <[email protected]>
+ * Will Stephenson <[email protected]>, <[email protected]>
+ * Valentine Sinitsyn <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ **************************************************************************/
+
+#include <tqevent.h>
+#include <tqvbox.h>
+#include <tqlayout.h>
+#include <tqpushbutton.h>
+#include <tqpixmap.h>
+#include <tqpixmapcache.h>
+#include <tqpainter.h>
+#include <tqstyle.h>
+#include <dcopclient.h>
+#include <kdebug.h>
+#include <kdialogbase.h>
+#include <knotifyclient.h>
+#include <knotifydialog.h>
+#include <klocale.h>
+#include <kstdguiitem.h>
+#include <khelpmenu.h>
+#include <kprocess.h>
+#include <kiconloader.h>
+#include <kconfig.h>
+#include <kmessagebox.h>
+#include <NetworkManager.h>
+
+#include <tqdbusobjectpath.h>
+#include <tqdbuserror.h>
+
+#include "knetworkmanager-wireless_menuitem.h"
+#include "knetworkmanager-wireless_network.h"
+#include "knetworkmanager-connection_setting_info.h"
+#include "knetworkmanager-wireless_connection.h"
+#include "knetworkmanager-nm_proxy.h"
+
+#if !defined(NM_CHECK_VERSION)
+#define NM_CHECK_VERSION(x,y,z) 0
+#endif
+
+using namespace ConnectionSettings;
+
+void WirelessNetworkItem::slotActivate()
+{
+ NMProxy* nm = NMProxy::getInstance();
+ int id;
+ TQT_DBusError err;
+ printf("slotActivate\n\r");
+ if (_dev && nm)
+ {
+ if ( _conn )
+ {
+ kdDebug() << "Activate Connection " << _conn->getObjectPath().data() << " on Device " << _dev->getObjectPath().ascii() << endl;
+#if NM_CHECK_VERSION(0,8,992)
+ if (!nm->ActivateConnectionAsync(id, "org.freedesktop.NetworkManagerUserSettings", _conn->getObjectPath(), TQT_DBusObjectPath(QCString(_dev->getObjectPath())), _conn->getObjectPath(), err))
+#else
+ if (!nm->ActivateConnectionAsync(id, NM_DBUS_SERVICE_USER_SETTINGS, _conn->getObjectPath(), TQT_DBusObjectPath(TQCString(_dev->getObjectPath())), _conn->getObjectPath(), err))
+#endif
+ kdDebug() << "ActivateDevice failed" << endl;
+
+ }
+ else
+ {
+ // TODO: create new connection based upon the network and show the dialog
+ printf("New network support not implemented yet\n\r");
+ }
+ }
+}
+
+
+TQString WirelessNetworkItem::getDisplayText()
+{
+ TQString security = "";
+ if (_net.getWpaFlags() != NM_802_11_AP_SEC_NONE && _net.getRsnFlags() != NM_802_11_AP_SEC_NONE)
+ security = TQString("(%1/%2)").tqarg(i18n("WPA")).tqarg(i18n("RSN"));
+ else if (_net.getWpaFlags() != NM_802_11_AP_SEC_NONE)
+ security = TQString("(%1)").tqarg(i18n("WPA"));
+ else if (_net.getRsnFlags() != NM_802_11_AP_SEC_NONE)
+ security = TQString("(%2)").tqarg(i18n("RSN"));
+
+ Info* info = NULL;
+ if (_conn)
+ info = _conn->getInfoSetting();
+
+ if (info && info->getName() != _net.getDisplaySsid())
+ return TQString("%2/%1 %3").tqarg(TQString::fromUtf8(_net.getDisplaySsid())).tqarg(info->getName()).tqarg(security);
+ else
+ return TQString("%1 %2").tqarg(TQString::fromUtf8(_net.getDisplaySsid())).tqarg(security);
+}
+
+void
+WirelessNetworkItem::paint (TQPainter *p, const TQColorGroup &/*cg*/, bool highlighted, bool /*enabled*/, int x, int y, int w, int h)
+{
+ int spacer = 0;
+ pbarStrength->setTotalSteps (100);
+ pbarStrength->tqsetSizePolicy (TQSizePolicy ((TQSizePolicy::SizeType) 0, (TQSizePolicy::SizeType) 0, 0, 0, pbarStrength->sizePolicy ().hasHeightForWidth ()));
+ pbarStrength->setFixedHeight (_height - 2);
+ pbarStrength->setProgress (_net.getStrength());
+ pbarStrength->setPercentageVisible (false);
+
+ if (highlighted) {
+ p->setPen(parent->tqpalette ().active ().highlightedText ());
+ pbarStrength->setBackgroundMode( TQt::PaletteHighlight, TQt::PaletteHighlight );
+ } else {
+ p->setPen(parent->tqpalette ().active ().text ());
+ }
+ p->drawText (x, y, w, h, AlignLeft | AlignVCenter | DontClip | ShowPrefix, getDisplayText());
+
+ if (_net.isEncrypted()) {
+ TQPixmap pmLock = SmallIcon ("lock", TQIconSet::Automatic);
+ p->drawPixmap (parent->tqsizeHint ().width () - pbarStrength->width () - _space - pmLock.size ().width () - 6, y + _border, pmLock);
+ spacer = pmLock.size ().width () + 4;
+ }
+
+ if (_adhoc) {
+ TQPixmap pmAdHoc = SmallIcon ("system", TQIconSet::Automatic);
+ p->drawPixmap (parent->tqsizeHint ().width () - pbarStrength->width () - _space - pmAdHoc.size ().width () - spacer - 6, y + _border, pmAdHoc);
+ }
+
+ p->drawPixmap (parent->tqsizeHint ().width () - pbarStrength->width () - _space, y +_border, TQPixmap::grabWidget (pbarStrength));
+}
+
+TQSize
+WirelessNetworkItem::tqsizeHint ()
+{
+ return TQSize (_width, _height);
+}
+
+WirelessNetworkItem::WirelessNetworkItem (TQWidget* p, Device* dev, WirelessNetwork& net, WirelessConnection* conn, bool adhoc)
+ : NetworkMenuItem(dev, conn, 0, 0 ), TQCustomMenuItem ()
+{
+ parent = p;
+ _adhoc = adhoc;
+ _net = net;
+ _dev = dev;
+ _conn = conn;
+
+ pbarStrength = new TQProgressBar (this->parent, "pbarStrength");
+ pbarStrength->hide();
+ // TODO make all this neat or at least static
+ /* px between pmLock and pbarStrength */
+ _space = 5;
+
+ /* the following code should not be used as teaching material in any kind */
+ // set the widget height to that of a small icon
+ _widgetHeight = SmallIcon (NULL, TQIconSet::Automatic).height ();
+ // figure out the height of the text
+ _textHeight = kapp->fontMetrics ().size (AlignLeft | AlignVCenter | DontClip | ShowPrefix, _net.getDisplaySsid()).height ();
+ // the item is height of the text plus the default frame width
+ _height = _textHeight + kapp->tqstyle ().tqpixelMetric (TQStyle::PM_DefaultFrameWidth);
+ /* _height needs to be at least the height of a SmallIcon plus a border of one px (top & bottom)*/
+ if (_height < _widgetHeight) {
+ _height = _widgetHeight + 2;
+ }
+
+ /* border required for pmLock and pbarStrength */
+ _border = 1;
+ if (_border == kapp->tqstyle ().tqpixelMetric (TQStyle::PM_DefaultFrameWidth))
+ _border += 2 * kapp->tqstyle ().tqpixelMetric (TQStyle::PM_DefaultFrameWidth);
+ if (_border == 0)
+ _border ++;
+
+ _width = kapp->fontMetrics().size(AlignLeft | AlignVCenter | DontClip | ShowPrefix, getDisplayText()).width(); /* essid */
+ _width += SmallIcon (NULL, TQIconSet::Automatic).width (); /* pmLock */
+ _width += _space; /* pmLock <-> pbarStrength */
+ _width += 100; /* pbarStrength */
+ _width += _space; /* pbarStrength -> contextMenu */
+}
+
+WirelessNetworkItem::WirelessNetworkItem (TQWidget* p, Device* dev, WirelessNetwork& net, bool adhoc)
+ : NetworkMenuItem(dev, NULL, 0, 0 ), TQCustomMenuItem ()
+{
+ parent = p;
+ _adhoc = adhoc;
+ _net = net;
+ _dev = dev;
+
+ pbarStrength = new TQProgressBar (this->parent, "pbarStrength");
+ pbarStrength->hide();
+ // TODO make all this neat or at least static
+ /* px between pmLock and pbarStrength */
+ _space = 5;
+
+ /* the following code should not be used as teaching material in any kind */
+ // set the widget height to that of a small icon
+ _widgetHeight = SmallIcon (NULL, TQIconSet::Automatic).height ();
+ // figure out the height of the text
+ _textHeight = kapp->fontMetrics ().size (AlignLeft | AlignVCenter | DontClip | ShowPrefix, _net.getDisplaySsid()).height ();
+ // the item is height of the text plus the default frame width
+ _height = _textHeight + kapp->tqstyle ().tqpixelMetric (TQStyle::PM_DefaultFrameWidth);
+ /* _height needs to be at least the height of a SmallIcon plus a border of one px (top & bottom)*/
+ if (_height < _widgetHeight) {
+ _height = _widgetHeight + 2;
+ }
+
+ /* border required for pmLock and pbarStrength */
+ _border = 1;
+ if (_border == kapp->tqstyle ().tqpixelMetric (TQStyle::PM_DefaultFrameWidth))
+ _border += 2 * kapp->tqstyle ().tqpixelMetric (TQStyle::PM_DefaultFrameWidth);
+ if (_border == 0)
+ _border ++;
+
+ _width = kapp->fontMetrics().size(AlignLeft | AlignVCenter | DontClip | ShowPrefix, getDisplayText()).width(); /* essid */
+ _width += SmallIcon (NULL, TQIconSet::Automatic).width (); /* pmLock */
+ _width += _space; /* pmLock <-> pbarStrength */
+ _width += 100; /* pbarStrength */
+ _width += _space; /* pbarStrength -> contextMenu */
+}
+
+WirelessNetworkItem::~WirelessNetworkItem ()
+{
+}
+
+
+
+#include "knetworkmanager-wireless_menuitem.moc"