summaryrefslogtreecommitdiffstats
path: root/quanta/utility/tagactionmanager.h
blob: 533c3b3936935f57711a5fecc9f7d0176a49a36b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/***************************************************************************
                               tagactionmanager.h
                             -------------------
 
    copyright            : (C) 2004 - Paulo Moura Guedes
    email                : [email protected]
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef TAGACTIONMANAGER_H
#define TAGACTIONMANAGER_H

class KActionCollection;
namespace DOM
{
class Node;
}

#include <qptrlist.h>
class QWidget;

class TagActionSetAbstract;
class TagActionSet;
class TableTagActionSet;


/**
 * @author Paulo Moura Guedes
 * This class is a singleton.
*/
class TagActionManager
{
public:
    static TagActionManager* self();
    ~TagActionManager();
    
    /**
     * This method is used to fill context menus with apropriated actions for node.
     * If you want to plug a single action to some widget use actionCollection().
     * @param widget The widget in wich the actions will be pluged.
     * @param node The context/current node.
     */
    void fillWithTagActions(QWidget* widget, DOM::Node const& node);
    
    static bool canIndentDTD(QString const& dtd);

    KActionCollection* actionCollection() const
    {
        return m_actionCollection;
    }

private:
    TagActionManager();
    TagActionManager(TagActionManager const&)
    {}

    void initActions(QWidget* parent);

private:
    static TagActionManager* s_mSelf;

    KActionCollection* m_actionCollection;
    QPtrList<TagActionSetAbstract> m_tagActionSets;
};

#endif