summaryrefslogtreecommitdiffstats
path: root/libtdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libtdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp')
-rw-r--r--libtdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp117
1 files changed, 117 insertions, 0 deletions
diff --git a/libtdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp b/libtdepim/kpartsdesignerplugin/kpartsdesignerplugin.cpp
new file mode 100644
index 000000000..c3eedc329
--- /dev/null
+++ b/libtdepim/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 <tqlayout.h>
+#include <kapplication.h>
+#include <tdepimmacros.h>
+
+KPartsGenericPart::KPartsGenericPart( TQWidget* parentWidget, const char* name )
+ : TQWidget( parentWidget, name ), m_part( 0 )
+{
+ TQVBoxLayout* tqlayout = new TQVBoxLayout( this );
+ tqlayout->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;
+ TQString 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, TQString(), TQT_TQWIDGET(this), 0, TQT_TQOBJECT(this), 0 );
+ if ( m_part ) {
+ m_part->openURL( m_url );
+ m_part->widget()->show();
+ }
+}
+
+////
+
+static const char* mykey = "KPartsGenericPart";
+
+TQStringList KPartsWidgetPlugin::keys() const {
+ return TQStringList() << mykey;
+}
+
+TQWidget * KPartsWidgetPlugin::create( const TQString & key, TQWidget * parent, const char * name ) {
+ if ( key == mykey )
+ return new KPartsGenericPart( parent, name );
+ return 0;
+}
+
+TQString KPartsWidgetPlugin::group( const TQString & key ) const {
+ if ( key == mykey )
+ return "Display (KDE)";
+ return TQString();
+}
+
+#if 0
+TQIconSet KPartsWidgetPlugin::iconSet( const TQString & key ) const {
+ return TQIconSet();
+}
+#endif
+
+TQString KPartsWidgetPlugin::includeFile( const TQString & key ) const {
+ if ( key == mykey )
+ return "partplugin.h";
+ return TQString();
+}
+
+TQString KPartsWidgetPlugin::toolTip( const TQString & key ) const {
+ if ( key == mykey )
+ return "Generic KParts viewer";
+ return TQString();
+}
+
+TQString KPartsWidgetPlugin::whatsThis( const TQString & key ) const {
+ if ( key == mykey )
+ return "A widget to embed any KParts viewer, given a url and optionally a mimetype";
+ return TQString();
+}
+
+bool KPartsWidgetPlugin::isContainer( const TQString & /*key*/ ) const {
+ return false;
+}
+
+/// Duplicated from kdelibs/tdecore/kdemacros.h.in for those with kdelibs < 3.4
+#ifndef KDE_TQ_EXPORT_PLUGIN
+#define KDE_TQ_EXPORT_PLUGIN(PLUGIN) \
+ TQ_EXTERN_C KDE_EXPORT const char* qt_ucm_query_verification_data(); \
+ TQ_EXTERN_C KDE_EXPORT TQUnknownInterface* ucm_instantiate(); \
+ TQ_EXPORT_PLUGIN(PLUGIN)
+#endif
+
+KDE_TQ_EXPORT_PLUGIN( KPartsWidgetPlugin )
+
+#include "kpartsdesignerplugin.moc"
+