Source Code (Use browser search to find items of interest.)
Class Index
kmail'KMFilterActionExec (./kdenetwork/kmail/kmfilteraction.cpp:229)
class KMFilterActionExec:public KMFilterAction
{
public:
KMFilterActionExec();
virtual const QString label(void) const;
virtual int process(KMMessage* msg, bool& stopIt);
virtual QWidget* createParamWidget(KMGFilterDlg* parent);
virtual void applyParamWidgetValue(QWidget* paramWidget);
virtual void argsFromString(const QString argsStr);
virtual const QString argsAsString(void) const;
static KMFilterAction* newAction(void);
static void dummySigHandler(int);
protected:
QString mCmd;
};
KMFilterAction* KMFilterActionExec::newAction(void)
{
return (new KMFilterActionExec);
}
const QString KMFilterActionExec::label(void) const
{
return i18n("forward to");
}
KMFilterActionExec::KMFilterActionExec(): KMFilterAction("execute")
{
}
void KMFilterActionExec::dummySigHandler(int)
{
}
int KMFilterActionExec::process(KMMessage* /*aMsg*/, bool& /*stop*/)
{
void (*oldSigHandler)(int);
int rc;
if (mCmd.isEmpty()) return TRUE;
oldSigHandler = signal(SIGALRM, &KMFilterActionExec::dummySigHandler);
alarm(30);
rc = system(mCmd);
alarm(0);
signal(SIGALRM, oldSigHandler);
if (rc & 255) // sanders: I don't get this it seems to be the wrong way
return 0; // around to me.
else
return 1;
}
QWidget* KMFilterActionExec::createParamWidget(KMGFilterDlg* aParent)
{
QLineEdit* edt;
edt = aParent->createEdit(mCmd);
return edt;
}
void KMFilterActionExec::applyParamWidgetValue(QWidget* aParamWidget)
{
QLineEdit* w = (QLineEdit*)aParamWidget;
mCmd = w->text();
}
void KMFilterActionExec::argsFromString(const QString argsStr)
{
mCmd = argsStr;
}
const QString KMFilterActionExec::argsAsString(void) const
{
return mCmd;
}
//=============================================================================
// Skip all other filter rules
//=============================================================================
kmail'KMFilterActionExec::argsAsString() (./kdenetwork/kmail/kmfilteraction.cpp:297)
const QString KMFilterActionExec::argsAsString(void) const
{
return mCmd;
}
//=============================================================================
// Skip all other filter rules
//=============================================================================