[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdeextragear-2/kst/kst
From: George Staikos <staikos () kde ! org>
Date: 2004-11-01 16:06:02
Message-ID: 20041101160602.A018B16C40 () office ! kde ! org
[Download RAW message or body]
CVS commit by staikos:
1) get rid of symbol warnings in KstDataSource
2) add support for custom strings in plugin errors
BUG: 88086
M +5 -1 kstdatasource.cpp 1.45
M +10 -0 kstplugin.cpp 1.77
M +10 -0 plugin.cpp 1.28
M +2 -1 plugin.h 1.33
M +4 -0 pluginloader.cpp 1.16
--- kdeextragear-2/kst/kst/kstdatasource.cpp #1.44:1.45
@@ -143,5 +143,9 @@ namespace KST {
// FIXME: might be a good idea to cache this per-symbol
- return _lib->symbol(QFile::encodeName(sym + "_" + _plugLib));
+ QCString s = QFile::encodeName(sym + "_" + _plugLib);
+ if (_lib->hasSymbol(s)) {
+ return _lib->symbol(s);
+ }
+ return 0L;
}
--- kdeextragear-2/kst/kst/kstplugin.cpp #1.76:1.77
@@ -323,4 +323,14 @@ KstObject::UpdateType KstPlugin::update(
}
_lastError = QString::null;
+ } else if (rc > 0) {
+ if (_lastError.isEmpty()) {
+ const char *err = _plugin->errorCode(rc);
+ if (err && *err) {
+ _lastError = err;
+ KstDebug::self()->log(i18n("Plugin %1 produced error: \
%2.").arg(tagName()).arg(_lastError), KstDebug::Error); + } else {
+ _lastError = QString::null;
+ }
+ }
} else {
bool doSend = _lastError.isEmpty() ? true : false;
--- kdeextragear-2/kst/kst/plugin.cpp #1.27:1.28
@@ -30,4 +30,5 @@ Plugin::Plugin() : KstShared() {
_symbol = 0L;
_freeSymbol = 0L;
+ _errorSymbol = 0L;
_parameterName = 0L;
//kdDebug() << "Creating Plugin: " << long(this) << endl;
@@ -38,4 +39,5 @@ Plugin::~Plugin() {
_symbol = 0L;
_freeSymbol = 0L;
+ _errorSymbol = 0L;
_parameterName = 0L;
@@ -198,3 +200,11 @@ bool Plugin::freeLocalData(void **local)
}
+
+const char *Plugin::errorCode(int code) const {
+ if (_errorSymbol) {
+ return ((const char *(*)(int))_errorSymbol)(code);
+ }
+ return 0L;
+}
+
// vim: ts=2 sw=2 et
--- kdeextragear-2/kst/kst/plugin.h #1.32:1.33
@@ -58,4 +58,5 @@ class Plugin : public KstShared {
QString parameterName(int index) const;
bool freeLocalData(void **local) const;
+ const char *errorCode(int code) const;
static const int CallError;
@@ -143,5 +144,5 @@ class Plugin : public KstShared {
KLibrary *_lib;
- void *_symbol, *_freeSymbol;
+ void *_symbol, *_freeSymbol, *_errorSymbol;
void *_parameterName;
--- kdeextragear-2/kst/kst/pluginloader.cpp #1.15:1.16
@@ -76,4 +76,8 @@ Plugin *PluginLoader::loadPlugin(const Q
}
+ if (plug->_lib->hasSymbol("errorCode")) {
+ plug->_errorSymbol = plug->_lib->symbol("errorCode");
+ }
+
if (!plug->_symbol) {
KstDebug::self()->log(i18n("Could not find symbol '%1' in plugin \
%2.").arg(plug->_data._name).arg(object), KstDebug::Error);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic