[Panel-devel] KDE/kdebase/workspace/krunner/runners/calculator
Aaron J. Seigo
aseigo at kde.org
Fri Mar 2 06:28:45 CET 2007
SVN commit 638475 by aseigo:
Runner -> Plasma::Runner; make style consistent
what can we use instead of calling bc externally?
CCMAIL:panel-devel at kde.org
M +30 -24 calculatorrunner.cpp
M +5 -7 calculatorrunner.h
--- trunk/KDE/kdebase/workspace/krunner/runners/calculator/calculatorrunner.cpp #638474:638475
@@ -30,12 +30,12 @@
#include "calculatorrunner.h"
-CalculatorRunner::CalculatorRunner(QObject* parent, const QStringList& args)
- : Runner(parent),
- m_options(0)
+CalculatorRunner::CalculatorRunner( QObject* parent, const QStringList& args )
+ : Plasma::Runner( parent ),
+ m_options( 0 )
{
Q_UNUSED(args)
-
+
setObjectName( i18n( "Calculator" ) );
}
@@ -44,45 +44,51 @@
delete m_options;
}
-QAction* CalculatorRunner::accepts(const QString& term)
+QAction* CalculatorRunner::accepts( const QString& term )
{
QString cmd = term.stripWhiteSpace();
QAction *action = 0;
-
- if (!cmd.isEmpty() && (cmd[0].isNumber() || (cmd[0] == '(')) &&
- (QRegExp("[a-zA-Z\\]\\[]").search(cmd) == -1))
+
+ if ( !cmd.isEmpty() &&
+ ( cmd[0].isNumber() || ( cmd[0] == '(') ) &&
+ ( QRegExp("[a-zA-Z\\]\\[]").search(cmd) == -1 ) )
{
- QString result = calculate(cmd);
- action = new QAction(KIcon("exec"),
- i18n("Result: ") + result,
- this);
+ QString result = calculate(cmd);
+ action = new QAction(KIcon("exec"),
+ i18nc("Answer to a mathematical equation", "Result: %1", result),
+ this);
}
return action;
}
-bool CalculatorRunner::exec(const QString& term)
+bool CalculatorRunner::exec( const QString& term )
{
Q_UNUSED(term)
return true;
}
-QString CalculatorRunner::calculate(const QString& term)
+QString CalculatorRunner::calculate( const QString& term )
{
QString result, cmd;
- const QString bc = KStandardDirs::findExe("bc");
- if ( !bc.isEmpty() )
- cmd = QString("echo %1 | %2").arg(KProcess::quote(QString("scale=8; ")+term), KProcess::quote(bc));
- else
- cmd = QString("echo $((%1))").arg(term);
+ const QString bc = KStandardDirs::findExe( "bc" );
+ if ( !bc.isEmpty() ) {
+ cmd = QString( "echo %1 | %2" )
+ .arg(KProcess::quote(QString("scale=8; ") + term),
+ KProcess::quote(bc));
+ }
+ else {
+ cmd = QString( "echo $((%1))" ).arg(term);
+ }
+
FILE *fs = popen(QFile::encodeName(cmd).data(), "r");
if (fs)
{
- { // scope for QTextStream
- QTextStream ts(fs, IO_ReadOnly);
- result = ts.read().stripWhiteSpace();
- }
- pclose(fs);
+ { // scope for QTextStream
+ QTextStream ts(fs, IO_ReadOnly);
+ result = ts.read().stripWhiteSpace();
+ }
+ pclose(fs);
}
return result;
}
--- trunk/KDE/kdebase/workspace/krunner/runners/calculator/calculatorrunner.h #638474:638475
@@ -29,21 +29,19 @@
/**
* This class evaluates the basic expressions given in the interface.
*/
-class CalculatorRunner : public Runner
+class CalculatorRunner : public Plasma::Runner
{
Q_OBJECT
- typedef QList<Runner*> List;
-
public:
- explicit CalculatorRunner(QObject* parent, const QStringList& args);
+ CalculatorRunner( QObject* parent, const QStringList& args );
~CalculatorRunner();
- QAction* accepts(const QString& term);
- bool exec(const QString& term);
+ QAction* accepts( const QString& term );
+ bool exec( const QString& term );
private:
- QString calculate(const QString& term);
+ QString calculate( const QString& term );
QWidget* m_options;
};
More information about the Panel-devel
mailing list