1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
/* Synaescope - a pretty noatun visualization (based on P. Harrison's Synaesthesia)
Copyright (C) 1997 Paul Francis Harrison <pfh@yoyo.cc.monash.edu.au>
2001 Charles Samuels <charles@kde.org>
this file is X11 source
*/
#include "synaescope.h"
#include "cmodule.h"
#include <kdebug.h>
#include <kmessagebox.h>
#include <klocale.h>
#include <kstandarddirs.h>
extern "C"
{
Plugin *create_plugin()
{
KGlobal::locale()->insertCatalogue("synaescope");
return new SynaeScope();
}
}
SynaeScope::SynaeScope() : Plugin(), scopeExePath(0)
{
kdDebug(66666) << k_funcinfo << endl;
restarting=false;
connect(&process, TQT_SIGNAL(processExited(KProcess *)),
this, TQT_SLOT(processExited(KProcess *)));
connect(&process, TQT_SIGNAL(receivedStdout(KProcess *,char *,int)),
this, TQT_SLOT(receivedStdout(KProcess *,char *,int)));
connect(&process, TQT_SIGNAL(receivedStderr(KProcess *,char *,int)),
this, TQT_SLOT(receivedStderr(KProcess *,char *,int)));
}
SynaeScope::~SynaeScope()
{
kdDebug(66666) << k_funcinfo << endl;
process.kill();
}
void SynaeScope::init()
{
kdDebug(66666) << k_funcinfo << endl;
mPrefs = new SynaePrefs(this);
mPrefs->reopen();
mPrefs->save();
connect(mPrefs, TQT_SIGNAL(configChanged()), this, TQT_SLOT(readConfig()));
scopeExePath = KStandardDirs::findExe("noatunsynaescope.bin");
if (scopeExePath.isEmpty())
{
KMessageBox::error(0, i18n("Unable to locate noatunsynaescope.bin in your path. Check your installation."));
unload();
}
process << scopeExePath;
runScope();
}
void SynaeScope::runScope()
{
kdDebug(66666) << k_funcinfo << endl;
if(!process.start(KProcess::NotifyOnExit, (KProcess::Communication)(KProcess::Stdin | KProcess::Stdout)))
{
KMessageBox::error(0, i18n("Unable to start noatunsynaescope. Check your installation."));
unload();
}
}
void SynaeScope::readConfig()
{
kdDebug(66666) << k_funcinfo << endl;
if (!process.isRunning())
return;
restarting=true;
process.kill();
}
void SynaeScope::processExited(KProcess *)
{
kdDebug(66666) << k_funcinfo << endl;
if(restarting)
{
restarting=false;
runScope();
}
else
{
unload();
}
}
void SynaeScope::receivedStdout(KProcess *, char *buf, int len)
{
TQCString debugString(buf,len);
kdDebug(66666) << k_funcinfo << debugString << endl;
}
void SynaeScope::receivedStderr(KProcess *, char *buf, int len)
{
TQCString debugString(buf,len);
kdDebug(66666) << k_funcinfo << debugString << endl;
}
#include "synaescope.moc"
|