libKipi
plugin.cpp
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of kipi-plugins project
4 * http://www.kipi-plugins.org
5 *
6 * Date : 2004-02-01
7 * Description : plugin interface
8 *
9 * Copyright (C) 2004-2007 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * Copyright (C) 2004-2005 by Renchi Raju <renchi.raju at kdemail.net>
11 * Copyright (C) 2004-2005 by Jesper K. Pedersen <blackie at kde.org>
12 * Copyright (C) 2004-2005 by Aurelien Gateau <aurelien dot gateau at free.fr>
13 *
14 * This program is free software; you can redistribute it
15 * and/or modify it under the terms of the GNU General
16 * Public License as published by the Free Software Foundation;
17 * either version 2, or (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * ============================================================ */
25
26// Qt includes.
27
28#include <qwidget.h>
29
30// KDE includes.
31
32#include <kaction.h>
33#include <kinstance.h>
34#include <kdebug.h>
35
36// Local includes.
37
38#include "plugin.h"
39
41{
42 QMap<QWidget*, KActionCollection*> m_actionCollection;
43 KInstance* m_instance;
44 QMap<QWidget*, KActionPtrList> m_actions;
46};
47
48KIPI::Plugin::Plugin( KInstance* instance, QObject *parent, const char* name)
49 : QObject( parent, name)
50{
51 d=new Private;
52 d->m_instance=instance;
53}
54
56{
57 delete d;
58}
59
60KActionCollection* KIPI::Plugin::actionCollection( QWidget* widget )
61{
62 if ( widget == 0 )
63 widget = d->m_defaultWidget;
64
65 if (!d->m_actionCollection.contains( widget ))
66 kdWarning( 51000 ) << "Error in the plugin. The plugin needs to call Plugin::setup( QWidget* ) "
67 << "as the very first line when overriding the setup method." << endl;
68 return d->m_actionCollection[widget];
69}
70
71void KIPI::Plugin::addAction( KAction* action )
72{
73 d->m_actions[d->m_defaultWidget].append( action );
74}
75
76KActionPtrList KIPI::Plugin::actions( QWidget* widget )
77{
78 if ( widget == 0 )
79 widget = d->m_defaultWidget;
80
81 return d->m_actions[widget];
82}
83
84void KIPI::Plugin::setup( QWidget* widget )
85{
86 d->m_defaultWidget = widget;
87 d->m_actions.insert( widget, KActionPtrList() );
88 QString name = QString( "action collection for %1" ).arg( widget->name() );
89 d->m_actionCollection.insert( widget, new KActionCollection( widget, widget, name.latin1(), d->m_instance ) );
90}
KDStream & endl(KDStream &stream)
Definition KDStream.cpp:264
KActionCollection * actionCollection(QWidget *parent=0)
Definition plugin.cpp:60
virtual void setup(QWidget *widget)=0
Definition plugin.cpp:84
Plugin(KInstance *instance, QObject *parent, const char *name)
Definition plugin.cpp:48
virtual ~Plugin()
Definition plugin.cpp:55
KActionPtrList actions(QWidget *parent=0)
Definition plugin.cpp:76
void addAction(KAction *action)
Definition plugin.cpp:71
Definition plugin.cpp:41
QMap< QWidget *, KActionCollection * > m_actionCollection
Definition plugin.cpp:42
QMap< QWidget *, KActionPtrList > m_actions
Definition plugin.cpp:44
QWidget * m_defaultWidget
Definition plugin.cpp:45
KInstance * m_instance
Definition plugin.cpp:43