-rw-r--r-- | noncore/settings/sysinfo/detail.cpp (copied from noncore/settings/sysinfo/modulesdetail.h) | 41 | ||||
-rw-r--r-- | noncore/settings/sysinfo/detail.h (renamed from noncore/settings/sysinfo/modulesdetail.h) | 21 | ||||
-rw-r--r-- | noncore/settings/sysinfo/modulesdetail.cpp | 89 | ||||
-rw-r--r-- | noncore/settings/sysinfo/modulesinfo.cpp | 51 | ||||
-rw-r--r-- | noncore/settings/sysinfo/modulesinfo.h | 5 | ||||
-rw-r--r-- | noncore/settings/sysinfo/processdetail.cpp | 92 | ||||
-rw-r--r-- | noncore/settings/sysinfo/processdetail.h | 47 | ||||
-rw-r--r-- | noncore/settings/sysinfo/processinfo.cpp | 65 | ||||
-rw-r--r-- | noncore/settings/sysinfo/processinfo.h | 17 | ||||
-rw-r--r-- | noncore/settings/sysinfo/sysinfo.pro | 4 |
10 files changed, 151 insertions, 281 deletions
diff --git a/noncore/settings/sysinfo/modulesdetail.h b/noncore/settings/sysinfo/detail.cpp index 5515c4b..2c5fdc4 100644 --- a/noncore/settings/sysinfo/modulesdetail.h +++ b/noncore/settings/sysinfo/detail.cpp | |||
@@ -1,3 +1,3 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** ModulesDetail | 2 | ** Detail |
3 | ** | 3 | ** |
@@ -21,29 +21,30 @@ | |||
21 | 21 | ||
22 | #ifndef MODULESDETAIL_H | 22 | #include "detail.h" |
23 | #define MODULESDETAIL_H | ||
24 | 23 | ||
25 | #include <qwidget.h> | 24 | #include <sys/types.h> |
26 | #include <qcombo.h> | 25 | #include <stdio.h> |
27 | #include <qtextview.h> | 26 | |
28 | #include <qpushbutton.h> | 27 | #include <qcombobox.h> |
28 | #include <qlayout.h> | ||
29 | #include <qlistview.h> | 29 | #include <qlistview.h> |
30 | #include <qmessagebox.h> | ||
31 | #include <qpushbutton.h> | ||
32 | #include <qtextview.h> | ||
33 | #include <qwhatsthis.h> | ||
30 | 34 | ||
31 | class ModulesDetail : public QWidget | 35 | Detail::Detail( QWidget* parent, const char* name, WFlags ) |
36 | : QWidget( parent, name, WStyle_ContextHelp ) | ||
32 | { | 37 | { |
33 | Q_OBJECT | 38 | QVBoxLayout *layout = new QVBoxLayout( this ); |
34 | 39 | ||
35 | public: | 40 | detailView = new QTextView( this ); |
36 | ModulesDetail( QWidget* parent, const char* name, WFlags fl ); | 41 | detailView->setTextFormat( PlainText ); |
37 | ~ModulesDetail(); | ||
38 | 42 | ||
39 | QComboBox* CommandCB; | 43 | layout->addWidget( detailView ); |
40 | QTextView* ModulesView; | 44 | } |
41 | QPushButton* SendButton; | ||
42 | 45 | ||
43 | QString modname; | 46 | Detail::~Detail() |
47 | { | ||
48 | } | ||
44 | 49 | ||
45 | private slots: | ||
46 | void slotSendClicked(); | ||
47 | }; | ||
48 | 50 | ||
49 | #endif // MODULESDETAIL_H | ||
diff --git a/noncore/settings/sysinfo/modulesdetail.h b/noncore/settings/sysinfo/detail.h index 5515c4b..7ca9d45 100644 --- a/noncore/settings/sysinfo/modulesdetail.h +++ b/noncore/settings/sysinfo/detail.h | |||
@@ -21,4 +21,4 @@ | |||
21 | 21 | ||
22 | #ifndef MODULESDETAIL_H | 22 | #ifndef DETAIL_H |
23 | #define MODULESDETAIL_H | 23 | #define DETAIL_H |
24 | 24 | ||
@@ -30,3 +30,3 @@ | |||
30 | 30 | ||
31 | class ModulesDetail : public QWidget | 31 | class Detail : public QWidget |
32 | { | 32 | { |
@@ -35,15 +35,8 @@ class ModulesDetail : public QWidget | |||
35 | public: | 35 | public: |
36 | ModulesDetail( QWidget* parent, const char* name, WFlags fl ); | 36 | Detail( QWidget * = 0x0, const char * = 0x0, WFlags = 0 ); |
37 | ~ModulesDetail(); | 37 | ~Detail(); |
38 | 38 | ||
39 | QComboBox* CommandCB; | 39 | QTextView* detailView; |
40 | QTextView* ModulesView; | ||
41 | QPushButton* SendButton; | ||
42 | |||
43 | QString modname; | ||
44 | |||
45 | private slots: | ||
46 | void slotSendClicked(); | ||
47 | }; | 40 | }; |
48 | 41 | ||
49 | #endif // MODULESDETAIL_H | 42 | #endif // DETAIL_H |
diff --git a/noncore/settings/sysinfo/modulesdetail.cpp b/noncore/settings/sysinfo/modulesdetail.cpp deleted file mode 100644 index ea9cdfa..0000000 --- a/noncore/settings/sysinfo/modulesdetail.cpp +++ b/dev/null | |||
@@ -1,89 +0,0 @@ | |||
1 | /********************************************************************** | ||
2 | ** ModulesDetail | ||
3 | ** | ||
4 | ** Display module information | ||
5 | ** | ||
6 | ** Copyright (C) 2002, Michael Lauer | ||
7 | ** mickey@tm.informatik.uni-frankfurt.de | ||
8 | ** http://www.Vanille.de | ||
9 | ** | ||
10 | ** Based on ProcessDetail by Dan Williams <williamsdr@acm.org> | ||
11 | ** | ||
12 | ** This file may be distributed and/or modified under the terms of the | ||
13 | ** GNU General Public License version 2 as published by the Free Software | ||
14 | ** Foundation and appearing in the file LICENSE.GPL included in the | ||
15 | ** packaging of this file. | ||
16 | ** | ||
17 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | ||
18 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||
19 | ** | ||
20 | **********************************************************************/ | ||
21 | |||
22 | #include "modulesdetail.h" | ||
23 | |||
24 | #include <sys/types.h> | ||
25 | #include <stdio.h> | ||
26 | |||
27 | #include <qcombobox.h> | ||
28 | #include <qlayout.h> | ||
29 | #include <qlistview.h> | ||
30 | #include <qmessagebox.h> | ||
31 | #include <qpushbutton.h> | ||
32 | #include <qtextview.h> | ||
33 | #include <qwhatsthis.h> | ||
34 | |||
35 | ModulesDetail::ModulesDetail( QWidget* parent, const char* name, WFlags ) | ||
36 | : QWidget( parent, name, WStyle_ContextHelp ) | ||
37 | { | ||
38 | modname = ""; | ||
39 | |||
40 | QGridLayout *layout = new QGridLayout( this ); | ||
41 | layout->setSpacing( 4 ); | ||
42 | layout->setMargin( 4 ); | ||
43 | |||
44 | CommandCB = new QComboBox( FALSE, this, "CommandCB" ); | ||
45 | CommandCB->insertItem( "modprobe -r" ); | ||
46 | CommandCB->insertItem( "rmmod" ); | ||
47 | // I can't think of other useful commands yet. Anyone? | ||
48 | layout->addWidget( CommandCB, 1, 0 ); | ||
49 | QWhatsThis::add( CommandCB, tr( "Select a command here and then click the Send button to the right to send the command." ) ); | ||
50 | |||
51 | ModulesView = new QTextView( this, "ModulesView" ); | ||
52 | layout->addMultiCellWidget( ModulesView, 0, 0, 0, 1 ); | ||
53 | QWhatsThis::add( ModulesView, tr( "This area shows detailed information about this module." ) ); | ||
54 | |||
55 | SendButton = new QPushButton( this, "SendButton" ); | ||
56 | SendButton->setMinimumSize( QSize( 50, 24 ) ); | ||
57 | SendButton->setMaximumSize( QSize( 50, 24 ) ); | ||
58 | SendButton->setText( tr( "Send" ) ); | ||
59 | connect( SendButton, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); | ||
60 | layout->addWidget( SendButton, 1, 1 ); | ||
61 | QWhatsThis::add( SendButton, tr( "Click here to send the selected command to this module." ) ); | ||
62 | } | ||
63 | |||
64 | ModulesDetail::~ModulesDetail() | ||
65 | { | ||
66 | } | ||
67 | |||
68 | void ModulesDetail::slotSendClicked() | ||
69 | { | ||
70 | QString command = QString( "/sbin/" ) | ||
71 | + CommandCB->currentText() | ||
72 | + QString( " " ) + modname; | ||
73 | |||
74 | if ( QMessageBox::warning( this, caption(), | ||
75 | tr( "You really want to \n" + CommandCB->currentText() + "\nthis Module?"), | ||
76 | QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) | ||
77 | == QMessageBox::Yes ) | ||
78 | { | ||
79 | FILE* stream = popen( command, "r" ); | ||
80 | if ( stream ) | ||
81 | pclose( stream ); | ||
82 | { | ||
83 | hide(); | ||
84 | } | ||
85 | } | ||
86 | |||
87 | } | ||
88 | |||
89 | |||
diff --git a/noncore/settings/sysinfo/modulesinfo.cpp b/noncore/settings/sysinfo/modulesinfo.cpp index c558fad..8b58fe9 100644 --- a/noncore/settings/sysinfo/modulesinfo.cpp +++ b/noncore/settings/sysinfo/modulesinfo.cpp | |||
@@ -35,2 +35,3 @@ | |||
35 | #include "modulesinfo.h" | 35 | #include "modulesinfo.h" |
36 | #include "detail.h" | ||
36 | 37 | ||
@@ -54,2 +55,10 @@ ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) | |||
54 | 55 | ||
56 | // Test if we have /sbin/modinfo, and if so, allow module detail window | ||
57 | if ( QFile::exists( "/sbin/modinfo" ) ) | ||
58 | { | ||
59 | QPEApplication::setStylusOperation( ModulesView->viewport(), QPEApplication::RightOnHold ); | ||
60 | connect( ModulesView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint &, int ) ), | ||
61 | this, SLOT( viewModules( QListViewItem * ) ) ); | ||
62 | } | ||
63 | |||
55 | CommandCB = new QComboBox( FALSE, this ); | 64 | CommandCB = new QComboBox( FALSE, this ); |
@@ -74,2 +83,5 @@ ModulesInfo::ModulesInfo( QWidget* parent, const char* name, WFlags fl ) | |||
74 | updateData(); | 83 | updateData(); |
84 | |||
85 | ModulesDtl = new Detail(); | ||
86 | QWhatsThis::add( ModulesDtl->detailView, tr( "This area shows detailed information about this module." ) ); | ||
75 | } | 87 | } |
@@ -116,3 +128,5 @@ void ModulesInfo::slotSendClicked() | |||
116 | 128 | ||
117 | if ( QMessageBox::warning( this, caption(), capstr, | 129 | QString modname = ModulesView->currentItem()->text( 0 ); |
130 | |||
131 | if ( QMessageBox::warning( this, modname, capstr, | ||
118 | QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes ) | 132 | QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes ) |
@@ -122,3 +136,3 @@ void ModulesInfo::slotSendClicked() | |||
122 | command.append( " " ); | 136 | command.append( " " ); |
123 | command.append( ModulesView->currentItem()->text( 0 ) ); | 137 | command.append( modname ); |
124 | 138 | ||
@@ -127,5 +141,2 @@ void ModulesInfo::slotSendClicked() | |||
127 | pclose( stream ); | 141 | pclose( stream ); |
128 | //{ | ||
129 | // hide(); | ||
130 | //} | ||
131 | } | 142 | } |
@@ -133 +144,31 @@ void ModulesInfo::slotSendClicked() | |||
133 | } | 144 | } |
145 | |||
146 | void ModulesInfo::viewModules( QListViewItem *modules ) | ||
147 | { | ||
148 | QString modname = modules->text( 0 ); | ||
149 | QString capstr = "Module: "; | ||
150 | capstr.append( modname ); | ||
151 | ModulesDtl->setCaption( capstr ); | ||
152 | QString command = "/sbin/modinfo -nad "; | ||
153 | command.append( modname ); | ||
154 | FILE* modinfo = popen( command, "r" ); | ||
155 | |||
156 | if ( modinfo ) | ||
157 | { | ||
158 | char line[200]; | ||
159 | ModulesDtl->detailView->setText( " Details:\n------------\n" ); | ||
160 | |||
161 | while( true ) | ||
162 | { | ||
163 | int success = fscanf( modinfo, "%[^\n]\n", line ); | ||
164 | if ( success == EOF ) | ||
165 | break; | ||
166 | ModulesDtl->detailView->append( line ); | ||
167 | } | ||
168 | |||
169 | pclose( modinfo ); | ||
170 | } | ||
171 | |||
172 | ModulesDtl->showMaximized(); | ||
173 | } | ||
174 | |||
diff --git a/noncore/settings/sysinfo/modulesinfo.h b/noncore/settings/sysinfo/modulesinfo.h index ef1f805..e974610 100644 --- a/noncore/settings/sysinfo/modulesinfo.h +++ b/noncore/settings/sysinfo/modulesinfo.h | |||
@@ -26,4 +26,6 @@ | |||
26 | 26 | ||
27 | class Detail; | ||
27 | class QComboBox; | 28 | class QComboBox; |
28 | class QListView; | 29 | class QListView; |
30 | class QListViewItem; | ||
29 | 31 | ||
@@ -40,2 +42,4 @@ private: | |||
40 | 42 | ||
43 | Detail* ModulesDtl; | ||
44 | |||
41 | private slots: | 45 | private slots: |
@@ -43,2 +47,3 @@ private slots: | |||
43 | void slotSendClicked(); | 47 | void slotSendClicked(); |
48 | void viewModules( QListViewItem * ); | ||
44 | }; | 49 | }; |
diff --git a/noncore/settings/sysinfo/processdetail.cpp b/noncore/settings/sysinfo/processdetail.cpp deleted file mode 100644 index fcb871f..0000000 --- a/noncore/settings/sysinfo/processdetail.cpp +++ b/dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | /********************************************************************** | ||
2 | ** ProcessDetail | ||
3 | ** | ||
4 | ** Display process information | ||
5 | ** | ||
6 | ** Copyright (C) 2002, Dan Williams | ||
7 | ** williamsdr@acm.org | ||
8 | ** http://draknor.net | ||
9 | ** | ||
10 | ** 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 | ||
12 | ** Foundation and appearing in the file LICENSE.GPL included in the | ||
13 | ** packaging of this file. | ||
14 | ** | ||
15 | ** 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. | ||
17 | ** | ||
18 | **********************************************************************/ | ||
19 | |||
20 | #include "processdetail.h" | ||
21 | |||
22 | #include <sys/types.h> | ||
23 | #include <signal.h> | ||
24 | |||
25 | #include <qcombobox.h> | ||
26 | #include <qlayout.h> | ||
27 | #include <qlistview.h> | ||
28 | #include <qmessagebox.h> | ||
29 | #include <qpushbutton.h> | ||
30 | #include <qtextview.h> | ||
31 | #include <qwhatsthis.h> | ||
32 | |||
33 | ProcessDetail::ProcessDetail( QWidget* parent, const char* name, WFlags ) | ||
34 | : QWidget( parent, name, WStyle_ContextHelp ) | ||
35 | { | ||
36 | pid = 0; | ||
37 | |||
38 | QGridLayout *layout = new QGridLayout( this ); | ||
39 | layout->setSpacing( 4 ); | ||
40 | layout->setMargin( 4 ); | ||
41 | |||
42 | SignalCB = new QComboBox( FALSE, this, "SignalCB" ); | ||
43 | SignalCB->insertItem( " 1: SIGHUP" ); | ||
44 | SignalCB->insertItem( " 2: SIGINT" ); | ||
45 | SignalCB->insertItem( " 3: SIGQUIT" ); | ||
46 | SignalCB->insertItem( " 5: SIGTRAP" ); | ||
47 | SignalCB->insertItem( " 6: SIGABRT" ); | ||
48 | SignalCB->insertItem( " 9: SIGKILL" ); | ||
49 | SignalCB->insertItem( "14: SIGALRM" ); | ||
50 | SignalCB->insertItem( "15: SIGTERM" ); | ||
51 | SignalCB->insertItem( "18: SIGCONT" ); | ||
52 | SignalCB->insertItem( "19: SIGSTOP" ); | ||
53 | layout->addWidget( SignalCB, 1, 0 ); | ||
54 | QWhatsThis::add( SignalCB, tr( "Select a signal here and then click the Send button to the right to send to this process." ) ); | ||
55 | |||
56 | ProcessView = new QTextView( this, "ProcessView" ); | ||
57 | layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); | ||
58 | QWhatsThis::add( ProcessView, tr( "This area shows detailed information about this process." ) ); | ||
59 | |||
60 | SendButton = new QPushButton( this, "SendButton" ); | ||
61 | SendButton->setMinimumSize( QSize( 50, 24 ) ); | ||
62 | SendButton->setMaximumSize( QSize( 50, 24 ) ); | ||
63 | SendButton->setText( tr( "Send" ) ); | ||
64 | connect( SendButton, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); | ||
65 | layout->addWidget( SendButton, 1, 1 ); | ||
66 | QWhatsThis::add( SendButton, tr( "Click here to send the selected signal to this process." ) ); | ||
67 | } | ||
68 | |||
69 | ProcessDetail::~ProcessDetail() | ||
70 | { | ||
71 | } | ||
72 | |||
73 | void ProcessDetail::slotSendClicked() | ||
74 | { | ||
75 | QString sigstr = SignalCB->currentText(); | ||
76 | sigstr.truncate(2); | ||
77 | int sigid = sigstr.toUInt(); | ||
78 | |||
79 | if ( QMessageBox::warning( this, caption(), | ||
80 | tr( "You really want to send\n" + SignalCB->currentText() + "\nto this process?"), | ||
81 | QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) | ||
82 | == QMessageBox::Yes ) | ||
83 | { | ||
84 | if ( kill( pid, sigid ) == 0 ) | ||
85 | { | ||
86 | hide(); | ||
87 | } | ||
88 | } | ||
89 | |||
90 | } | ||
91 | |||
92 | |||
diff --git a/noncore/settings/sysinfo/processdetail.h b/noncore/settings/sysinfo/processdetail.h deleted file mode 100644 index 22e196f..0000000 --- a/noncore/settings/sysinfo/processdetail.h +++ b/dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | /********************************************************************** | ||
2 | ** ProcessDetail | ||
3 | ** | ||
4 | ** Display process information | ||
5 | ** | ||
6 | ** Copyright (C) 2002, Dan Williams | ||
7 | ** williamsdr@acm.org | ||
8 | ** http://draknor.net | ||
9 | ** | ||
10 | ** 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 | ||
12 | ** Foundation and appearing in the file LICENSE.GPL included in the | ||
13 | ** packaging of this file. | ||
14 | ** | ||
15 | ** 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. | ||
17 | ** | ||
18 | **********************************************************************/ | ||
19 | |||
20 | #ifndef PROCESSDETAIL_H | ||
21 | #define PROCESSDETAIL_H | ||
22 | |||
23 | #include <qwidget.h> | ||
24 | #include <qcombo.h> | ||
25 | #include <qtextview.h> | ||
26 | #include <qpushbutton.h> | ||
27 | #include <qlistview.h> | ||
28 | |||
29 | class ProcessDetail : public QWidget | ||
30 | { | ||
31 | Q_OBJECT | ||
32 | |||
33 | public: | ||
34 | ProcessDetail( QWidget* parent, const char* name, WFlags fl ); | ||
35 | ~ProcessDetail(); | ||
36 | |||
37 | QComboBox* SignalCB; | ||
38 | QTextView* ProcessView; | ||
39 | QPushButton* SendButton; | ||
40 | |||
41 | int pid; | ||
42 | |||
43 | private slots: | ||
44 | void slotSendClicked(); | ||
45 | }; | ||
46 | |||
47 | #endif // PROCESSDETAIL_H | ||
diff --git a/noncore/settings/sysinfo/processinfo.cpp b/noncore/settings/sysinfo/processinfo.cpp index 86133a9..35d7ba1 100644 --- a/noncore/settings/sysinfo/processinfo.cpp +++ b/noncore/settings/sysinfo/processinfo.cpp | |||
@@ -26,2 +26,3 @@ | |||
26 | #include <qlistview.h> | 26 | #include <qlistview.h> |
27 | #include <qmessagebox.h> | ||
27 | #include <qtimer.h> | 28 | #include <qtimer.h> |
@@ -29,3 +30,7 @@ | |||
29 | 30 | ||
31 | #include <sys/types.h> | ||
32 | #include <signal.h> | ||
33 | |||
30 | #include "processinfo.h" | 34 | #include "processinfo.h" |
35 | #include "detail.h" | ||
31 | 36 | ||
@@ -34,3 +39,6 @@ ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) | |||
34 | { | 39 | { |
35 | QVBoxLayout *layout = new QVBoxLayout( this, 5 ); | 40 | QGridLayout *layout = new QGridLayout( this ); |
41 | layout->setSpacing( 4 ); | ||
42 | layout->setMargin( 4 ); | ||
43 | |||
36 | 44 | ||
@@ -47,5 +55,27 @@ ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) | |||
47 | this, SLOT( viewProcess( QListViewItem * ) ) ); | 55 | this, SLOT( viewProcess( QListViewItem * ) ) ); |
48 | layout->addWidget( ProcessView ); | 56 | layout->addMultiCellWidget( ProcessView, 0, 0, 0, 1 ); |
49 | QWhatsThis::add( ProcessView, tr( "This is a list of all the processes on this handheld device.\n\nClick and hold on a process to see additional information about the process, or to send a signal to it." ) ); | 57 | QWhatsThis::add( ProcessView, tr( "This is a list of all the processes on this handheld device.\n\nClick and hold on a process to see additional information about the process, or to send a signal to it." ) ); |
50 | 58 | ||
59 | SignalCB = new QComboBox( FALSE, this, "SignalCB" ); | ||
60 | SignalCB->insertItem( " 1: SIGHUP" ); | ||
61 | SignalCB->insertItem( " 2: SIGINT" ); | ||
62 | SignalCB->insertItem( " 3: SIGQUIT" ); | ||
63 | SignalCB->insertItem( " 5: SIGTRAP" ); | ||
64 | SignalCB->insertItem( " 6: SIGABRT" ); | ||
65 | SignalCB->insertItem( " 9: SIGKILL" ); | ||
66 | SignalCB->insertItem( "14: SIGALRM" ); | ||
67 | SignalCB->insertItem( "15: SIGTERM" ); | ||
68 | SignalCB->insertItem( "18: SIGCONT" ); | ||
69 | SignalCB->insertItem( "19: SIGSTOP" ); | ||
70 | layout->addWidget( SignalCB, 1, 0 ); | ||
71 | QWhatsThis::add( SignalCB, tr( "Select a signal here and then click the Send button to the right to send to this process." ) ); | ||
72 | |||
73 | SendButton = new QPushButton( this, "SendButton" ); | ||
74 | SendButton->setMinimumSize( QSize( 50, 24 ) ); | ||
75 | SendButton->setMaximumSize( QSize( 50, 24 ) ); | ||
76 | SendButton->setText( tr( "Send" ) ); | ||
77 | connect( SendButton, SIGNAL( clicked() ), this, SLOT( slotSendClicked() ) ); | ||
78 | layout->addWidget( SendButton, 1, 1 ); | ||
79 | QWhatsThis::add( SendButton, tr( "Click here to send the selected signal to this process." ) ); | ||
80 | |||
51 | QTimer *t = new QTimer( this ); | 81 | QTimer *t = new QTimer( this ); |
@@ -56,4 +86,4 @@ ProcessInfo::ProcessInfo( QWidget* parent, const char* name, WFlags fl ) | |||
56 | 86 | ||
57 | ProcessDtl = new ProcessDetail( 0, 0, 0 ); | 87 | ProcessDtl = new Detail(); |
58 | ProcessDtl->ProcessView->setTextFormat( RichText ); | 88 | QWhatsThis::add( ProcessDtl->detailView, tr( "This area shows detailed information about this process." ) ); |
59 | } | 89 | } |
@@ -114,2 +144,24 @@ void ProcessInfo::updateData() | |||
114 | 144 | ||
145 | void ProcessInfo::slotSendClicked() | ||
146 | { | ||
147 | QString capstr = tr( "You really want to send\n" ); | ||
148 | capstr.append( SignalCB->currentText() ); | ||
149 | capstr.append( "\nto this process?" ); | ||
150 | |||
151 | QListViewItem *currprocess = ProcessView->currentItem(); | ||
152 | |||
153 | if ( QMessageBox::warning( this, currprocess->text( 1 ), capstr, | ||
154 | QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape ) == QMessageBox::Yes ) | ||
155 | { | ||
156 | QString sigstr = SignalCB->currentText(); | ||
157 | sigstr.truncate(2); | ||
158 | int sigid = sigstr.toUInt(); | ||
159 | if ( kill( currprocess->text( 0 ).stripWhiteSpace().toUInt(), sigid ) == 0 ) | ||
160 | { | ||
161 | hide(); | ||
162 | } | ||
163 | } | ||
164 | |||
165 | } | ||
166 | |||
115 | void ProcessInfo::viewProcess( QListViewItem *process ) | 167 | void ProcessInfo::viewProcess( QListViewItem *process ) |
@@ -119,3 +171,2 @@ void ProcessInfo::viewProcess( QListViewItem *process ) | |||
119 | ProcessDtl->setCaption( pid + " - " + command ); | 171 | ProcessDtl->setCaption( pid + " - " + command ); |
120 | ProcessDtl->pid = pid.toUInt(); | ||
121 | FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r"); | 172 | FILE *statfile = fopen( ( QString ) ( "/proc/" + pid + "/status"), "r"); |
@@ -125,6 +176,6 @@ void ProcessInfo::viewProcess( QListViewItem *process ) | |||
125 | fgets( line, 81, statfile ); | 176 | fgets( line, 81, statfile ); |
126 | ProcessDtl->ProcessView->setText( line ); | 177 | ProcessDtl->detailView->setText( line ); |
127 | while ( fgets( line, 81, statfile ) ) | 178 | while ( fgets( line, 81, statfile ) ) |
128 | { | 179 | { |
129 | ProcessDtl->ProcessView->append( line ); | 180 | ProcessDtl->detailView->append( line ); |
130 | } | 181 | } |
diff --git a/noncore/settings/sysinfo/processinfo.h b/noncore/settings/sysinfo/processinfo.h index 24b190e..687e080 100644 --- a/noncore/settings/sysinfo/processinfo.h +++ b/noncore/settings/sysinfo/processinfo.h | |||
@@ -25,3 +25,6 @@ | |||
25 | 25 | ||
26 | #include "processdetail.h" | 26 | class Detail; |
27 | class QComboBox; | ||
28 | class QListView; | ||
29 | class QListViewItem; | ||
27 | 30 | ||
@@ -34,9 +37,13 @@ public: | |||
34 | 37 | ||
38 | private: | ||
39 | QListView* ProcessView; | ||
40 | QComboBox* SignalCB; | ||
41 | QPushButton* SendButton; | ||
42 | |||
43 | Detail *ProcessDtl; | ||
44 | |||
35 | private slots: | 45 | private slots: |
36 | void updateData(); | 46 | void updateData(); |
47 | void slotSendClicked(); | ||
37 | void viewProcess( QListViewItem * ); | 48 | void viewProcess( QListViewItem * ); |
38 | |||
39 | private: | ||
40 | QListView* ProcessView; | ||
41 | ProcessDetail *ProcessDtl; | ||
42 | }; | 49 | }; |
diff --git a/noncore/settings/sysinfo/sysinfo.pro b/noncore/settings/sysinfo/sysinfo.pro index 7e66451..b6217c3 100644 --- a/noncore/settings/sysinfo/sysinfo.pro +++ b/noncore/settings/sysinfo/sysinfo.pro | |||
@@ -8,4 +8,4 @@ HEADERS = memory.h \ | |||
8 | processinfo.h \ | 8 | processinfo.h \ |
9 | processdetail.h \ | ||
10 | modulesinfo.h \ | 9 | modulesinfo.h \ |
10 | detail.h \ | ||
11 | versioninfo.h \ | 11 | versioninfo.h \ |
@@ -19,3 +19,3 @@ SOURCES = main.cpp \ | |||
19 | modulesinfo.cpp \ | 19 | modulesinfo.cpp \ |
20 | processdetail.cpp \ | 20 | detail.cpp \ |
21 | versioninfo.cpp \ | 21 | versioninfo.cpp \ |