[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdepim/kontact
From: David Faure <faure () kde ! org>
Date: 2005-01-08 14:15:07
Message-ID: 20050108141507.A4D901B923 () office ! kde ! org
[Download RAW message or body]
CVS commit by faure:
Show the error message in the message box when a part can't be loaded.
Fixed wrong "wait cursor" in that msgbox, and don't select the plugin in the sidepane
until successfully loaded, otherwise it looks out of sync.
M +32 -5 interfaces/core.cpp 1.20
M +2 -0 interfaces/core.h 1.24
M +6 -5 src/mainwindow.cpp 1.133
--- kdepim/kontact/interfaces/core.cpp #1.19:1.20
@@ -28,10 +28,18 @@
#include <kdebug.h>
#include <qtimer.h>
+#include <klocale.h>
using namespace Kontact;
+class Core::Private
+{
+public:
+ QString lastErrorMessage;
+};
+
Core::Core( QWidget *parent, const char *name )
: KParts::MainWindow( parent, name )
{
+ d = new Private;
QTimer* timer = new QTimer( this );
mLastDate = QDate::currentDate();
@@ -42,4 +50,5 @@ Core::Core( QWidget *parent, const char
Core::~Core()
{
+ delete d;
}
@@ -66,10 +75,23 @@ KParts::ReadOnlyPart *Core::createPart(
SLOT( slotPartDestroyed( QObject * ) ) );
} else {
- if ( error == KParts::ComponentFactory::ErrNoLibrary ) {
- // ### how to pass it to kontact for displaying together with the "Cannot load Part" box?
- kdWarning(5601) << KLibLoader::self()->lastErrorMessage() << endl;
- } else {
- kdWarning(5601) << "KParts::ComponentFactory::createInstanceFromFactory returned error code " << \
error << " for " << libname << endl; + // TODO move to KParts::ComponentFactory
+ switch( error ) {
+ case KParts::ComponentFactory::ErrNoServiceFound:
+ d->lastErrorMessage = i18n( "No service found" );
+ break;
+ case KParts::ComponentFactory::ErrServiceProvidesNoLibrary:
+ d->lastErrorMessage = i18n( "Program error: the .desktop file for the service does not have a \
Library key." ); + break;
+ case KParts::ComponentFactory::ErrNoLibrary:
+ d->lastErrorMessage = KLibLoader::self()->lastErrorMessage();
+ break;
+ case KParts::ComponentFactory::ErrNoFactory:
+ d->lastErrorMessage = i18n( "Program error: the library %1 does not provide a factory." ).arg( \
libname ); + break;
+ case KParts::ComponentFactory::ErrNoComponent:
+ d->lastErrorMessage = i18n( "Program error: the library %1 does not support creating components of \
the specified type" ).arg( libname ); + break;
}
+ kdWarning(5601) << d->lastErrorMessage << endl;
}
@@ -99,4 +121,9 @@ void Core::checkNewDay()
}
+QString Core::lastErrorMessage() const
+{
+ return d->lastErrorMessage;
+}
+
#include "core.moc"
// vim: sw=2 sts=2 et tw=80
--- kdepim/kontact/interfaces/core.h #1.23:1.24
@@ -82,4 +82,6 @@ class Core : public KParts::MainWindow
Core( QWidget *parentWidget = 0, const char *name = 0 );
+ QString lastErrorMessage() const;
+
private slots:
void slotPartDestroyed( QObject * );
--- kdepim/kontact/src/mainwindow.cpp #1.132:1.133
@@ -533,16 +533,17 @@ void MainWindow::selectPlugin( Kontact::
KApplication::setOverrideCursor( QCursor( Qt::WaitCursor ) );
- if ( mSidePane )
- mSidePane->selectPlugin( plugin );
-
KParts::Part *part = plugin->part();
if ( !part ) {
- KMessageBox::error( this, i18n( "Cannot load part for %1." )
- .arg( plugin->title() ) );
KApplication::restoreOverrideCursor();
+ KMessageBox::error( this, i18n( "Cannot load part for %1." )
+ .arg( plugin->title() )
+ + "\n" + lastErrorMessage() );
return;
}
+ if ( mSidePane )
+ mSidePane->selectPlugin( plugin );
+
plugin->select();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic