summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-05-10 10:32:46 (UTC)
committer mickeyl <mickeyl>2005-05-10 10:32:46 (UTC)
commit9bcf6a5112d31ffdc196ebcd22a584c68f9f7b1e (patch) (unidiff)
treea1f50132c3acea6e593fcdc1484798ed237cb157
parent2272a0d2ae787ad50768910ac1c7be59a073031a (diff)
downloadopie-9bcf6a5112d31ffdc196ebcd22a584c68f9f7b1e.zip
opie-9bcf6a5112d31ffdc196ebcd22a584c68f9f7b1e.tar.gz
opie-9bcf6a5112d31ffdc196ebcd22a584c68f9f7b1e.tar.bz2
ignore hostap control interfaces
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ChangeLog1
-rw-r--r--noncore/settings/networksettings/mainwindow/mainwindowimp.cpp8
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 4115a89..d560127 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,285 +1,286 @@
1 2005-??-??Opie 1.2.1 1 2005-??-??Opie 1.2.1
2 2
3 3
4 New Features 4 New Features
5 ------------ 5 ------------
6 * OpieStumbler: Scans WiFi networks using the wireless extension scanning (skyhusker) 6 * OpieStumbler: Scans WiFi networks using the wireless extension scanning (skyhusker)
7 * Opie-Reader: Support for document formats ArriereGo and Reb, add flite output (tim,pohly) 7 * Opie-Reader: Support for document formats ArriereGo and Reb, add flite output (tim,pohly)
8 * Opie-Networksettings: Add support for wlan-ng devices and improve WEP handling (Dirk Opfer) 8 * Opie-Networksettings: Add support for wlan-ng devices and improve WEP handling (Dirk Opfer)
9 9
10 Fixed Bugs 10 Fixed Bugs
11 ---------- 11 ----------
12 * #1476 - Wrong order of application entries in the O-menu (skyhusker) 12 * #1476 - Wrong order of application entries in the O-menu (skyhusker)
13 * #1535- Missing line break and unnecessary location shown with Today-Calendar plugin (deller) 13 * #1535- Missing line break and unnecessary location shown with Today-Calendar plugin (deller)
14 * #1565 - crash-fix in odevice.cpp while scanning the distribution table (deller) 14 * #1565 - crash-fix in odevice.cpp while scanning the distribution table (deller)
15 * #1614 - Make Opie-console start in $HOME instead of / (skyhusker) 15 * #1614 - Make Opie-console start in $HOME instead of / (skyhusker)
16 * n.a.- always show volume and wireless applet popups inside visible screen (deller) 16 * n.a.- always show volume and wireless applet popups inside visible screen (deller)
17 * n.a. - scale O-Menu-Applets appropriately (mickeyl) 17 * n.a. - scale O-Menu-Applets appropriately (mickeyl)
18 * n.a.- libopienet: fix bugs in wireless scanning and setting SSID (skyhusker) 18 * n.a.- libopienet: fix bugs in wireless scanning and setting SSID (skyhusker)
19 * n.a.- Wellenreiter: relax WE version matching test a bit (mickeyl) 19 * n.a.- Wellenreiter: relax WE version matching test a bit (mickeyl)
20 * n.a.- scale BluezApplet appropriately and use larger icons (mickeyl) 20 * n.a.- scale BluezApplet appropriately and use larger icons (mickeyl)
21 * n.a.- memoryapplet: fix crash in memoryapplet on kernels without swap support (seneca cunningham) 21 * n.a.- memoryapplet: fix crash in memoryapplet on kernels without swap support (seneca cunningham)
22 * n.a. - networksettings: ignore hostap control interfaces wifi* (mickeyl)
22 23
23 Internal 24 Internal
24 -------- 25 --------
25 * Make BluezApplet use OTaskbarApplet (mickeyl) 26 * Make BluezApplet use OTaskbarApplet (mickeyl)
26 * Rewrite OFileNotification to use the upcoming inotify interface instead of the deprecated dnotify (mickeyl) 27 * Rewrite OFileNotification to use the upcoming inotify interface instead of the deprecated dnotify (mickeyl)
27 * libopienet: Skip hostap control interfaces 'wifi' and improve robustness in ONetworkInterface (mickeyl) 28 * libopienet: Skip hostap control interfaces 'wifi' and improve robustness in ONetworkInterface (mickeyl)
28 29
29 2005-03-25Opie 1.2.0 30 2005-03-25Opie 1.2.0
30 31
31 Fixed Bugs 32 Fixed Bugs
32 ---------- 33 ----------
33 * #1613 - AdvancedFM - scale toolbar icons appropriately (drw) 34 * #1613 - AdvancedFM - scale toolbar icons appropriately (drw)
34 * #1620 - OFileSelector - show the button on press and not on press on hold (alwin) 35 * #1620 - OFileSelector - show the button on press and not on press on hold (alwin)
35 * #1473 - Opie-Eye - Same as #1620 but we lack a common FileSystem Button class (zecke) 36 * #1473 - Opie-Eye - Same as #1620 but we lack a common FileSystem Button class (zecke)
36 * n.a. - PackageManager - fix bug where messages show up multiple times in install dialog (drw) 37 * n.a. - PackageManager - fix bug where messages show up multiple times in install dialog (drw)
37 * n.a.- make qpeglobal.h include qglobal.h (zecke) 38 * n.a.- make qpeglobal.h include qglobal.h (zecke)
38 39
39 2005-03-20Opie 1.2.0-rc1 40 2005-03-20Opie 1.2.0-rc1
40 41
41 42
42 New Features 43 New Features
43 ------------ 44 ------------
44 * Launcher: Support a static background pixmap (mickeyl) 45 * Launcher: Support a static background pixmap (mickeyl)
45 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl) 46 * LauncherSettings: Choose whether to have a static background pixmap (mickeyl)
46 * PackageManager supports the 'lists_dir' ipkg configuration option (drw) 47 * PackageManager supports the 'lists_dir' ipkg configuration option (drw)
47 * Added hi-res inline images for large resolution devices (drw) 48 * Added hi-res inline images for large resolution devices (drw)
48 * Improved launcher icons for consistency (ar) 49 * Improved launcher icons for consistency (ar)
49 * Datebook: Added plugin system to datebook so holidays and birthdays from contacts may displayed in datebook (alwin) 50 * Datebook: Added plugin system to datebook so holidays and birthdays from contacts may displayed in datebook (alwin)
50 51
51 Fixed Bugs 52 Fixed Bugs
52 ---------- 53 ----------
53 * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers) 54 * #1236 - VCards contained empty home and work address entries causing Palms to crash (eilers)
54 * #1412 - Launcher Settings - fixed default settings for background in Edit tab dialog (drw) 55 * #1412 - Launcher Settings - fixed default settings for background in Edit tab dialog (drw)
55 * #1472 - Opie textedit now check for unsaved changes on ESC key (ljp) 56 * #1472 - Opie textedit now check for unsaved changes on ESC key (ljp)
56 * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke) 57 * #1474 - Implement GUI for Scrollbars on the Left in Appearance (zecke)
57 * #1482 - Fix double '/' in paths (zecke) 58 * #1482 - Fix double '/' in paths (zecke)
58 * #1536 - Autosave of custom locations in opie backup (ar) 59 * #1536 - Autosave of custom locations in opie backup (ar)
59 * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke) 60 * #1539 - Fixed displaying too long path in the delete dialog in opie-eye (zecke)
60 * #1540 - Implemented deletion of DocLnks in opie-eye (zecke) 61 * #1540 - Implemented deletion of DocLnks in opie-eye (zecke)
61 * #1542 - Fixed Todo crash when priority < 1 or > 5 (drw) 62 * #1542 - Fixed Todo crash when priority < 1 or > 5 (drw)
62 * #1550 - Browse for alarm sound start in QPEDIR/sounds/ (zecke) 63 * #1550 - Browse for alarm sound start in QPEDIR/sounds/ (zecke)
63 * #1554 - Fixed Opie-Console name in .desktop file (mickeyl) 64 * #1554 - Fixed Opie-Console name in .desktop file (mickeyl)
64 * #1556 - Start to look for sound files in /opt/QtPalmtop/sounds (zecke) 65 * #1556 - Start to look for sound files in /opt/QtPalmtop/sounds (zecke)
65 * #1558 - Fixed opie-login breaking opie startup (mickeyl) 66 * #1558 - Fixed opie-login breaking opie startup (mickeyl)
66 * #1560 - Fixed Opie-Console picking up the wrong shell (bluelightning) 67 * #1560 - Fixed Opie-Console picking up the wrong shell (bluelightning)
67 * #1570 - Confirmation needed befor Restore a backup and overwrite local data (ar) 68 * #1570 - Confirmation needed befor Restore a backup and overwrite local data (ar)
68 * #1591 - Addressbook sortorder changed by clicking on column 0 (eilers) 69 * #1591 - Addressbook sortorder changed by clicking on column 0 (eilers)
69 * #1599 - Security - change recommendation for opie-multiauth to opie-securityplugin (gints) 70 * #1599 - Security - change recommendation for opie-multiauth to opie-securityplugin (gints)
70 * #1604 - Checkbook crashed on startup (drw) 71 * #1604 - Checkbook crashed on startup (drw)
71 * #1608 - Addressbook crashed after search, which may caused by not initialzed member variable (eilers) 72 * #1608 - Addressbook crashed after search, which may caused by not initialzed member variable (eilers)
72 * #1608 - QueryByExampe-Datediff on SQL database did not worked properly (eilers) 73 * #1608 - QueryByExampe-Datediff on SQL database did not worked properly (eilers)
73 * n.a. - Netsystemtime - fixed UI to prevent error dialog from displaying when it shouldn't, get rid of some compiler warnings (drw) 74 * n.a. - Netsystemtime - fixed UI to prevent error dialog from displaying when it shouldn't, get rid of some compiler warnings (drw)
74 * n.a. - PackageManager - fixed where last package in status file was not shown as installed when it should be (drw) 75 * n.a. - PackageManager - fixed where last package in status file was not shown as installed when it should be (drw)
75 * n.a. - PackageManager - fixed bug where lists_dir was not being honored at startup (drw) 76 * n.a. - PackageManager - fixed bug where lists_dir was not being honored at startup (drw)
76 * n.a. - PackageManager - provided default value for lists_dir when none is entered in configuration dialog (drw) 77 * n.a. - PackageManager - provided default value for lists_dir when none is entered in configuration dialog (drw)
77 * n.a. - OTabWidget - fixed scroll buttons, fix display position of tabs (drw) 78 * n.a. - OTabWidget - fixed scroll buttons, fix display position of tabs (drw)
78 * n.a. - AddressBook - fixed sorting by 'File As' name (drw) 79 * n.a. - AddressBook - fixed sorting by 'File As' name (drw)
79 * n.a. - AddressBook - fixed category handling for 'All' and 'Unfiled' (eilers) 80 * n.a. - AddressBook - fixed category handling for 'All' and 'Unfiled' (eilers)
80 * n.a. - AddressBook - fixed letter picker record selection and sort records afterwards (drw) 81 * n.a. - AddressBook - fixed letter picker record selection and sort records afterwards (drw)
81 82
82 Internal 83 Internal
83 -------- 84 --------
84 * Worked around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl) 85 * Worked around bug in Qt/Embedded 2.3.10: qt_version() returns 231 (mickeyl)
85 * Killed the need for weak symbols in QtE (zecke) 86 * Killed the need for weak symbols in QtE (zecke)
86 * Added optional building libqpe without inline images (mickeyl) 87 * Added optional building libqpe without inline images (mickeyl)
87 * OColorButton - fixed so does not emit a colorSelected signal inside of resizeEvent (drw) 88 * OColorButton - fixed so does not emit a colorSelected signal inside of resizeEvent (drw)
88 89
89 2005-02-03Opie 1.1.9 90 2005-02-03Opie 1.1.9
90 91
91 New Features 92 New Features
92 ------------ 93 ------------
93 * Number of icon columns in Launcher is customizable through Launcher.conf (hrw,zecke,mickeyl) 94 * Number of icon columns in Launcher is customizable through Launcher.conf (hrw,zecke,mickeyl)
94 * Number of icon columns in Launcher is customizable through LauncherSettings (mickeyl) 95 * Number of icon columns in Launcher is customizable through LauncherSettings (mickeyl)
95 * Usability enhancements in OpieIRC (skyhusker) 96 * Usability enhancements in OpieIRC (skyhusker)
96 97
97 Fixed Bugs 98 Fixed Bugs
98 ---------- 99 ----------
99 * #1501 - Fixed bug in todo sql backend (eilers) 100 * #1501 - Fixed bug in todo sql backend (eilers)
100 * #1505 - Added more Swap sizes in memoryapplet (mickeyl) 101 * #1505 - Added more Swap sizes in memoryapplet (mickeyl)
101 * #1525 - Hopefully fixed double alarms and not removing alarms set with the Clock application (zecke) 102 * #1525 - Hopefully fixed double alarms and not removing alarms set with the Clock application (zecke)
102 * #1533 - Security Owner Dialog (shown in case of unsuccessfull authentiacation) wasn't able to display information in non latin1 encoding (zecke) 103 * #1533 - Security Owner Dialog (shown in case of unsuccessfull authentiacation) wasn't able to display information in non latin1 encoding (zecke)
103 * n.a. - Removed hard coded font sizes in a couple of inputmethods (mickeyl) 104 * n.a. - Removed hard coded font sizes in a couple of inputmethods (mickeyl)
104 * n.a. - Removed MediumDlg appearing prior to FirstUsage wizard (i.e. calibration) (mickeyl) 105 * n.a. - Removed MediumDlg appearing prior to FirstUsage wizard (i.e. calibration) (mickeyl)
105 * n.a. - Fixed numerous buglets in OpieIRC (skyhusker) 106 * n.a. - Fixed numerous buglets in OpieIRC (skyhusker)
106 107
107 Internal 108 Internal
108 -------- 109 --------
109 * Added the Qtopia 1.7 SDK macros for quick-apps to easa compilation of 3rd party apps against our headers (mickeyl) 110 * Added the Qtopia 1.7 SDK macros for quick-apps to easa compilation of 3rd party apps against our headers (mickeyl)
110 * You can now use the Opie build system in combination with a OpenEmbedded staging area which makes a nice cross development environment (mickeyl) 111 * You can now use the Opie build system in combination with a OpenEmbedded staging area which makes a nice cross development environment (mickeyl)
111 * Made Opie compilable with Qt/Embedded 2.3.10 (ar) 112 * Made Opie compilable with Qt/Embedded 2.3.10 (ar)
112 * Changed Launcher to get default orientation from ODevice w/ QWS_DISPLAY overriding (mickeyl) 113 * Changed Launcher to get default orientation from ODevice w/ QWS_DISPLAY overriding (mickeyl)
113 * Build tree cleanups (mickeyl) 114 * Build tree cleanups (mickeyl)
114 115
115 2004-11-26Opie 1.1.8 116 2004-11-26Opie 1.1.8
116 117
117 New Features 118 New Features
118 ------------ 119 ------------
119 * PackageManager supports installation of local ipkg files (drw) 120 * PackageManager supports installation of local ipkg files (drw)
120 * PackageManager supports linking of applications to root (drw) 121 * PackageManager supports linking of applications to root (drw)
121 * PackageManager supports src/gz feeds (drw,wimpie) 122 * PackageManager supports src/gz feeds (drw,wimpie)
122 * Added a syslog information tab to sysinfo (mickeyl) 123 * Added a syslog information tab to sysinfo (mickeyl)
123 * Added new, more consistent, PIM icons + a GIMP teplate (ar) 124 * Added new, more consistent, PIM icons + a GIMP teplate (ar)
124 125
125 Fixed Bugs 126 Fixed Bugs
126 ---------- 127 ----------
127 * #1017 - Tetrix doesn't display correctly for high resolution screens (drw) 128 * #1017 - Tetrix doesn't display correctly for high resolution screens (drw)
128 * #1269 - VCards were imported into personal area if it was activated (eilers) 129 * #1269 - VCards were imported into personal area if it was activated (eilers)
129 * #1464 - Packagemanager dont set active filter after install a package (drw) 130 * #1464 - Packagemanager dont set active filter after install a package (drw)
130 * #1479 - Improved VCard-Parser to import VCards created by Evolution 2 and Apple Addressbook (eilers) 131 * #1479 - Improved VCard-Parser to import VCards created by Evolution 2 and Apple Addressbook (eilers)
131 * #1493 - Fixed one column layout bug of the launcher (hrw) 132 * #1493 - Fixed one column layout bug of the launcher (hrw)
132 * n.a. - PackageManager - (Minor UI tweak) in filter dialog, when option is enabled, set focus to widget that corresponds to that option (drw) 133 * n.a. - PackageManager - (Minor UI tweak) in filter dialog, when option is enabled, set focus to widget that corresponds to that option (drw)
133 * n.a. - PackageManager - (Minor UI tweak) fix double entry in source feed configuration when adding a new feed (drw) 134 * n.a. - PackageManager - (Minor UI tweak) fix double entry in source feed configuration when adding a new feed (drw)
134 * n.a. - Battery Applet - fix sizing of battery info popup (drw,mickeyl) 135 * n.a. - Battery Applet - fix sizing of battery info popup (drw,mickeyl)
135 136
136 Internal 137 Internal
137 -------- 138 --------
138 * Moved libopie1 to unsupported (mickeyl) 139 * Moved libopie1 to unsupported (mickeyl)
139 * Implemented generic queryByExample() with incremental searching. A lot of internal changes of the Pim2-library (eilers) 140 * Implemented generic queryByExample() with incremental searching. A lot of internal changes of the Pim2-library (eilers)
140 * Added fast and full featured and incremental sorted() for SQL addressbook backend (eilers) 141 * Added fast and full featured and incremental sorted() for SQL addressbook backend (eilers)
141 142
142 2004-11-14Opie 1.1.7 143 2004-11-14Opie 1.1.7
143 144
144 New Features 145 New Features
145 ------------ 146 ------------
146 * libOpieDB now uses SQLite V3 instead V2. Remember to upgrade your database files! (eilers) 147 * libOpieDB now uses SQLite V3 instead V2. Remember to upgrade your database files! (eilers)
147 * Backup now uses the busy indicator when backing up and restore (ar) 148 * Backup now uses the busy indicator when backing up and restore (ar)
148 * OpiePlayer2 gained adding of Directories to the playlist (zecke) 149 * OpiePlayer2 gained adding of Directories to the playlist (zecke)
149 * OpiePlayer2 better error handling (zecke) 150 * OpiePlayer2 better error handling (zecke)
150 * OpiePlayer2 progress indication while streaming (zecke) 151 * OpiePlayer2 progress indication while streaming (zecke)
151 * OpiePlayer2 ported to use libxine 1.0.0-rc6a (brad,zecke) 152 * OpiePlayer2 ported to use libxine 1.0.0-rc6a (brad,zecke)
152 * Ported brightnessapplet from Qtopia 1.7 (mickeyl) 153 * Ported brightnessapplet from Qtopia 1.7 (mickeyl)
153 * Opie-Eye got a Digital Camera File Backend (alwin,zecke) 154 * Opie-Eye got a Digital Camera File Backend (alwin,zecke)
154 * Support for Tuxpad1 of Tradesquare.NL (mickeyl,zecke) 155 * Support for Tuxpad1 of Tradesquare.NL (mickeyl,zecke)
155 * Opie-Console use Custom Font and Size in a Profile (harlekin) 156 * Opie-Console use Custom Font and Size in a Profile (harlekin)
156 * Opie-Console transparently log the Output and Input to a file (harlekin) 157 * Opie-Console transparently log the Output and Input to a file (harlekin)
157 * Added new O-menu icon to lock the PDA immediately: opie-lockapplet (clem) 158 * Added new O-menu icon to lock the PDA immediately: opie-lockapplet (clem)
158 * Opie-Security now hides the plugin-based authentication tabs if no auth. plugin package is installed (clem) 159 * Opie-Security now hides the plugin-based authentication tabs if no auth. plugin package is installed (clem)
159 * Opie-Security gained a 'test authentication' button (clem) 160 * Opie-Security gained a 'test authentication' button (clem)
160 * Opie-Eye got a more unique layout (menubar), a slideshow, user can setup some defaults 161 * Opie-Eye got a more unique layout (menubar), a slideshow, user can setup some defaults
161 * Opie-Mail improve the handling of POP mail boxes (alwin) 162 * Opie-Mail improve the handling of POP mail boxes (alwin)
162 * Both Opie-Eye and Opie-Mail were greatly improved due the hard work of Rajko Albrecht(alwin) 163 * Both Opie-Eye and Opie-Mail were greatly improved due the hard work of Rajko Albrecht(alwin)
163 * Opie IRC - backports of the 'NeIRC fork' (zecke) 164 * Opie IRC - backports of the 'NeIRC fork' (zecke)
164 165
165 Fixed Bugs 166 Fixed Bugs
166 ---------- 167 ----------
167 * #501 - Pickboard is able to show 'Umlaute' (TT,zecke) 168 * #501 - Pickboard is able to show 'Umlaute' (TT,zecke)
168 * #608 - Make Opie usable for left handed users (zecke) 169 * #608 - Make Opie usable for left handed users (zecke)
169 * #957 - Import of VCards/VTodos/VEvents with BASE64 encoding (ljp,zecke) 170 * #957 - Import of VCards/VTodos/VEvents with BASE64 encoding (ljp,zecke)
170 * #1245 - Opie-Go 'paused' (zecke) 171 * #1245 - Opie-Go 'paused' (zecke)
171 * #1358 - DocTab didn't show any MimeTypes (was fixed earlier) (zecke) 172 * #1358 - DocTab didn't show any MimeTypes (was fixed earlier) (zecke)
172 * #1380 - QDateBookAccess::remove() doesn't remove entries (eilers, zecke) 173 * #1380 - QDateBookAccess::remove() doesn't remove entries (eilers, zecke)
173 * #1395 - Build VNC Backend with gcc3.4 174 * #1395 - Build VNC Backend with gcc3.4
174 * #1440 - The icon of opie-mobilemsg is missing (CoreDump) 175 * #1440 - The icon of opie-mobilemsg is missing (CoreDump)
175 * #1426 - Add missing opie-bartender Icon (CoreDump) 176 * #1426 - Add missing opie-bartender Icon (CoreDump)
176 * #1445 - Opie-Sheet Has No Icon (CoreDump) 177 * #1445 - Opie-Sheet Has No Icon (CoreDump)
177 * #1448 - Brightness Applet added (mickeyl) 178 * #1448 - Brightness Applet added (mickeyl)
178 * #1450 - ZSame didn't clear the bonus item after winning a game (zecke) 179 * #1450 - ZSame didn't clear the bonus item after winning a game (zecke)
179 * #1482 - Fix OFileSelector to be able to sort by size (zecke) 180 * #1482 - Fix OFileSelector to be able to sort by size (zecke)
180 * n.a. - Opie-mail: fixed some crasher, some layout-problems 181 * n.a. - Opie-mail: fixed some crasher, some layout-problems
181 * n.a. - Converted applications to not hardcode /opt/QtPalmtop but to use QPEApplication::qpeDir (zecke) 182 * n.a. - Converted applications to not hardcode /opt/QtPalmtop but to use QPEApplication::qpeDir (zecke)
182 * n.a. - Converted usage of qpeDir() not to include a '/' as first charachter of the string (zecke) 183 * n.a. - Converted usage of qpeDir() not to include a '/' as first charachter of the string (zecke)
183 * n.a. - Build system: Enable distcc and ccache when crosscompiling too, and use them everywhere we can (clem) 184 * n.a. - Build system: Enable distcc and ccache when crosscompiling too, and use them everywhere we can (clem)
184 * n.a. - Build system: Fix deps in several config.in (and fix scripts/deps.pl too) to stop breaking builds, especially with make -j highNumber (clem) 185 * n.a. - Build system: Fix deps in several config.in (and fix scripts/deps.pl too) to stop breaking builds, especially with make -j highNumber (clem)
185 * n.a. - Removed hardcoded icon size in a couple of applets (mickeyl) 186 * n.a. - Removed hardcoded icon size in a couple of applets (mickeyl)
186 187
187 Internal 188 Internal
188 -------- 189 --------
189 * Opie-Qashmoney has been moved to unsupported (mickeyl) 190 * Opie-Qashmoney has been moved to unsupported (mickeyl)
190 * Opie-Ubrowser has been moved to unsupported (mickeyl) 191 * Opie-Ubrowser has been moved to unsupported (mickeyl)
191 192
192 2004-09-17Opie 1.1.6 193 2004-09-17Opie 1.1.6
193 194
194 New Features 195 New Features
195 ------------ 196 ------------
196 * Fifteen gained configurable number of items (zecke) 197 * Fifteen gained configurable number of items (zecke)
197 * Fifteen can have custom background images (zecke) 198 * Fifteen can have custom background images (zecke)
198 * Added daemonizing capabilities to QWS Server [via Qt/Embedded] (mickeyl) 199 * Added daemonizing capabilities to QWS Server [via Qt/Embedded] (mickeyl)
199 * Integrated the new security framework into libopie2 (zecke,clem) 200 * Integrated the new security framework into libopie2 (zecke,clem)
200 * Converted the launcher to use the new security framework (zecke) 201 * Converted the launcher to use the new security framework (zecke)
201 * Backup can now handle custom locations for backup and restore (ar) 202 * Backup can now handle custom locations for backup and restore (ar)
202 * Implemented right-on-hold feedback (wimpie,zecke) 203 * Implemented right-on-hold feedback (wimpie,zecke)
203 * Lots of new features in opie-reader (tim,pohly) 204 * Lots of new features in opie-reader (tim,pohly)
204 * Build system cleanups (schurig) 205 * Build system cleanups (schurig)
205 206
206 Fixed Bugs 207 Fixed Bugs
207 -------- 208 --------
208 * #1005 - Fixed backup to CompactFlash (ar) 209 * #1005 - Fixed backup to CompactFlash (ar)
209 * #1167 - Fixed Opie write crashing on more text than one page (ar) 210 * #1167 - Fixed Opie write crashing on more text than one page (ar)
210 * #1225 - Fixed repeated light flashing on Zaurus with keyz (mickeyl) 211 * #1225 - Fixed repeated light flashing on Zaurus with keyz (mickeyl)
211 * #1359 - Fixed bookmarks in Gutenbrowser (ljp) 212 * #1359 - Fixed bookmarks in Gutenbrowser (ljp)
212 * #1361 - Fixed auto upercase in Opie-Addressbook (eilers) 213 * #1361 - Fixed auto upercase in Opie-Addressbook (eilers)
213 * #1370 - Pimconverter now reacts on cancel key (eilers) 214 * #1370 - Pimconverter now reacts on cancel key (eilers)
214 * #1376 - Bring back the capslock/numlock display (zecke) 215 * #1376 - Bring back the capslock/numlock display (zecke)
215 * #1383 - Language settings now warns about losing open apps (Markus Litz) 216 * #1383 - Language settings now warns about losing open apps (Markus Litz)
216 * #1393 - Fixed line wrap issues in opie-console for the default profile (mickeyl) 217 * #1393 - Fixed line wrap issues in opie-console for the default profile (mickeyl)
217 * #1394 - Fixed oversized headline in opie-login (coredump) 218 * #1394 - Fixed oversized headline in opie-login (coredump)
218 * #1396 - Opie-console captures the escape key and vim is working (zecke) 219 * #1396 - Opie-console captures the escape key and vim is working (zecke)
219 * #1401 - Scrollbar is now only visible if necessary in DocTab (mickeyl) 220 * #1401 - Scrollbar is now only visible if necessary in DocTab (mickeyl)
220 221
221 2004-07-06Opie 1.1.4 222 2004-07-06Opie 1.1.4
222 223
223 New Features 224 New Features
224 ------------ 225 ------------
225 * Added four themes courtesy Robert Griebl (http://www.softforge.de/zstyle) 226 * Added four themes courtesy Robert Griebl (http://www.softforge.de/zstyle)
226 * Added Conversion tool for pim-data (eilers) 227 * Added Conversion tool for pim-data (eilers)
227 * Introduced new OPimAccessFactory and OBackendFactory which simplyfies database access (eilers) 228 * Introduced new OPimAccessFactory and OBackendFactory which simplyfies database access (eilers)
228 * Modified the PIM API for providing generic use of OPimRecords (eilers) 229 * Modified the PIM API for providing generic use of OPimRecords (eilers)
229 * Clicking on the application symbol now iterates over the application's top level widgets if already raised (zecke) 230 * Clicking on the application symbol now iterates over the application's top level widgets if already raised (zecke)
230 231
231 Fixed Bugs 232 Fixed Bugs
232 -------- 233 --------
233 * #1068 - Country Drop Down Box Off Screen 234 * #1068 - Country Drop Down Box Off Screen
234 * #1291 - Opie tinykate does not open .desktop files (ar) 235 * #1291 - Opie tinykate does not open .desktop files (ar)
235 * #1291 - Opie sheet not saving correctly (ar) 236 * #1291 - Opie sheet not saving correctly (ar)
236 * #1294 - Opie does not know about British Summer Time 237 * #1294 - Opie does not know about British Summer Time
237 * #1314 - Drawpad initialization (mickeyl) 238 * #1314 - Drawpad initialization (mickeyl)
238 * #1317 - Packagemanager crashes on hold-down or install (chicken) 239 * #1317 - Packagemanager crashes on hold-down or install (chicken)
239 * #1321 - Batteryapplet graphic glitch (harlekin) 240 * #1321 - Batteryapplet graphic glitch (harlekin)
240 * #1324 - ZSafe not starting up (mickeyl) 241 * #1324 - ZSafe not starting up (mickeyl)
241 * #1328 - Personal Home Address fields is trimmed to 1char (eilers) 242 * #1328 - Personal Home Address fields is trimmed to 1char (eilers)
242 * #1327 - Opie-mail ipk does not depend on libopiedb2 (chicken) 243 * #1327 - Opie-mail ipk does not depend on libopiedb2 (chicken)
243 * #1345 - Networksettingsplugin wlan plugin dependency on libpcap0 (mickeyl) 244 * #1345 - Networksettingsplugin wlan plugin dependency on libpcap0 (mickeyl)
244 * #1348 - Datebook dependency on libopiedb2 (chicken) 245 * #1348 - Datebook dependency on libopiedb2 (chicken)
245 * #1328 - Switched SQLDatabase and VCards char encoding from latin1 to unicode (eilers) 246 * #1328 - Switched SQLDatabase and VCards char encoding from latin1 to unicode (eilers)
246 247
247 2004-04-25Opie 1.1.3 248 2004-04-25Opie 1.1.3
248 249
249 * Introduced first implementation of SQL-Support using SQLite (eilers) 250 * Introduced first implementation of SQL-Support using SQLite (eilers)
250 * Added a new Gutenberg Project reader app - opie-gutenbrowser (ljp) 251 * Added a new Gutenberg Project reader app - opie-gutenbrowser (ljp)
251 * Added a real system graffiti character set (brad) 252 * Added a real system graffiti character set (brad)
252 * Added Generic Keyconfig Widget (zecke) 253 * Added Generic Keyconfig Widget (zecke)
253 * Improved Screenshotapplet and Drawpad integration. You can now open a screenshot in drawpad and take notes (zecke) 254 * Improved Screenshotapplet and Drawpad integration. You can now open a screenshot in drawpad and take notes (zecke)
254 * Added new Bible reader app - opie-dagger (drw) 255 * Added new Bible reader app - opie-dagger (drw)
255 * Added a new Image Viewer. Work is ongoing (zecke,alwin) 256 * Added a new Image Viewer. Work is ongoing (zecke,alwin)
256 * Added namespace usage in libopie2 and everywhere (zecke,alwin) 257 * Added namespace usage in libopie2 and everywhere (zecke,alwin)
257 * Enabled the possibility to pass command line arguments to applications (mickeyl) 258 * Enabled the possibility to pass command line arguments to applications (mickeyl)
258 * Added an about applet showing some credits and information about Opie (mickeyl) 259 * Added an about applet showing some credits and information about Opie (mickeyl)
259 * Added benchmarking functionality to sysinfo (mickeyl) 260 * Added benchmarking functionality to sysinfo (mickeyl)
260 * Added applet and configuration application for switching hardware keyboard layouts (alwin) 261 * Added applet and configuration application for switching hardware keyboard layouts (alwin)
261 * Ported applications from libopie1 to libopie2* (drw,ar,alwin) 262 * Ported applications from libopie1 to libopie2* (drw,ar,alwin)
262 * Imported fullscreen and font improvements from the Qkonsole fork to embeddedkonsole (waspe) 263 * Imported fullscreen and font improvements from the Qkonsole fork to embeddedkonsole (waspe)
263 * Clean-up of package information in control files (drw) 264 * Clean-up of package information in control files (drw)
264 * Repaired mediummount which was broken since integrating the quicklauncher (alwin) 265 * Repaired mediummount which was broken since integrating the quicklauncher (alwin)
265 * Improved big-screen support (zecke,ar) 266 * Improved big-screen support (zecke,ar)
266 * Improved multikeyboard support, added keyboard layout switching applet (mouse) 267 * Improved multikeyboard support, added keyboard layout switching applet (mouse)
267 * Added a new mail client based on libetpan (harlekin,alwin,jgf) 268 * Added a new mail client based on libetpan (harlekin,alwin,jgf)
268 * Added new package manager - opie-packagemanager (drw) 269 * Added new package manager - opie-packagemanager (drw)
269 * Improved light-n-power for C7x0 (mickeyl) 270 * Improved light-n-power for C7x0 (mickeyl)
270 * Added automatic rotation support for C7x0 (treke) 271 * Added automatic rotation support for C7x0 (treke)
271 * Split libopie1 up into a set of smaller - functionally grouped - libraries (mickeyl) 272 * Split libopie1 up into a set of smaller - functionally grouped - libraries (mickeyl)
272 * Added scanning the wireless network neighbourhood to networksettings (mickeyl) 273 * Added scanning the wireless network neighbourhood to networksettings (mickeyl)
273 274
274 2003-11-29Opie 1.0.3 275 2003-11-29Opie 1.0.3
275 276
276 * Released as Version 1.0.3 277 * Released as Version 1.0.3
277 * Improved i18n (various contributors) 278 * Improved i18n (various contributors)
278 * Reduced application startup time by integrating the TT quicklauncher (zecke,harlekin) 279 * Reduced application startup time by integrating the TT quicklauncher (zecke,harlekin)
279 * Made the Documents Tab optional (mickeyl) 280 * Made the Documents Tab optional (mickeyl)
280 * Integrated basic support for HP iPAQ 54xx and the Jornada 5xx (chicken) 281 * Integrated basic support for HP iPAQ 54xx and the Jornada 5xx (chicken)
281 282
282 2003-08-04Opie 1.0.0 283 2003-08-04Opie 1.0.0
283 284
284 * Released as Version 1.0.0 285 * Released as Version 1.0.0
285 * Including a PPP module for easy dial up (tille,harlekin,zecke) 286 * Including a PPP module for easy dial up (tille,harlekin,zecke)
diff --git a/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
index 3222e50..a7b0bdc 100644
--- a/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindow/mainwindowimp.cpp
@@ -1,593 +1,595 @@
1 1
2#include "mainwindowimp.h" 2#include "mainwindowimp.h"
3#include "addconnectionimp.h" 3#include "addconnectionimp.h"
4#include "interfaceinformationimp.h" 4#include "interfaceinformationimp.h"
5#include "interfacesetupimp.h" 5#include "interfacesetupimp.h"
6#include "interfaces.h" 6#include "interfaces.h"
7#include "module.h" 7#include "module.h"
8 8
9/* OPIE */ 9/* OPIE */
10#include <opie2/odebug.h> 10#include <opie2/odebug.h>
11#include <opie2/oprocess.h> 11#include <opie2/oprocess.h>
12#include <qpe/applnk.h> 12#include <qpe/applnk.h>
13#include <qpe/qcopenvelope_qws.h> 13#include <qpe/qcopenvelope_qws.h>
14#include <qpe/qpeapplication.h> 14#include <qpe/qpeapplication.h>
15#include <qpe/config.h> 15#include <qpe/config.h>
16#include <qpe/qlibrary.h> 16#include <qpe/qlibrary.h>
17#include <qpe/resource.h> 17#include <qpe/resource.h>
18 18
19/* QT */ 19/* QT */
20#include <qpushbutton.h> 20#include <qpushbutton.h>
21#include <qlistbox.h> 21#include <qlistbox.h>
22#include <qlineedit.h> 22#include <qlineedit.h>
23#include <qlistview.h> 23#include <qlistview.h>
24#include <qheader.h> 24#include <qheader.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qtabwidget.h> // in order to disable the profiles tab 26#include <qtabwidget.h> // in order to disable the profiles tab
27#include <qmessagebox.h> 27#include <qmessagebox.h>
28#include <qtextstream.h> 28#include <qtextstream.h>
29#include <qregexp.h> 29#include <qregexp.h>
30 30
31 31
32#if QT_VERSION < 0x030000 32#if QT_VERSION < 0x030000
33#include <qlist.h> 33#include <qlist.h>
34#else 34#else
35#include <qptrlist.h> 35#include <qptrlist.h>
36#endif 36#endif
37#include <qdir.h> 37#include <qdir.h>
38#include <qfile.h> 38#include <qfile.h>
39#include <qtextstream.h> 39#include <qtextstream.h>
40#include <qregexp.h> 40#include <qregexp.h>
41 41
42/* STD */ 42/* STD */
43#include <net/if.h> 43#include <net/if.h>
44#include <sys/ioctl.h> 44#include <sys/ioctl.h>
45#include <sys/socket.h> 45#include <sys/socket.h>
46 46
47#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme" 47#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme"
48#define _PROCNETDEV "/proc/net/dev" 48#define _PROCNETDEV "/proc/net/dev"
49 49
50// is this always right? 50// is this always right?
51#define _HOSTFILE "/etc/hostname" 51#define _HOSTFILE "/etc/hostname"
52#define _IRDANAME "/proc/sys/net/irda/devname" 52#define _IRDANAME "/proc/sys/net/irda/devname"
53 53
54using namespace Opie::Core; 54using namespace Opie::Core;
55 55
56MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME) 56MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME)
57{ 57{
58 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked())); 58 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
59 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked())); 59 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
60 connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked())); 60 connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
61 connect(configureConnectionButton, SIGNAL(clicked()), this, SLOT(configureClicked())); 61 connect(configureConnectionButton, SIGNAL(clicked()), this, SLOT(configureClicked()));
62 62
63 //remove tab with no function 63 //remove tab with no function
64 tabWidget->removePage( tab ); 64 tabWidget->removePage( tab );
65 65
66 // Load connections. 66 // Load connections.
67 // /usr/local/kde/lib/libinterfaces.la 67 // /usr/local/kde/lib/libinterfaces.la
68 loadModules(QPEApplication::qpeDir() + "plugins/networksettings"); 68 loadModules(QPEApplication::qpeDir() + "plugins/networksettings");
69 getAllInterfaces(); 69 getAllInterfaces();
70 70
71 Interfaces i; 71 Interfaces i;
72 QStringList list = i.getInterfaceList(); 72 QStringList list = i.getInterfaceList();
73 QMap<QString, Interface*>::Iterator it; 73 QMap<QString, Interface*>::Iterator it;
74 for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) 74 for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni )
75 { 75 {
76 /* 76 /*
77 * we skipped it in getAllInterfaces now 77 * we skipped it in getAllInterfaces now
78 * we need to ignore it as well 78 * we need to ignore it as well
79 */ 79 */
80 if (m_handledIfaces.contains( *ni) ) 80 if (m_handledIfaces.contains( *ni) )
81 { 81 {
82 odebug << "Not up iface handled by module" << oendl; 82 odebug << "Not up iface handled by module" << oendl;
83 continue; 83 continue;
84 } 84 }
85 bool found = false; 85 bool found = false;
86 for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ) 86 for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it )
87 { 87 {
88 if(it.key() == (*ni)) 88 if(it.key() == (*ni))
89 found = true; 89 found = true;
90 } 90 }
91 if(!found) 91 if(!found)
92 { 92 {
93 if(!(*ni).contains("_")) 93 if(!(*ni).contains("_"))
94 { 94 {
95 Interface *i = new Interface(this, *ni, false); 95 Interface *i = new Interface(this, *ni, false);
96 i->setAttached(false); 96 i->setAttached(false);
97 i->setHardwareName(tr("Disconnected")); 97 i->setHardwareName(tr("Disconnected"));
98 interfaceNames.insert(i->getInterfaceName(), i); 98 interfaceNames.insert(i->getInterfaceName(), i);
99 updateInterface(i); 99 updateInterface(i);
100 connect(i, SIGNAL(updateInterface(Interface*)), this, SLOT(updateInterface(Interface*))); 100 connect(i, SIGNAL(updateInterface(Interface*)), this, SLOT(updateInterface(Interface*)));
101 } 101 }
102 } 102 }
103 } 103 }
104 104
105 //getInterfaceList(); 105 //getInterfaceList();
106 connectionList->header()->hide(); 106 connectionList->header()->hide();
107 107
108 Config cfg("NetworkSetup"); 108 Config cfg("NetworkSetup");
109 profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All")); 109 profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All"));
110 for ( QStringList::Iterator it = profiles.begin(); 110 for ( QStringList::Iterator it = profiles.begin();
111 it != profiles.end(); ++it) 111 it != profiles.end(); ++it)
112 profilesList->insertItem((*it)); 112 profilesList->insertItem((*it));
113 currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All")); 113 currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
114 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false); 114 advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
115 scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME); 115 scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME);
116 116
117 QFile file(scheme); 117 QFile file(scheme);
118 if ( file.open(IO_ReadOnly) ) 118 if ( file.open(IO_ReadOnly) )
119 { // file opened successfully 119 { // file opened successfully
120 QTextStream stream( &file ); // use a text stream 120 QTextStream stream( &file ); // use a text stream
121 while ( !stream.eof() ) 121 while ( !stream.eof() )
122 { // until end of file... 122 { // until end of file...
123 QString line = stream.readLine(); // line of text excluding '\n' 123 QString line = stream.readLine(); // line of text excluding '\n'
124 if(line.contains("SCHEME")) 124 if(line.contains("SCHEME"))
125 { 125 {
126 line = line.mid(7, line.length()); 126 line = line.mid(7, line.length());
127 currentProfileLabel->setText(line); 127 currentProfileLabel->setText(line);
128 break; 128 break;
129 } 129 }
130 } 130 }
131 file.close(); 131 file.close();
132 } 132 }
133 makeChannel(); 133 makeChannel();
134 initHostname(); 134 initHostname();
135} 135}
136 136
137/** 137/**
138 * Deconstructor. Save profiles. Delete loaded libraries. 138 * Deconstructor. Save profiles. Delete loaded libraries.
139 */ 139 */
140MainWindowImp::~MainWindowImp() 140MainWindowImp::~MainWindowImp()
141{ 141{
142 // Save profiles. 142 // Save profiles.
143 Config cfg("NetworkSetup"); 143 Config cfg("NetworkSetup");
144 cfg.setGroup("General"); 144 cfg.setGroup("General");
145 cfg.writeEntry("Profiles", profiles.join(" ")); 145 cfg.writeEntry("Profiles", profiles.join(" "));
146 146
147 // Delete all interfaces that don't have owners. 147 // Delete all interfaces that don't have owners.
148 QMap<Interface*, QListViewItem*>::Iterator iIt; 148 QMap<Interface*, QListViewItem*>::Iterator iIt;
149 for( iIt = items.begin(); iIt != items.end(); ++iIt ) 149 for( iIt = items.begin(); iIt != items.end(); ++iIt )
150 { 150 {
151 if(iIt.key()->getModuleOwner() == NULL) 151 if(iIt.key()->getModuleOwner() == NULL)
152 delete iIt.key(); 152 delete iIt.key();
153 } 153 }
154 154
155 // Delete Modules and Libraries 155 // Delete Modules and Libraries
156 QMap<Module*, QLibrary*>::Iterator it; 156 QMap<Module*, QLibrary*>::Iterator it;
157 for( it = libraries.begin(); it != libraries.end(); ++it ) 157 for( it = libraries.begin(); it != libraries.end(); ++it )
158 { 158 {
159 delete it.key(); 159 delete it.key();
160 // I wonder why I can't delete the libraries 160 // I wonder why I can't delete the libraries
161 // What fucking shit this is. 161 // What fucking shit this is.
162 //delete it.data(); 162 //delete it.data();
163 } 163 }
164} 164}
165 165
166/** 166/**
167 * Query the kernel for all of the interfaces. 167 * Query the kernel for all of the interfaces.
168 */ 168 */
169void MainWindowImp::getAllInterfaces() 169void MainWindowImp::getAllInterfaces()
170{ 170{
171 int sockfd = socket(PF_INET, SOCK_DGRAM, 0); 171 int sockfd = socket(PF_INET, SOCK_DGRAM, 0);
172 if(sockfd == -1) 172 if(sockfd == -1)
173 return; 173 return;
174 174
175 struct ifreq ifr; 175 struct ifreq ifr;
176 QStringList ifaces; 176 QStringList ifaces;
177 QFile procFile(QString(_PROCNETDEV)); 177 QFile procFile(QString(_PROCNETDEV));
178 int result; 178 int result;
179 Interface *i; 179 Interface *i;
180 180
181 if (! procFile.exists()) 181 if (! procFile.exists())
182 { 182 {
183 struct ifreq ifrs[100]; 183 struct ifreq ifrs[100];
184 struct ifconf ifc; 184 struct ifconf ifc;
185 ifc.ifc_len = sizeof(ifrs); 185 ifc.ifc_len = sizeof(ifrs);
186 ifc.ifc_req = ifrs; 186 ifc.ifc_req = ifrs;
187 result = ioctl(sockfd, SIOCGIFCONF, &ifc); 187 result = ioctl(sockfd, SIOCGIFCONF, &ifc);
188 188
189 for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++) 189 for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++)
190 { 190 {
191 struct ifreq *pifr = &ifrs[i]; 191 struct ifreq *pifr = &ifrs[i];
192 192 if ( !QString( pifr->ifr_name ).startsWith( "wifi" ) ) ifaces += pifr->ifr_name;
193 ifaces += pifr->ifr_name; 193 else odebug << "ignoring hostap control interface " << pifr->ifr_name << oendl;
194 } 194 }
195 } 195 }
196 else 196 else
197 { 197 {
198 procFile.open(IO_ReadOnly); 198 procFile.open(IO_ReadOnly);
199 QString line; 199 QString line;
200 QTextStream procTs(&procFile); 200 QTextStream procTs(&procFile);
201 int loc = -1; 201 int loc = -1;
202 202
203 procTs.readLine(); // eat a line 203 procTs.readLine(); // eat a line
204 procTs.readLine(); // eat a line 204 procTs.readLine(); // eat a line
205 while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) 205 while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null)
206 { 206 {
207 if((loc = line.find(":")) != -1) 207 if((loc = line.find(":")) != -1)
208 { 208 {
209 ifaces += line.left(loc); 209 // ignore wifi* (hostap control interfaces)
210 if ( !line.left(loc).startsWith( "wifi" ) ) ifaces += line.left(loc);
211 else odebug << "ignoring hostap control interface " << line.left(loc) << oendl;
210 } 212 }
211 } 213 }
212 } 214 }
213 215
214 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) 216 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it)
215 { 217 {
216 int flags = 0; 218 int flags = 0;
217 if ( m_handledIfaces.contains( (*it) ) ) 219 if ( m_handledIfaces.contains( (*it) ) )
218 { 220 {
219 odebug << " " << (*it).latin1() << " is handled by a module" << oendl; 221 odebug << " " << (*it).latin1() << " is handled by a module" << oendl;
220 continue; 222 continue;
221 } 223 }
222 // int family; 224 // int family;
223 i = NULL; 225 i = NULL;
224 226
225 strcpy(ifr.ifr_name, (*it).latin1()); 227 strcpy(ifr.ifr_name, (*it).latin1());
226 228
227 struct ifreq ifcopy; 229 struct ifreq ifcopy;
228 ifcopy = ifr; 230 ifcopy = ifr;
229 result = ioctl(sockfd, SIOCGIFFLAGS, &ifcopy); 231 result = ioctl(sockfd, SIOCGIFFLAGS, &ifcopy);
230 flags = ifcopy.ifr_flags; 232 flags = ifcopy.ifr_flags;
231 i = new Interface(this, ifr.ifr_name, false); 233 i = new Interface(this, ifr.ifr_name, false);
232 i->setAttached(true); 234 i->setAttached(true);
233 if ((flags & IFF_UP) == IFF_UP) 235 if ((flags & IFF_UP) == IFF_UP)
234 i->setStatus(true); 236 i->setStatus(true);
235 else 237 else
236 i->setStatus(false); 238 i->setStatus(false);
237 239
238 if ((flags & IFF_BROADCAST) == IFF_BROADCAST) 240 if ((flags & IFF_BROADCAST) == IFF_BROADCAST)
239 i->setHardwareName("Ethernet"); 241 i->setHardwareName("Ethernet");
240 else if ((flags & IFF_POINTOPOINT) == IFF_POINTOPOINT) 242 else if ((flags & IFF_POINTOPOINT) == IFF_POINTOPOINT)
241 i->setHardwareName("Point to Point"); 243 i->setHardwareName("Point to Point");
242 else if ((flags & IFF_MULTICAST) == IFF_MULTICAST) 244 else if ((flags & IFF_MULTICAST) == IFF_MULTICAST)
243 i->setHardwareName("Multicast"); 245 i->setHardwareName("Multicast");
244 else if ((flags & IFF_LOOPBACK) == IFF_LOOPBACK) 246 else if ((flags & IFF_LOOPBACK) == IFF_LOOPBACK)
245 i->setHardwareName("Loopback"); 247 i->setHardwareName("Loopback");
246 else 248 else
247 i->setHardwareName("Unknown"); 249 i->setHardwareName("Unknown");
248 250
249 owarn << "Adding interface " << ifr.ifr_name << " to interfaceNames\n" << oendl; 251 owarn << "Adding interface " << ifr.ifr_name << " to interfaceNames\n" << oendl;
250 interfaceNames.insert(i->getInterfaceName(), i); 252 interfaceNames.insert(i->getInterfaceName(), i);
251 updateInterface(i); 253 updateInterface(i);
252 connect(i, SIGNAL(updateInterface(Interface*)), 254 connect(i, SIGNAL(updateInterface(Interface*)),
253 this, SLOT(updateInterface(Interface*))); 255 this, SLOT(updateInterface(Interface*)));
254 } 256 }
255 // now lets ask the plugins too ;) 257 // now lets ask the plugins too ;)
256 QMap<Module*, QLibrary*>::Iterator it; 258 QMap<Module*, QLibrary*>::Iterator it;
257 QList<Interface> ilist; 259 QList<Interface> ilist;
258 for( it = libraries.begin(); it != libraries.end(); ++it ) 260 for( it = libraries.begin(); it != libraries.end(); ++it )
259 { 261 {
260 if(it.key()) 262 if(it.key())
261 { 263 {
262 ilist = it.key()->getInterfaces(); 264 ilist = it.key()->getInterfaces();
263 for( i = ilist.first(); i != 0; i = ilist.next() ) 265 for( i = ilist.first(); i != 0; i = ilist.next() )
264 { 266 {
265 owarn << "Adding interface " << i->getInterfaceName().latin1() << " to interfaceNames\n" << oendl; 267 owarn << "Adding interface " << i->getInterfaceName().latin1() << " to interfaceNames\n" << oendl;
266 interfaceNames.insert(i->getInterfaceName(), i); 268 interfaceNames.insert(i->getInterfaceName(), i);
267 updateInterface(i); 269 updateInterface(i);
268 connect(i, SIGNAL(updateInterface(Interface*)), 270 connect(i, SIGNAL(updateInterface(Interface*)),
269 this, SLOT(updateInterface(Interface*))); 271 this, SLOT(updateInterface(Interface*)));
270 } 272 }
271 } 273 }
272 } 274 }
273} 275}
274 276
275/** 277/**
276 * Load all modules that are found in the path 278 * Load all modules that are found in the path
277 * @param path a directory that is scaned for any plugins that can be loaded 279 * @param path a directory that is scaned for any plugins that can be loaded
278 * and attempts to load them 280 * and attempts to load them
279 */ 281 */
280void MainWindowImp::loadModules(const QString &path) 282void MainWindowImp::loadModules(const QString &path)
281{ 283{
282#ifdef DEBUG 284#ifdef DEBUG
283 odebug << "MainWindowImp::loadModules: " << path.latin1() << "" << oendl; 285 odebug << "MainWindowImp::loadModules: " << path.latin1() << "" << oendl;
284#endif 286#endif
285 QDir d(path); 287 QDir d(path);
286 if(!d.exists()) 288 if(!d.exists())
287 return; 289 return;
288 290
289 QString lang = ::getenv("LANG"); 291 QString lang = ::getenv("LANG");
290 // Don't want sym links 292 // Don't want sym links
291 d.setFilter( QDir::Files | QDir::NoSymLinks ); 293 d.setFilter( QDir::Files | QDir::NoSymLinks );
292 const QFileInfoList *list = d.entryInfoList(); 294 const QFileInfoList *list = d.entryInfoList();
293 QFileInfoListIterator it( *list ); 295 QFileInfoListIterator it( *list );
294 QFileInfo *fi; 296 QFileInfo *fi;
295 while ( (fi=it.current()) ) 297 while ( (fi=it.current()) )
296 { 298 {
297 if(fi->fileName().contains(".so")) 299 if(fi->fileName().contains(".so"))
298 { 300 {
299 /* if loaded install translation */ 301 /* if loaded install translation */
300 if( loadPlugin(path + "/" + fi->fileName()) != 0l ){ 302 if( loadPlugin(path + "/" + fi->fileName()) != 0l ){
301 QTranslator *trans = new QTranslator(qApp); 303 QTranslator *trans = new QTranslator(qApp);
302 QString fn = QPEApplication::qpeDir()+"i18n/"+lang+"/"+ fi->fileName().left( fi->fileName().find(".") )+".qm"; 304 QString fn = QPEApplication::qpeDir()+"i18n/"+lang+"/"+ fi->fileName().left( fi->fileName().find(".") )+".qm";
303 if( trans->load( fn ) ) 305 if( trans->load( fn ) )
304 qApp->installTranslator( trans ); 306 qApp->installTranslator( trans );
305 else 307 else
306 delete trans; 308 delete trans;
307 } 309 }
308 odebug << "loaded plugin: >" << QString(path + "/" + fi->fileName()).latin1() << "< " << oendl; 310 odebug << "loaded plugin: >" << QString(path + "/" + fi->fileName()).latin1() << "< " << oendl;
309 } 311 }
310 ++it; 312 ++it;
311 } 313 }
312} 314}
313 315
314/** 316/**
315 * Attempt to load a function and resolve a function. 317 * Attempt to load a function and resolve a function.
316 * @param pluginFileName - the name of the file in which to attempt to load 318 * @param pluginFileName - the name of the file in which to attempt to load
317 * @param resolveString - function pointer to resolve 319 * @param resolveString - function pointer to resolve
318 * @return pointer to the function with name resolveString or NULL 320 * @return pointer to the function with name resolveString or NULL
319 */ 321 */
320Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &resolveString) 322Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &resolveString)
321{ 323{
322#ifdef DEBUG 324#ifdef DEBUG
323 odebug << "MainWindowImp::loadPlugin: " << pluginFileName.latin1() << ": resolving " << resolveString.latin1() << "" << oendl; 325 odebug << "MainWindowImp::loadPlugin: " << pluginFileName.latin1() << ": resolving " << resolveString.latin1() << "" << oendl;
324#endif 326#endif
325 QLibrary *lib = new QLibrary(pluginFileName); 327 QLibrary *lib = new QLibrary(pluginFileName);
326 void *functionPointer = lib->resolve(resolveString); 328 void *functionPointer = lib->resolve(resolveString);
327 if( !functionPointer ) 329 if( !functionPointer )
328 { 330 {
329#ifdef DEBUG 331#ifdef DEBUG
330 odebug << "MainWindowImp::loadPlugin: Warning: " << pluginFileName.latin1() << " is not a plugin" << oendl; 332 odebug << "MainWindowImp::loadPlugin: Warning: " << pluginFileName.latin1() << " is not a plugin" << oendl;
331#endif 333#endif
332 delete lib; 334 delete lib;
333 return 0; 335 return 0;
334 } 336 }
335 // Try to get an object. 337 // Try to get an object.
336 Module *object = ((Module* (*)()) functionPointer)(); 338 Module *object = ((Module* (*)()) functionPointer)();
337 if(object == 0) 339 if(object == 0)
338 { 340 {
339#ifdef DEBUG 341#ifdef DEBUG
340 odebug << "MainWindowImp: Couldn't create object, but did load library!" << oendl; 342 odebug << "MainWindowImp: Couldn't create object, but did load library!" << oendl;
341#endif 343#endif
342 delete lib; 344 delete lib;
343 return 0; 345 return 0;
344 } 346 }
345 347
346 m_handledIfaces += object->handledInterfaceNames(); 348 m_handledIfaces += object->handledInterfaceNames();
347 // Store for deletion later 349 // Store for deletion later
348 libraries.insert(object, lib); 350 libraries.insert(object, lib);
349 return object; 351 return object;
350} 352}
351 353
352/** 354/**
353 * The Add button was clicked. Bring up the add dialog and if OK is hit 355 * The Add button was clicked. Bring up the add dialog and if OK is hit
354 * load the plugin and append it to the list 356 * load the plugin and append it to the list
355 */ 357 */
356void MainWindowImp::addClicked() 358void MainWindowImp::addClicked()
357{ 359{
358 QMap<Module*, QLibrary*>::Iterator it; 360 QMap<Module*, QLibrary*>::Iterator it;
359 QMap<QString, QString> list; 361 QMap<QString, QString> list;
360 QMap<QString, Module*> newInterfaceOwners; 362 QMap<QString, Module*> newInterfaceOwners;
361 363
362 for( it = libraries.begin(); it != libraries.end(); ++it ) 364 for( it = libraries.begin(); it != libraries.end(); ++it )
363 { 365 {
364 if(it.key()) 366 if(it.key())
365 { 367 {
366 (it.key())->possibleNewInterfaces(list); 368 (it.key())->possibleNewInterfaces(list);
367 } 369 }
368 } 370 }
369 // See if the list has anything that we can add. 371 // See if the list has anything that we can add.
370 if(list.count() == 0) 372 if(list.count() == 0)
371 { 373 {
372 QMessageBox::information(this, "Sorry", "Nothing to add.", QMessageBox::Ok); 374 QMessageBox::information(this, "Sorry", "Nothing to add.", QMessageBox::Ok);
373 return; 375 return;
374 } 376 }
375 AddConnectionImp addNewConnection(this, "AddConnectionImp", true); 377 AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
376 addNewConnection.addConnections(list); 378 addNewConnection.addConnections(list);
377 if( QDialog::Accepted == QPEApplication::execDialog( &addNewConnection ) ) 379 if( QDialog::Accepted == QPEApplication::execDialog( &addNewConnection ) )
378 { 380 {
379 QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); 381 QListViewItem *item = addNewConnection.registeredServicesList->currentItem();
380 if(!item) 382 if(!item)
381 return; 383 return;
382 384
383 for( it = libraries.begin(); it != libraries.end(); ++it ) 385 for( it = libraries.begin(); it != libraries.end(); ++it )
384 { 386 {
385 if(it.key()) 387 if(it.key())
386 { 388 {
387 Interface *i = (it.key())->addNewInterface(item->text(0)); 389 Interface *i = (it.key())->addNewInterface(item->text(0));
388 if(i) 390 if(i)
389 { 391 {
390 odebug << "iface name " << i->getInterfaceName().latin1() << "" << oendl; 392 odebug << "iface name " << i->getInterfaceName().latin1() << "" << oendl;
391 interfaceNames.insert(i->getInterfaceName(), i); 393 interfaceNames.insert(i->getInterfaceName(), i);
392 updateInterface(i); 394 updateInterface(i);
393 } 395 }
394 } 396 }
395 } 397 }
396 } 398 }
397} 399}
398 400
399/** 401/**
400 * Prompt the user to see if they really want to do this. 402 * Prompt the user to see if they really want to do this.
401 * If they do then remove from the list and unload. 403 * If they do then remove from the list and unload.
402 */ 404 */
403void MainWindowImp::removeClicked() 405void MainWindowImp::removeClicked()
404{ 406{
405 QListViewItem *item = connectionList->currentItem(); 407 QListViewItem *item = connectionList->currentItem();
406 if(!item) 408 if(!item)
407 { 409 {
408 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); 410 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
409 return; 411 return;
410 } 412 }
411 413
412 Interface *i = interfaceItems[item]; 414 Interface *i = interfaceItems[item];
413 if(i->getModuleOwner() == NULL) 415 if(i->getModuleOwner() == NULL)
414 { 416 {
415 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok); 417 QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok);
416 } 418 }
417 else 419 else
418 { 420 {
419 if(!i->getModuleOwner()->remove(i)) 421 if(!i->getModuleOwner()->remove(i))
420 QMessageBox::information(this, tr("Error"), tr("Unable to remove."), QMessageBox::Ok); 422 QMessageBox::information(this, tr("Error"), tr("Unable to remove."), QMessageBox::Ok);
421 else 423 else
422 { 424 {
423 delete item; 425 delete item;
424 // QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok); 426 // QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok);
425 } 427 }
426 } 428 }
427} 429}
428 430
429/** 431/**
430 * Pull up the configure about the currently selected interface. 432 * Pull up the configure about the currently selected interface.
431 * Report an error if no interface is selected. 433 * Report an error if no interface is selected.
432 * If the interface has a module owner then request its configure. 434 * If the interface has a module owner then request its configure.
433 */ 435 */
434void MainWindowImp::configureClicked() 436void MainWindowImp::configureClicked()
435{ 437{
436 QListViewItem *item = connectionList->currentItem(); 438 QListViewItem *item = connectionList->currentItem();
437 if(!item) 439 if(!item)
438 { 440 {
439 QMessageBox::information(this, tr("Sorry"),tr("Please select an interface first."), QMessageBox::Ok); 441 QMessageBox::information(this, tr("Sorry"),tr("Please select an interface first."), QMessageBox::Ok);
440 return; 442 return;
441 } 443 }
442 444
443 QString currentProfileText = currentProfileLabel->text(); 445 QString currentProfileText = currentProfileLabel->text();
444 if(currentProfileText.upper() == "ALL"); 446 if(currentProfileText.upper() == "ALL");
445 currentProfileText = ""; 447 currentProfileText = "";
446 448
447 Interface *i = interfaceItems[item]; 449 Interface *i = interfaceItems[item];
448 450
449 if(i->getModuleOwner()) 451 if(i->getModuleOwner())
450 { 452 {
451 QWidget *moduleConfigure = i->getModuleOwner()->configure(i); 453 QWidget *moduleConfigure = i->getModuleOwner()->configure(i);
452 if(moduleConfigure != NULL) 454 if(moduleConfigure != NULL)
453 { 455 {
454 i->getModuleOwner()->setProfile(currentProfileText); 456 i->getModuleOwner()->setProfile(currentProfileText);
455 QPEApplication::showWidget( moduleConfigure ); 457 QPEApplication::showWidget( moduleConfigure );
456 return; 458 return;
457 } 459 }
458 } 460 }
459 461
460 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose | Qt::WStyle_ContextHelp ); 462 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose | Qt::WStyle_ContextHelp );
461 configure->setProfile(currentProfileText); 463 configure->setProfile(currentProfileText);
462 QPEApplication::showDialog( configure ); 464 QPEApplication::showDialog( configure );
463} 465}
464 466
465/** 467/**
466 * Pull up the information about the currently selected interface. 468 * Pull up the information about the currently selected interface.
467 * Report an error if no interface is selected. 469 * Report an error if no interface is selected.
468 * If the interface has a module owner then request its configure. 470 * If the interface has a module owner then request its configure.
469 */ 471 */
470void MainWindowImp::informationClicked() 472void MainWindowImp::informationClicked()
471{ 473{
472 QListViewItem *item = connectionList->currentItem(); 474 QListViewItem *item = connectionList->currentItem();
473 if(!item) 475 if(!item)
474 { 476 {
475 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); 477 QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
476 return; 478 return;
477 } 479 }
478 480
479 Interface *i = interfaceItems[item]; 481 Interface *i = interfaceItems[item];
480 // if(!i->isAttached()){ 482 // if(!i->isAttached()){
481 // QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok); 483 // QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok);
482 // return; 484 // return;
483 // } 485 // }
484 486
485 if(i->getModuleOwner()) 487 if(i->getModuleOwner())
486 { 488 {
487 QWidget *moduleInformation = i->getModuleOwner()->information(i); 489 QWidget *moduleInformation = i->getModuleOwner()->information(i);
488 if(moduleInformation != NULL) 490 if(moduleInformation != NULL)
489 { 491 {
490 QPEApplication::showWidget( moduleInformation ); 492 QPEApplication::showWidget( moduleInformation );
491#ifdef DEBUG 493#ifdef DEBUG
492 odebug << "MainWindowImp::informationClicked:: Module owner has created, we showed." << oendl; 494 odebug << "MainWindowImp::informationClicked:: Module owner has created, we showed." << oendl;
493#endif 495#endif
494 return; 496 return;
495 } 497 }
496 } 498 }
497 InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog | Qt::WStyle_ContextHelp); 499 InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog | Qt::WStyle_ContextHelp);
498 QPEApplication::showWidget( information ); 500 QPEApplication::showWidget( information );
499} 501}
500 502
501/** 503/**
502 * Update this interface. If no QListViewItem exists create one. 504 * Update this interface. If no QListViewItem exists create one.
503 * @param Interface* pointer to the interface that needs to be updated. 505 * @param Interface* pointer to the interface that needs to be updated.
504 */ 506 */
505void MainWindowImp::updateInterface(Interface *i) 507void MainWindowImp::updateInterface(Interface *i)
506{ 508{
507 if(!advancedUserMode) 509 if(!advancedUserMode)
508 { 510 {
509 if(i->getInterfaceName() == "lo") 511 if(i->getInterfaceName() == "lo")
510 return; 512 return;
511 } 513 }
512 514
513 QListViewItem *item = NULL; 515 QListViewItem *item = NULL;
514 516
515 // Find the interface, making it if needed. 517 // Find the interface, making it if needed.
516 if(items.find(i) == items.end()) 518 if(items.find(i) == items.end())
517 { 519 {
518 item = new QListViewItem(connectionList, "", "", ""); 520 item = new QListViewItem(connectionList, "", "", "");
519 // See if you can't find a module owner for this interface 521 // See if you can't find a module owner for this interface
520 QMap<Module*, QLibrary*>::Iterator it; 522 QMap<Module*, QLibrary*>::Iterator it;
521 for( it = libraries.begin(); it != libraries.end(); ++it ) 523 for( it = libraries.begin(); it != libraries.end(); ++it )
522 { 524 {
523 if(it.key()->isOwner(i)) 525 if(it.key()->isOwner(i))
524 i->setModuleOwner(it.key()); 526 i->setModuleOwner(it.key());
525 } 527 }
526 items.insert(i, item); 528 items.insert(i, item);
527 interfaceItems.insert(item, i); 529 interfaceItems.insert(item, i);
528 } 530 }
529 else 531 else
530 item = items[i]; 532 item = items[i];
531 533
532 // Update the icons and information 534 // Update the icons and information
533#ifdef QWS 535#ifdef QWS
534 QPixmap pic; 536 QPixmap pic;
535 pic.convertFromImage( Resource::loadImage( i->getStatus() ? "up": "down" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) ); 537 pic.convertFromImage( Resource::loadImage( i->getStatus() ? "up": "down" ).smoothScale( AppLnk::smallIconSize(), AppLnk::smallIconSize() ) );
536 item->setPixmap(0, ( pic )); 538 item->setPixmap(0, ( pic ));
537#else 539#else
538 item->setPixmap(0, (SmallIcon(i->getStatus() ? "up": "down"))); 540 item->setPixmap(0, (SmallIcon(i->getStatus() ? "up": "down")));
539#endif 541#endif
540 542
541 QString typeName = "lan"; 543 QString typeName = "lan";
542 if(i->getInterfaceName() == "lo") 544 if(i->getInterfaceName() == "lo")
543 typeName = "lo"; 545 typeName = "lo";
544 if(i->getInterfaceName().contains("irda")) 546 if(i->getInterfaceName().contains("irda"))
545 typeName = "irda"; 547 typeName = "irda";
546 if(i->getInterfaceName().contains("wlan")) 548 if(i->getInterfaceName().contains("wlan"))
547 typeName = "wlan"; 549 typeName = "wlan";
548 if(i->getInterfaceName().contains("usb")) 550 if(i->getInterfaceName().contains("usb"))
549 typeName = "usb"; 551 typeName = "usb";
550 552
551 if(!i->isAttached()) 553 if(!i->isAttached())
552 typeName = "connect_no"; 554 typeName = "connect_no";
553 // Actually try to use the Module 555 // Actually try to use the Module
554 if(i->getModuleOwner() != NULL) 556 if(i->getModuleOwner() != NULL)
555 typeName = i->getModuleOwner()->getPixmapName(i); 557 typeName = i->getModuleOwner()->getPixmapName(i);
556 558
557#ifdef QWS 559#ifdef QWS
558 item->setPixmap(1, (Resource::loadPixmap(QString("networksettings/") + typeName))); 560 item->setPixmap(1, (Resource::loadPixmap(QString("networksettings/") + typeName)));
559#else 561#else
560 item->setPixmap(1, (SmallIcon(typeName))); 562 item->setPixmap(1, (SmallIcon(typeName)));
561#endif 563#endif
562 item->setText(2, i->getHardwareName()); 564 item->setText(2, i->getHardwareName());
563 item->setText(3, QString("(%1)").arg(i->getInterfaceName())); 565 item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
564 item->setText(4, (i->getStatus()) ? i->getIp() : QString("")); 566 item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
565} 567}
566 568
567void MainWindowImp::newProfileChanged(const QString& newText) 569void MainWindowImp::newProfileChanged(const QString& newText)
568{ 570{
569 if(newText.length() > 0) 571 if(newText.length() > 0)
570 newProfileButton->setEnabled(true); 572 newProfileButton->setEnabled(true);
571 else 573 else
572 newProfileButton->setEnabled(false); 574 newProfileButton->setEnabled(false);
573} 575}
574 576
575/** 577/**
576 * Adds a new profile to the list of profiles. 578 * Adds a new profile to the list of profiles.
577 * Don't add profiles that already exists. 579 * Don't add profiles that already exists.
578 * Appends to the list and QStringList 580 * Appends to the list and QStringList
579 */ 581 */
580void MainWindowImp::addProfile() 582void MainWindowImp::addProfile()
581{ 583{
582 QString newProfileName = newProfile->text(); 584 QString newProfileName = newProfile->text();
583 if(profiles.grep(newProfileName).count() > 0) 585 if(profiles.grep(newProfileName).count() > 0)
584 { 586 {
585 QMessageBox::information(this, "Can't Add","Profile already exists.", QMessageBox::Ok); 587 QMessageBox::information(this, "Can't Add","Profile already exists.", QMessageBox::Ok);
586 return; 588 return;
587 } 589 }
588 profiles.append(newProfileName); 590 profiles.append(newProfileName);
589 profilesList->insertItem(newProfileName); 591 profilesList->insertItem(newProfileName);
590} 592}
591 593
592/** 594/**
593 * Removes the currently selected profile in the combo. 595 * Removes the currently selected profile in the combo.