summaryrefslogtreecommitdiffstats
path: root/libkdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch)
tree67208f7c145782a7e90b123b982ca78d88cc2c87 /libkdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp
downloadtdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz
tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'libkdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp')
-rw-r--r--libkdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp117
1 files changed, 117 insertions, 0 deletions
diff --git a/libkdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp b/libkdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp
new file mode 100644
index 000000000..834418d2c
--- /dev/null
+++ b/libkdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp
@@ -0,0 +1,117 @@
+/*
+ Copyright (C) 2004, David Faure <faure@kde.org>
+ This file is part of the KDE project
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2, as published by the Free Software Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#include "kpartsdesignerplugin.h"
+
+#include <kparts/componentfactory.h>
+#include <kparts/part.h>
+#include <kmimetype.h>
+#include <qlayout.h>
+#include <kapplication.h>
+#include <kdepimmacros.h>
+
+KPartsGenericPart::KPartsGenericPart( QWidget* parentWidget, const char* name )
+ : QWidget( parentWidget, name ), m_part( 0 )
+{
+ QVBoxLayout* layout = new QVBoxLayout( this );
+ layout->setAutoAdd( true );
+}
+
+void KPartsGenericPart::load()
+{
+ if ( m_mimetype.isEmpty() || m_url.isEmpty() )
+ return; // not enough info yet
+ // Here it crashes in KSycoca::openDatabase when trying to load the stuff from designer itself
+ // Not sure why - but it's not really needed anyway.
+ if ( !kapp )
+ return;
+ QString mimetype = m_mimetype;
+ if ( mimetype == "auto" )
+ mimetype == KMimeType::findByURL( m_url )->name();
+ if ( m_part ) {
+ delete m_part;
+ }
+ // "this" is both the parent widget and the parent object
+ m_part = KParts::ComponentFactory::createPartInstanceFromQuery<KParts::ReadOnlyPart>( mimetype, QString::null, this, 0, this, 0 );
+ if ( m_part ) {
+ m_part->openURL( m_url );
+ m_part->widget()->show();
+ }
+}
+
+////
+
+static const char* mykey = "KPartsGenericPart";
+
+QStringList KPartsWidgetPlugin::keys() const {
+ return QStringList() << mykey;
+}
+
+QWidget * KPartsWidgetPlugin::create( const QString & key, QWidget * parent, const char * name ) {
+ if ( key == mykey )
+ return new KPartsGenericPart( parent, name );
+ return 0;
+}
+
+QString KPartsWidgetPlugin::group( const QString & key ) const {
+ if ( key == mykey )
+ return "Display (KDE)";
+ return QString::null;
+}
+
+#if 0
+QIconSet KPartsWidgetPlugin::iconSet( const QString & key ) const {
+ return QIconSet();
+}
+#endif
+
+QString KPartsWidgetPlugin::includeFile( const QString & key ) const {
+ if ( key == mykey )
+ return "partplugin.h";
+ return QString::null;
+}
+
+QString KPartsWidgetPlugin::toolTip( const QString & key ) const {
+ if ( key == mykey )
+ return "Generic KParts viewer";
+ return QString::null;
+}
+
+QString KPartsWidgetPlugin::whatsThis( const QString & key ) const {
+ if ( key == mykey )
+ return "A widget to embed any KParts viewer, given a url and optionally a mimetype";
+ return QString::null;
+}
+
+bool KPartsWidgetPlugin::isContainer( const QString & /*key*/ ) const {
+ return false;
+}
+
+/// Duplicated from kdelibs/kdecore/kdemacros.h.in for those with kdelibs < 3.4
+#ifndef KDE_Q_EXPORT_PLUGIN
+#define KDE_Q_EXPORT_PLUGIN(PLUGIN) \
+ Q_EXTERN_C KDE_EXPORT const char* qt_ucm_query_verification_data(); \
+ Q_EXTERN_C KDE_EXPORT QUnknownInterface* ucm_instantiate(); \
+ Q_EXPORT_PLUGIN(PLUGIN)
+#endif
+
+KDE_Q_EXPORT_PLUGIN( KPartsWidgetPlugin )
+
+#include "kpartsdesignerplugin.moc"
+