summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2005-07-02 12:59:06 (UTC)
committer mickeyl <mickeyl>2005-07-02 12:59:06 (UTC)
commit5d0de3e1d8815820cd6841e62c737b42f7fb5354 (patch) (unidiff)
treeacfd3141cd487c068492ca254dce8f9e1b6ecf5b
parent094e14624d99d521af6cfc875abafcdc550a7378 (diff)
downloadopie-5d0de3e1d8815820cd6841e62c737b42f7fb5354.zip
opie-5d0de3e1d8815820cd6841e62c737b42f7fb5354.tar.gz
opie-5d0de3e1d8815820cd6841e62c737b42f7fb5354.tar.bz2
SysInfo:
- add pcmcia device node detail view - add input device node detail view - grab preferred fixed font for syslog from qpe.conf - slightly adjust tree/detail widget space ratio
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/devicesinfo.cpp79
-rw-r--r--noncore/settings/sysinfo/devicesinfo.h6
-rw-r--r--noncore/settings/sysinfo/sysinfo.pro2
-rw-r--r--noncore/settings/sysinfo/sysloginfo.cpp6
-rw-r--r--noncore/settings/sysinfo/sysloginfo.h4
5 files changed, 81 insertions, 16 deletions
diff --git a/noncore/settings/sysinfo/devicesinfo.cpp b/noncore/settings/sysinfo/devicesinfo.cpp
index 4940286..76c9b79 100644
--- a/noncore/settings/sysinfo/devicesinfo.cpp
+++ b/noncore/settings/sysinfo/devicesinfo.cpp
@@ -1,259 +1,262 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> 3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org> 4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5          .>+-= 5          .>+-=
6_;:,     .>    :=|. This program is free software; you can 6_;:,     .>    :=|. This program is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under 7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public 8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software 9.="- .-=="i,     .._ License as published by the Free Software
10- .   .-<_>     .<> Foundation; version 2 of the License. 10- .   .-<_>     .<> Foundation; version 2 of the License.
11    ._= =}       : 11    ._= =}       :
12   .%`+i>       _;_. 12   .%`+i>       _;_.
13   .i_,=:_.      -<s. This program is distributed in the hope that 13   .i_,=:_.      -<s. This program is distributed in the hope that
14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15   : ..    .:,     . . . without even the implied warranty of 15   : ..    .:,     . . . without even the implied warranty of
16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
18..}^=.=       =       ; General Public License for more 18..}^=.=       =       ; General Public License for more
19++=   -.     .`     .: details. 19++=   -.     .`     .: details.
20:     =  ...= . :.=- 20:     =  ...= . :.=-
21-.   .:....=;==+<; You should have received a copy of the GNU 21-.   .:....=;==+<; You should have received a copy of the GNU
22 -_. . .   )=.  = General Public License along with 22 -_. . .   )=.  = General Public License along with
23   --        :-=` this application; see the file LICENSE.GPL. 23   --        :-=` this application; see the file LICENSE.GPL.
24 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27*/ 27*/
28 28
29#include "devicesinfo.h" 29#include "devicesinfo.h"
30/* OPIE */ 30/* OPIE */
31#include <opie2/odebug.h> 31#include <opie2/odebug.h>
32#include <opie2/oinputsystem.h> 32#include <opie2/oinputsystem.h>
33#include <opie2/opcmciasystem.h> 33#include <opie2/opcmciasystem.h>
34#include <opie2/olayout.h> 34#include <opie2/olayout.h>
35#include <opie2/olistview.h> 35#include <opie2/olistview.h>
36#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37using namespace Opie::Core; 37using namespace Opie::Core;
38using namespace Opie::Ui; 38using namespace Opie::Ui;
39 39
40/* QT */ 40/* QT */
41#include <qobjectlist.h> 41#include <qobjectlist.h>
42#include <qlistview.h> 42#include <qlistview.h>
43#include <qcombobox.h> 43#include <qcombobox.h>
44#include <qfile.h> 44#include <qfile.h>
45#include <qpushbutton.h> 45#include <qpushbutton.h>
46#include <qstringlist.h>
46#include <qtextstream.h> 47#include <qtextstream.h>
47#include <qtextview.h> 48#include <qtextview.h>
48#include <qtimer.h> 49#include <qtimer.h>
49#include <qwhatsthis.h> 50#include <qwhatsthis.h>
50 51
51//================================================================================================= 52//=================================================================================================
52DevicesView::DevicesView( QWidget* parent, const char* name, WFlags fl ) 53DevicesView::DevicesView( QWidget* parent, const char* name, WFlags fl )
53 :Opie::Ui::OListView( parent, name, fl ) 54 :Opie::Ui::OListView( parent, name, fl )
54{ 55{
55 addColumn( tr( "My Computer" ) ); 56 addColumn( tr( "My Computer" ) );
56 setAllColumnsShowFocus( true ); 57 setAllColumnsShowFocus( true );
57 setRootIsDecorated( true ); 58 setRootIsDecorated( true );
58 QWhatsThis::add( this, tr( "This is a list of all the devices currently recognized on this device." ) ); 59 QWhatsThis::add( this, tr( "This is a list of all the devices currently recognized on this device." ) );
59 60
60 DevicesView* root = this; 61 DevicesView* root = this;
61 ( new CpuCategory( root ) )->populate(); 62 ( new CpuCategory( root ) )->populate();
62 ( new InputCategory( root ) )->populate(); 63 ( new InputCategory( root ) )->populate();
63 ( new CardsCategory( root ) )->populate(); 64 ( new CardsCategory( root ) )->populate();
64 ( new UsbCategory( root ) )->populate(); 65 ( new UsbCategory( root ) )->populate();
65 66
66 connect( this, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(selectionChanged(QListViewItem*)) ); 67 connect( this, SIGNAL(selectionChanged(QListViewItem*)), this, SLOT(selectionChanged(QListViewItem*)) );
67} 68}
68 69
69DevicesView::~DevicesView() 70DevicesView::~DevicesView()
70{ 71{
71} 72}
72 73
73 74
74void DevicesView::selectionChanged( QListViewItem* item ) 75void DevicesView::selectionChanged( QListViewItem* item )
75{ 76{
76 odebug << "DevicesView::selectionChanged to '" << item->text( 0 ) << "'" << oendl; 77 odebug << "DevicesView::selectionChanged to '" << item->text( 0 ) << "'" << oendl;
77 if ( item->parent() ) 78 if ( item->parent() )
78 { 79 {
79 QWidget* details = ( static_cast<Device*>( item ) )->detailsWidget(); 80 QWidget* details = ( static_cast<Device*>( item ) )->detailsWidget();
80 ( static_cast<DevicesInfo*>( parent() ) )->setDetailsWidget( details ); 81 ( static_cast<DevicesInfo*>( parent() ) )->setDetailsWidget( details );
81 } 82 }
82 else 83 else
83 { 84 {
84 odebug << "DevicesView::not a device node." << oendl; 85 odebug << "DevicesView::not a device node." << oendl;
85 } 86 }
86} 87}
87 88
88 89
89//================================================================================================= 90//=================================================================================================
90DevicesInfo::DevicesInfo( QWidget* parent, const char* name, WFlags fl ) 91DevicesInfo::DevicesInfo( QWidget* parent, const char* name, WFlags fl )
91 :QWidget( parent, name, fl ), details( 0 ) 92 :QWidget( parent, name, fl ), details( 0 )
92{ 93{
93 layout = new OAutoBoxLayout( this ); 94 layout = new OAutoBoxLayout( this );
94 layout->setSpacing( 2 ); 95 layout->setSpacing( 2 );
95 layout->setMargin( 2 ); 96 layout->setMargin( 2 );
96 view = new DevicesView( this ); 97 view = new DevicesView( this );
97 layout->addWidget( view, 100 ); 98 layout->addWidget( view, 100 );
98 stack = new QWidgetStack( this ); 99 stack = new QWidgetStack( this );
99 layout->addWidget( stack, 70 ); 100 layout->addWidget( stack, 80 );
100} 101}
101 102
102 103
103DevicesInfo::~DevicesInfo() 104DevicesInfo::~DevicesInfo()
104{ 105{
105} 106}
106 107
107 108
108void DevicesInfo::setDetailsWidget( QWidget* w ) 109void DevicesInfo::setDetailsWidget( QWidget* w )
109{ 110{
110 if ( details ) 111 if ( details )
111 { 112 {
112 qDebug( "hiding widget '%s' ('%s')", details->name(), details->className() ); 113 qDebug( "hiding widget '%s' ('%s')", details->name(), details->className() );
113 stack->removeWidget( w ); 114 stack->removeWidget( w );
114 } 115 }
115 116
116 stack->addWidget( details = w, 40 ); 117 stack->addWidget( details = w, 40 );
117 stack->raiseWidget( details ); 118 stack->raiseWidget( details );
118} 119}
119 120
120 121
121//================================================================================================= 122//=================================================================================================
122Category::Category( DevicesView* parent, const QString& name ) 123Category::Category( DevicesView* parent, const QString& name )
123 :OListViewItem( parent, name ) 124 :OListViewItem( parent, name )
124{ 125{
125 odebug << "Category '" << name << "' inserted. Scanning for devices..." << oendl; 126 odebug << "Category '" << name << "' inserted. Scanning for devices..." << oendl;
126} 127}
127 128
128Category::~Category() 129Category::~Category()
129{ 130{
130} 131}
131 132
132//================================================================================================= 133//=================================================================================================
133CpuCategory::CpuCategory( DevicesView* parent ) 134CpuCategory::CpuCategory( DevicesView* parent )
134 :Category( parent, "1. Central Processing Unit" ) 135 :Category( parent, "1. Central Processing Unit" )
135{ 136{
136} 137}
137 138
138CpuCategory::~CpuCategory() 139CpuCategory::~CpuCategory()
139{ 140{
140} 141}
141 142
142void CpuCategory::populate() 143void CpuCategory::populate()
143{ 144{
144 odebug << "CpuCategory::populate()" << oendl; 145 odebug << "CpuCategory::populate()" << oendl;
145 QFile cpuinfofile( "/proc/cpuinfo" ); 146 QFile cpuinfofile( "/proc/cpuinfo" );
146 if ( !cpuinfofile.exists() || !cpuinfofile.open( IO_ReadOnly ) ) 147 if ( !cpuinfofile.exists() || !cpuinfofile.open( IO_ReadOnly ) )
147 { 148 {
148 new CpuDevice( this, "ERROR: /proc/cpuinfo not found or unaccessible" ); 149 new CpuDevice( this, "ERROR: /proc/cpuinfo not found or unaccessible" );
149 return; 150 return;
150 } 151 }
151 QTextStream cpuinfo( &cpuinfofile ); 152 QTextStream cpuinfo( &cpuinfofile );
152 153
153 int cpucount = 0; 154 int cpucount = 0;
154 CpuDevice* dev = 0; 155 CpuDevice* dev = 0;
155 156
156 while ( !cpuinfo.atEnd() ) 157 while ( !cpuinfo.atEnd() )
157 { 158 {
158 QString line = cpuinfo.readLine(); 159 QString line = cpuinfo.readLine();
159 odebug << "got line '" << line << "'" << oendl; 160 odebug << "got line '" << line << "'" << oendl;
160 if ( line.lower().startsWith( "processor" ) ) 161 if ( line.lower().startsWith( "processor" ) )
161 { 162 {
162 dev = new CpuDevice( this, QString( "CPU #%1" ).arg( cpucount++ ) ); 163 dev = new CpuDevice( this, QString( "CPU #%1" ).arg( cpucount++ ) );
163 dev->addInfo( line ); 164 dev->addInfo( line );
164 } 165 }
165 else 166 else
166 { 167 {
167 if ( dev ) dev->addInfo( line ); 168 if ( dev ) dev->addInfo( line );
168 } 169 }
169 } 170 }
170} 171}
171 172
172//================================================================================================= 173//=================================================================================================
173InputCategory::InputCategory( DevicesView* parent ) 174InputCategory::InputCategory( DevicesView* parent )
174 :Category( parent, "2. Input Subsystem" ) 175 :Category( parent, "2. Input Subsystem" )
175{ 176{
176} 177}
177 178
178InputCategory::~InputCategory() 179InputCategory::~InputCategory()
179{ 180{
180} 181}
181 182
182void InputCategory::populate() 183void InputCategory::populate()
183{ 184{
184 odebug << "InputCategory::populate()" << oendl; 185 odebug << "InputCategory::populate()" << oendl;
185 OInputSystem* sys = OInputSystem::instance(); 186 OInputSystem* sys = OInputSystem::instance();
186 OInputSystem::DeviceIterator it = sys->iterator(); 187 OInputSystem::DeviceIterator it = sys->iterator();
187 while ( it.current() ) 188 while ( it.current() )
188 { 189 {
189 new InputDevice( this, it.current()->identity() ); 190 InputDevice* dev = new InputDevice( this, it.current()->identity() );
191 dev->setInfo( it.current() );
190 ++it; 192 ++it;
191 } 193 }
192} 194}
193 195
194//================================================================================================= 196//=================================================================================================
195CardsCategory::CardsCategory( DevicesView* parent ) 197CardsCategory::CardsCategory( DevicesView* parent )
196 :Category( parent, "3. Removable Cards" ) 198 :Category( parent, "3. Removable Cards" )
197{ 199{
198} 200}
199 201
200CardsCategory::~CardsCategory() 202CardsCategory::~CardsCategory()
201{ 203{
202} 204}
203 205
204void CardsCategory::populate() 206void CardsCategory::populate()
205{ 207{
206 odebug << "CardsCategory::populate()" << oendl; 208 odebug << "CardsCategory::populate()" << oendl;
207 OPcmciaSystem* sys = OPcmciaSystem::instance(); 209 OPcmciaSystem* sys = OPcmciaSystem::instance();
208 OPcmciaSystem::CardIterator it = sys->iterator(); 210 OPcmciaSystem::CardIterator it = sys->iterator();
209 while ( it.current() ) 211 while ( it.current() )
210 { 212 {
211 new CardDevice( this, it.current()->identity() ); 213 CardDevice *dev = new CardDevice( this, it.current()->identity() );
214 dev->setInfo( it.current() );
212 ++it; 215 ++it;
213 } 216 }
214} 217}
215 218
216//================================================================================================= 219//=================================================================================================
217UsbCategory::UsbCategory( DevicesView* parent ) 220UsbCategory::UsbCategory( DevicesView* parent )
218 :Category( parent, "4. Universal Serial Bus" ) 221 :Category( parent, "4. Universal Serial Bus" )
219{ 222{
220} 223}
221 224
222UsbCategory::~UsbCategory() 225UsbCategory::~UsbCategory()
223{ 226{
224} 227}
225 228
226void UsbCategory::populate() 229void UsbCategory::populate()
227{ 230{
228 odebug << "UsbCategory::populate()" << oendl; 231 odebug << "UsbCategory::populate()" << oendl;
229 QFile usbinfofile( "/proc/bus/usb/devices" ); 232 QFile usbinfofile( "/proc/bus/usb/devices" );
230 if ( !usbinfofile.exists() || !usbinfofile.open( IO_ReadOnly ) ) 233 if ( !usbinfofile.exists() || !usbinfofile.open( IO_ReadOnly ) )
231 { 234 {
232 new UsbDevice( this, "ERROR: /proc/bus/usb/devices not found or unaccessible" ); 235 new UsbDevice( this, "ERROR: /proc/bus/usb/devices not found or unaccessible" );
233 return; 236 return;
234 } 237 }
235 QTextStream usbinfo( &usbinfofile ); 238 QTextStream usbinfo( &usbinfofile );
236 239
237 int _bus, _level, _parent, _port, _count, _device, _channels, _power; 240 int _bus, _level, _parent, _port, _count, _device, _channels, _power;
238 float _speed; 241 float _speed;
239 QString _manufacturer, _product, _serial; 242 QString _manufacturer, _product, _serial;
240 243
241 int usbcount = 0; 244 int usbcount = 0;
242 UsbDevice* lastDev = 0; 245 UsbDevice* lastDev = 0;
243 UsbDevice* dev = 0; 246 UsbDevice* dev = 0;
244 while ( !usbinfo.atEnd() ) 247 while ( !usbinfo.atEnd() )
245 { 248 {
246 QString line = usbinfo.readLine(); 249 QString line = usbinfo.readLine();
247 odebug << "got line '" << line << "'" << oendl; 250 odebug << "got line '" << line << "'" << oendl;
248 if ( line.startsWith( "T:" ) ) 251 if ( line.startsWith( "T:" ) )
249 { 252 {
250 sscanf(line.local8Bit().data(), "T: Bus=%2d Lev=%2d Prnt=%2d Port=%d Cnt=%2d Dev#=%3d Spd=%3f MxCh=%2d", &_bus, &_level, &_parent, &_port, &_count, &_device, &_speed, &_channels); 253 sscanf(line.local8Bit().data(), "T: Bus=%2d Lev=%2d Prnt=%2d Port=%d Cnt=%2d Dev#=%3d Spd=%3f MxCh=%2d", &_bus, &_level, &_parent, &_port, &_count, &_device, &_speed, &_channels);
251 254
252 if ( !_level ) 255 if ( !_level )
253 { 256 {
254 odebug << "adding new bus" << oendl; 257 odebug << "adding new bus" << oendl;
255 dev = new UsbDevice( this, QString( "Generic USB Hub Device" ) ); 258 dev = new UsbDevice( this, QString( "Generic USB Hub Device" ) );
256 lastDev = dev; 259 lastDev = dev;
257 } 260 }
258 else 261 else
259 { 262 {
@@ -281,87 +284,149 @@ Device::Device( Category* parent, const QString& name )
281{ 284{
282 devinfo = static_cast<QWidget*>( listView()->parent() ); 285 devinfo = static_cast<QWidget*>( listView()->parent() );
283} 286}
284 287
285Device::Device( Device* parent, const QString& name ) 288Device::Device( Device* parent, const QString& name )
286 :OListViewItem( parent, name ) 289 :OListViewItem( parent, name )
287{ 290{
288 devinfo = static_cast<QWidget*>( listView()->parent() ); 291 devinfo = static_cast<QWidget*>( listView()->parent() );
289} 292}
290 293
291Device::~Device() 294Device::~Device()
292{ 295{
293} 296}
294 297
295 298
296QWidget* Device::detailsWidget() 299QWidget* Device::detailsWidget()
297{ 300{
298 return details; 301 return details;
299} 302}
300 303
301//================================================================================================= 304//=================================================================================================
302CpuDevice::CpuDevice( Category* parent, const QString& name ) 305CpuDevice::CpuDevice( Category* parent, const QString& name )
303 :Device( parent, name ) 306 :Device( parent, name )
304{ 307{
305 OListView* w = new OListView( devinfo ); 308 OListView* w = new OListView( devinfo );
306 details = w; 309 details = w;
307 w->addColumn( "Info" ); 310 w->addColumn( "Info" );
308 w->addColumn( "Value" ); 311 w->addColumn( "Value" );
309 w->hide(); 312 w->hide();
310} 313}
311 314
312CpuDevice::~CpuDevice() 315CpuDevice::~CpuDevice()
313{ 316{
314} 317}
315 318
316void CpuDevice::addInfo( const QString& info ) 319void CpuDevice::addInfo( const QString& info )
317{ 320{
318 int dp = info.find( ':' ); 321 int dp = info.find( ':' );
319 if ( dp != -1 ) 322 if ( dp != -1 )
320 { 323 {
321 new OListViewItem( (OListView*) details, info.left( dp ), info.right( info.length()-dp ) ); 324 new OListViewItem( (OListView*) details, info.left( dp ), info.right( info.length()-dp ) );
322 } 325 }
323} 326}
324 327
325//================================================================================================= 328//=================================================================================================
326CardDevice::CardDevice( Category* parent, const QString& name ) 329CardDevice::CardDevice( Category* parent, const QString& name )
327 :Device( parent, name ) 330 :Device( parent, name )
328{ 331{
329 details = new QPushButton( name, devinfo ); 332 OListView* w = new OListView( devinfo );
330 details->hide(); 333 details = w;
334 w->addColumn( "Info" );
335 w->addColumn( "Value" );
336 w->hide();
337}
338
339void CardDevice::setInfo( const OPcmciaSocket* card )
340{
341 QStringList vendorlst = card->productIdentityVector();
342 for( QStringList::Iterator it = vendorlst.begin(); it != vendorlst.end(); ++it )
343 {
344 new OListViewItem( (OListView*) details, "VendorID", *it );
345 }
346 new OListViewItem( (OListView*) details, "Manufacturer", card->manufacturerIdentity() );
347 new OListViewItem( (OListView*) details, "Function", card->function() );
348
349 QStringList text;
350 OPcmciaSocket::OPcmciaSocketCardStatus status = card->status();
351 if ( status )
352 {
353 if ( status & OPcmciaSocket::Occupied ) text += "Occupied";
354 if ( status & OPcmciaSocket::OccupiedCardBus ) text += "CardBus";
355 if ( status & OPcmciaSocket::WriteProtected ) text += "WriteProtected";
356 if ( status & OPcmciaSocket::BatteryLow ) text += "BatteryLow";
357 if ( status & OPcmciaSocket::BatteryDead ) text += "BatteryDead";
358 if ( status & OPcmciaSocket::Ready ) text += "Ready";
359 if ( status & OPcmciaSocket::Suspended ) text += "Suspended";
360 if ( status & OPcmciaSocket::Attention ) text += "Attention";
361 if ( status & OPcmciaSocket::InsertionInProgress ) text += "InsertionInProgress";
362 if ( status & OPcmciaSocket::RemovalInProgress ) text += "RemovalInProgress";
363 if ( status & OPcmciaSocket::ThreeVolts ) text += "3V";
364 if ( status & OPcmciaSocket::SupportsVoltage ) text += "SupportsVoltage";
365 }
366 else
367 {
368 text += "<unknown>";
369 }
370 new OListViewItem( (OListView*) details, "Status", text.join( ", " ) );
331} 371}
332 372
333CardDevice::~CardDevice() 373CardDevice::~CardDevice()
334{ 374{
335} 375}
336 376
337//================================================================================================= 377//=================================================================================================
338InputDevice::InputDevice( Category* parent, const QString& name ) 378InputDevice::InputDevice( Category* parent, const QString& name )
339 :Device( parent, name ) 379 :Device( parent, name )
340{ 380{
341 details = new QPushButton( name, devinfo ); 381 OListView* w = new OListView( devinfo );
342 details->hide(); 382 details = w;
383 w->addColumn( "Info" );
384 w->addColumn( "Value" );
385 w->hide();
386}
387
388void InputDevice::setInfo( const OInputDevice* dev )
389{
390 new OListViewItem( (OListView*) details, "Identity", dev->identity() );
391 new OListViewItem( (OListView*) details, "Path", dev->path() );
392 new OListViewItem( (OListView*) details, "Unique", dev->uniq() );
393
394 QStringList text;
395 if ( dev->hasFeature( OInputDevice::Synchronous ) ) text += "Synchronous";
396 if ( dev->hasFeature( OInputDevice::Keys ) ) text += "Keys";
397 if ( dev->hasFeature( OInputDevice::Relative ) ) text += "Relative";
398 if ( dev->hasFeature( OInputDevice::Absolute ) ) text += "Absolute";
399 if ( dev->hasFeature( OInputDevice::Miscellaneous ) ) text += "Miscellaneous";
400 if ( dev->hasFeature( OInputDevice::Leds ) ) text += "Leds";
401 if ( dev->hasFeature( OInputDevice::Sound ) ) text += "Sound";
402 if ( dev->hasFeature( OInputDevice::AutoRepeat ) ) text += "AutoRepeat";
403 if ( dev->hasFeature( OInputDevice::ForceFeedback ) ) text += "ForceFeedback";
404 if ( dev->hasFeature( OInputDevice::PowerManagement ) ) text += "PowerManagement";
405 if ( dev->hasFeature( OInputDevice::ForceFeedbackStatus ) ) text += "ForceFeedbackStatus";
406 new OListViewItem( (OListView*) details, "Features", text.join( ", " ) );
407
343} 408}
344 409
345InputDevice::~InputDevice() 410InputDevice::~InputDevice()
346{ 411{
347} 412}
348 413
349//================================================================================================= 414//=================================================================================================
350UsbDevice::UsbDevice( Category* parent, const QString& name ) 415UsbDevice::UsbDevice( Category* parent, const QString& name )
351 :Device( parent, name ) 416 :Device( parent, name )
352{ 417{
353 details = new QPushButton( name, devinfo ); 418 details = new QPushButton( name, devinfo );
354 details->hide(); 419 details->hide();
355} 420}
356 421
357//================================================================================================= 422//=================================================================================================
358UsbDevice::UsbDevice( UsbDevice* parent, const QString& name ) 423UsbDevice::UsbDevice( UsbDevice* parent, const QString& name )
359 :Device( parent, name ) 424 :Device( parent, name )
360{ 425{
361 details = new QPushButton( name, devinfo ); 426 details = new QPushButton( name, devinfo );
362 details->hide(); 427 details->hide();
363} 428}
364 429
365UsbDevice::~UsbDevice() 430UsbDevice::~UsbDevice()
366{ 431{
367} 432}
diff --git a/noncore/settings/sysinfo/devicesinfo.h b/noncore/settings/sysinfo/devicesinfo.h
index c601a96..c4e3637 100644
--- a/noncore/settings/sysinfo/devicesinfo.h
+++ b/noncore/settings/sysinfo/devicesinfo.h
@@ -1,176 +1,180 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de> 3 =. Copyright (C) 2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org> 4 .=l. Copyright (C) The Opie Team <opie-devel@handhelds.org>
5          .>+-= 5          .>+-=
6_;:,     .>    :=|. This program is free software; you can 6_;:,     .>    :=|. This program is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under 7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public 8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software 9.="- .-=="i,     .._ License as published by the Free Software
10- .   .-<_>     .<> Foundation; version 2 of the License. 10- .   .-<_>     .<> Foundation; version 2 of the License.
11    ._= =}       : 11    ._= =}       :
12   .%`+i>       _;_. 12   .%`+i>       _;_.
13   .i_,=:_.      -<s. This program is distributed in the hope that 13   .i_,=:_.      -<s. This program is distributed in the hope that
14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 14    +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15   : ..    .:,     . . . without even the implied warranty of 15   : ..    .:,     . . . without even the implied warranty of
16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 16   =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 17 _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
18..}^=.=       =       ; General Public License for more 18..}^=.=       =       ; General Public License for more
19++=   -.     .`     .: details. 19++=   -.     .`     .: details.
20:     =  ...= . :.=- 20:     =  ...= . :.=-
21-.   .:....=;==+<; You should have received a copy of the GNU 21-.   .:....=;==+<; You should have received a copy of the GNU
22 -_. . .   )=.  = General Public License along with 22 -_. . .   )=.  = General Public License along with
23   --        :-=` this application; see the file LICENSE.GPL. 23   --        :-=` this application; see the file LICENSE.GPL.
24 If not, write to the Free Software Foundation, 24 If not, write to the Free Software Foundation,
25 Inc., 59 Temple Place - Suite 330, 25 Inc., 59 Temple Place - Suite 330,
26 Boston, MA 02111-1307, USA. 26 Boston, MA 02111-1307, USA.
27*/ 27*/
28 28
29#ifndef DEVICESINFO_H 29#ifndef DEVICESINFO_H
30#define DEVICESINFO_H 30#define DEVICESINFO_H
31 31
32/* OPIE */ 32/* OPIE */
33#include <opie2/olistview.h> 33#include <opie2/olistview.h>
34#include <opie2/olayout.h> 34#include <opie2/olayout.h>
35 35
36/* QT */ 36/* QT */
37#include <qwidget.h> 37#include <qwidget.h>
38#include <qwidgetstack.h> 38#include <qwidgetstack.h>
39 39
40namespace Opie { namespace Core { class OPcmciaSocket; class OInputDevice; }; };
41
40//================================================================================================= 42//=================================================================================================
41class DevicesView : public Opie::Ui::OListView 43class DevicesView : public Opie::Ui::OListView
42{ 44{
43 Q_OBJECT 45 Q_OBJECT
44public: 46public:
45 DevicesView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 ); 47 DevicesView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 );
46 ~DevicesView(); 48 ~DevicesView();
47public slots: 49public slots:
48 void selectionChanged( QListViewItem* item ); 50 void selectionChanged( QListViewItem* item );
49}; 51};
50 52
51//================================================================================================= 53//=================================================================================================
52class DevicesInfo : public QWidget 54class DevicesInfo : public QWidget
53{ 55{
54 Q_OBJECT 56 Q_OBJECT
55public: 57public:
56 DevicesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 58 DevicesInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
57 ~DevicesInfo(); 59 ~DevicesInfo();
58 60
59 void setDetailsWidget( QWidget* w = 0 ); 61 void setDetailsWidget( QWidget* w = 0 );
60 62
61private: 63private:
62 Opie::Ui::OAutoBoxLayout* layout; 64 Opie::Ui::OAutoBoxLayout* layout;
63 Opie::Ui::OListView* view; 65 Opie::Ui::OListView* view;
64 QWidget* details; 66 QWidget* details;
65 QWidgetStack* stack; 67 QWidgetStack* stack;
66private slots: 68private slots:
67}; 69};
68 70
69//================================================================================================= 71//=================================================================================================
70class Category : public Opie::Ui::OListViewItem 72class Category : public Opie::Ui::OListViewItem
71{ 73{
72public: 74public:
73 Category( DevicesView* parent, const QString& name ); 75 Category( DevicesView* parent, const QString& name );
74 virtual ~Category(); 76 virtual ~Category();
75 77
76 virtual void populate() = 0; 78 virtual void populate() = 0;
77}; 79};
78 80
79//================================================================================================= 81//=================================================================================================
80class CpuCategory : public Category 82class CpuCategory : public Category
81{ 83{
82public: 84public:
83 CpuCategory( DevicesView* parent ); 85 CpuCategory( DevicesView* parent );
84 virtual ~CpuCategory(); 86 virtual ~CpuCategory();
85 87
86 virtual void populate(); 88 virtual void populate();
87}; 89};
88 90
89//================================================================================================= 91//=================================================================================================
90class InputCategory : public Category 92class InputCategory : public Category
91{ 93{
92public: 94public:
93 InputCategory( DevicesView* parent ); 95 InputCategory( DevicesView* parent );
94 virtual ~InputCategory(); 96 virtual ~InputCategory();
95 97
96 virtual void populate(); 98 virtual void populate();
97}; 99};
98 100
99//================================================================================================= 101//=================================================================================================
100class CardsCategory : public Category 102class CardsCategory : public Category
101{ 103{
102public: 104public:
103 CardsCategory( DevicesView* parent ); 105 CardsCategory( DevicesView* parent );
104 virtual ~CardsCategory(); 106 virtual ~CardsCategory();
105
106 virtual void populate(); 107 virtual void populate();
107}; 108};
108 109
109//================================================================================================= 110//=================================================================================================
110class UsbCategory : public Category 111class UsbCategory : public Category
111{ 112{
112public: 113public:
113 UsbCategory( DevicesView* parent ); 114 UsbCategory( DevicesView* parent );
114 virtual ~UsbCategory(); 115 virtual ~UsbCategory();
115 116
116 virtual void populate(); 117 virtual void populate();
117}; 118};
118 119
119//================================================================================================= 120//=================================================================================================
120class Device : public Opie::Ui::OListViewItem 121class Device : public Opie::Ui::OListViewItem
121{ 122{
122public: 123public:
123 Device( Category* parent, const QString& name ); 124 Device( Category* parent, const QString& name );
124 Device( Device* parent, const QString& name ); 125 Device( Device* parent, const QString& name );
125 ~Device(); 126 ~Device();
126 127
127 QWidget* devinfo; 128 QWidget* devinfo;
128 QWidget* details; 129 QWidget* details;
129 130
130 virtual QWidget* detailsWidget(); 131 virtual QWidget* detailsWidget();
131}; 132};
132 133
133//================================================================================================= 134//=================================================================================================
134class CpuDevice : public Device 135class CpuDevice : public Device
135{ 136{
136public: 137public:
137 CpuDevice( Category* parent, const QString& name ); 138 CpuDevice( Category* parent, const QString& name );
138 ~CpuDevice(); 139 ~CpuDevice();
139 140
140 void addInfo( const QString& line ); 141 void addInfo( const QString& line );
141 142
142// virtual QWidget* detailsWidget(); 143// virtual QWidget* detailsWidget();
143}; 144};
144 145
145//================================================================================================= 146//=================================================================================================
146class InputDevice : public Device 147class InputDevice : public Device
147{ 148{
148public: 149public:
149 InputDevice( Category* parent, const QString& name ); 150 InputDevice( Category* parent, const QString& name );
150 ~InputDevice(); 151 ~InputDevice();
151 152
153 void setInfo( const Opie::Core::OInputDevice* dev );
154
152// virtual QWidget* detailsWidget(); 155// virtual QWidget* detailsWidget();
153}; 156};
154 157
155//================================================================================================= 158//=================================================================================================
156class CardDevice : public Device 159class CardDevice : public Device
157{ 160{
158public: 161public:
159 CardDevice( Category* parent, const QString& name ); 162 CardDevice( Category* parent, const QString& name );
160 ~CardDevice(); 163 ~CardDevice();
164 void setInfo( const Opie::Core::OPcmciaSocket* card );
161 165
162// virtual QWidget* detailsWidget(); 166// virtual QWidget* detailsWidget();
163}; 167};
164 168
165//================================================================================================= 169//=================================================================================================
166class UsbDevice : public Device 170class UsbDevice : public Device
167{ 171{
168public: 172public:
169 UsbDevice( Category* parent, const QString& name ); 173 UsbDevice( Category* parent, const QString& name );
170 UsbDevice( UsbDevice* parent, const QString& name ); 174 UsbDevice( UsbDevice* parent, const QString& name );
171 ~UsbDevice(); 175 ~UsbDevice();
172 176
173// virtual QWidget* detailsWidget(); 177// virtual QWidget* detailsWidget();
174}; 178};
175 179
176#endif 180#endif
diff --git a/noncore/settings/sysinfo/sysinfo.pro b/noncore/settings/sysinfo/sysinfo.pro
index 8b23a57..ed9bc0e 100644
--- a/noncore/settings/sysinfo/sysinfo.pro
+++ b/noncore/settings/sysinfo/sysinfo.pro
@@ -1,39 +1,39 @@
1CONFIG = qt warn_on quick-app 1CONFIG = qt warn_on quick-app
2 2
3HEADERS = \ 3HEADERS = \
4 memory.h \ 4 memory.h \
5 graph.h \ 5 graph.h \
6 devicesinfo.h \ 6 devicesinfo.h \
7 storage.h \ 7 storage.h \
8 processinfo.h \ 8 processinfo.h \
9 modulesinfo.h \ 9 modulesinfo.h \
10 detail.h \ 10 detail.h \
11 contrib/dhry.h \ 11 contrib/dhry.h \
12 benchmarkinfo.h \ 12 benchmarkinfo.h \
13 sysloginfo.h \ 13 sysloginfo.h \
14 versioninfo.h \ 14 versioninfo.h \
15 sysinfo.h 15 sysinfo.h
16 16
17SOURCES = \ 17SOURCES = \
18 main.cpp \ 18 main.cpp \
19 memory.cpp \ 19 memory.cpp \
20 graph.cpp \ 20 graph.cpp \
21 devicesinfo.cpp \ 21 devicesinfo.cpp \
22 storage.cpp \ 22 storage.cpp \
23 processinfo.cpp \ 23 processinfo.cpp \
24 modulesinfo.cpp \ 24 modulesinfo.cpp \
25 detail.cpp \ 25 detail.cpp \
26 contrib/dhry.c contrib/fft.c \ 26 contrib/dhry.c contrib/fft.c \
27 benchmarkinfo.cpp \ 27 benchmarkinfo.cpp \
28 sysloginfo.cpp \ 28 sysloginfo.cpp \
29 versioninfo.cpp \ 29 versioninfo.cpp \
30 sysinfo.cpp 30 sysinfo.cpp
31 31
32INCLUDEPATH += $(OPIEDIR)/include 32INCLUDEPATH += $(OPIEDIR)/include
33DEPENDPATH += $(OPIEDIR)/include 33DEPENDPATH += $(OPIEDIR)/include
34LIBS += -lqpe -lopiecore2 -lopieui2 34LIBS += -lqpe -lopiecore2 -lopieui2
35DEFINES += UNIX 35DEFINES += UNIX
36TARGET = sysinfo 36TARGET = sysinfo
37VERSION = 1.3.0 37VERSION = 1.3.1
38 38
39include( $(OPIEDIR)/include.pro ) 39include( $(OPIEDIR)/include.pro )
diff --git a/noncore/settings/sysinfo/sysloginfo.cpp b/noncore/settings/sysinfo/sysloginfo.cpp
index 21427f4..279c335 100644
--- a/noncore/settings/sysinfo/sysloginfo.cpp
+++ b/noncore/settings/sysinfo/sysloginfo.cpp
@@ -1,119 +1,117 @@
1/********************************************************************** 1/**********************************************************************
2** SyslogInfo 2** SyslogInfo
3** 3**
4** Display Syslog information 4** Display Syslog information
5** 5**
6** Copyright (C) 2004, Michael Lauer 6** Copyright (C) 2004-2005 Michael 'Mickey' Lauer <mickey@Vanille.de>
7** mickey@tm.informatik.uni-frankfurt.de
8** http://www.Vanille.de
9** 7**
10** This file may be distributed and/or modified under the terms of the 8** This file may be distributed and/or modified under the terms of the
11** GNU General Public License version 2 as published by the Free Software 9** GNU General Public License version 2 as published by the Free Software
12** Foundation and appearing in the file LICENSE.GPL included in the 10** Foundation and appearing in the file LICENSE.GPL included in the
13** packaging of this file. 11** packaging of this file.
14** 12**
15** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 13** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 14** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17** 15**
18**********************************************************************/ 16**********************************************************************/
19 17
20#include "sysloginfo.h" 18#include "sysloginfo.h"
21#include "detail.h" 19#include "detail.h"
22 20
23/* OPIE */ 21/* OPIE */
24#include <opie2/olistview.h> 22#include <opie2/olistview.h>
25#include <opie2/oconfig.h> 23#include <opie2/oconfig.h>
26using namespace Opie::Core; 24using namespace Opie::Core;
27using namespace Opie::Ui; 25using namespace Opie::Ui;
28 26
29/* QT */ 27/* QT */
30#include <qcombobox.h> 28#include <qcombobox.h>
31#include <qfile.h> 29#include <qfile.h>
32#include <qlayout.h> 30#include <qlayout.h>
33#include <qmessagebox.h> 31#include <qmessagebox.h>
34#include <qpushbutton.h> 32#include <qpushbutton.h>
35#include <qsocketnotifier.h> 33#include <qsocketnotifier.h>
36#include <qtextbrowser.h> 34#include <qtextbrowser.h>
37#include <qtimer.h> 35#include <qtimer.h>
38#include <qwhatsthis.h> 36#include <qwhatsthis.h>
39#include <qtextview.h> 37#include <qtextview.h>
40 38
41/* STD */ 39/* STD */
42#include <sys/klog.h> 40#include <sys/klog.h>
43#include <sys/types.h> 41#include <sys/types.h>
44#include <sys/stat.h> 42#include <sys/stat.h>
45#include <fcntl.h> 43#include <fcntl.h>
46#include <assert.h> 44#include <assert.h>
47#include <unistd.h> 45#include <unistd.h>
48#include <string.h> 46#include <string.h>
49#include <errno.h> 47#include <errno.h>
50 48
51#define SYSLOG_READ 2 49#define SYSLOG_READ 2
52#define SYSLOG_READ_ALL 3 50#define SYSLOG_READ_ALL 3
53#define SYSLOG_READ_ALL_CLEAR 4 51#define SYSLOG_READ_ALL_CLEAR 4
54#define SYSLOG_UNREAD 9 52#define SYSLOG_UNREAD 9
55 53
56#undef APPEND 54#undef APPEND
57 55
58const unsigned int bufsize = 16384; 56const unsigned int bufsize = 16384;
59char buf[bufsize]; 57char buf[bufsize];
60 58
61SyslogInfo::SyslogInfo( QWidget* parent, const char* name, WFlags fl ) 59SyslogInfo::SyslogInfo( QWidget* parent, const char* name, WFlags fl )
62 : QWidget( parent, name, fl ) 60 : QWidget( parent, name, fl )
63{ 61{
64 QGridLayout *layout = new QGridLayout( this ); 62 QGridLayout *layout = new QGridLayout( this );
65 layout->setSpacing( 2 ); 63 layout->setSpacing( 2 );
66 layout->setMargin( 0 ); 64 layout->setMargin( 0 );
67 65
68 syslogview = new QTextView( this ); 66 syslogview = new QTextView( this );
69 syslogview->setTextFormat( PlainText ); 67 syslogview->setTextFormat( PlainText );
70 OConfig cfg( "qpe" ); 68 OConfig cfg( "qpe" );
71 cfg.setGroup( "Appearance" ); 69 cfg.setGroup( "Appearance" );
72 syslogview->setFont( QFont( "Fixed", cfg.readNumEntry( "FontSize", 10 ) ) ); 70 syslogview->setFont( QFont( cfg.readEntry( "FixedFontFamily", "Fixed" ), cfg.readNumEntry( "FixedFontSize", 10 ) ) );
73 layout->addWidget( syslogview, 0, 0 ); 71 layout->addWidget( syslogview, 0, 0 );
74 syslogview->setText( "..." ); 72 syslogview->setText( "..." );
75 73
76 memset( buf, 0, bufsize ); 74 memset( buf, 0, bufsize );
77 ::klogctl( SYSLOG_READ_ALL, buf, bufsize ); 75 ::klogctl( SYSLOG_READ_ALL, buf, bufsize );
78 syslogview->setText( buf ); 76 syslogview->setText( buf );
79 77
80#ifdef APPEND 78#ifdef APPEND
81 fd = ::open( "/proc/kmsg", O_RDONLY|O_SYNC ); 79 fd = ::open( "/proc/kmsg", O_RDONLY|O_SYNC );
82 if ( fd == -1 ) 80 if ( fd == -1 )
83 { 81 {
84 syslogview->setText( "Couldn't open /proc/kmsg: " + QString( strerror( errno ) ) ); 82 syslogview->setText( "Couldn't open /proc/kmsg: " + QString( strerror( errno ) ) );
85 return; 83 return;
86 } 84 }
87 QSocketNotifier *sn = new QSocketNotifier( fd, QSocketNotifier::Read, this ); 85 QSocketNotifier *sn = new QSocketNotifier( fd, QSocketNotifier::Read, this );
88 QObject::connect( sn, SIGNAL(activated(int)), this, SLOT(updateData()) ); 86 QObject::connect( sn, SIGNAL(activated(int)), this, SLOT(updateData()) );
89#else 87#else
90 QPushButton* pb = new QPushButton( "&Refresh", this ); 88 QPushButton* pb = new QPushButton( "&Refresh", this );
91 layout->addWidget( pb, 1, 0 ); 89 layout->addWidget( pb, 1, 0 );
92 QObject::connect( pb, SIGNAL(clicked()), this, SLOT(updateData()) ); 90 QObject::connect( pb, SIGNAL(clicked()), this, SLOT(updateData()) );
93#endif 91#endif
94} 92}
95 93
96SyslogInfo::~SyslogInfo() 94SyslogInfo::~SyslogInfo()
97{ 95{
98 if ( fd != -1 ) ::close( fd ); 96 if ( fd != -1 ) ::close( fd );
99} 97}
100 98
101void SyslogInfo::updateData() 99void SyslogInfo::updateData()
102{ 100{
103 qDebug( "SyslogInfo: updateData" ); 101 qDebug( "SyslogInfo: updateData" );
104#ifdef APPEND 102#ifdef APPEND
105 memset( buf, 0, bufsize ); 103 memset( buf, 0, bufsize );
106 int num = ::read( fd, buf, bufsize ); 104 int num = ::read( fd, buf, bufsize );
107 if ( num ) // -1 = error (permission denied) 105 if ( num ) // -1 = error (permission denied)
108 { 106 {
109 syslogview->append( "\n" ); 107 syslogview->append( "\n" );
110 syslogview->append( buf ); 108 syslogview->append( buf );
111 qDebug( "SyslogInfo: adding '%s'", buf ); 109 qDebug( "SyslogInfo: adding '%s'", buf );
112 } 110 }
113#else 111#else
114 memset( buf, 0, bufsize ); 112 memset( buf, 0, bufsize );
115 ::klogctl( SYSLOG_READ_ALL, buf, bufsize ); 113 ::klogctl( SYSLOG_READ_ALL, buf, bufsize );
116 syslogview->setText( buf ); 114 syslogview->setText( buf );
117 syslogview->ensureVisible( 0, syslogview->contentsHeight() ); 115 syslogview->ensureVisible( 0, syslogview->contentsHeight() );
118#endif 116#endif
119} 117}
diff --git a/noncore/settings/sysinfo/sysloginfo.h b/noncore/settings/sysinfo/sysloginfo.h
index 7bf8d17..f9e522a 100644
--- a/noncore/settings/sysinfo/sysloginfo.h
+++ b/noncore/settings/sysinfo/sysloginfo.h
@@ -1,42 +1,40 @@
1/********************************************************************** 1/**********************************************************************
2** SyslogInfo 2** SyslogInfo
3** 3**
4** Display Syslog information 4** Display Syslog information
5** 5**
6** Copyright (C) 2004, Michael Lauer 6** Copyright (C) 2004-2005, Michael 'Mickey' Lauer <mickey@Vanille.de>
7** mickey@tm.informatik.uni-frankfurt.de
8** http://www.Vanille.de
9** 7**
10** This file may be distributed and/or modified under the terms of the 8** This file may be distributed and/or modified under the terms of the
11** GNU General Public License version 2 as published by the Free Software 9** GNU General Public License version 2 as published by the Free Software
12** Foundation and appearing in the file LICENSE.GPL included in the 10** Foundation and appearing in the file LICENSE.GPL included in the
13** packaging of this file. 11** packaging of this file.
14** 12**
15** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 13** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 14** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17** 15**
18**********************************************************************/ 16**********************************************************************/
19 17
20#ifndef SYSLOGINFO_H 18#ifndef SYSLOGINFO_H
21#define SYSLOGINFO_H 19#define SYSLOGINFO_H
22 20
23#include <qwidget.h> 21#include <qwidget.h>
24 22
25class QTextView; 23class QTextView;
26 24
27class SyslogInfo : public QWidget 25class SyslogInfo : public QWidget
28{ 26{
29 Q_OBJECT 27 Q_OBJECT
30public: 28public:
31 SyslogInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 ); 29 SyslogInfo( QWidget *parent = 0, const char *name = 0, WFlags f = 0 );
32 ~SyslogInfo(); 30 ~SyslogInfo();
33 31
34private: 32private:
35 QTextView* syslogview; 33 QTextView* syslogview;
36 int fd; 34 int fd;
37 35
38private slots: 36private slots:
39 void updateData(); 37 void updateData();
40}; 38};
41 39
42#endif 40#endif